06-10-2019, 01:43 AM
Hello, I haven't posted anything here for a long time beacuse I've been so busy just working on the editor. But I'm gonna be crazy busy with other stuff over the next few weeks so I wanted to share a progress update of where the current version is at (yes I did scrap the old version and start again, again).
The most important aspects of this version are 1. the fact that I finally spent some time learning how to read these files properly instead of just searching through them for byte arrays that look like they might represent coordinates, and 2. AdventureT's model converter which means that not everything has to look like an anonymous cube anymore. The combination of those two things means that the editor now looks like this:
![[Image: FPvUxnp.jpg]](https://i.imgur.com/FPvUxnp.jpg)
Things look a little bit messy because I'm learning more about how the files work at the same time as I'm working on the editor, which means I'm constantly rewriting everything and the code used to texture the scenary is completely different to the code used to texture the enemies, because I did the enemies later and haven't gotten around to copying that code into the part of the editor that deals with the scenary yet... it's a work in progress. And also I just don't think the thing I'm using to import the models is very good and I want to find something better.
I am planning to release a video demonstrating the new features as soon as this thing is in a fit state to be shown off properly so I'll hold off on posting a ton of screenshots for now (you can find examples of most of this stuff on my Twitter) but here's a list of some of those features off the top of my head:
As I said I'm gonna be very busy with other stuff for the next few weeks so I'm not gonna be making as much progress as I have recently, and I'm not going to make any kind of predictions about when this thing might finally be ready to release or even when it'll be ready to show properly. I just wanted to show that I'm still going with this project and I'm still excited about how it's turning out. I'll make a video when I can but for now, I need a little break!
The most important aspects of this version are 1. the fact that I finally spent some time learning how to read these files properly instead of just searching through them for byte arrays that look like they might represent coordinates, and 2. AdventureT's model converter which means that not everything has to look like an anonymous cube anymore. The combination of those two things means that the editor now looks like this:
![[Image: FPvUxnp.jpg]](https://i.imgur.com/FPvUxnp.jpg)
Things look a little bit messy because I'm learning more about how the files work at the same time as I'm working on the editor, which means I'm constantly rewriting everything and the code used to texture the scenary is completely different to the code used to texture the enemies, because I did the enemies later and haven't gotten around to copying that code into the part of the editor that deals with the scenary yet... it's a work in progress. And also I just don't think the thing I'm using to import the models is very good and I want to find something better.
I am planning to release a video demonstrating the new features as soon as this thing is in a fit state to be shown off properly so I'll hold off on posting a ton of screenshots for now (you can find examples of most of this stuff on my Twitter) but here's a list of some of those features off the top of my head:
- Anything that's visible in the editor can be repositioned anywhere, objects that have scale and rotation (which is almost all sceneary objects and some other stuff too) can also be rotated and scaled however you want, and individual models can be swapped without changing every occurance of that model.
- Crate types are now detected automatically so you don't have to do some crazy bullshit to hack into the game while it's running and overlay the editor on it so you can figure out what each crate is.
- Crates, enemies, collectibles, moving platforms etc (basically anything that's not just static scenary and can be interacted with in-game) can be swapped around using two different methods:
- You can change each individual object to use the properties of another object that exists in the same map file - eg changing one of the Aku Aku crates in N. Sanity Beach into a bounce crate without affecting the other two.
- You can change which entity, from any map file that's loaded in the editor, will actually be spawned by each set of properties - so you can change any crate in N. Sanity Beach into a crab, or if you're working with a level like The Grate Gate where there are TNTs in the bonus round but not in the main level, you can change any crate in the main level to a TNT without having to swap any coordinates around. There's not really a simple way to explain how much crazy shit you can do with this but it's fun!
- You can change each individual object to use the properties of another object that exists in the same map file - eg changing one of the Aku Aku crates in N. Sanity Beach into a bounce crate without affecting the other two.
- The properties of crates can be modified, including:
- Which type of crate it will become during a time trial (incidentally this seems to be the reason why nitro crates are in the files for Crash 1 levels - they're always an option for time trial swapping).
- Whether or not it is included in the level's crate count.
- Whether or not it will fall when crates below it are broken.
- For outline crates, what kind of entity will be spawned when they are activated.
- For switch crates, which outline crates will be activated (this also lets you select any outline crate from any file loaded into the editor, including crates which didn't used to be outline crates but you've decided they should be).
- For slot machine crates, how many slots they should have and which entity each one should be (again, from any file, and they don't have to be crates).
- Which type of crate it will become during a time trial (incidentally this seems to be the reason why nitro crates are in the files for Crash 1 levels - they're always an option for time trial swapping).
- Player spawn location can be moved wherever you want (represented by the Crash model in the picture up top).
- Level combinations are supported and work much better than using the shitty level combiner tool I made (and there's no limit either). When opening a level you can either just open one, or select multiple pak files and you will be asked which one to use as the base level and which additional files you want to include from the other levels you selected. None of the original levels will be affected - for example if you select N. Sanity Beach, Jungle Rollers and The Great Gate, set NSB as the base level and choose to also include the crates files from JR and TGG, you can move and swap around the crates from those extra files however you want and those changes will be saved in your custom level, but when you play Jungle Rollers or The Great Gate everything will be normal. Trying to figure out a good way to do this was the thing that tripped me up and halted my progress with the last version of the editor and I'm really happy with they way I'm doing it here.
- You can change the level names and descriptions that appear in-game for your level, change what kind of character restrictions there are (eg allowing either Crash or Coco in a level normally locked to Crash, or only allowing Coco in a level normally open to either etc) and choose whether to use Crash 1, Crash 2 or Crash 3 mode for the level. Any Crash 1 or 2 levels set to use Crash 3 mode get automatically patched to let the player spawn properly.
- I'm still using the same sort of file system I mentioned before - you can export your custom level as a .ard file which can then be patched to the base level. These files only contain the stuff that's been modified so for simple levels they average about 50kb. The patches can be applied using the editor, or with the NST Level Selector which I've updated to add support for custom levels and will include with the editor and as a separate download (so if you only want to play custom levels you don't need the editor itself). When starting a new custom level, any patches currently applied to the pak files you select will be ignored and the editor will read the default unmodified files so you don't need to worry about keeping backups of the originals anywhere or resetting them to default before making a level (I will include an option to load custom levels into the editor from .ard format but that will work a bit differently). You can also save the custom level you're working on in different kind of format that can be opened in the editor as a kind of project file.
- Other options for exporting levels: zip files that just contain all the files you've modified, if you want to do your own thing instead of using my level patching system, and exporting the level as a .unitypackage file (since I'm still using unity for the editor, sort of works and might be useful for anyone wanting to port the NST or create a fangame or something)
- There is limited CTR: Nitro Fueled support, mostly as a by-product of that game being the same engine as the N. Sane Trilogy and therefore the level files being in the same format, so you can open tracks and move stuff around the same way you can with the NST, but since CTR isn't available on PC (yet?) and the modding community for that game seems to currently comprise of, well, me, I'm not concentrating too much on it at the moment. The PC version of the N. Sane Trilogy is my priority.
- Everything works much faster now - the very first version of the level editor took 10-20 minutes to load a list of coordinates from a single file, subsequent revisions gradually decreased that and the latest version now takes about an average of 30 seconds to display a view like I showed above, from opening the level pak(s), even previously unmodified paks because I'm skipping the "normalisation" step I was doing before that always added like an extra minute. If you're interested in exactly how long the process takes then I've uploaded the log file created by the editor when I opened N. Sanity Beach to created the screenshot I just posted: log.txt, some of the file names are a bit weird because it's all a work in progress but the times are accurate and I make that 27 seconds.
- Some other stuff that isn't fully implemented yet, but is either something I've started working on or already have the code for from previous versions of the editor and am planning to rewrite for the new version:
- Custom textures
- Custom SFX and music
- Camera editing
- Lighting editing
- Stuff like modifying the paths of enemies, platforms, boulders etc that chase you
- A ton of other shit that I can't remember right now because I've had a few days off working on this
- Custom textures
As I said I'm gonna be very busy with other stuff for the next few weeks so I'm not gonna be making as much progress as I have recently, and I'm not going to make any kind of predictions about when this thing might finally be ready to release or even when it'll be ready to show properly. I just wanted to show that I'm still going with this project and I'm still excited about how it's turning out. I'll make a video when I can but for now, I need a little break!