This is obviously super early. Still took three weeks of work at least to get to this point, however.
WHAT WORKS:
- Dynamic window sizing and GUI positioning
- Placing objects. (Right click to place more than one.)
- Moving objects (Cannot be holding an object to move another one, FYI)
- Snapping to a grid works
- Grid size can be modified or disabled from the "Preferences" pull-down menu.
- Disabling sounds and maximizing the editor window on boot up are successfully implemented
- Saving and loading preferences works
- Deleting objects (Obvious)
- Layering objects (Obvious)
- Saving a level
- Loading a level
- Warning the user about quitting without saving
- Opening the "Publish Level" interface
- Level name randomizer can be used
- Interface to select custom music can be used
- Selecting a level's time of day works
WHAT DOESN'T WORK:
- There's only one object to place; the object pallete is blank
- The "Publish Level" interface doesn't hook up to anything
- All of the checkboxes, Verify, and Save don't do anything
- There's no way to actually load levels in to Sonic Worlds (which isn't even included yet)
WHAT NEEDS TO BE DONE:
- Shift-clicking in the Layer Editor needs move that object to either the very top layer or the very bottom layer.
- Object Palette needs stuff in it
- Rather than hard-code it, it should be dynamic to make future updates easier.
- There should also be a custom water-level object. This will require a bit of fiddling to display in the editor in a way that's clean looking without being laggy or ugly
- It needs to work like Mario Paint where clicking "next" jumps ahead to the next ten objects instead of moving one at a time. - Need to find a way to push level data to the "Publish Level" interface.
- The "Verify" button needs to further push out to Sonic Worlds, so the level can be verified as completable and generate high score/time trial data.
- CTF supports data sharing normally, but it's a feature of the super-expensive Developer version, so I'll probably just use a lot of temporary files. Not the safest option, but...
- Once verified, clicking "Save" needs to zip everything together (high score config file, custom music file, level file) and maybe encrypt the saved file to prevent post-release tampering. - Sonic Worlds actually needs to be able to load this level data stuff. I'm still not 100% sure this is possible.
- The plan to make this way more simple is to just use active objects for collision masking rather than trying to cut up level tiles. This could be a bad idea. We'll find out.