Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(5 edits)

Really a nice game, also the new bonuspack is great, but also not easy. I spent the last hour, playing this new level pack, making it as far as level 7 and I noticed something, while playing, therefore I wanted to suggest a new function, in the menu of the game. 

It would be great, if the game-menu included an option, so that, when you die in the game, you aren't sent all the way back, to the start of the level, but instead, you’d restart from that point, where you collected the last fruit. Of course, there must be an exception in some cases, for example, if you had collected the last fruit in the wrong order and maneuvered yourself into a dead end, where the level is unsolvable in the end. Then, in such cases, the game should sent the player back, to the last fruit collected in the correct order (for solving the level) and allowing you, to continue from that point on.

Why am I suggesting such a function? Well, while solving the first three levels of the pack, I frequently had to replay the same opening-sections of some levels (after I’d already figured out the correct path), just to reach the point again, where I had lost the last life and try a different approach, at that point in the game. Having to replay the beginning of some levels over and over again, got a bit annoying, so I started, using emulator savestates (I played the game in Denise emulator today). That way eliminated the tedious repetition and letting me focus on the specific point, where I’d last lost the last life, until I found the solution at this point.

Sure, this makes the game a bit easier overall, that's clear, but it removes the frustration and keeps the experience consistently fun, when you can continue from the last (correctly) collected fruit. I thought, it could be a nice idea, if something like this, weren't limited to emulators (because mostly you play on the real C64 and there you don't have something like savestates) and if such a function would be a built-in game setting, offering a slightly easier gaming-mode to the user. Only slightly easier, because in the end, you also have to find the solution for every level, but without the need, to play the beginning of each level, over and over again.

What do you think? Of course, this should just be another game-mode and selectable, in the menu of the game and the standard gameplay, as it currently exists, should remain unchanged. Then the players can decide, how they want to play?

I've carefully read your proposal and I have to agree with you about the frustration of some levels, where it can become tedious to have to start over again after a small mistake.

Your proposal is reasonable, but it's not practical because the fruits don't always have to be taken in a specific order (some can be swapped). Furthermore, it's possible to take the fruits in a different order to reduce the number of moves needed to complete the level. At the very least, a system could be implemented to manually save the snake's position.

I was actually already planning on including an "undo" system in future versions of Gravity Snake to move the snake back a few spaces, and theoretically I could implement it with a little effort.

What do you think?

(2 edits)

An Undo system sounds interesting. Or maybe something like a Rewind function (similar to what you had written with "back a few spaces"), using a specific keyboard-key, that reverses everything on the screen, back to a point of the player's choosing, determined simply by holding that key down, for as long as you want to rewind. That would also work. But I can not say, whether it's technically possible on a C64, to rewind the entire gameplay, by more than just a few centimeters?

Undo can theoretically support up to 255 steps back. I'm already working on it for the next version.

Stay tuned!

(1 edit)

Sounds very good, looking forward to this feature! It could for example be included in a way, that the player had to stay on a keyboard-key, to rewind the gameplay and as long, as he holds down this key, everything runs in reverse. If the player releases the key, he can continue playing the game from this point on.

A nice side-effect here, would be the following. There are some C64 emulators, like for example Hoxs, Denise or CCS64, that allows the user, to remap keyboard-keys to buttons on the controller. Then the player could rewind in the game, directly on his controller, offering excellent handling. And I also have another idea, regarding this point, that would make it possible, on a real C64 as well.

The C64 supports a second firebutton (Pot-X) and there are some joysticks available, that have such a "Fire2" button (e.g. the "ArcadeR" or the "Cheetah Annihilator" and also certain joystick-adapters). If the rewind function were possible not only on a keyboard-key, but additionally also with Fire2, then owners of the mentioned joysticks, could also rewind the game, directly on their controllers, even on a real C64.

I'm currently working on this new Undo feature and I'm already well underway.

I'm trying to use a single button for this feature. I was thinking of doing it this way: a single button press takes you back one block, while a longer press restarts the level. What do you think?

I'll just post an idea borrowed from Baba Is You:

Holding the button takes you back one block at a time faster and faster.

(8 edits)

Right. When I suggested the idea with the fire2 button, I had completely forgotten, that "Gravity Snake", unlike 99% of all other C64 games, doesn't actually need the standard firebutton in the gameplay (okay, for restarting the level, but not for controlling the snake itself). This means, fire1 is not really needed so far.

Then, logically, you wouldn't need a fire2 button support at all and of course, fire1 can be used for the rewinding process. In this case, I would set it similar, to what "Vivid Warthog" also had suggested, that the game rewinds, as long as the player holds down the fire1 button. If the player release this button, he can start playing again, from this point on. That would be a pretty intuitive approach, if you ask me. The rewinding could begin, after the player had hold the fire1 button for 2 seconds.

And the "level restart" function could be mapped to a short single button-press. A short press on the firebutton, normally is alot shorter than 2 seconds and as a side-effect, this would have another advantage. Alot joysticks have a autofire-button and then also this autofire-button could be used for level-restart, because autofire is alot of short button presses in a row.

Additionally I would also use the Space-Bar key for level-restart, because in alot emulators today, the user can remap a keyboard-key to a controller-button and then these users can do this with the Space-Bar and they would have the level-restart on another button on their controller, than the rewinding-function, which would also be nice. Then you don't need to take care, how long you press this button.

And some controller-adapters for the real C64 machine, like for example the GenAssister, plug into both joystick-ports simultaneously and with such an adapter, the player has the fire-function of the first joyport directly on a controller button too, and this fire action corresponds to the Space-Bar in most games. Therefore this adapter is great for Shooters on the C64, because in these games, often the Space-Bar is used for "calling a drone" and "send away a drone" and then you have this feature directly on a button of your controller too, besides the normal fire function on another button. And when "Gravity Snake" uses the Space-Bar too, then this also applies to your game.

(+1)

Here's an example of how undo works in the game. Currently, it happens one square at a time with each press of the fire button. Take a look at the following link: https://x.com/Naufr4g0/status/2096164494657380845?s=20

(1 edit)

Looking forward to this new version, thanks for integrating my suggested feature. Each press one square, you wrote, this can sometimes mean alot of presses. Therefore I thought, the game could rewind automatically, as long as the player holds down the firebutton. That would be an alternative, that could be tested, in comparison. The automatic rewinding could begin, after the firebutton is pressed for 2 seconds. A shorter press, would restart the level.

Programming the game to rewind time seems simple, but it's more like programming a game that runs backwards like in the movie Tenet (there's not enough memory to store everything on the screen for every previous moment, so you have to reconstruct what happened from the limited data you have).

Anyway, I'm just testing the undo routine right now, which is why I used the easiest way to implement it in the game. I'll use a different approach later.