The Jackal – Ludum Dare 30

I recently completed a game with my friend Ryan Sand for Ludum Dare 30’s 72 hour game jam competition. I did the animation, effects, and programming. Ryan did the modeling and level design. Our game is called The Jackal.

Things that went well: 

  • We got the core of the game designed, as well as the ability to grey box levels by the end of the first day.  
  • I was really pleased with a few of the tools, such as the lights and lighting. They were really easy to use.
  • The aesthetic was graphic and simple. It reminded me of something like Powerpuff Girls.
  • I had done some tech testing ahead of time on things that would be useful to do for a variety of games (pathfinding, world space to screen space, raycasting, and a few others).
  • We kept to a limited scope.   
  • Giving the refugees names and backstories was a nice little extra.
  • We left the entire last day for bug fixing, and deployment
  • Game is easily streamable online. 

Things that went less well:

  • The game is a bit on the difficult side. 
  • Animations were done with the planning that the refugees would be carrying things.
  • We needed the entire last day for bug fixing and deployment. 
  • Integration wasn’t the smoothest. 
  • We didn’t convey the theme as well as we could have. 

I had a great time making this game and seeing old friends.  


Islands! A game jam post mortem

A couple weeks ago I corralled a few of my friends into gathering around a dining room table for 48 hours in an attempt to make a game. We took a random prompt from previous Ludum Dare contests and ended up with the prompt ‘Islands’.  We ended up on a game about trying to get home without letting your torch die in the unforgiving frozen wastes.

It's a cold, desolate word.

It’s a cold, desolate word.

Things that went well:

-We kept it simple.  You can only move forward, move the camera with your mouse, and crouch. I chose a toon shaded look to ensure that little to no time was spent unwrapping and texturing.

-Solid aesthetic. As there weren’t a lot of assets I got to spend a decent amount of time on the character and making him cold and miserable. One of the other guys does a lot of sound design and put together a really great soundscape that makes you feel the need to pull your coat over yourself.

-Food.  I cooked up a few dishes and a gallon of thai tea prior, there was also a good Costco run prior, we were not lacking for food.

-Experience with the tools. Prior to the jam we had all agreed on some basic tools that we would be using. I was the only one with Unity experience so I sat down with each person and ran over the basics of the programs, and how they would be communicating with the rest of hte game.

-Good people.  I enjoyed everyone I worked with, it was a lot of fun. This is very important.


Things that went not as well:

-Networking. We ended up at a place with not the best internet. Originally we were gonna use GIT, but somewhere along the way that fell by the wayside, we tried using Google Drive, and that was a disaster and messed up Unity’s exporting capabilities. We ended up sneakernetting it and building it on one computer.

-Lack of planning. We could have spent another hour or  2 on the planning phase. The levels got a bit rambly, some mechanics that were built weren’t implemented. There was a bit too much ‘punishing’ the player, without messaging them why. Proper naming convention (or lack there of) hurt us in certain spots as well.  I don’t know the difference between New_Scene and The_New_Scene, and The_Only_Scene.



We have another one on the calender for the upcoming Ludum Dare at the end of August.  Next time maybe we won’t aim for ‘miserable’ as the player experience.  It’s hard to tell if you succeeded or not.

A Goodbye to ‘What If’

My programming education is a hodgepodge of constant trial and error, frequent visits to stackoverflow as well as the unity forums, with a framework of the occasional OpenCourseWare programming class. So naturally I lack the broad cognitive overview that one gains through attaining a bachelors in computer science at a 4 year.

Generally I attempt to get any system I want to exist, up and running as soon as possible. I’m really just trying to get everything talking and shambling about on bare bones, it’s not pretty. Once it’s ambulatory I worry about the scalability and make sure I actually like the design (from the game perspective.) After a time, my shambling bag of bones gets prettied but then it starts to bloat uncontrollably and can no longer move. Whenever this happens, I do a deep dive into the internet and figure out what ‘core programming principle’ I didn’t know about this time  The most recent instance of this was on my move to truly understanding object oriented.

I am lucky to have some friends who are proper programmers that are willing to look at my code and tell me what I am doing hideously wrong. This last offense was from swelling ranks of if statement blocks. When combat starts, what skills will he be using? What if the opponent is holding a bludgeoning weapon? The bludgeon defense skill of course! What if our gladiator is using a sword? The sword attack skill of course! What if our gladiator is holding an ax? The ax skill of course!  . . .You can see how this can get out of hand quite quickly.

While the conversion isn’t complete, there are still a few ‘what if blocks’ hiding, awaiting their end. It will be done. I will no longer have think about what if I am wielding a chainsaw, that’s the chainsaws job.

Puppy Dragon

This is my first animation with a live action plate. I guess it’s a good thing I can still run into so many walls during the course of a single animation as it means that there is much more to learn. Though I fear severe cranial damage later in life.

Time & Messaging

After my most recent iteration on the game, I did my usual mass pestering of friends, acquaintances and unfortunate passer-by’s to play my game.  There were of course the mention of some bugs, some feature ideas and “I don’t know you, please I’m just trying to eat this meal before my lunch break is up.” But the bulk of the comments came down to the player’s interaction with time. While weeks do pass in the game, they have no meaning. While the battle does happen, the results are instantaneous. Both of these instances cause a disconnect between the player and the game.

On the note of weeks, passing time does improve the gladiator’s stats, and it does heal them.  However the unless they happen to check a particular’s gladiators stats each week AND that gladiator’s stat (or current state) cross a threshold, the player has no way of knowing this. They also have no reason to check the gladiators each week, the only thing a week does is gate them from being able to fight.

The battle happening instantaneously is an easier fix, now the battles happen through time. If the game ever gets to the point where I am adding art then it will be even more obvious fix, show the battle. But we aren’t there yet.  Having the battle happen through time does highlight some AI issues, such as when they combatants decide that they don’t want to fight and instead just circle each other for 30 rounds, that’s exciting.

My ideas on solutions to this is to give the player something to do during the week. This will take the form of a large new (and shiny) system which allows players to assign the gladiator training. This should allow the player to modify which stats are strong for each gladiator, define fighting preference (get in close, retreat when wounded, etc), gain and improve skills.  The code for this doesn’t seem to be anything outside of what has been done prior for this game.  However it comes back to my messaging issue.  This will still mean nothing if the effects of it never get back to the player.  I need to find a clean, and easily accessible way for the player to feel that their gladiator is training, and improving.  Most games would do this by having the player be able to see the stat block.  However as I never want to have the player see any numbers (except cost, and weight) this is much harder. It’s my current conundrum.

Gladiator V0.0.3

It’s been a while but the next version has been achieved.

It is here (Edit; bug fix in new link)

These things always take longer than expected but a good deal has been added.

  • A lot has been changed under the hood.  The system that damage use now reflects more what I want the feel to be.
  • Counter attacks and status effects now exist! Or at least the systems do, though counter attacks are a thing. Statuses will be.
  • More gear!
  • More moves!
  • More Arenas! Nearing game progression.
  • A calendar to let you know when battles are available.
  • You can now name a gladiator when you acquire them. Fancy having a school of famous playwrights who beat down everyone with rebar? This can happen.
  • Experience! You can’t see it, but it’s there. Like life kinda.
  • Facility upgrades so that your guys train better.
  • Very minuscule amounts of logic. Your gladiators will be more likely to disengage from each other if they are tired or wounded.
  • After reading my notes it would seem gladiators cannot be tired yet, future implementation note!

Many of the systems are an attempt to make it so that simply buying one gladiator and binge-ing said gladiator to all powerful face crusher, is no longer viable.

More thoughts on this later

Tangled Hair Breakdown

A really interesting look at the design process of an engineering intensive project, like Rapunzel’s hair in the movie Tangled.  The bloopers at the end are more akin to my experiences with physics driven cloth and air. Glad it isn’t only me.

Talking of game instances


The above is perhaps my favorite of the talks offered by the GDC vault.  It talks in a very interesting way about the player freedom, emergent gameplay and instances of games.  At minute 40 my favorite part of the talk begins when he discusses a specific instance of the game of Go, played in the late 1940’s.  This game is chronicled in Yasunari Kawabata’s novel “The Master of Go”, or Mejin in Japanese. He discusses the varied layers of meaning that become ascribed to the game.  If you have the time, it’s well worth a watch.