cbhacks / CrashEdit

Unofficial Crash Bandicoot 1/2/3 Level Editor
https://www.cbhacks.com/tools/crashedit/
Other
136 stars 26 forks source link

New features for version 1.0.0 #7

Open ughman opened 10 years ago

ughman commented 10 years ago

Not really sure where to post anything, so here it goes.

I've had a fair amount of work done on CrashEdit locally which hasn't been pushed (apparently the version on here is from december of last year? ancient).

I intend to release 1.0.0 at some point, I think this versioning scheme is much better than what I was doing before. I'll probably make a small post on xentax once it's out, but then I'll switch to hpzr.proboards.com to start a thread and announce any further work there. There are certain features I want in before I publish 1.0.0:

Some other things I want but probably won't make it into this version:

This doesn't mean 1.0.0 is coming soon, but it is something I intend to happen.

ughman commented 10 years ago

More features I want for this version:

Until the 1.0.0 release, I'll add features here rather than creating new issues.

ManDude commented 10 years ago

This looks like a huge (good) step forward. I am looking so forward to it. Though I have some more suggestions (should not be in first priority):

And that is about it. Ended up being way larger than I thought.

ughman edit: added issue id refs for each bullet point

ughman commented 10 years ago

Those all look good, except for the text string viewer, not sure what you mean there. If you mean editing text like NEW GAME and such, that would be part of the GOOL thing since those are in those entries. No idea what you mean by variables and switches though.

ManDude commented 10 years ago

Ah so they are in the code entries? Cool that saves me off some work. :)

Also the switches are the things like MONO and STEREO and VIBRATION ON and VIBRATION OFF. The variables are like the number of crystals. They seem to be mostly %'s and something else, I will try to fiddle around with these when I can.

ughman commented 10 years ago

Some more features I want in:

Some more features but probably post-1.0.0:

ManDude commented 10 years ago

How do those zone-music associations work anyway? Is the target music entry/SEQ specified inside the zone entries (maybe in one of the first two items) or is it somewhere else?

ughman commented 10 years ago

Yeah the entry ID is one of the values in the first item.

ManDude commented 10 years ago

Also how about exporting entries too? (The format should be the same format as the entry) Currently the best you can do is unprocess entries and export their items and then replace them, wich takes a tedious amount of time.

ughman commented 10 years ago

Oh yeah that's a good one too

ManDude commented 10 years ago

And something I forgot in my last post (GitHub mobile wont allow editing) was a Reverse Path option for objects, it simply swaps the first position with the last, second with the second-to-last, etc. This could be particularly useful for duplicating moving enemies or platforms.

How would the autoregenerating drawlists work with multiple-position objects though? Will it also count the other positions? That is like, the best feature this could give as it would cause freezings/crashes to disappear (or be much less common) and also fixing weird drawing bugs when modding!

ughman edit:

ughman commented 10 years ago

Yeah that's good, here's another:

As for drawlist regeneration, using all of the positions instead of just one shouldn't be much harder. The hard part is actually figuring out how the camera knows where it is and where it's facing as well as making an algorithm that can figure out if an object has any positions within that viewing area or not. This is going to involve some 3d math which I'm not good at, so that's a challenge that lies ahead.

ManDude commented 10 years ago

I see. But another fear of mine is that it could mess up some of the drawing in Crash 3, take Tomb Time for example: near the end of the level where the purple gem path reconnects, if you slowly start backtracking the stuff will disappear while still perfectly visible. When regenerated the drawing should be fixed, but it could make the game crash due to too many stuff being on the screen at the time (no guarantee though, my modding capabilities on this game are limited due to the scaling issue and the different scenery).

ManDude commented 10 years ago

Oh and 1 thing that bothers me when I test my modding is the depth of the objects. Is it specified anywhere? It could be extremely useful (but probably extremely complicated) to like, hide crates behind a platform or put nitros under the floor to troll the player in 3D sections (hey this seems like a good idea actually), because if you do this without editing depth, the crates will look like they are above the platform.

ManDude commented 9 years ago

Here are some I came up with:

Also can you post a screenshot of the current GUI (or a mockup of it)? Just to see if there is something I can suggest (also helps me organizing my ideas a bit more).

ughman edit: added issue id refs for each bullet point

ughman commented 9 years ago

Image

It looks pretty much the same, most of the change is rewriting a lot of code so the UI gets updated automatically when changes happen to the objects in the backend.

ManDude commented 9 years ago

Oh cool. I like the color coding right there. Also I noticed a CrashEdit tab, does it have like general settings? Anyway it looks good.

ManDude commented 9 years ago

Been thinking a bit, and I thought of some stuff that could be useful:

Edit: Is it possible to force a "textured scenery" view (shows the scenery exactly like if it was in the game)? That could come in handy in Bee levels because when you see the scenery it is all grey/white and indistinguishable (except for the warp in/out parts).

ughman edit: added issue id refs for each bullet point

ManDude commented 9 years ago

I feel this could be used for some fast, easier, and quick edits:

ughman commented 9 years ago

Actually, I think condensing all of the issues into just this one has overcomplicated things for me, I'm going to split them all out into separate issues.

Even though that's the exact opposite of what I did at the start, heh.

DeividAndreola commented 9 years ago

Any updates?

ughman commented 9 years ago

Pretty much not really.

I'm legitimately considering starting up a new branch and rewriting from scratch in C. If I were to do this, I would specifically target features not already in CrashEdit so I'm not just wasting time redoing the same stuff over (crash 1 zones sound like a good start, instantly makes the program useful). There are upsides and downsides to this:

  1. Less memory usage
  2. Faster
  3. Less big dependencies (.NET and Mono)
  4. Easier to build and run outside of windows
  5. Harder to build on windows
  6. Can't use already-existing CrashEdit code verbatim
  7. New backend could potentially modify game data in-place instead of processing/deprocessing all the time (faster load/save)
  8. No extra overhead on GL calls, plus OpenGL is natively a C API
  9. C is "harder", could be a barrier of entry to contributing

Point number 6 isn't actually as bad as it seems. A lot of stuff in CrashEdit already needs to be rewritten to be undo/redoable. Point 9 could be eased by integrating a scripting language of some kind, especially if undo/redo support was implicit and automatic.

Another point, though, is that I'm currently more interested in an approach like this than the current system. Every time I open the C# crashedit project I feel like closing it and doing something else. Since I'm pretty much the one main developer, that means nothing happens. That said, if someone else wants to take over the C# project, I'm perfectly willing to commit and push all of my private changes, which are a mismash of random broken features, as well as provide any information online whenever. Just don't be surprised to see there's no big undo/redo action system in there.

ManDude commented 9 years ago

I could use that (I even have fully functional Crash 1 entity and camera editors programmed right in so that ain't a problem to me).

ughman commented 8 years ago

Ignore that C project comment, decided to stick with CrashEdit instead.

I've added references to the relevant issues to all of the bullet points here. I've put in "(?)" for the ones I couldn't find issues for. Will close this as duplicate once all of them are posted.