Let's talk about the journey of creating...
Coffee Run
Language: Lua
Engine: Love2D
Time to Complete: 4 Days
My contributions:
- Platform Generation
- Collisions
- Victim Behaviour
- Scene Builder
- Some Tile Designs
This was my first game jam, and I was stoked to be doing it. I knew the guys on my team were great at what they did. When the theme was released, "That's not supposed to do that!" We got to work and it didn't take long before we knew the game would be about a coffee maker with legs. We began divvying up the work among the team and getting started.
I took on the task of getting platforms and collisions working. As part of a tutorial, I had already made a quick platformer game, so I felt confident I knew what I was doing. With our game being an endless runner of sorts and wanting to use a tile system, it made sense to me to create scenes of tiles that would randomly be selected and spawned off-screen as needed. We had decided to make each scene have a score needed before it would be able to spawn in allowing the player a gradual increase in difficulty the longer the played. The generation went smoothly and collisions were simple to implement. It wasn't long before my teammate got a player character working and we were joyfully jumping around a map.
The victim sprites were created and we had decided that they would run away from the player at a slower rate and complete the obstacles in doing so. My teammate got them spawning on screen and running from the player and I got to work on helping them overcome obstacles. Which, turned out to be fairly easy to do. We didn't want them to be experts. Just able to make it over enough to seem smart but make bad jumps as well. After giving them a slightly randomized jump power, telling them when to jump, some testing and tweaking, they were ready. At times they did better then myself.
With all my original tasks complete, I wanted to make a few more scenes for the game. Creating new scenes at first was easy. It was an array of zeros for empty spots and ones for a tile.
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
Once we had more tiles created and got into the double digits and were getting more creative trying to make hard scenes they became harder to understand by just placing numbers in an array.
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 9, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 4
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 1, 2, 3, 3, 12, 12, 12, 12, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0
1, 1, 2, 3, 12, 12, 12, 12, 12, 12, 12, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1
2, 3, 3, 7, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 3, 3, 3, 3, 0, 7, 3, 2, 2, 2, 2, 2, 2, 2
3, 0, 0, 0, 7, 0, 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3
My solution to the problem, a scene builder. A simple enough idea. It would allow us to create new scenes quicker as we would be able to visualize the map much better and the added bonus of giving the player the ability to customize their own gameplay. So when everyone went to bed I stayed up and by the time we all got to it the next day I almost had it complete. I knew that if I was going to use valuable time to create this it had to be done right. I didn't want to make something that didn't feel right with the rest of the game or felt incomplete in comparison. I had a duty to my team and would not let them down. By end of day we could create, play, save and load scenes.
With the bulk of my programming complete I started helping out with creating more tile assets to give the game and players more variety to the scenes. I made the assets, create/modified some scenes and began the fun of testing the game. How did it feel? Were there any bugs? After a few tweaks to jump height and gravity it felt great and of course there were bugs. Together got them fixed and the game was completely playable and running great.
As a last addition, we wanted to add a cutscene to the beginning of the game to tell the story showing the uprising of the coffee maker against it overlords the humans. Our artist got to work and spent hours on the final evening to get it complete. I stayed up late with him testing the game and waiting for him to finish so I could get it coded into the game. Now nighttime it was complete and in the wee hours of the morning it was done. Coffee Run, the four day game jam project, was complete.
Shout Outs...
Jacob Cormier - Programming
Jesse Henry - Programming
Bradley Hasson - Artwork
AJ Simms - Artwork