I worked on Gotta Herd’em All with creative630 and rawhed for Ludum Dare 37. The gist of this game is that you had to herd patients into a waiting room.
Truth be told, this game is pretty bad for many reasons, but at the same, it is the most fun that I have had on a technical level in a game jam.
The reasons for the above is because the game resides (except for the sound) in shaders and textures, where all the game logic, rendering, and game state were handled inside a few shaders that were joined together in a graph. Although the sound wasn’t generated in shaders, it was also created entirely in code. The reason we decided to do things this way was because we were inspired by some of the really crazy and amazing things people have done on ShaderToy.
We encountered a tonne of problems when making this game, which resulted in a pretty poor final game. Many of these problems were down to a lack of preparation, for example, I spent half a day writing a system to render numbers to the screen instead of having it implemented already. In addition to these types of problems, one other major problem we encountered was poor performance.
After some investigation, I found out that the actual cause for this was the c# code checking the game state in order to trigger sound effects. The reason why this was so slow was because it required a GPU->CPU copy of the game state texture. Normally this would not be much of an issue, as the texture’s dimensions were only 32×32, however, Unity has no option for asynchronously copying textures. This meant that every frame where we copied the texture to the CPU, a pipeline stall would occur. This was a very big problem for us since our game was so shader heavy.
I spent some time after the game jam thinking about how one would get around this issue, and came to the conclusion that you could just write a native unity plugin that did this. It would just take in some texture, do the copy natively, and then when the data is available, return it to the managed code.
Overall, despite this submission not being a good game, I believe we all learned a lot during this game jam, which I feel is much more valuable than just making a decent game.
Gotta Herd’em All can be found on the LD37 submission site here.