Title: Savegames States
gerstrong - November 24, 2009 11:36 AM (GMT)
Well, I have my reasons putting that in the forum so everybody knows about the new features coming next to CG.
In the past versions, we had the problem, that savegame version weren't really compatible between the updates itself, because of the changes of some structure or something else difficult to explain.
Now that I have removed some old ugly C-Code and put C++ Code with some templatized methods, it got a bit more complex. So I want to explain what's really happening and why....
The old version of the savegame are mostly known, so let me talk about the advantages we will have in the next version:
- No more incompatibility, as the data blocks are separated into units this time. So saved old enemy states will be loaded correctly, even if they come from an older version. This is meant for everything. If some data block cannot be read entirely, CG will try the best to get the data we need. Better compatibility!
- No more just 9 slots! Chad (aka Pizza2004) created a good concept which is very similar to Commander Keen 4-6 slot system. The only difference is that the amount will be greater. Maybe it will be a number or limitless. We are still discussing that.
- Savegames get names, being another feature in Keen4-6. You have a menu, see your slots and the names your put in. This is already working in the latest SVN!
- SaveGame class will only write and load bytewise. This means, that no one has to worry about endianess. Still is still WIP but it will happen! That makes everything more complex, but it's worth, isn't it?
I hope, this will make the Gamestates more attractive, because the past ones were really a pain!
pizza2004 - November 24, 2009 05:19 PM (GMT)
I think that is good, keep it up. And also, we have almost all of the menu working! And we have most of Keen 1 support! We just need to get therest of the menu working and the rest of the Keen 1 engine working and then we can release a test version and start fine tuning the physics. Once we have the physics as close as we can possibly make them then we can release another test version, implement Keen 2, release a test version, implement Keen 3, and release version 0.3.1 to the masses.
Currently before we release a test version we need to:
Finish Save/Load
Add HighScore system
Finish Menu systems
Finish Episode 1 testing and debugging
not far to go before we can show people just how awesome our new version is!
gerstrong - November 25, 2009 06:16 AM (GMT)
I'm not sure if that's all we have to do, but it's a good way to go.
Finish Save/Load:
I'm not sure what problem I still will encounter, but whatever it is, I know exactly about the bits and bytes of this implementation and will fix it! I see a near end of it!
Add High-Score system:
Well, I don't know what awaits us here, but if Pizza could implement that, it would be nice. Still the old system is there and need to be split down into init and process breaking the old internal cycle.
Finish Menu systems:
Well, there are still some thinge to do, like the options stuff. I have to take a look at it.
Finish Episode 1 testing and debugging:
It seems that Garg is now working correctly.
Tank is just stuck, and the ice cannons won't fire.
Yorp: it is working good, but stunning is a bit too difficult.
Vorticon: Not sure, but it seems to work correctly!
Butler: it works, but the pushing you around is a bit strange
Rope: This is the rope with the stone in level16. It is still disabled and makes the game
unfinishable.
Teleporters: I still don't like it how the screen moves, when Keen enters the teleporters. Also the teleporter for the bonus level is not yet working.
I see this stuff has still to be fixed.
What goes for finale and level management, it seems that everything is working correctly and fine as stable too!
For me the idea is okay. For release it is by no means ready, but for testing we can release an alpha-like version, when we get that finished.
I really would like to know, if our release is use less resources. I hope so...
gerstrong - November 26, 2009 03:02 PM (GMT)
Well, savegame feature is finished I would say. If you encounter any bugs, let me now...
pizza2004 - November 26, 2009 07:49 PM (GMT)
Actually, the yorp doesn't bump you correctly, you have it pushing you when in the original it kinda bumps you away from it. Check out how it looks in the original and you will see what I mean.
gerstrong - November 27, 2009 07:11 AM (GMT)
Wrong topic, but well, you are right!
I tried to adapt it, but need to check the physics of that closer
gerstrong - December 4, 2009 08:37 PM (GMT)
I have another question and would like to reopen this discussion. How will we handle Quickload and Quicksave. Should we implement shortcuts or not do it.
Must the player open the menu pressing escape and then choose, like in Keen 4-6?
pizza2004 - December 5, 2009 08:20 PM (GMT)
Mm...how about we worry about quicksave and quickload later. They are just extra features like autosaving would be. But, I would think we should have a dedicated slot for autosaving, and somewhere between 4 and 9 dedicated slots for quicksaving, that can't be used for regular saving. That way, the autosave can be loaded from, and the quicksaves don't need a name. In fact we could have the regular save system be stored in one big file, but the autosave and quicksave files are all separate files. That way they can be used for debugging as well. We will need to determine the controls for quicksaving though. An we will need to figure out when to autosave.
gerstrong - December 6, 2009 07:11 AM (GMT)
You are right. Let's worry later about that.
When you press F3 key in the game, you can open the save dialog.
In the past versions it popped up that old dialog. I like that replacement.
pizza2004 - March 24, 2010 07:40 PM (GMT)
Okay, that sounds good to me as well, the only problem is that hitting escape takes you back to the main menu, which we don't want in this case. I'll fix that, and also, we need to make save games store the version so that we can be sure of keeping compatibility from now on.
Also, when you make you're converter, make it run automatically, and if it finds any save files without versions, then it should check the structure and convert and then save them into the current version, and then make it save it back into the file correctly.
Also, we should make a way to delete saves from in game, and sometimes trivial changes in data cause save incompatibility, so we should always find a way to load old save games. This is going to bloat the code a little, but it is important to make sure that there are no problems with loading old savegames.
gerstrong - March 26, 2010 07:37 AM (GMT)
Yeah, I'm already working on that issue with the old savegames. Especially for the iPhone compatibility it's important, as they update automatically only...