It's Snake, But Every 10 Seconds The Food Turns Into Walls by Aristurtle

[raw]
made by Aristurtle for Ludum Dare 51 (JAM)

Windows Only, see developer notes


# Trailer

https://www.youtube.com/watch?v=XwcEKoAMaOc


# Description

You, the player, takes control of the snake. The snake is always moving forward. You can change the direction the snake moves, but you cannot make it stop. Your objects if to eat the food blocks (Yellow Blocks) as quickly as you can. Each block will grant you 10 points, but will also increase the length of the snake by 1.

Every 10 seconds, all remaining food blocks will transform into wall blocks (gray blocks). Should the snake collide with a wall block, or itself, then it's game over.


# How To Play

The game can be played with either a keyboard or a gamepad. Volume control, however, is keyboard only (sorry).

Keyboard Controls

| Key | Alternate Key | Action | | ----- | ------------- | ----------------------------- | | W | Up Arrow | Move Up | | S | Down Arrow | Move Down | | A | Left Arrow | Move Left | | D | Right Arrow | Move Right | | Esc | | Pause Game | | + | | Volume Up | | - | | Volume Down | | Esc | | While paused, unpause game | | Enter | | While paused, restarts game | | Enter | | While gameover, restarts game |

Gamepad Controls

The buttons names used below are based on an XBox controller.

| Button | Alt Button 1 | Alt Button 2 | Action | | ------------ | ---------------------------- | ------------ | ----------------------------- | | Dpad-Up | Left or Righ Joystick Up | Y | Move Up | | Dpad-Down | Left or Right Joystick Down | A | Move Down | | Dpad-Left | Left or Right Joystick Left | X | Move Left | | Dpad-Right | Left or Right Joystick Right | B | Move Right | | Start/Menu | | | Pause Game | | Start/Menu | | | While paused, unpause game | | Select/Share | | | While paused, restart game | | Select/Share | | | While game over, restart game |


# Screenshots

screenshot1.png

screenshot2.png


# Tools Used

Sound Effects

Sound effects were made using SFXR. Honestly not a ton of work was put into them and it shows (sounds).

Graphics

All graphics were made by me using https://www.aseprite.org

Audio Library

The game uses NAudio https://github.com/naudio/NAudio for the underlying audio engine. One day, I'll learn FMOD.....

Game Engine

The game engine used is my own custom game engine called Tiny Engine. This is built on top of MonoGame Framework https://www.monogame.net. The engine itself is meant to be small, without a ton of fluff, so I can just start prototyping. This means it's missing some usual features such as defined "game objects". It works well enough for me, source code is available on https://github.com/AristurtleDev/ludum-dare-51


# Additional Developer Notes

Even though I did all of this solo, I am submitting to the Jam. The only assets that I did not create myself was the music, which I never have the time nor the skill to do. Music credits are lower down on this page. As such, I have opted out of the Audio rating.

One neat thing I would like to point out is that the food blocks pulse to the beat of the music. At least, they pulse to the best of my ability to do beat detection. I wanted to include additional song tracks that the player could choose from instead of just one song looping, but unfortunately hit issue with the NAudio library and didn't have time to resolve it.

The game, as well, is Windows only. This is because I opted to use NAudio. One day I will learn FMOD, I promise. NAudio uses lower level Windows API calls that locks the game into being Windows only, even though nothing else prevents this from being cross platform.


# Music Credits

The music used in the game is credited as follows

Realizer" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/


# Download At Itch

The upload here on LDJAM page keeps failing. If it's still not working, you can download the game from the itch.io page at:

https://aristurtledev.itch.io/its-snake-but-every-ten-seconds-food-becomes-walls

Ratings

Overall 348th 3.722⭐ 38🧑‍⚖️
Fun 204th 3.833⭐ 38🧑‍⚖️
Innovation 499th 3.417⭐ 38🧑‍⚖️
Theme 50th 4.333⭐ 38🧑‍⚖️
Graphics 898th 3.083⭐ 38🧑‍⚖️
Humor 598th 2.809⭐ 36🧑‍⚖️
Mood 856th 3.136⭐ 35🧑‍⚖️
Given 26🗳️ 75🗨️

Feedback

LDJam user 298987
03. Oct 2022 · 20:27 UTC
Such an interesting concept, and great implementation. It was simple but fun and a very original idea, but it was still snake.
Matoux42
03. Oct 2022 · 20:35 UTC
![Capture.PNG](///raw/bfb/6/z/50c1e.png)

I have this kind of problem trying to launch the .exe
🎤 Aristurtle
03. Oct 2022 · 20:52 UTC
@matoux42 You need to have the .NET Desktop Runtime installed. You should be able to click "yes" on that popup to install it, or you can go to the page at https://dotnet.microsoft.com/en-us/download/dotnet/6.0 to download and install it.
elysiagriffin
04. Oct 2022 · 13:48 UTC
Thanks for submitting your game for me to play on my stream!

If you’d like to rewatch the playthrough, you can find it here: https://www.twitch.tv/videos/1608912292?t=5h21m40s

Good luck on your ratings, see you next LD! :D

💜 Elysia Griffin AKA Button Feedback Lady
https://www.twitch.tv/elysiagriffin

🐍 My high sssscore

![Highscore.png](///raw/5a7/b/z/51f99.png)
PicusBGames
05. Oct 2022 · 00:20 UTC
A basic idea and a retro game turned into something new for the theme of the jam :) Well done, I quite enjoyed it and you might not have made the music but it fit quite well :)
otaviobia
05. Oct 2022 · 00:21 UTC
I love how polished the game feels, the little details make the game stand out, from the background moving opposite to the snake to the beautiful screen transitions.

The main mechanic is also really clever and adds a new layer to Snake.

Nice job!
🎤 Aristurtle
05. Oct 2022 · 01:01 UTC
@appleplectic Thanks so much for playing.
🎤 Aristurtle
05. Oct 2022 · 01:03 UTC
@elysiagriffin It was fun watching you play it. Even more fun that you actually played the trailer and did the "Whoooaasss" along with it lol.

Sorry that I had no buttons in this game for you to give feedback on. I actually did originally have a menu on the title screen to choose between starting the game and viewing controls. The buttons were pop'n, you would have loved it. Ultimately I removed them though :/
🎤 Aristurtle
05. Oct 2022 · 01:05 UTC
@picusbgames Thanks for playing. I did go through several free-to-use music to find one that might fit with a snake/arcade style game, so some thought was put into it still.
🎤 Aristurtle
05. Oct 2022 · 01:12 UTC
@otaviobia I actually didn't think many would notice the background moving opposite the direction the snake moves. I wanted it to feel like it was a scrolling background like you might see in a sidescroll platformer or something. The grid being over it and using a dark, but transparent, background, I was afraid it would hide it too much to be noticeable.

The screen transitions were something I added to my engine a year or so ago. Another developer, PorbleG https://twitter.com/PorbleG, originally made them for their game Wark & Wimble. They shared the source with me with the agreement that I write a tutorial on how their implemented and how to use them. I haven't ported the tutorials from my old site to my new site yet, but if you're interested, the write-up is still available in the old repo. It's MonoGame specific though https://github.com/manbeardgames/manbeardgames.github.io/blob/gh-pages-develop/docs/tutorials/scene-transitions.md
Rocktavious
05. Oct 2022 · 02:16 UTC
This is a GREAT game! I love how you took a simple concept and transformed it to the theme. This slight tweak actually makes the core concept really fun and interesting. I found myself really having to keep an eye on the time so I didn't run into something thats going to become a wall soon.

It would be nice if the 10 second timer was baked into UI a bit more so I didn't have to avert my eyes from the snake - maybe with the pulsing happening only for the last 3 seconds or some sort of color shift beginning to happen.

Great work!
🎤 Aristurtle
05. Oct 2022 · 02:34 UTC
@rocktavious I'm glad you enjoyed it. The suggestion on the timer is solid and was something I overlooked. Another suggestion I saw for it was to add an audio cue, like a beep starting at the 3 second mark as it's counting down.
elysiagriffin
05. Oct 2022 · 07:28 UTC
@aristurtle I expect poppin' buttons next jam... wooOOoOoOo
LDJam user 202408
05. Oct 2022 · 17:44 UTC
Haha this game is a blast! I love how you took a simple idea and turned it into something more creative, I tried to be smart and follow a strategie where I don't eat any point, remain small and dodge the walls but I guess in theory it doesn't make a difference in difficulty if you eat to points or ignore them because both actions will fill more space.. anyway I also noticed that you used monogames, I haven't seen a monogames game in so long.. nice work!

![5.PNG](///raw/8a6/13/z/525ed.png)
🎤 Aristurtle
05. Oct 2022 · 17:54 UTC
@0x-void-x0 nice score lol

Thanks for playing and glad you enjoyed it. Yea, technically you can just let the snake move horizontally or vertically and never change direction. Every so often you'll eat food that spawns on the line, but eventually the entire grid will fill. But you won't get many points this way, and what's worth bragging more, points or a filled screen of walls?

It is built on MonoGame. Switched to using MonoGame about 5 or 6 years ago and haven't looked back. For me, it's the perfect middle ground of just letting me write code, but not requiring me to setup all the crazy low level stuff like SDL. They actually just released the new update earlier this year, it's on version 3.8.1 now and has moved fully to .NET6 and off of .NET Framework.
LDJam user 233347
05. Oct 2022 · 18:31 UTC
Neat spin on a legendary game - thoroughly solid entry.
WeeFairyFabi
05. Oct 2022 · 20:50 UTC
Such a good spin on a classic game and it really does fit the theme perfectly! I might have spent more time than planned on this game because I got competitive but it was entirely worth it :)
Chairshot Games
05. Oct 2022 · 22:49 UTC
Really fun take on snake! The game feels really smooth and polished, and it uses the theme really well.

My only suggestion would be to add another cue that the 10 seconds are about to expire, maybe the music changes or the fruit flash red or something, because it is hard to check the timer in the corner during the fast-paced game.

Overall the game is really fun and addicting, well done!
🎤 Aristurtle
05. Oct 2022 · 23:25 UTC
@weefairyfabi This makes me wish I had implemented a leaderboard of some kind even more. Maybe in the post-jam release. Thanks for playing, I'm glad you enjoyed it.
🎤 Aristurtle
05. Oct 2022 · 23:28 UTC
@chairshot-games I was always turned off by the movement in snake games. I guess that's always part of it's charm to feel old school, but I wanted it to be smooth. Figuring it out was fun and it's nice that it shows and others appreciate it.

I plan to keep this mode in a full release that I'll be working on. Most likely it'll be an audio sound effect queue starting at the 3s mark, sort of like the queues in the newer Mario games for the red/blue flip tiles. Great suggestion though to add something.
mhorth
06. Oct 2022 · 01:25 UTC
I was not expecting that level of graphics from a snake game. You had a lot of animations like the spinning squares that really added a nice touch. Music also was a great vibe.

I did struggle with the movement a bit, I was constantly late by one square of where I wanted to turn. I agree with your previous comment that smooth movement looks nice, but I wonder if the chunky step by step movement was necessary for snake to have precision control over what lane of the grid you would turn on. I also got frustrated the first time I was about to eat food and it turned into a wall, but I realized that's the whole point of the theme and I just needed to pay more attention to the timer. After that it added a lot of depth because I had to think about whether I could make it to that food in time or if I'm setting up for a crash.

Really really impressed by your reimagining of an old game, nice job!
Mooptychunk
06. Oct 2022 · 02:10 UTC
Can't argue with the classics. Nice work!
Rage Paint Games
06. Oct 2022 · 02:39 UTC
Good twist on a classic game. Love it when someone takes an existing game and improves upon it. I was thankful that I didn't have to worry about the walls around the edge of the game, and could actually use it to strategically grab squares on the other side. My only suggestion I have would be to add a visual or audio queue that the time was almost over, cause I kept having to look at the count down time to see if I had time to grab more squares. Would be nice if the yellow squares started to flash red or something to indicate they were about to change, or maybe have a sound for the last 3 seconds.
🎤 Aristurtle
06. Oct 2022 · 15:55 UTC
@mhorth Some of the things like the transition animations are part of my engine that I've built up over the past couple of years. There's a comment up a little bit specifically about the transition spinning blocks with some more info on how it's done if you're interested.

I think the movement is one of those things where I played it so much while making it that it become muscle memory for me to know when to press to turn and didn't think anyone would have an issue with it. The input is polled every frame, but the action from input is only done once per "tick" which is every 0.1 seconds. I'll have to play around with it and get others to test it, but it could just be a matter of playing around with the tick timing to get it feeling more natural.

Note adding something to warn about the countdown was a massive oversight on my part, and I completely agree it needs something there.

Thanks for playing and glad you enjoyed it.
🎤 Aristurtle
06. Oct 2022 · 15:55 UTC
@mooptychunk when something is already good, why do something else ;)
Thanks for playing
🎤 Aristurtle
06. Oct 2022 · 15:57 UTC
@rage-paint-games Thank you, it was fun watching you play it on stream. I always hated the edge deaths in snake, open world snake is where it's at.

Thank you for the suggestion, it was a definite oversight on my part.
LDJam user 11377
06. Oct 2022 · 16:41 UTC
Perhaps a "simple" take on a game jam but is executed very well. I like that you took the time to introduce the game with a trailer video starring yourself! Keep creating :)
PeachTreeOath
06. Oct 2022 · 22:50 UTC
The theme of 10 seconds changes the experience of the game quite a bit. Normally in action games, time limits USUALLY don't change our play experience all that much unless the game revolves around it. But that's exactly what happens here. Basically, in normal Snake you are simply focused on not getting killed. But HERE, as soon as you hit a new level, a few calculations are made based on one question: "what is the best path for me to take in the next 10 seconds?".

That calculation is a rapid judgment of path length vs walls (including your own body). I think it's a really interesting puzzle to quickly solve since the time limit means your path can only go so far. Even moreso because the world wraps which is extra hard to consider.

So I think the overall thing I'm noting here is that you get the benefits of time limit (pressuring the player to play better and more optimal) without the consequences of it (game over -> restart). Any failures simply add to the attrition the player feels over time, and boy does the game get hairy later on.

I had a ton of fun with this one. Great execution and strategy tester. Well done on executing the concept!

![asdfadsf.png](///raw/649/1/z/529ba.png)
🎤 Aristurtle
06. Oct 2022 · 23:26 UTC
@peachtreeoath thank you so much. Seriously. I knew going into making this that it was "just snake" and It's been in the back of my mind that some may see it as just that, but this was a really encouraging comment.

I made the mistake a few years ago of deciding to "write my own engine", which lead to a lot of burnout and I decided to step away and take a break. Which lead to a 2yr break of doing no development at all. I wasn't even aware it was LD weekend until later Friday night I saw someone on twitter say something. This jam is was brought me back into wanting to just make something, and comments like this will help keep pushing me forward.
PeachTreeOath
06. Oct 2022 · 23:34 UTC
I'm glad you returned! Game design is complex, and even small mechanics changes can have big consequences. But yes you're right, when it comes to first impressions it can be difficult to squash just-snake comparisons until you get people to dig in deeper.
jonmerrin
07. Oct 2022 · 02:00 UTC
This game is absolutely brilliant. Love the concept, love how it ties into the theme, and most of all, I love the tension of trying to go for just one more before the time runs out. The background and loading screens are simple but beautifully animated, the dots pulse with the music, everything is so well put together. Really great job.

One note I have is that it's not super responsive when trying to do rapid turns (like pressing up then right too quickly). I might suggest trying some sort of input buffering, so that when someone makes a move in a legal sequence, even if the second move isn't legal quite yet, you could still execute it so the user doesn't feel like the game isn't doing what they tell it to.

Awesome game, awesome job!
DanielD
07. Oct 2022 · 02:02 UTC
From someone who logged a LOT of hours on Nokia 3310 snake, this was a really fun and fresh take. Good job!
DJTequila
07. Oct 2022 · 02:03 UTC
You really remixed a classic in a creative way. I like the mechanic of being able to warp to the other side of the screen. The food turning into walls makes it so hectic! I think the game could use an audio/visual cue when the timer is about to run out.
🎤 Aristurtle
07. Oct 2022 · 02:27 UTC
@jonmerrin Thank you for the input buffer suggestion. I'll play around with that and see if that can help. The way it's set currently is every update frame input is checked and a direction set from the input. The direction isn't applied though until a "tick" occurs, every 0.1s. Underneath, it still functions like classic snake with the blocky movement, but there's some calculations done every frame to determine the percentage of the rectangle to draw to give it a perceived smooth motion.

I think the smoothing is mostly what's throwing timing off for some? But input buffering may also help alleviate that.

Glad you enjoyed it though and thanks for playing and the feedback.
🎤 Aristurtle
07. Oct 2022 · 02:28 UTC
@danield Was there any other game available for the Nokia 3310? I choose to believe not haha. Glad you enjoyed it, and thanks for playing.
🎤 Aristurtle
07. Oct 2022 · 02:29 UTC
@djtequila Thanks for the feedback on the audio/visual cue. It was definitely and oversight on my part and is something that will be added post-jam in a full release.
Rafale25
07. Oct 2022 · 02:32 UTC
Nice game, very good polishing on the animations, it's very simple but at the same time, i've never seen this mechanic in a snake game and it fits the jam perfectly, great job dude! Love the video presentation too btw, very entertaining.
goldenXD
07. Oct 2022 · 04:59 UTC
Really cool concept, I like the idea and implementation is pretty good!
BayLock
07. Oct 2022 · 05:03 UTC
Nicely Done Bro. really nice concept and use of the 10 second theme. Would love to see this game developed further and released in a larger scale. Please do check out my submission as well.
ghostbomb
07. Oct 2022 · 05:09 UTC
Well this is a game that is just exactly what it says in the title, lol. Reminded me of a really cool game called Snakes on a Cartesian Plane but I don't know if there's any way to actually play it now.

Nice work.
Reyansh
07. Oct 2022 · 06:22 UTC
Great game but imo graphics can be improved but still great game!
GuyRo
07. Oct 2022 · 06:43 UTC
Nice game, no false advertising here.
The new obstacles brought something new to the game and presented the theme.
Loved the dancing food!
The timer can be in a better place though, no time to glance at the corner, maybe audio signal could be nice.
LDJam user 303716
07. Oct 2022 · 07:12 UTC
nice
BenTheTwoOfUs
07. Oct 2022 · 07:17 UTC
It's a creative and fantastic fusion of 10 seconds themes and the classic game Snake.
The idea of ​​turning food blocks into wall blocks is really interesting.
I think the essence of game jam is to think, make, and enjoy these kinds of games.

It might be a more intuitive game if the effect is displayed on the block just before the 10 seconds are almost over and the food block turns into a wall block.
Jaker
07. Oct 2022 · 07:20 UTC
I like a fresh take on an old concept. It felt very well-polished overall. The controls were responsive and all the animations were smooth. Pretty much no complaints here :D
lootgrounds
07. Oct 2022 · 07:57 UTC
Nice entry. Every time i see the snake concept on this LD i play it)
ActuallyTheMoon
07. Oct 2022 · 13:21 UTC
Fun take on snake!
🎤 Aristurtle
07. Oct 2022 · 15:02 UTC
@ghostbomb Thanks! I've never heard of Snakes on a Cartesian Plane, but the name sounds clever as hell haha. I'll look it up, hopefully there's still a way to play it or the internet archive has an archive of it.
🎤 Aristurtle
07. Oct 2022 · 15:03 UTC
@rafale25 The trailer was a lot of fun to make; completely unnecessary, but fun. Glad you enjoyed it and the game, thank you.
🎤 Aristurtle
07. Oct 2022 · 15:06 UTC
@goldenxd @djd123456 @lootgrounds @actuallythemoon
Thank you all so much for the kind words and playing the game.
🎤 Aristurtle
07. Oct 2022 · 15:06 UTC
@reyansh I have a plan on doing some stuff with the graphics. I do want to keep it casual and simple, nothing too fancy, but something to elevate it out of looking like a jam game. Thanks for playing
🎤 Aristurtle
07. Oct 2022 · 15:15 UTC
@benthetwoofus I had a few other ideas before settling on the food turning into walls mechanic, some examples being randomizing the controls or making the snake or food hidden for a brief period. After play testing them for a few rounds, they were more infuriating. I wanted the player to feel in control and that if they got a game over, it wasn't because the game felt unfair, but because they felt they could have played better. Eventually going with the food-to-walls felt like a good balance between forcing the player to play snake in the classic way while also procedurally building a level/maze for them.

The visual timer being the only indicator was an oversight on my part. It was one of those situations where I did audio last and it just slipped past me to add in an audio cue/countdown with it. Adjusting the blocks visually as well is a great suggestion that I'll play around with. Thank you.
🎤 Aristurtle
07. Oct 2022 · 15:18 UTC
@guyro Thanks for playing, I'm glad you enjoyed it. The food pulsing too the beat was a little more in depth to code than I had imagined it to be. The actual code itself shown in the GitHub repo seems simple enough now when looking at it, but implementing it was more testing and debugging than I care to admit lol. I think if I actually sit down and spend time learning something like FMOD, beat detection/events would probably be simplified a lot.

As for the timer, I agree that only the timer in the corner is not enough, thank you for the feedback on that.
🎤 Aristurtle
07. Oct 2022 · 15:20 UTC
@jaker If you don't mind me asking, since you mentioned the controls being responsive, how responsive did it feel if you wanted to do like a quick u-turn, or like two movements in quick succession? This is one area that I'd like to improve on and just trying to collect more feedback since some felt it wasn't as responsive when trying to do that.

Regardless, thank you for playing and I'm glad you enjoyed it.
🎤 Aristurtle
07. Oct 2022 · 15:22 UTC
@baylock I do plan to take this further and flesh out a full game from it. I mean, the world can always use more snake games right? I have a lot of ideas, so be sure to either check back here from time to time, or if you use Twitter, you can follow me there for future updates https://twitter.com/aristurtledev

Thanks for playing.

Edit: forgot to add that I'll definitely check yours out. Got a lot to catch up on from last night's feedback, but I do plan to go through everyone's games that have left me comments.
TimBeaudet
07. Oct 2022 · 19:27 UTC
I played this for you on [stream](https://www.twitch.tv/timbeaudet) and I think I gave good feedback there, if so give a heart, and if not, don't!!
🎤 Aristurtle
07. Oct 2022 · 21:19 UTC
@timbeaudet thanks for playing it on stream. And the feedback given during it was good, appreciate it.
Jaker
08. Oct 2022 · 01:55 UTC
@aristurtle I think the only thing that limits the responsiveness is the fact that the snake smoothly moves between cells instead of instantly moving, like in most Snake clones.

I guess you are interpolating parts of the snake between the previous position and the current one? It might make more sense to extrapolate instead, that way changes in direction are immediately communicated to the player. It might look janky when turning rapidly though. It's certainly something you would have to test.
Ava Skoog
19. Oct 2022 · 23:22 UTC
Fun twist on a classic concept 😁 Simple graphics but slick. Plays fine. As the title says: it's snake! But your addition is a good one and works well with the original mechanics. Good work!
🎤 Aristurtle
21. Oct 2022 · 11:30 UTC
@ava-skoog Thanks!