+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Super Mario level editor... from scratch?
Pages: [1] 2
Author Topic: Super Mario level editor... from scratch?  (Read 2018 times)
Bowie
Guest
« on: August 31, 2007, 07:34:03 am »

This might be a stupid question -- I'm sort of new to this -- but will anyone ever release an actual level editor for either SMB3 or SMW, one that allows you full custom control over editing maps, levels, "exits" (etc) from scratch, placing as many objects as desired in a level, etc?

Apart from the illegality of copying the actual copyrighted information into an editor program (rather than simply a copyright-uninfringing hacking tool), is it bordering impossible to create a standalone editor that churns out a rom at the end?
creaothceann
Guest
« Reply #1 on: August 31, 2007, 08:02:43 am »

Quote from: Bowie on August 31, 2007, 07:34:03 am
Apart from the illegality of copying the actual copyrighted information into an editor program (rather than simply a copyright-uninfringing hacking tool), is it bordering impossible to create a standalone editor that churns out a rom at the end?

The user could provide the original ROM, which the editor would extract its data from.
Disch
Guest
« Reply #2 on: August 31, 2007, 08:07:32 am »

Quote from: Bowie on August 31, 2007, 07:34:03 am
This might be a stupid question -- I'm sort of new to this -- but will anyone ever release an actual level editor for either SMB3
SMB3 Workshop

Quote
or SMW
Lunar Magic


Quote
one that allows you full custom control over editing maps, levels, "exits" (etc) from scratch, placing as many objects as desired in a level, etc?

The thing with "full custom control" is it only works if you have full custom control over the game engine.  Whatever limits are imposed by the engine, there's nothing the editor can do about it.  Minor asm tweaks are feasable... but often times what seem like silly limits that should be easy to get around actually require massive changes to be made to the engine.  Needless to say that's something that can't really be automated, and thus won't find its way in an editor.  (At least not usually -- but then again Lunar Magic does some pretty insane things)

Quote
Apart from the illegality of copying the actual copyrighted information into an editor program (rather than simply a copyright-uninfringing hacking tool), is it bordering impossible to create a standalone editor that churns out a rom at the end?

There isn't a ROM you can just "make".  ROMs are full games... full executables.  For a program to just "chrun out a ROM" it would have to program a game from scratch.  This is something that is quite a complicated task to do by hand let alone something that you can teach a program to do (the AI involved in something like that is in the realm of Sci-fi)
Bowie
Guest
« Reply #3 on: August 31, 2007, 08:29:33 am »

Thanks for the replies guys. I've fiddled around briefly with Lunar Magic before but SMB3 is my true love and I find hacking either Lunar or Workshop to be too time-consuming versus creativity exuded, which is obviously the main challenge for hackers to face (thus making one appreciate existing hacks and hackers immensely).

I'm just surprised that, like, you know, seven years after the Tomb Raider level editor was released (a mere four years after the original 3D game debuted), with which people have made unbelievably vast and complicated levels more or less from scratch, that Mario, an utter gaming icon into his third decade, still only sports a handful of hacking editors (not to put to shame the amazing work that their authors have put into them).

If the complications in the NES [emulator] is the problem, I'm not sure why a standalone engine hasn't also been created by now.

(Yes, I know it's very easy for me to sit here and "bitch" about hacking/editing limitations, but I just wanted to engage in a discussion, as I'm not familiar with the ins and outs of why time-consuming hacking is seemingly the only option around)
Disch
Guest
« Reply #4 on: August 31, 2007, 09:14:52 am »

Quote from: Bowie on August 31, 2007, 08:29:33 am
I'm just surprised that, like, you know, seven years after the Tomb Raider level editor was released (a mere four years after the original 3D game debuted), with which people have made unbelievably vast and complicated levels more or less from scratch, that Mario, an utter gaming icon into his third decade, still only sports a handful of hacking editors (not to put to shame the amazing work that their authors have put into them).

More modern gaming platforms operate very differently from retro cartridge systems.  PCs (and I'm pretty sure PSX, and possibly Saturn) use a filesystem.  That is... game data can be divided into different files.  You can easily have a different file for each level, for example.  And there is no limit on file size, or how many files you have.  The only limit is the size of the medium (IE:  a CD)

Retro cartridge systems like the NES have no such file structure.  The entire game is globbed into one big file that the system sees "at once" with no file parsing or loading.  (The upside to this is that there are no "now loading" screens on cartridge systems like there are on CD systems).  Having the data in one big clump like this means that everything is affected by the size and position of everything before it.  This means you cannot simply add more data for additional maps without shifting other data around (which would break all the pointers/references to all that data).  It's not as easy as just adding a new file.

Additionally, the ROM chips used are minuscule in comparison to CD systems.  NES PRG-ROM chips are typically only about 256 KB.  A CD can hold up to 700 MB.  To put that in perspective, you can have the code/data of 2800 NES games on a single CD.

Now there's no rule that says you can't simulate a file structure in an NES ROM.  Instead of data being stored in a big clump, you could theoretically have a file structure in place instead.  Though this isn't very practical from a game design standpoint.  I can't really explain why -- but if you're familiar with NES programming you might be able to understand.  The one thing I can mention is there would be a considerable speed hit.  A file system involves some overhead in computing time... and the NES (and even the SNES) are slooooow.  The NES's CPU is a whooping 1.79 MHz  (SNES isn't much better, it usually runs at 2.69 MHz, though it can get up to just under 3.58 MHz)

A game like Tomb Raider can get away with a very dynamic engine because it's for a much stronger and faster platform.  The general tradeoff is... the more dynamic something is, the more RAM it uses (plus it tends to slow down a little bit too).  NES/SNES have precious little RAM.  The NES only had 2 KB of on-board RAM.  Though most games had 10 KB by putting an extra 8 KB on the cartridge.  SNES had considerably more, but still puny in comparison to the dozens/hundreds of Megabytes PCs have (these days, even Gigabytes).  Plus PCs have a nice big fat harddrive that can be used for virtual RAM... meaning the memory you have at your disposal is practically limitless.

Quote
If the complications in the NES [emulator] is the problem, I'm not sure why a standalone engine hasn't also been created by now.

There have been some homebrew games made with custom engines (Sack of Flour, Heart of Gold comes to mind -- though if memory serves that didn't even work on an NES.  Plus it was pretty lame).  From my experience, though, they tend not to be as good as some of the commercial engines out there.  Plus, while your editing woes are due to the engine... the engine has to be built to work within the boundaries of the system.  Try as you might... there are some things you simply can't get the system to do.

Also note that none of this is due to emulation (I noticed your qualifier there).  Emulators just mimic the behavior of the system.  Anything the system can do, they can do (in fact -- emus tend to be a bit more lenient on what a game can get away with than the actual system -- though more modern emus are pretty strict).


A custom engine would have to be pretty specific in order to work.  Something as generic as a game maker for NES or something like that would just be too big and too slow.


And, I mean, let's face it.  Making a custom engine is making a game from scratch.  And why bother making an NES game from scratch when you can make that same game for the PC?  You have much more resources at your disposal, a more powerful platform, a wider audience, more tools, etc, etc.  I'm not saying the appeal to make an NES homebrew isn't there... but there's a reason there are so few of them.
Bowie
Guest
« Reply #5 on: August 31, 2007, 08:35:16 pm »

Wow thanks so much for that in-depth response!

When I suggested creating a standalone engine with which to use an editor, I actually meant for PC, not for NES. I've seen one or two Mario-esque sidescrolling platformers built using flash or javascript (or whatever). I just thought that, if someone was able to put in the effort required to simulate a Mario game (again, legality issues aside) on the PC, an editor for it would not be too much added effort, considering their levels had to be edited/designed from scratch to begin with.

Can't the graphical quality, functionality and/or the character control system of the NES (or, specifically, SMB3 for instance) be recreated pretty closely, as a PC-based system?

As for the legality, couldn't this separate PC engine use a rom, in some way, to seek particular images it contains (like the title screen logo, Mario's character graphics, and other "copyrighted" graphics), thereby making the PC program itself legal?

You'll have to excuse the noob-like conjecture I'm using here. They're genuine questions that I've never found answered on the net before.
creaothceann
Guest
« Reply #6 on: August 31, 2007, 09:07:35 pm »

Of course the engine can be copied, but there will probably always be differences. *summons Nightcrawler*


Quote from: Bowie on August 31, 2007, 08:35:16 pm
As for the legality, couldn't this separate PC engine use a rom, in some way, to seek particular images it contains (like the title screen logo, Mario's character graphics, and other "copyrighted" graphics), thereby making the PC program itself legal?

*points to his last post*
Disch
Guest
« Reply #7 on: August 31, 2007, 09:20:18 pm »

Quote from: Bowie on August 31, 2007, 08:35:16 pm
When I suggested creating a standalone engine with which to use an editor, I actually meant for PC, not for NES.

Doable.  Still a big job.  PC homebrews are much more common.

And yeah... unless the author is using a premade tool like a gamemaker or something -- then they'd probably have to have an editor written as well (or they use a generic map editor -- I never quite figured out how those work)

Quote
Can't the graphical quality, functionality and/or the character control system of the NES (or, specifically, SMB3 for instance) be recreated pretty closely, as a PC-based system?

You mean something like Zelda Classic, but for SMB3?  Absolutely.

A friend of mine is actually working on a Lolo clone that's that same idea.  He actually is disassembling the ROM and examing the code for enemy AIs and things so that the game will play identically to the original.

Quote
As for the legality, couldn't this separate PC engine use a rom, in some way, to seek particular images it contains (like the title screen logo, Mario's character graphics, and other "copyrighted" graphics), thereby making the PC program itself legal?

Meh.  I don't really think the legal issues are anything to worry about unless you plan on selling it... and even then, by the very nature of your program you're on shakey ground.

Personally... I'm of the opinion that if you're going to go through all the work to make a game, you should just make a fresh one.  Recreation projects don't really make a whole lot of sense to me... especially when the original is readily available to play.

I kind of doubt externally loading the ROM really is any legal protection at all anyway.  It's kind of like the IPS vs. full ROM issue.  Everyone says IPS patches are the legal loophole... but really I think that's a crock.  I don't have a law degree so I couldn't say for sure... but I really doubt copyright laws are so easily bypassed.
Bowie
Guest
« Reply #8 on: August 31, 2007, 09:44:29 pm »

LOL sorry @ creaothceann, when I first read your initial reply I wasn't sure what you meant, but now that I figured it out myself, I forgot you had written the same thing :p

Quote
You mean something like Zelda Classic, but for SMB3?  Absolutely.

That appears to be EXACTLY what I mean (although I couldn't determine whether that uses a ROM to extract data from)! Awesome.

Wouldn't the point of the "recreation project," as you say, be to create new levels, to start a community of Mario or Zelda fans who want to share their own ideas for levels? I have so many ideas for levels and level maps -- as I'm sure most of us do -- but to face the task of contriving those ideas to fit into a set framework, or the daunting task of learning how to push the boundaries of a hacking editor even slightly, seems a bit unfortunate as, like the Ideas thread shows, so much creativity and awesome custom-made games might be -- heck, probably is -- going to waste (IMO).
Bowie
Guest
« Reply #9 on: August 31, 2007, 10:00:39 pm »

I should add that the problem with Lunar Magic, that I've personally found, is that people's creativity seems loosely hinged on what colours or graphics they choose (or import from other games).

This may be because I'm a traditionalist who would want to design all new levels that very, very highly (if not completely) resemble the graphical and operational scheme of the original, but I'm yet to play* a custom hack that relies TOTALLY on professional-quality level design** for player interest.

[**That being, not having clumps of unrelated objects all together, or other aesthetically displeasing designs with the mere goal of either impressing the player with their importing/hacking abilities, challenging them to ridiculous proportions, or a combination of these, as if trying to show off too much too soon; but rather, a fluid, logically developed new set of levels, starting in world 1 that reveals only a small number of elements, and is fairly easy and enjoyable, and becomes progressively difficult and more varied in later worlds.]

[*Some upcoming Mario hacks seem to be approaching this ideal, though.]

SMB3 is a perfect example of this because of the gradual difficulty incline, and only in World 8 do all of one's skills, and all of the different types of levels, unite in a final difficult challenge.

With a level editor, one would be more free to plan out a full game (or just a set of levels) that has an overarching logical structure and enjoyable player progression, yet remains largely faithful to the original (rather than deliberately "unusual," for creativity).

Does this make sense?
Nightcrawler
Guest
« Reply #10 on: September 01, 2007, 10:06:56 am »

Quote from: creaothceann on August 31, 2007, 09:07:35 pm
Of course the engine can be copied, but there will probably always be differences. *summons Nightcrawler*

Here I am.  Smiley


Bowie, there's nothing wrong with your theory. It's just it's simply not that easy to recreate the engine for the PC. Go ahead and try and you'll quickly see the difficulty in doing so. I'm not saying it can't be done. It can and people ahve been successful at such ventures, but it isn't easy at all. I have had personal experience with such an attempt.

As an exercise in teaching myself how to do platform PC game programming, I set out to do a Mario clone with physics based on Super Mario All Stars. SMB3 specifically I think. I can't remember. It wasn't any problem for me to program the game engine given some time to do so. The difficulty came with matching the game play! Sure, I had my physics engine in place. However, getting it to behave and match the fine tuned gameplay that the real Super Mario had was a real challenge.

Honestly, it gave me new found respect for what went into designing those games. It's one thing to program a game or game engine. It's another to tweak it just right for superb game play.

This process can be made easier if you do as Disch suggested and disassemble the original game code to try and get exact physics matches. But that can be pretty time consuming also and not so easy.

So, bottom line. Can it be done? Yes. Absolutely. Is it easy? No. It's for that reason that it's not surprising to me that these types of projects aren't common. It takes a good deal of effort and may or may not be worth it to the person doing it depending on how they feel about recreating games that already exist.
Bowie
Guest
« Reply #11 on: September 01, 2007, 05:54:20 pm »

Thanks muchly for the insight, Nightcrawler! Wink (By the way, I hope I'm not rustling any feathers by discussing this. I DO appreciate all the hard work that has gone into hacking utilities and subsequent excellent hacks... and some upcoming gems!)

Has anyone, then, considered taking Mario a step further? In truth, apart from the Lost Levels (Japanese SMB2), each Mario sidescroller has had a unique engine.

What if a team of a couple of really good programmers/designers tried to come up with an all new Super Mario engine (whether for PC, NES or SNES; whichever truly is easiest I suppose), with a two-fold goal: one, providing a full-featured level editor for the game; and two, starting up some competition where members of the hacking community can create, submit and vote on their favourite custom levels, the best of which making it into an all-new game.

Like, Super Mario Universe, or whatever, something that could, every year or so, spawn an all-new community-created feature-length sequel.

(That name actually gives me an idea for a 2D version of Super Mario Galaxy! :p but I'll leave that one alone, shall I?)

The thing is, I have all these ideas, I have the patience, I have the time, I have the organisational skills, and would be happy to organise something like this over the span of even several years, even pay people to help code, but coding a game is just... beyond me.
creaothceann
Guest
« Reply #12 on: September 01, 2007, 06:32:24 pm »

If you ever get things going... do a hierarchical command structure in your group. (Everybody can submit ideas and info, but only very few (competent) people decide how to progress.


Quote from: Bowie on September 01, 2007, 05:54:20 pm
I have the time

If you want to make God laugh, tell him you have plans.
HyperHacker
Guest
« Reply #13 on: September 02, 2007, 07:50:17 pm »

Here's something to consider, though: you can make a PC clone of SMB3 with a level editor, and hope Nintendo doesn't get angry. Or, you can do the same except with new levels, different characters and graphics, etc that you made up. It'd be just like SMB3, but it wouldn't be using Nintendo's copyrighted resources. (For examples, see the DS homebrew scene. Tongue)

BTW, about your idea of an editor that just "churns out a ROM", you could do something along those lines if you had a complete, labelled disassembly of the ROM. That would give you freedoms similar to those you get by having a filesystem, since you wouldn't have to worry about pointers and what's after your level data; it would all be put into place and pointers calculated when the ROM was assembled. You'd still have some restrictions, though, and completely disassembling a ROM is a big job; the only games I know of it being done to are Metroid, Super Mario Bros, and Super Mario World (in progress).
Darkdata
Guest
« Reply #14 on: September 02, 2007, 07:59:23 pm »

Quote from: HyperHacker on September 02, 2007, 07:50:17 pm
Here's something to consider, though: you can make a PC clone of SMB3 with a level editor, and hope Nintendo doesn't get angry. Or, you can do the same except with new levels, different characters and graphics, etc that you made up. It'd be just like SMB3, but it wouldn't be using Nintendo's copyrighted resources. (For examples, see the DS homebrew scene. Tongue)

BTW, about your idea of an editor that just "churns out a ROM", you could do something along those lines if you had a complete, labelled disassembly of the ROM. That would give you freedoms similar to those you get by having a filesystem, since you wouldn't have to worry about pointers and what's after your level data; it would all be put into place and pointers calculated when the ROM was assembled. You'd still have some restrictions, though, and completely disassembling a ROM is a big job; the only games I know of it being done to are Metroid, Super Mario Bros, and Super Mario World (in progress).

Rockman is disassembled too... A certain TAS sitemaster seems to work on it.
Pages: [1] 2  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC