Here I Go Again!

Started by GuyPerfect, September 16, 2009, 12:08:14 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

GuyPerfect

My Metroid project is being organized in a modular fashion that essentially connects the inner workings of multiple programs into a root system that uses them each in combination or in some cases even interchangibly. And with my purist mentality when it comes to programming and my stubborn unwillingness to use anything other than the C language, my solutions often spread into areas unseen by coders who work under the banner of the accursed class. And I wouldn't have it any other way!

In this case, though, I want to construct a simple system that incorporates several smaller systems into a singular workload processor. And the exercise is one I'm sure will be welcome in this community: Lemmings level editors!

Normally, level editors would be standalone programs, but I'd like to devise and implement a system that binds multiple editors together into a single structure, while still enabling individual parts to be detached or new parts to be introduced later on. This means I'll be able to work as hard as I want and once I get the system working, I don't have to do any more if I don't want to. (-:

Of course, the other side of that coin is that I can introduce new editors whenever I make new modules, so it should eventually become some sort of all-encompassing project that this community will be able to hold up to the rest of the internet and brag about. What fun!

I know that this project will be stepping on some toes, and I apologize for that in advance. If you've been working long and hard on a level editor for a Lemmings game and I come along and one-up you or your loved ones, bear in mind that it's all in good fun and in the name of computer science... Besides, I'll be back to making Metroid before long, so other people's toes will be stepped on instead of yours. (-:

Regretably, I'll be doing Lemmings the first first. It always gets all the attention! But, alas, it is likely the simplest, so it would be the best place to start.

ccexplore

That's nice but it's so vague-sounding right now, I don't know what to make of it (and I'm guessing also that only maybe 2 or 3 people understand what you're trying to say http://www.lemmingsforums.com/Smileys/lemmings/XD.gif" alt=":XD:" title="XD" class="smiley" />).

What I'm confused about is whether you're just trying to make the level editor as extensible as possible (but still requires programming in C to actually extend it, in which case I'm not sure if it's any better than just open sourcing), or whether you're trying to create a meta-system that somehow allows multiple otherwise independent programs to work with each other (sort of an integration of a number of separate tools).  Or maybe both.

I'll warn you though, IMHO LemEdit and Lemmix has set the bar fairly high for this.  I frankly won't worry about "stepping toes"; just worry that you will find someone's toes to step on in the first place http://www.lemmingsforums.com/Smileys/lemmings/winktounge.gif" alt=";P" title="Wink-Tongue" class="smiley" /> (that is, make sure your level editor is compelling enough for other people to even bother switching to using it in the first place).

GuyPerfect

Like I said, Lemmings the first tends to get all the attention. But I fully intend to try my hand at Lemmings 3D and Lemmings Revolution among all the others. I like hacking. It's my thing.

ccexplore

Oh okay that makes more sense now http://www.lemmingsforums.com/Smileys/lemmings/cool.gif" alt="8)" title="Cool" class="smiley" />, you could probably reuse a lot of the same code for the different editors.  It wasn't clear from your first post that you were targeting a number of games in the Lemmings series.

Well in that case, for anything else besides Lemmings/ONML/Holiday Lemmings, I don't think you need to worry about stepping toes since I don't think there's anyone there yet. http://www.lemmingsforums.com/Smileys/lemmings/wink.gif" alt=";)" title="Wink" class="smiley" />

namida

My old site http://lemcrazy370.tripod.com/" class="bbc_link" target="_blank">http://lemcrazy370.tripod.com/ has a bit of info on Lemmings 3D level format (not much, but still, it's a starting point). However, the full game appears to compress the levels, so you'd have to break that somehow. Not sure about the demo, but the Winterland version's levels are not compressed in any way.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Clam

Could you possibly be persuaded to start with Lemmings 2? I think it's about time we had a really solid editor for this game, given the vastly greater amount of possibilities it brings.

GuyPerfect

Lemmings 2 is actually the one I'm interested in making levels for, but like I said, it'd be easier to start out with Lemmings because the developers were still getting to know what they were up to. (-:

Having said that, I do have a question. I've written a parser and decompressor for the Lemmings .dat files, and I'm noticing a shortage of levels. There are 10 level files each with 8 levels inside, making 80 total levels. But the game has 120. Where'd the other 40 go?

EDIT:
Hold that thought. ODDTABLE.DAT seems to contain information for re-using level terrain. A quick search for the word "Ozone" told me all I needed to know. (-:

namida

Well. Depending on how this turns out, it could be a great one. I find Lemmix annoying to use (with having to place the terrain piece first then change what type it is, and all, it's just weird), and while LemEdit is great, it's a bit slow in DosBox...
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

GuyPerfect

My examinations of the data files included with Lemmings have successfully given me access to all of the data contained in the .dat files. I have enough information to correctly make a level editor that can patch its levels back into the game. However, the passwords, the order the levels appear and a few other key values are missing from these files, and therefore must be located within the game program itself. Normally this wouldn't be a problem, but storage memory was scarce in the early 90's and DMA took some steps to reduce the file size footprint of their production when they released it for DOS.

In particular, I found that they used a commercial utility called PKLITE, which compresses the contents of DOS executables (be it .EXE or .COM) and packs them into a new .exe with the decompression code at the top. When the program is run, it decompresses the original program code and loads it into memory, then transfers program control to it in an invisible process that has no effect on the execution of the original program. A side-effect of this process is that executables packed in this manner cannot be decompressed like data files, which makes accessing the information within the Lemmings executable impossible without running the program itself, and that throws a wrench in the works in my efforts to create a level editor for the game.

In order to properly hack this game to suit my unbearably high standards, I will not only require access to the contents of VGALEMMI.EXE, but also must be able to create a new version of the file consisting of any changes made during the edit process. Fortunately, the structure of a DOS program is fairly simple and there is nothing insurmountably difficult in reconstructing the original VGALEMMI.EXE file by interprating the code in the compressed version. It is, however, an involved process that will take a lot of time to implement, and I must save it for some other time.

Subsequent Lemmings games do not have this limitation. Their levels are stored and sequenced in individual files. Much to the delight of he who thinks clams have big eyeballs, I will now be turning my attention to Lemmings 2.

chaos_defrost

A lemmings 2 editor? Oh wow, that would be asbolutely amazing if you made one and I'd probably get back into level editing if that were the case.
"こんなげーむにまじになっちゃってどうするの"

~"Beat" Takeshi Kitano

Dullstar

I can't even get wahtever the Lemmings 2 editor is called to run in Windows or Linux.  I have always wanted to make my own levels for that game.

Clam

http://www.lemmingsforums.com/Smileys/lemmings/shocked.gif" alt=":o" title="Shocked" class="smiley" />

Oh, sweet!

I'd better get the pencil and paper out and start doodling... http://www.lemmingsforums.com/Smileys/lemmings/tongue.gif" alt=":P" title="Tongue" class="smiley" />

Dullstar

Me too!!!

Make a Linux version!!!

GuyPerfect

I'll be making this with that cross-platform API I made for the Metroid project, so it will run on Microsoft Windows as well as Linux.

Also, the compression scheme for the Lemmings 2 levels is hecka funky, but I'm *this* close to cracking it. I should have something to show by the end of the day.

Dullstar

Y A A A A A A Y ! ! !

So, what coding do I need to make my game?  I swear most tutorials on the Internet are crap.  What good is just listing the code without explaining the structure any?