Random image of Textel, my bat fursona


LTU Forge Global Games Jam

Participated in my first games jam a couple weeks ago, the LTU Forge Global Games Jam. Super fun, a little stressful at times, but it was so exciting to be able to do it in such a welcoming environment. Coming out of it, I feel inspired and more experienced for having done it. I really want to do another; a feeling similarly expressed by my friends.

Carl Escape is a narritive/dialog based game, so naturally that was the first system we worked on.

Multiple dialog bubbles with focus on the currently talking character was the implementation we went with after a few iterations. Blukat worked on the data structure that backed this one.

Basic dialog

While the final game had only two characters, it allowed for dynamic names, backgrounds, and choices in the dialog tree

Dialog with full artwork

As the art and storyline came in from JD, JabberJaws, and BearAxe, Blukat and I plugged in the assets into the API, everyone coming together when things needed final tweaks. Half way through, the dialog front end was mostly complete so I switched over to working on the minigames.

The core minigame was a simple skill check to test the player during certain decisions of the game.

Quick text effect at the beginning and you get dropped in the game. Hit the green to win. It's faster and the win area smaller for more difficult versions of this game.

Skill check minigame gif showing that you have to stop in the bar in the green area

What was fun about these minigames being independent from the rest of the game is that they can be imported into the core game and placed anywhere. Being PIXI.Containers, they lived right in the scene graph with everything else.

Skill check minigame embeded into the main game

The other minigame started out as a bottle flipping game (I got a little side tracked) but turned into the final game for escaping Carl.

Thanks to some awesome last minute artwork from JD. You put the key in the hole to get back into your hours and escape the antagonist.

Minigame where you have to put the key in the door hole

I'm happy that in the end, the game worked when it was presented to everyone though it did have a bug or two. It works on both mobile portrait and desktop though should be barely playable at any resolution. Really wish I would've thought to use a transform: scale() on the game instead of writing a massive resize method though. I did this for a game at work recently and it was so much less work to set up that the one in Carl Escape.

During/after the jam I wrote down a few points to keep in mind for future projects/game jams:

  • Games jams are an exercise, not a test. This was something I told myself multiple times to lessen the anxiety.
  • Dead simple mechanics are easy to get down and then build on.
  • Narritive stories have tons of boilerplate.
  • Don't get caught up in making "the best game"
  • Trying to act as a leader for the team doesn't really work, it's everyone collective motivation and effort that will push the game over the finish line and really communicate what it's about. It's less anxiety that way too.
  • Parameters like group size, development experience, planning amount, game type, and engine choice/group engine use make quite a difference in how the game will come out.
  • Familiarity tools is essential in allowing people in their roles to be the most efficient with their time.

The other teams put together some really interesting ideas. It's impossible to compare between other's work due to the differences in team structure and team decisions, but I think ours held up well and got some good laughs at the final presentation. So glad to have participated in this!

Read More »

Chemistory Level and Net Code

chemistory level

Chemistory over the past couple weeks got a few new features, the biggest being an actual level and client/server networking code (or at least the start of it).


There's a separate build for client (Browser) and server (NodeJS), both of which run THREE.js and Oimo.js, though the server doesn't actually render anything. It took a switch to Gulp from Grunt, a pull request to WWOBJLoader2, and heavy use of ifdef-loader but it all actually talks to each other. Next steps are to add boilerplate for RPCs and member syncing and test out a little bit of multiplayer.

I really hope this goes quickly! I want to get back to game play and UI so I can start play-sharing it with my friends.

Read More »

HelloWorld Games Jam Outcome

My current company, HelloWorld, hosted a small games jam after hours. Over the course of 5 days, James (another dev at HW) and I put together two small concepts utilizing a networking engine one of my other coworkers wrote

The original concept for my game was platformer where the player must escape a pool of rising lava and race her friends to some sort of goal. The first step was intergrating the networking engine with THREE.js and physics to get 3D aesthetics and correct movement. The actual gameplay is quite shaky due to integration problems and time limitations.

Once the boilerplate was as complete as it could be, I spent a bit of time throwing together a test level and playtested it with James.

For some added spice, I tried my hand at adding an animated model for the player. THREE.js and Sketchfab made this easier than I expected though I had to use the converted GLTF format SketchFab provides (THREE.js's THREE.FBXLloader doesn't support animations and has other corner case issues).

Given the time constraints this is as far as I got but I say for an 8 hour game jam that's not too bad.

4 of the total 8 hours went into this integration

4 of the total 8 hours went into this integration

Player 2 can be seen stuck on the right side of the screen (mostly due to networking desync)

Player 2 can be seen stuck on the right side of the screen (mostly due to networking desync)

Say hi to Meelo the cat

Say hi to Meelo the cat

Super exciting and I'm looking forward to the next time I get to participate in a games jam. I've been keeping my eye on the The Forge to see if Lawrence Tech will host in 2019 where maybe a few people from HelloWorld can participate.

Read More »