I’ve decided to try to make my first video game this week, and I’ve given myself the restriction of five days to complete this project. The usual thing to do is to have 48 hours like the Ludum Dare, but since this is my first game I don’t want to rush or lose any sleep over it. The goal is to make a short 2d platformer about a boy who falls into a well, and has to try to find his way out. The reasoning behind the well is so that the game takes place in a cave setting, meaning less art will be needed. Due to my lack of creativity, the game is named “The Well”. The engine will be done in from scratch in Java, as that’s what I have the most experience with. I tried to learn to use some libraries like Slick2d, but it took too much time, so I’ve decided to just stick to what I know.
Today, I’ve managed to get some of the foundation code set up. So far, the game loads a map and tilesheet (text files) and places a character for the player. So far, the player can move around, and collide with the walls of the level while the camera follows him around. I’ve decided to have three layers, a background layer, a collision layer, and a foreground layer. The reason there are three separate layers is to make the map editing more flexible, as there doesn’t need to be code for each type of tile possible. Another benefit of having separate layers is that each tile doesn’t have to be completely square. The collision layer and the foreground layer can have transparency without leaving holes in the level.
So far in terms of art, I am just using placeholder black and white tiles to show the background and the walls, but these will be replaced with proper tiles once I am done with them. I’ve also drawn a main character, but it is still a rough draft. For this project, the coding will probably be done first, with the art, music and level design done after all the main mechanics are in place.
The biggest challenge today was trying to structure my code. I spent so much time worrying about how object oriented the code is, and trying to make the engine really flexible. I realise now that it was premature optimisation that really isn’t needed for such a small project, so from now I am going to try to code quicker and just get as much content as I can done. Tomorrow I want to try to get done the coding for animations, some tight movement for the character, and a menu and options interface.
I’ll be making a blog post and video each day showing my progress and explaining a bit of my thought process behind my decisions. Overall, I think this project will be really helpful in terms of learning as I’ll have to use so many skills in such a condensed time frame. I am mainly a programmer, so naturally the coding is the most important part of the project to me, however making the entire game myself will force me to broaden my creativity. I’ll have to do all the drawing and music myself, and since I have very little experience in this I could really learn a lot from it. Another thing is that I am a terrible writer, I have always been terrible at English, so forcing myself to make these blog posts will hopefully help me work on that.