Here I Go Again!

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

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

GuyPerfect

http://www.lemmingsforums.com/index.php?topic=176.msg5273#msg5273">Quote from: Dullstar on 2009-09-20 17:31:58
[...] I really don't think 16x8 tile grids would be hard to edit.
You'd have to pick a cell on the grid, then choose from one of hundreds of tiles to put in its place. And if you want to get adjacent tiles to line up graphically, you're going to have to look at dozens of tiles with similar appearance to find the one you're looking for. Using the presets will make the task of level designing much quicker and more efficient.

What I have in mind will pick out any tile formations put in the level that could be formed with preset blocks, then everything else will be a tile-for-tile specification. Think of the blocks as groups of tiles glued together, though the level in its final form is just tiles.


http://www.lemmingsforums.com/index.php?topic=176.msg5273#msg5273">Quote from: Dullstar on 2009-09-20 17:31:58
Have you gotten levels in any other tribes decoded?
All levels in the game can be decoded in the manner I'm using right now. The process is incomplete in its current state, however.

Dullstar

Good luck with your editor!

Simon

Nice going. - What is with this piece of stairs here floating in nowhere?

http://h.imagehost.org/0133/l2cla3_debris.png" alt="" class="bbc_img" />

It does not appear in the real level. Yet, it's not overwritten by any special object, unlike the yellow bricks behind the water.

Or does the water actually erase the terrain behind it instead of hovering over it?

-- Simon

GuyPerfect

The mystery stair chunk is indeed overwritten by the water. The Lemmings 2 engine does not allow for layered scene compositions, so when the water is loaded into the level, it boots out the stair chunk because the tile is now occupied by water instead of stair. The same thing will cause normal terrain to be overwritten by steel blocks, which is why I find it nonsensical to leave the non-steel terrain in there in the first place.

Dullstar

Now that is interesting.  I wanted a little help in learning to program, but I guess not.  We got a new, trolling member, so I had to close down the topic.

Clam

http://www.lemmingsforums.com/index.php?topic=176.msg5270#msg5270">Quote from: GuyPerfect on 2009-09-20 16:09:24
Check out those extra tiles on the top and bottom. Intriguing, no? It's always fun to hack levels in video games and see just how much unnecessary garbage there is in the level data that's usually leftovers from level creation. Lemmings 2 is certainly no exception. See all those blocks making up the floor and walls? In the final version of the level, those are steel blocks. Yeah. So them being there is just taking up file space, as the level would play just the same without them.

Cool. http://www.lemmingsforums.com/Smileys/lemmings/laugh.gif" alt=":D" title="Laugh" class="smiley" /> If you find any more of this sort of thing, be sure to post it in this thread over here. I found some similarly useless stuff in the original Lemmings levels while playing around in Lemmix.

GuyPerfect

Sheesh, I never want to see another pointer table again...

... until next time. (-:

http://i7.photobucket.com/albums/y255/bgng/Lemcicle.png" alt="" class="bbc_img" />

Got the animation business figured out. Objects in levels can be comprised of multiple animations (such as the flag on the Medieval exit being a separate graphic from the little castle that makes up the majority of the exit), and all the tile references seem to be sorted out now.

The sorry loser who coded the STYLES decoder was either drinking heavily, high on some kind of substance, or most likely some obscure combination of the two. There's one pointer table that simply refers to tiles, see. It's got a number of entries, and the first value is the number of bytes taken up by the tile list, and then there's the tile list. Easy, right? Well, the table that references it uses an offset that pretends those "number of entries" values aren't there at all! It'd be one thing if, say, the third referencing table always referred to the third list of tiles, but it's completely arbitrary, which makes a direct resolution of the exact tile list to read far more complicated than it needs to be. I ended up writing a function that skims through the entire group of tile lists to determine what the REAL data offset is, then wrote THAT into the table instead.

If any of that makes sense, you may share in my anger.

In any case, it shouldn't be too much longer before I get a full image dump of the levels prepared. The day of editing is drawing ever closer.

GuyPerfect

Well, I'm pretty much convinced that I've got the level format thoroughly cracked now.

http://perfectkiosk.net/lemmings/MoarHackin.png" alt="" class="bbc_img" />

A cursory glance through the level files suggests that the only thing I haven't implemented yet are the objects that the user interacts with, such as the cannon, the catapault and the chain swing. I'll look into those things eventually (as there are still a few data chunks in the STYLES directory I haven't messed with yet), but I'll easily be able to cheat to make a fully-functional level editor and come back to it later.

Well, hrmm. I guess the next step is to load up an OpenGL app and make an editor, huh?

GuyPerfect

For those waiting for the next update before posting anything, you'll be waiting a while. The process of creating an editor application from the ground up is one that takes a good deal of design and implementation, so it'll take some time. And since I'm a perfectionist, it's guaranteed that I won't give you anything that I wouldn't want someone to give me, so I'd expect to wait a week at least.

So if you have anything to say about your fascination with game hacking or how excited you are to be able to make levels for Lemmings 2, get it out of your system now. (-:

Dullstar

Isn't that what Alpha/Beta versions are for?

GuyPerfect

Those are, by definition, part of the development process. I have no intention of making either of those public.

Mindless

http://www.lemmingsforums.com/index.php?topic=176.msg4982#msg4982">Quote from: GuyPerfect on 2009-09-15 18:08:14
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...

I don't really think this is something you need to worry about.  If you one-up lem3edit, I'll appreciate it... I only did enough work on it to make it usable, not user-friendly.

http://www.lemmingsforums.com/index.php?topic=176.msg5033#msg5033">Quote from: GuyPerfect on 2009-09-16 19:46:39
This dynamic setup makes the task of coding an optimal compressor quite a daunting one that will take many hours or even days of careful engineering to design and implement......

I made lem2zip to be an optimal compressor for the algorithm, but I don't expect you'll use it since you don't seem to trust that other people's code can be perfect enough.  If you couldn't tell, this aspect of you bothers me.  In my book, being self-confident is okay... being condescending is not.  And to me, that's the way you come off.

Reinventing the wheel will never make you great; instead, you build upon the work of others.  "If I have seen a little further, it is by standing on the shoulders of giants," as Newton put it.  Think about it.

That said, I hope to see useful results from this project.

GuyPerfect

This looks like an in-game screenshot with a window border around it, but it's actually a progress report!

http://perfectkiosk.net/lemmings/YayViewer.png" alt="" class="bbc_img" />

Not anything tangible for anyone not at my workstation, but I've got a level viewer loading up all the game's graphics into the OpenGL pipline and rendering full-level frames for one's viewing pleasure. As you can see, that flamethrower was captured mid-spew, because this viewer does indeed animate objects while you sit there and stare at it.

The editor will show things like water and flames animating while you're editing. What you'll look at is for all intents and purposes what you'll play when you load up DosBox.

----------

http://www.lemmingsforums.com/index.php?topic=176.msg5453#msg5453">Quote from: Mindless on 2009-09-23 18:21:39
I made lem2zip to be an optimal compressor for the algorithm, but I don't expect you'll use it since you don't seem to trust that other people's code can be perfect enough.

[...]

Reinventing the wheel will never make you great; instead, you build upon the work of others.

The purpose is not to do the work. The purpose is to hack and make something out of it. If I make an editor using someone else's hacking notes, I deny myself the first half of the fun. And I'm definitely in it for the fun.

I rarely use other people's code. It's not because I don't think it's of adequate quality; it's because other people's code is not mine. If I use whatever programming to accomplish whatever task that someone else made, I'm denying myself the second half of the fun. And I'm definitely in it for the fun.

Clam

http://www.lemmingsforums.com/index.php?topic=176.msg5460#msg5460">Quote from: GuyPerfect on 2009-09-23 23:06:52
The editor will show things like water and flames animating while you're editing. What you'll look at is for all intents and purposes what you'll play when you load up DosBox.

Hey, that's a nice touch. Lemmix and other level editors do look rather lifeless...

This is really exciting stuff. I've got a level drawn up on paper already, and can't wait to build it http://www.lemmingsforums.com/Smileys/lemmings/cool.gif" alt="8)" title="Cool" class="smiley" />

geoo

You're writing the GUI from scratch (apart from relying on OpenGL)?

I'm pretty impressed by your fast progress, though considering you seem to be an experienced programmer, perhaps that's to be expected. http://www.lemmingsforums.com/Smileys/lemmings/wink.gif" alt=";)" title="Wink" class="smiley" />
I can actually understand why you'd want to re-do the 'hacking' part of it, I also had a lot of fun doing it, while the actual programming part put me off (due to my inexperience with GUIs though). In that regard I'm actually glad that I don't have to do the latter part myself anymore, especially if you can offer something of decent quality as opposed to me.
(Being into algorithms, I can imagine writing a compressor fun as well; not having looked into it, from your description it sounds like Huffman compression?)

I think I can see both points:
Sure, building upon work of others will get you further, and faster to the destination as well.
But if you set your emphasis not on the destination, but the journey, with the final result only considered as a side product, I think reinventing the wheel is totally acceptable for oneself, and has the positive side effect of really knowing your stuff.