Thread Rating:
  • 6 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
N Sane Trilogy level editor prototype
#1

I've started work on trying to make some kind of level editor for the NST, I've managed to get it to a point where it can change the position of crates in any level and save the modified positions to a custom IGZ file while can be imported into a level archive, but it's still very early days and needs a lot more work (and I just had another major hard drive corruption which will slow me down a bit) but it does actually work as intended, so I made a video showing what I've got so far. Will update this thread as I continue to make progress with it.
LGRZ, KlitLika, solidpoke412, Ewan's Elephant Games (EEG), BrendonFosters, Flaflo like this post
Reply
#2
Will you release the source?
KlitLika likes this post
OwO
what's this?
Reply
#3
(03-09-2018, 03:54 PM)Flaflo Wrote: Will you release the source?

At the moment it's just a bat file like the texture converter so you can just open and edit the source directly, not sure yet if I'm gonna attempt to rewrite it as a proper GUI but if I do I can still share the code if you want.

Someone on reddit asked if it was possible to detect Crash's coordinates and move a crate to that position, I'm not totally sure this will work every time but I managed to get somewhere with it, demonstration here: https://twitter.com/COGMONKEY/status/103...6329847810
Flaflo, Neo_Kesha, KlitLika, solidpoke412 like this post
Reply
#4
This will be a three part post. Part 1 - a progress update on how the editor has changed since I last posted in this thread. Part 2 - why the progress stopped progressing several months ago. Part 3 - a request for help in deciding what my next move should be.


Part 1

After the first version which I was using in the above video, I expanded the functionality of the editor to allow you to move objects other than crates around (they all use the same coordinate system) and you can see some demonstrations in this livestream from September: https://www.youtube.com/watch?v=2WwCe_DIb0g. This version of the editor required the game to be running and could be used to modify levels while playing them, which made it easy to see what I was doing but it involved a lot of trial and error when working out what each object detected by the editor actually was, and updating object positions was pretty slow - it wasn’t ideal and clearly not what one would typically imagine a “level editor” to be.

So I decided to try putting together a standalone program that could show all the positions of objects in the level files and allow you to move them around in a 3D space and save the modified positions to a file compatible with the game. Here’s a kind of hybrid between the first version and the most recent version, once I had started experimenting with using Unity:

I built a GUI around that Unity concept and I had my standalone program. Because this editor just reads object coordinates from the level files and marks each of their positions with a model of a crate, rather than actually displaying the level in full the way it appears in game, I started extracting level geometry from my PS1 copy of Crash 1 using CrashEdit and using it within the editor to help with visualising where objects shown in the editor are actually located in the level. This video is a demonstration of that, in this case working with the Great Gate:

As I mentioned in that video, I wasn’t too sure about including the PS1 level models with the editor for a few reasons (slow and difficult process of rescaling and repositioning dozens of individual level chunks into something that actually resembles the original level layout, and concerns about copyright etc after Activision went after people who made Spyro fan games using assets ripped from the PS1 games) and I wanted to try adding the option to open a level PAK archive with the editor instead of an individual IGZ file, and let it automatically read coordinates from all compatible files in the archive, and display them all in the editor at once, each on its own photoshop-style “layer” which could be enabled or disabled easily, and all colour coded with their representative crates having outlines that matched the colour shown in the layer list. This is the most up to date screenshot I have, showing the editor after I had implemented the layer list but before I had added the crate outlines:
[Image: R11WETP.png]


Part 2

Pretty much as soon as I was finished getting the outlines working, the editor just kinda broke. Every time I launched it it crashed, and I couldn’t determine what the problem was. Because of my vast ineptitude with coding (of which I had no experience before I got into NST modding; everything I’ve learned has come from stackexchange and guesswork) and the complications that arise from the editor technically being two separate applications communicating with each other and being displayed on top of each other (the window with all the buttons and menus and the editor view itself which is actually a Unity game) it’s never been that easy to identify what the problem is when something goes wrong. I had managed to fix every disaster that had come before this one but this happened to coincide with my unexpected success in recovering hundreds of gigabytes of data that I thought I’d lost forever a few months earlier (it may be ironic that the reason for the data corruption in the first place was because I tried to increase the size of my Windows partition to make room for Visual Studio so I could start working on proper NST modding programs and I fucked up) so I got distracted by going through all those old files and working on stuff I hadn’t been able to access for a while. I also did a clean install of Windows for possibly the fiftieth time that month as I wiped my entire computer completely so I could start fresh and have everything partitioned properly, and most of the files involved with the editor were still sitting on external HDDs waiting to be transferred back, and most of the programs necessary for the development didn’t get reinstalled for a while. After that, plans I was making for my future (like, my life, not my level editor) required some serious attention, and then I was away from home for several weeks, and I just never got chance to sit down and look at the editor properly with all that going on. So as of right now, the editor is still broken, but I should be able to fix it somehow and if not I have a lot of old backups that I can turn to if I need to.


Part 3

Before I do get back into working on this project, I want to actually come up with a plan for it and not just make it up as I go along like I’ve been doing so far. A lot of people have shown a lot of interest in this editor and I don’t want to let them down so I’m asking anyone reading this to help me decide what direction I should take it in. Should I go back to trying to use the PS1 geometry and hope nobody sues me (a very very very very slow process for me, that may not even work for Crash 2 and 3, but it looks nice)? Should I keep going with the PAK import option so all compatible files can be modified at once, with this also being an alternative way to give a better idea of what the level looks like (the PAK import will be a very very very very slow process but will make editing several aspects of a level, or levels with extra crates, much easier)? Should I stop trying to overcomplicate everything and release a simpler version that just shows one IGZ file at a time, and tell people to play the game alongside the editor if they want some context for the object positions, like I did with that first Unity video? I just want to do whatever I can to help the people who are waiting for this thing to be released get working on whatever it is they want to use it for! So any suggestions are much appreciated. Thanks for your patience <3
solidpoke412, Neo_Kesha, KlitLika, Ewan's Elephant Games (EEG) like this post
Reply
#5
(12-01-2019, 09:49 PM)Guyus The Raptor Wrote: Wish the custom model import was possible, so that full classic mod for NST would be possible.

I wonder if it's possible to replace the high-poly environments with those low poly whatsoevers that are in editor (which look closely like actual model rips from PS1 version), and then texture them with PS1 version's textures?

Why? If you want to play the original just play the original.
Neo_Kesha likes this post
I'm an evil scientist, what do you expect? This isn't a game, you know...

The views in my posts, signature, and other content do not reflect the views of my employer.
Reply
#6
(20-01-2019, 12:08 AM)Guyus The Raptor Wrote:
(16-01-2019, 06:09 PM)Erdrick The Hero Wrote:
(12-01-2019, 09:49 PM)Guyus The Raptor Wrote: Wish the custom model import was possible, so that full classic mod for NST would be possible.

I wonder if it's possible to replace the high-poly environments with those low poly whatsoevers that are in editor (which look closely like actual model rips from PS1 version), and then texture them with PS1 version's textures?

Why? If you want to play the original just play the original.

Not everyone is given that option. Think of those new people who don't know about the whole franchise - or even the PS1 console or emulators - and only Crash games that they're given are NST and NF, which give wrong image of the games, injure people's sense of quality and encourage them to discriminate fans of the original games and other quality games for low/mid specs.

With classic mod, those people would get correct view of original games, appreciate them as they are regardless of low specs, and agree with the fans that have been into franchise longer.

And who knows, someone could be curious of seeing a classic PS1 style version of that Future Tense. And think of the real time shadows and high framerate that would be kept.

If given person doesn't know about classic trilogy, how it supposed to know about classic mod? You could say, that you could promote it, distribute info, but instead of this you could promote and distribute info about classic trilogy and emulators. Even more, when person discovers classic mod, it discovers classic trilogy as well. And probably already knows about emulators as idea if that person knows about mod as idea. 

Yeah, some point about classical styled Future Tense i get. But still, i think there is no much sense that fun in classical mod.
Ewan's Elephant Games (EEG) likes this post
Reply
#7
(10-01-2019, 01:34 AM)ARD Wrote: Should I keep going with the PAK import option so all compatible files can be modified at once, with this also being an alternative way to give a better idea of what the level looks like (the PAK import will be a very very very very slow process but will make editing several aspects of a level, or levels with extra crates, much easier)?

I think it would be very good thing to do. I can help you any way i can. If you want, i could drop you sources (they are really bad) of NST Explorer and IGZ Editor. I had little progress with importing things between IGZ Packs, but stuck long time ago.
Reply
#8
Here is another update! I started making a new version of the editor from scratch a few weeks ago and have been working on it pretty much every day since then. I still have a lot to do but I'm really happy with what I've got so far. The new version is a kind of combination of the other prototypes I made, so it includes both the visual unity editor and the cheat engine style "in game" editing that I used in the first command line version. I'm not gonna show much of the actual UI yet because it's constantly changing as I add and change features but it is a lot more advanced than the old version, it didn't actually take me very long to get back to the point I was at before and then I just kept going as I kept experimenting more and learning more about programming.

So, as I was attempting to do with the previous version, this one can open either a single IGZ file that's been extracted from a level, or you can open up the level PAK itself and choose which files to load into the editor. As I explained in my "level editing without a level editor" video (which I realise I haven't actually posted here yet so here it is: https://www.youtube.com/watch?v=-wmvIX75J40), not all coordinates in the game follow the exact same pattern, at the moment this editor will only load one type of coordinate (the type that's used for crates and other important things) but now that that's working great it should be easy to add the option to load more stuff. Here's what the editor looks like when you open Stormy Ascent and load every compatible IGZ file into it:

[Image: 8Kb5IQB.jpg]

If you've been following my progress with this project from the start then you'll hopefully be happy to know that it only takes a few seconds to open the editor with all those files selected, because back when I first started each one would probably have taken about 30 minutes. And every one of those crates represents something in the level that can be repositioned using this editor. Obviously the idea I had to import level geometry from the PS1 games to use as a guideline was completely ridiculous and not at all practical, but I've still tried to include features to make it easier to identify what different coordinates represent. All the coordinates in these files also contain information about what type of object those coordinates belong to, so even though I still haven't found a way to identify something just from looking at the code, it is easy to tell whether or not two objects are the same type of object, if that makes sense. So I've added a feature to the editor that will let you label an object with a description so you know what it is, and then automatically apply that same label to all other objects from that file that are of the same type. It also gives you the option to apply an icon to that object which is useful for things like crates, and again the icon you choose will automatically be applied to every other crate of the same type:

[Image: VUrNC2G.jpg]

But the big feature I've been working on is the option to connect the editor to the game. You can click a button that will launch the game to whatever level you're currently editing, and then when you move stuff around in the editor you can also choose to apply those new coordinates to the game, so you can preview your changes and test your custom level while you're working on it. I've added options for camera tracking so you can control the game camera with the editor and vice versa, which makes it easier to work out what all of the objects in the editor actually represent. You can then go one step further and attach the game window to the editor in a kind of overlay mode, which looks like this:

[Image: mk0N7ZC.jpg]

All of the camera tracking modes still work when the game is attached like this, the above image shows the "track game camera" option, where the editor will follow the game camera as you play through the level. Then there's the opposite, where moving the editor camera will also move the game camera, so you can look around without having to do all the tricky platforming:

[Image: 3ixEaWM.jpg]

Because of the way lighting etc works in the game it's not always easy to see what's going on in a level while you're doing that, so I included a sort of light switch option to disable the game's lighting effects which usually makes things clearer:

[Image: oMHpJe7.jpg]

This doesn't always work in every level, the effect is just created by teleporting the player way above the level and there are some levels where I haven't been able to change the player position, but more on that later. There's another camera tracking option which will follow the player instead of the normal game camera, this can be useful in situations where the game camera has broken due to respawning or teleporting and means you can keep playing the level without worrying about that, or just find Crash/Coco if they've disappeared off screen:

[Image: j4A4uvh.gif]

And if those crate overlays get in the way you can hide any of the IGZ files that have been loaded, they basically work like photoshop layers. You can also set the opacity of the overlay to whatever you want, to either make it easier to spot objects from further away or easier to see what's going on in-game underneath them:

[Image: 1jbe0Ui.jpg]

[Image: mWDPikK.jpg]

There's a few other features that have been carried over from the prototype editors like teleporting the player to an object, or teleporting an object to the player's current location, or instantly moving the camera to any object you want to find quickly. And I've included two different methods of moving objects around in-game while you're connected. The first is a "fast update", which works by editing the game's memory at the point where it initially loads the coordinate data from, and then respawning the player (without losing a life because a game over would break everything). The second method is basically an automated version of the process I showed in my level editing video, where every occurrence of that object's coordinates will be replaced with the new set. This will usually only update the object's visual location and its physical hitboxes won't change unless you die, but in the levels where I haven't been able to edit the player position (which is how the respawn system works - just teleports the player OOB to kill them and then instantly returns them to the point they were at before) the "fast" method will only work if the player manually kills themselves, and in some levels like the motorbike levels that's not even really possible, without lots of other modding, so this is the only way to see the changes in-game. Of course once you save your custom level and patch it into the game properly everything will be in whatever position you moved it to.

Speaking of patching, the current system saves a custom level as a single file (.ard obviously) which can apply all of your modifications in one go, plus any extra files you choose to add to your level (if you have any custom music or textures etc you can add them to the level with this). But no point getting too much into that yet while there's still so much work to do. Just wanted to show that I am actually making some progress with this thing and didn't feel like making another 40 minute video about something that's still not ready to release. But it will be soon hopefully! Many thanks to Neo_Kesha for helping me with the PAK normalisation stuff.
BlaZeMaN, Neo_Kesha, Ewan's Elephant Games (EEG), crashbandicootfan, KlitLika, solidpoke412, AlfyGame, NefariousBonne like this post
Reply
#9
(03-04-2019, 04:17 PM)ARD Wrote: Here is another update! I started making a new version of the editor from scratch a few weeks ago and have been working on it pretty much every day since then. I still have a lot to do but I'm really happy with what I've got so far. The new version is a kind of combination of the other prototypes I made, so it includes both the visual unity editor and the cheat engine style "in game" editing that I used in the first command line version. I'm not gonna show much of the actual UI yet because it's constantly changing as I add and change features but it is a lot more advanced than the old version, it didn't actually take me very long to get back to the point I was at before and then I just kept going as I kept experimenting more and learning more about programming.
.<..>
Speaking of patching, the current system saves a custom level as a single file (.ard obviously) which can apply all of your modifications in one go, plus any extra files you choose to add to your level (if you have any custom music or textures etc you can add them to the level with this). But no point getting too much into that yet while there's still so much work to do. Just wanted to show that I am actually making some progress with this thing and didn't feel like making another 40 minute video about something that's still not ready to release. But it will be soon hopefully! Many thanks to Neo_Kesha for helping me with the PAK normalisation stuff.

That's a sick amount of work! It's just amazing progress you did with editor and stuff. Wonder how far you can go with it. Hoping some day NST modding scene will become that easy so everyone could make their levels and bosses for a game, making NST immortal. 
Just as always, if you'll need any help - just ask and i will try my best. Good luck!
Reply
#10
(05-05-2019, 02:15 PM)Guyus The Raptor Wrote: I wonder what file format NST's models and animations are?
In case it's something that Blender models can be exported into

Animations are from havok engine. I've tried editing them but no success yet.
Reply


Forum Jump: