Game Jam #2 began on 13th October and lasted 3 weeks. The goal this time was "Shoot-em up" and the teams had been both expanded to average 4 per group and randomly assorted as opposed to being grouped based on those around you. My team consisted of the following:
- Programmer (me)
- Programmer
- Artist
- Designer
Off the bat, we were able to come up with a very solid idea for our game: A side-scrolling platformer where the player can shoot 360 degrees to kill zombies. The player can only see inside a small aura of light around them and must rely on lampposts and other light sources as well as directional audio cues to navigate the level.
The other programmer, just like my last partner, had never used a game engine prior to this course. As such, we settled on using Godot for this project. The reason we chose Godot is because its proprietary scripting language, known as GDscript, is pythonic. This means it is eerily similar to python, but enhanced and integrated enough that it is a viable solution for game development. We also found from trying out the engine that it was relatively easy to understand.
No engine is perfect, though, and we later find its downside is in the lack of community support for the engine's niche aspects (more on that later).
Creating a 2D side-scrolling platformer with a double jump was easy, and I was able to set it up within a few hours. I was also easily able to get the gun object (which would be both the character's arm and gun) to point to the position of the mouse while remaining with the body positionally. Creating the zombies was also rather simple thanks to the pythonic structure of GDscript that allowed me to easily implement their functionality as shown below.
The first major hurdle in development came in the form of the bullets. Since the player could shoot at any angle, I needed to implement a way for the bullets to move "forward". For those less knowledgeable in programming, everything operates on an axis. In the case of 2D games, they are typically x and y. So as a programmer, I can control the bullet's x and y coordinates to make it move horizontally and vertically. This would be fine if the player could only shoot in fixed angles (such as up, down, left and right), however, making the bullets move in a 'forward' direction at any random angle in any random direction is a lot more complicated. And for my own sanity in the future, I am going to make an entire post about exactly how I achieved it for all to see.
But for now, here was the state of the game after 4 hours of steady development and 8 gruelling hours of trying to make bullets be bullets:
Goodbye for now!
-JDM
Comments
Post a Comment