I had a great first experience participating in a game jam – 5th Alakajam. A three-day game jam where we1 wrote a primitive, real-time tactical strategy game: Sneak Out. The game is playable within a browser, thanks to raylib and WebAssembly.
We hit a lot of roadblocks which we swiftly hurdled. Normally I’d have spent days or weeks to “solve it perfectly” – a fool’s errand. A game jam makes you realize that the clock is constantly ticking and you don’t have that kind of time.
This is the most important step in the entire process. When you approach a new project, remember Gall’s Law:
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
- Make a game with just walking and scanning
- No power-ups or goodies
- Objective of just escaping undetected instead of collecting something
- Further cuts
- Many heros to one
- One simple, interesting map
- No HUD, just player controls needing no tutorial
- Help text
- About screen
- Game balance (tweak b/w too hard vs too easy)
These are absolutely needed to call something a game rather than a tech demo. When there’s a good-to-have feature vs showing help for an existing feature, choose the latter. I find it odd to even state this, but many developers naively overlook this because it isn’t as fun from a programming viewpoint; the ROI however is inversely proportional 😉.
- Colour-based Picking
- Writing geometry-based picking for a game jam is an overkill!
- Issues with inverted-Y and alpha (buildings) in reading texture
- raylib 2.0 doesn’t offer Bézier curves
- raylib expects filled figure points ordered counter-clockwise
- Functions returning
- Multiple return values with structured bindings (C++17)
- Functor of
- Functions returning
- Building raylib for WebAssembly
Managing to get cohesive, working code was load enough. We didn’t have time to spend on game art: searching, polishing, fitting, etc.
Characters were drawn with code; cobbling a triangle to a circle did the trick. 👍
Game jams and code jams are great exercises – not just technically but (project) managerially too! Most of my learnings were in this area. Of course, depending on your existing skills, you may learn more technically.
Participating in a jam is a very refreshing and rewarding experience. Highly recommended to break the vicious loop of not finishing started projects.