Language…
4 users online: Alex No, CONLUSH666,  Tahixham, Torchkas - Guests: 269 - Bots: 342
Users: 64,795 (2,377 active)
Latest user: mathew

SMW level editor(early progress video added)

Update 5-29-2010:
I have made a small video showing progress. Watch it with annotation, it explains everything.
Without further delay here is Preview 1

The next step is to start implementing the loading of SMW graphics. No exact ETA on this, but I will keep you guys up to date on the progress of this. It all depends on my work load.


Original Post:
_____________________________________
Recently I have begun work on a new SMW level editor. For lack of a catchy name, that is all I am going to call it for now. This project will be made open source as soon as I start to get more functional code in place(which is a few weeks away). But before I get to far in development, I would like to get opinions on what features I am planning. This list is far from complete but if you think of something not on the list suggest it, I could have forgotten to mention it or overlooked it.

I would also like to note, I am far better at c++ than ASM and I will need quite a bit of help in that area.

So here is the far from complete list:




Technical features
*C++ will be the language of choice, In addition I will be using the Qt library for cross platform functionality.

*All hacks by the editor will be stored in a folder as ASM files. This will allow for easy updating and manual tweaking. This will also help document changes the editor makes to a ROM.

*A new compiler built from the ground up. This compiler will be based on XKAS, with a few new features added. Most added features will be specifically designed around SMW. More on this later.

*An update checker, simple but handy.





Generic features
*ASM editor, a simple text editor with highlighting and address lookups.

*IPS generation

*Auto backups every few saves.(customizable)

*ROM expander

*Hex editor that natively supports SNES addresses.

*A patch management system, allowing for updating of inserted patches.





Level features
*This is an area where I want opinions the most, otherwise I will implement it very similarly to LM.

*Hotkeys for nearly everything for example: ctrl-shift-# = sprite, alt-shift-# = block(number decided on release of alt-shift). Feel free to suggest another system. I will also be implementing a hotkey editor.

*Move message box text to the level editor instead of the overworld editor. This seems to make more sense to me.

*Ability to add level specific ASM. ASM code written from the level editor will only effect the current level.

*Undo button.

*Possibly level specific physics. Would be interesting at least.

*Rotation of blocks by 90 degrees, not sure why this is not already in LM...





Overworld features
*I know very little on the overworld, this will be played by ear.

*Other than that I will keep it much like the LM OW editor.





Included hacks
NOTE: I will be requesting permission for each requested patch/hack that I have not written myself.

NOTE 2: Some patches will be inserted only after it is practical. Such as levelASM, it will not be inserted if there is no need by the hacker.

*generic patches and fixes(like fade fix)

*Ersanio's LevelASM

*Overworld ASM (Kil / Chdata)

*Custom Mario Palettes

*Green Berry Eaten

*Anything else that comes to mind this list will not be final. Alse, due to the way hacks are handled adding more is simple.





The compiler
*DATE command, this will be used for tracking the last update to the patch, MMDD = byte 1 YYYY = byte 2 format.

*RATS just simplified way to use RATS tags. It will judge length based on how long to the next ORG, or until the end of the file.

*Functions, this is a feature that I may or may not include. They would work like labels that can take up to 3 arguments, and preserve values as needed.

*Warning system, so that when patching to a segment with a RATS tag it will ask if an overwrite is OK.

*predefined labels and definitions, like !powerup or similar. The database would be a easy to edit XML file. If redefined in a patch it will generate an error.







There is a lot more I would like to plan that would make this into a full blown IDE for SMW, but this is more than an adequate start. This project will be vastly a community driven project, and will need teamwork on many levels. C++ programmers, will be the most helpful to this project, as will ASM programmers. If you use C#(yuck...) the news is semi good for you, C++ using Qt should not be to complicated to pick up, if you wanted to try :).

I hope to have a limited edition done sometime this summer so that we can begin with the major section of work. The biggest part will be the compiler as it is the backend of this entire project. After that we can start slowly coding in editors.

To start helping now just post any and all snippets you would fine useful here. If it is a longer snippet post it to http://p4plus2-smw.pastebin.com/.


Please post all feedback you have!! I need opinions before I do too much, it would be bad to get an entire feature done to find out it need completely redone.

(Sorry if I made any typos/grammar errors I am typing this at 1AM haha. Also, I forgot about a lot of features I am sure I will add more tomorrow after school I need to go to bed now...)
Not putting you down or anything, I don't know your ability as a programmer but at this point I'm not really holding out hope for anything. I've lost count of how many times this announcement has been made. On multiple forums and multiple IRC channels. None of them have amounted to anything comparable to LM itself. Ofcourse I hope to be proved wrong everytime I say that, but at this point I don't have any reason to think otherwise.

That being said, my biggest suggestion is to just start coding the level/OW editing features (preferably the former) and THEN consider the addition features like you mention. I would say 70%-80% of attempts of OSS LM replacements don't get past that initial stage. It's nice to plan stuff out but realise that it's been announced a million times before and it would garner alot more interest if you showed some concrete progress of editing with screenshots or something. That's true of any editor project, moreso a SMW editor because none have succeeded despite the amount of attempts. I can work with in C#/C++/ASM (need to brush up on X++) and would gladly contribute, but I'd like to see some progress before I commit to anything.

Maybe some newer guys who haven't seen the "SMW level editor cycle" in action over and over again might be excited but I'll reserve that until I see something more.

Good luck with this.

Any chance you're "brackets guy" on IRC? If not, disregard that.

Like smkdan said, until you have some real progress to show, the best you'll get is cautious enthusiasm. An open source level editor would be great, but yeah.
Nice set of features. If you want a name, why not call it "New Super Mario World" or "Star Master". Just a couple of ideas...
SMWC's official dentist since 2011.

YouTube - Threads - Bluesky
Originally posted by smkdan
Not putting you down or anything, I don't know your ability as a programmer but at this point I'm not really holding out hope for anything. I've lost count of how many times this announcement has been made. On multiple forums and multiple IRC channels. None of them have amounted to anything comparable to LM itself. Ofcourse I hope to be proved wrong everytime I say that, but at this point I don't have any reason to think otherwise.

That being said, my biggest suggestion is to just start coding the level/OW editing features (preferably the former) and THEN consider the addition features like you mention. I would say 70%-80% of attempts of OSS LM replacements don't get past that initial stage. It's nice to plan stuff out but realise that it's been announced a million times before and it would garner alot more interest if you showed some concrete progress of editing with screenshots or something. That's true of any editor project, moreso a SMW editor because none have succeeded despite the amount of attempts. I can work with in C#/C++/ASM (need to brush up on X++) and would gladly contribute, but I'd like to see some progress before I commit to anything.

Maybe some newer guys who haven't seen the "SMW level editor cycle" in action over and over again might be excited but I'll reserve that until I see something more.

Good luck with this.


I figured it has been attempted many times, it is after all a big task. Right now I am drawing up a layout of how I want the code to look. As for level editing itself, I am going to first build a level reader, then move on into adding features for editing.

I hope to have a screenshot of progress in a week or two, just depends on what school allows me to do.

Quote

Any chance you're "brackets guy" on IRC? If not, disregard that.



Nope, I am p4plus2 pretty much everywhere.
Will it be open source? :3

Also I recommend if you do this to make different programs for the different components and have them tied together with a common interface or resource manager.

I would FURTHER recommend, though this is more of a personal preference, to have everything kept as files in a general project with scripts that compile things into a fresh rom in the style of an actual IDE such as visual C++. This is how all my asm/sprites/blocks/etc. is set up for my hack BTW :P

In fact, using a combination of external commands macros and new preprocessor commands, you could probably do all of the new asm stuff without using a new assembler. I read a tip in a programing book once that said "Good programmers are lazy". :P
Your layout has been removed.
It would be nice to have an editor's creator that is also an active and more co-operative member! I like LM but it's not very flexible.
You have good ideas.
Originally posted by KilloZapit
Will it be open source? :3

yes :).


Quote

Also I recommend if you do this to make different programs for the different components and have them tied together with a common interface or resource manager.


I was planning on setting it up so that each component would be isolated, but still part of the same program. I am still drawing through a few angles I may choose on this.

Quote

I would FURTHER recommend, though this is more of a personal preference, to have everything kept as files in a general project with scripts that compile things into a fresh rom in the style of an actual IDE such as visual C++. This is how all my asm/sprites/blocks/etc. is set up for my hack BTW :P


If I read that right, then that is what I am doing. There is going to be a hacks folder, this folder will contain all the hacks/patches inserted into a new ROM. There will be a folder for user and a folder for the program to help with organization.

Quote

In fact, using a combination of external commands macros and new preprocessor commands, you could probably do all of the new asm stuff without using a new assembler. I read a tip in a programing book once that said "Good programmers are lazy". :P


That quote is true, I do believe though that a SMW specific compiler could be handy. Also, using xkas makes portability slightly more complicated, making it not ideal for succeeding in my cross platform goal. To further that xkas code needs a good deal of clean up.

I do however believe that this can probably be made a low priority.
Just tossing a small status update out there since this thread is mildly inactive... Simply put I am working on a way to place objects, sprites, and display the background. For now they are not real SMW objects, but once the system works I will slowly start reading in real ROM data to display. More or less it is a graphics scene with layers that contain tiles.

I should probably have a screenshot of the pre-alpha by next week.


EDIT: Typo.
Still no screenshots? Eh, I have to say, I'm with smkdan on this one. You really haven't even showed us that you are capable of doing this, not to put you down or anything, but I really won't have any interest in this until you actually show us something.

Sure, anyone can talk up a level editor, but I've saw thousands of people talk up this big bunch of stuff about how they're going to revolutionize the world with some great level editor, but they didn't really follow through with it.

A screenshot, a piece of code, anything really.

Give Mario some love?~
Originally posted by zKiP
Still no screenshots? Eh, I have to say, I'm with smkdan on this one. You really haven't even showed us that you are capable of doing this, not to put you down or anything, but I really won't have any interest in this until you actually show us something.

Sure, anyone can talk up a level editor, but I've saw thousands of people talk up this big bunch of stuff about how they're going to revolutionize the world with some great level editor, but they didn't really follow through with it.

A screenshot, a piece of code, anything really.


All in good time, I do have a lot of school which does slow me down. I would not still be posting if I had made no progress would I?

If you want to speed things up try constructive thoughts that contribute to the layout of the level editor itself.
Originally posted by p4plus2
If you want to speed things up try constructive thoughts that contribute to the layout of the level editor itself.

It's kind of hard to give thoughts about the layout when we haven't even seen a rough sketch of it.
p4plus2 I would like to say I am looking forward to seeing this but really you have given us nothing but words. Words are just that something written down or said.

I must say you could show us more progress by giving us a sample picture of what you have or even part of the doe you are using so it can be talked about.

I really don't want to put you down or anything but I just don't see this happening I just see a big talker with nothing to show for it right now.
Originally posted by ninja boy
p4plus2 I would like to say I am looking forward to seeing this but really you have given us nothing but words. Words are just that something written down or said.

I must say you could show us more progress by giving us a sample picture of what you have or even part of the doe you are using so it can be talked about.

I really don't want to put you down or anything but I just don't see this happening I just see a big talker with nothing to show for it right now.



Like I said, pictures are coming soon(possibly a video...). The pictures will not use SMW graphics yet, that is for the future. I said pictures would be next week, but I may have them Saturday or Sunday at this rate.

I have one small glitch left while placing tiles, then I can make the video. :)


I am very determined to get this to a stage where other people are willing to work on it. Bare in mind:

Originally posted by http://fusoya.eludevisibility.org/lm/

I started out in February 2000 ... This was done sometime in mid-summer.


I have been working about a week, also FuSoYa used a prototype level editor he already made which I must do from scratch.
Well reading what Fusoya put you might want to check out All.log which is disassembly of SMW and might cut down on figuring out the level data you'll need.
Originally posted by ninja boy
Well reading what Fusoya put you might want to check out All.log which is disassembly of SMW and might cut down on figuring out the level data you'll need.


Umm, the level data format for SMW has already been documented.

Just sayin'

Give Mario some love?~
I never check the wiki though (I never know how to find anything on there)
Please do the Overworld Paint-like !
With Lines, Circles, Rectangles, etc...

You would make it better than Lunar Magic's OW editor.
My Website on Neocities
Originally posted by ninja boy
Well reading what Fusoya put you might want to check out All.log which is disassembly of SMW and might cut down on figuring out the level data you'll need.


Thanks for the suggestion, but I use all.log++ which has been commented a bit more(thanks SMWDisC Team!!). I also I am using the wiki, ROM map, and a few other random documents I have collected.

@The small text in your second post...
Try using Categories page I find it useful for data hunting.


Originally posted by LuigiBlood

Please do the Overworld Paint-like !
With Lines, Circles, Rectangles, etc...

You would make it better than Lunar Magic's OW editor.


Maybe I am understanding what you are saying wrong, but do you mean as in being able to draw an overworld using features similar to mspaint? If so I don't believe that would be the most practical idea, but I suppose *maybe* far down the rode some form of tile editor could be feasible. Though that may be pushing too bloated...
Overworld ASM v1.1

I highly suggest not using that, it causes problems on the OW.

Instead use...

[Xkas] Overworld ASM
by: Kil / Chdata
I own a community of TF2 servers!

ASMT - A new revolutionary ASM system, aka 65c816 ASseMbly Thing
SMWCP - SMW Central Presents a Product- tion long name

frog

http://esolangs.org/wiki/MarioLANG