The game jam ended yesterday!
The gamejam (raylib game jam) ended yesterday night and WE managed to submit a game! You can play it here.
Naturally, there were a couple of things that I would like to change after publish; I did some minor changes to the code and you can play that version here:
There is a lot to unwrap here and I intend to write a couple of posts about the various techniques used in the game. The purpose of this post is to provide the slightly updated version with access to the editor. The game controls work like this:
- WASD - move
- Space - jump
- T - toggle to editor, using the current level (if present)
- SHIFT-Q: Previous scene
- SHIFT-E: Next scene
Short recap
Initially, I wanted to work alone, but when the game jam was about to start, Cypress approached me and asked if I wanted to join his team. I know him from a discord server that's about Dreamcast game development (yes, the console). The other two on the team were Haikuno and Chao-Etta.
I am often reluctant to join teams, because it means commitment to me and also adapting the workflow to work together. I already have to compromise a lot in my day job, so I prefer to not do that in my free time. Luckily, the team was very easy to convince to work the way I would want to work, so it worked out nicely.
I did most of the programming and artwork, Cypress did the level design and some 3d modelling and did together with Haikuno the scripting of the scenes. Chao-Etta did not find so much time but did contribute a few pixel art assets of which we sadly couldn't use all.
The gamejam's topic was "connections" and Cypres and his team wanted to make a spooky game about reconnecting the memories of a ghost. I was not so sure about the topic as I am not a fan of horror, but it turned out to be a not so serious game and it was quite fun to work out the details together.
Technologies used
Aside from raylib, we did not use much other code:
- raylib - the game engine
- DuskGui - the ui framework I wrote a few months ago for my editor and game dev tools
- cJSON - by Dave Gamble, a very lightweight json parser
- raylib gamejam template with the extended functionality of hot code reloading that I created the week before the gamejam
As for the code written during the game jam, the most interesting part is the editor. Since this was to be a 3d game and we learned early on that the GLTF loader of raylib is not loading scenes in a well suited way for creating levels, I suggested to create a level editor. I expected this to take around 2 days, but naturally, it took longer.
Topics for future posts
I want to write about the following topics in the future, describing the techniques and how it influenced the workflows:
- Hot code reloading
- Level editor & structure of level code
- Scene scripting
- Artwork
I hope you enjoy the game! If you have any questions, feel free to approach me on
The github project can be found here: Castle Nexus GitHub project.