Ultra Snake Game Development Log 2
Hello everyone! Welcome to the second devlog for the unnamed snake game Kelly and I have been working on. I will quickly sum up the things we accomplished and then go into greater detail about it later. Also, as I just said, this game is currently unnamed, so if anyone has a name idea, I am all ears! This last month we primarily worked on the following things: Fixing movement bugs, creating a level creation tool, creating Tiles of varying types as well as a tile manager, Enemies, and getting the first original art into the game. As always, I wasn’t able to work on the game as much as I had wanted this month, I probably worked no more than 10 hours in the last month getting it into its current form. If only I had infinite time and no sleep requirements and who knows where this project could be!
Movement:
One of the key factors that makes a game fun, especially a game about precise movement and timing, is that it FEELS good. I never thought that this prototype felt good to control, which was odd because I specifically had created an input buffer to manage inputs to make sure it felt responsive and like it was listening to me. Well, I realized that I had made some bugs in my code and it was actually only keeping two of the inputs and if I put in any more than that, it was kicking out the first one. To add to this, in snake, you can’t move in the direction you are already moving, nor can you do a 180 and flip around on a single tile. This made it so that the second input (which was now the first) was not doing anything. This was making the game feel incredibly unresponsive and unpredictable. This was fixed simply by better handling how I was checking for new input.
Editor Script:
So, this is a grid based game and I wanted all of the tiles to be touching each other and I wanted to ensure there would be no overlap or cracks between tiles. It is shocking, however, Unity does not have grid snapping tools available (at least not that I could find). So I went looking online and found a really nice tutorial on how to create a grid snapping tool so that I could place tiles into the scene quickly (this is until I create a script that will generate a map automatically). The tutorial was by Alan Zucconi and it is is linked here. This was incredibly useful to get things going quickly.
Tiles:
Another large piece of development the last month was the tiles and tile manager. This is such a crucial part of the game because each tile contains information on if the player can move on it, if the tile is occupied, if it should kill the player etc. This is useful because I need a registry of all the open tiles that are unoccupied, this registry is used when the player eats the apple and the apple needs to know of a new location that it can spawn that is not already occupied. This functionality will also be used to determine where enemies can spawn. The management of the tiles and the different kinds of tiles that exist will allow me to do other things in the game much more easily.
Enemies:
We also got the first enemy into the game, WHOOHOO! Currently there is only one kind of enemy, the classic slime, and it has only one possible move set. It is extremely basic. However, I have developed the base Enemy class in which I can utilize inheritance to bring over much of the functionality to future enemy types, I will continue to make more types with different functionality and movement capabilities. Currently for the slime it does as follows, Move Up, Stay, Move Down, Stay. It will kill the player on impact if it hits the player in the head, and the player can kill the slime if the player moves in front of the slime and the slime moves into the snake’s body or tail.
Art Assets:
We have also gotten some of the first art assets into the game, and while all the art is still a complete work in progress and is concept work, it is great to be getting rid of online placeholder work. Currently we are working on getting some tiles that can be placed and varied and don’t look jarring to the player. We are getting in some slime art, and hopefully some snake art soon! All of the art is being done by Kelly Abramowitz. She has barely had time to work on any of it, and this is her first time making digital art, but she is doing a great job and it is a lot of fun to work with her.
Future:
Going forwards there is still A LOT to do, this is basically normal snake with an enemy, how cool. Over the next month I am hoping to get some scoring implemented, I left space in the corners for some UI to keep track of your score and other things. I also hope to finalize the enemies so that they can spawn into the game and don’t need to be placed before the game starts. I am also hoping to get together a single power up so that the player can attack the enemies straight on and also bite through it’s own tail and also break down “soft walls.” Also, I would love if I could get the score/multiplier to affect the game speed. Not to go out of scope for my task list, however, I would also like to see if I can adjust all of the colliders and triggers to make it so that instead of the player moving in explicit “Ticks” the player will lerp between positions and create a smoother look for the game. I feel like that may be weird, but I need to see it before I discount it. Also further developing the art style and getting new assets in place to see how we feel about them will be incredibly important, hopefully we will be able to have the game with no online placeholder assets!
Final Notes:
We have been making good progress with this game so far! I am happy with where it is going and I hope that we can get a nice vertical slice by the end of the month so that we can work on creating content, game modes and more of the game systems. There isn’t much time until October and I would love to upload the vertical slice to itch and get feedback before then, we will see how everything goes and hopefully we can complete a lot before October! See you next month!