That would work for just watching a replay, though since I want to have the Mario Kart-esque ghost system, if you load a seed using a replay and play along-side it that will make the random element deterministic for your own play. I don't plan to have random level elements in official levels, but when I look into including a level editor I'll re-evaluate whether I want that to be a feature available in the editor.
@@CheddarEssays Yeah, for anything time based, it's stupid to introduce rng (why introduce an element that needs to be optimized for the best times, with no way to control it?), but there is potential for it in regards to messing around or for testing adaptability. If you were to introduce random elements officially, it'd probably be best to have a preset seed which can optionally be changed but that's work for a questionably unmeasurable benefit. Probably best to keep in a different gamemode if you get that far.
it would probably be worth to look into how doom & quake did their demo formats also fwiw its probably good enough to just slap ZLIB or LZ4 atop your demo recordings. also could save the demo data as a stream and then after recording compress it. that way longer demos dont hog up a cacophonous amount of memory, and you get a bit of corruption/"oops the game crashed" protection when recording a demo. with compression youd probably want to save/load them in chunks but w/e you could also get a lot of inspo from networking code too. if you think about it demos and net packets are kinda sisters anyway nifty project
The way Godot records and reads compressed binary files seems to be bugged at the moment, but I expect whatever the issue is will be fixed by the time I release the game, though I'll do my best to include it regardless since it's a sizeable and very simple optimization to make. I appreciate the tips, they could very well come in handy by the time the game releases and the replay bugs come flooding in.
You could save the games version number in the replay file. That way you can tweak the variables in between versions to experiment/patch. Starcraft 2 used a similar system where you can open old replay files from 10 years ago, but the game had to revert to an older version temporarily.
you could add a (toggle-able in the settings) line from the ghost's eye level to whatever it would be aiming its camera at, to make it easier for people to tell where the ghost is shooting if they're watching a replay to try to learn how to do something also, adding a system where you can let a player see a section of a replay mid-level to teach them how to do something (like jump academy) would be useful (ideally you'd also be able to just see the ghost in the world with this feature instead of just being able to watch it through its eyes)
Have you seen how Trackmania does their replay system? It's a deterministic racing car game with replays that (from my knowledge) records inputs in millisecond timesteps, or more specifically, has the ms timestamp for when the button was pressed or changed (like with analog controllers)
Hey not to throw any shade since your project is still shaping up to be something unique, but this game does looks a lot like Propulsion, not so much in the graphics department but more so in the gameplay.
As someone who also world in Godot, though kinda bad at it i want to ask is it intentional that you have the basic graphics and do you use GDscript or C# or C++ if that even exists anymore.
I talk about visual style more in the previous devlog, but the short answer is yes, it's intentional because the game will play better that way. As for Godot, the plugin I use to import .map files requires the C# supported version of Godot, though I'm still only working with GDScript at the moment.
Note that randomized levels are still possible, you'd just need to store the seed @ the start of the replay file
That would work for just watching a replay, though since I want to have the Mario Kart-esque ghost system, if you load a seed using a replay and play along-side it that will make the random element deterministic for your own play. I don't plan to have random level elements in official levels, but when I look into including a level editor I'll re-evaluate whether I want that to be a feature available in the editor.
@@CheddarEssays Yeah, for anything time based, it's stupid to introduce rng (why introduce an element that needs to be optimized for the best times, with no way to control it?), but there is potential for it in regards to messing around or for testing adaptability.
If you were to introduce random elements officially, it'd probably be best to have a preset seed which can optionally be changed
but that's work for a questionably unmeasurable benefit.
Probably best to keep in a different gamemode if you get that far.
i don't know if anybody has said this yet, but you have an amazing voice, it makes me just not want to leave your video
it would probably be worth to look into how doom & quake did their demo formats
also fwiw its probably good enough to just slap ZLIB or LZ4 atop your demo recordings.
also could save the demo data as a stream and then after recording compress it. that way longer demos dont hog up a cacophonous amount of memory, and you get a bit of corruption/"oops the game crashed" protection when recording a demo. with compression youd probably want to save/load them in chunks but w/e
you could also get a lot of inspo from networking code too. if you think about it demos and net packets are kinda sisters
anyway nifty project
The way Godot records and reads compressed binary files seems to be bugged at the moment, but I expect whatever the issue is will be fixed by the time I release the game, though I'll do my best to include it regardless since it's a sizeable and very simple optimization to make. I appreciate the tips, they could very well come in handy by the time the game releases and the replay bugs come flooding in.
Bro is the son of the Faith unholy Trinity tts 💀
You could save the games version number in the replay file. That way you can tweak the variables in between versions to experiment/patch. Starcraft 2 used a similar system where you can open old replay files from 10 years ago, but the game had to revert to an older version temporarily.
you could add a (toggle-able in the settings) line from the ghost's eye level to whatever it would be aiming its camera at, to make it easier for people to tell where the ghost is shooting if they're watching a replay to try to learn how to do something
also, adding a system where you can let a player see a section of a replay mid-level to teach them how to do something (like jump academy) would be useful (ideally you'd also be able to just see the ghost in the world with this feature instead of just being able to watch it through its eyes)
Have you seen how Trackmania does their replay system? It's a deterministic racing car game with replays that (from my knowledge) records inputs in millisecond timesteps, or more specifically, has the ms timestamp for when the button was pressed or changed (like with analog controllers)
You are better than the entirety of riot. Adding a replay system is crazy
Trackmania handles it in a very similar fashion, you might want to look at game for inspiration.
Hey not to throw any shade since your project is still shaping up to be something unique, but this game does looks a lot like Propulsion, not so much in the graphics department but more so in the gameplay.
Awesome vid
i love your voice please apply for a vocalist in a deathmetal band
As someone who also world in Godot, though kinda bad at it i want to ask is it intentional that you have the basic graphics and do you use GDscript or C# or C++ if that even exists anymore.
I talk about visual style more in the previous devlog, but the short answer is yes, it's intentional because the game will play better that way. As for Godot, the plugin I use to import .map files requires the C# supported version of Godot, though I'm still only working with GDScript at the moment.
the skybox is temporary right?
YES YES YES HEELL YEEEAH BABY I'M SO HAPPY