Cretaceous Carnage 48 Hour Global Game Jam Post Mortem

Over the weekend Pixel Barons set out to create a game in 48 hours. The project ended up being Cretaceous Carnage, a dinosaur fighting game inspired by Dino Rex, Primal Rage and classic 2D fighters. The game features four playable characters, three different stages and both arcade and verses modes in the vein of traditional fighting games. In this post the team takes a moment to reflect on the project and the process we undertook to create it.

Ivan
Modelling, texturing, rigging, animation, UI, environment art
On the modelling and texturing side of things I wanted to challenge myself. Last year’s game jam we attempted to do something that would push the art from a quantitative point of view. This year we wanted to step it up – the challenge was as many dinosaurs as we can model, texture and rig in the time available. We went out of our way to tell people that it would be eight unique dinosaurs knowing full well that falling short would still leave us with an ample selection and something to be proud of. One of the philosophical approaches to the game jam for us is the pressure cooker or stress test. Most systems never go through the intensive testing of speed or quality, for us, speed was the priority the quality level was intended to be of a 90’s pre-rendered game, cheesy 3d tv show or gumby claymation (of which Matt was unaware). Matt and myself have recently taken to Blender 2.8 which has some rather robust rendering tools of real-time rendering. The ideal was model and UV layout in Blender and texture in 3D Coat, after bringing the model back to Blender to be rigged, animated and rendered.

For the most part, the process worked well we had some hiccups along the way with saving from Blender not working as intended (user error) and normal map green channel needed to be flipped and a considerable portion of the animation had to be re-rendered. If I have to change anything I would have used more projection textures when texturing in 3D Coat. FX are always a big part of a fighting game and even though I love making FX they took a back seat on this project after the core and didn’t make it into the final game jam version of the game. The biggest take away is testing the process and personal approach is extremely useful and allows for a great leap in growth while highlighting false assumptions about own speed. If someone told me a year ago that we would try this I would have laughed.


Matt
Animation, UI, audio, environment art
We decided I should animate: I enjoyed animating the Rat, Lion and Elephant for Caesars Revenge and thought it would be fun to come up with all kinds of wacky attacks necessary for a fighting game. I’m not an animator by trade but when Ivan suggested modeling, rigging and animating the dinosaurs on his own I suggested a pipeline where Ivan would model and rig and I would animate and that’s what we went for. I ended up animating three of the characters (T.rex, Triceratops and Ankylosaurus, Ivan animated the Sloth) each has approximately 20 animations for attacks, movements, deaths, etc. Animation was all done in Blender using FK and I utilised offsets where possible to make the animations look fluid. Although I was originally unaware of Ivan’s vision for a claymation style aesthetic I’m glad the rendering and low frame count brings this out in the animations. When it came to designing the attacks I wanted variation in two things, speed of attacks and the hitbox of the attack controlling space. The main influence for this idea was a video here: Super SF2 Turbo Beginner Tutorial by David Sirlin. Traditionally I have not been into fighting games so the ideas presented here really helped me understand how to make combat interactions interesting. Controlling space is super important for making different characters play uniquely. Illustrated below:

Ankylosaurus is dangerous on the horizontal plane + a horizontal plane because of how his moves allow him to control this space. The T.rex alternatively is dangerous differently because he controls space in a tall but shorter roughly triangle shape in front of him (see above). Because of these danger zones you can play to keep the enemy player in range of your attacks and if you are aware of these you can position yourself out of danger and between controlled spaces safely.It was my first time using Blender since 2016 and my first time using Blender 2.8, so far I’m really enjoying the controls and workflow for animation, next time I would spend less time on the animations, I feel like they are overworked for a jam game. I would also like to experiment with IK for legs which would speed up the process, but I do feel the FK adds to the old school looking animation so we will see.

Trex Animation

Jordan
Programming, environment art
I wanted to program a type of game that would be a challenge to finish in the time frame. I played a lot of fighters when I was younger and it is something I always wanted to make. Our friend Adam told us a fighting game isn’t that hard: ‘it’s just inputs and hit detections’. This made me realise that the game had to have AI to make it the challenge I wanted it to be. The entire system is state driven with both AI and players working in the same way – this means the AI is simply reading the situation and simulates button presses in response. There is a base template with each dinosaur having slightly different weightings to actions in order to play to their own advantages. There is of course, a little bit of RNG in addition to a realistic reaction time to make it feel more human. It would be interesting to make this process more procedural where a move list is read without any need for finer tuning but I am quite happy with how it turned out given it was one of many parts that made up the weekend’s work.

Design wise I was inspired to reduce execution barriers – making the game more fun in versus mode and causal settings where it was more about strategy and spacing than memorising movelists. An interesting feature of the game is that it features quadrupeds (not all of who can even jump in the game) which is a bit of a departure from normal fighting game design. This meant that the overall flow of combat emphasised spacing and timing quite heavily from the start – in some ways it plays a little like Bushido Blade minus the one hit kills. There is still a lot of development to be had around balance – test playing and adjusting characters is tricky enough in a game jam but the strong connection between move design and animation meant the overall process for making adjustments is more than just tweaking values.

I’m not sure what I’d do different next time beyond typing faster. Learning how to code a fighting game was challenging enough but getting the fundamentals implemented more quickly would be good in order to get more time to polish on the last day. There was a bottleneck at the last minute in that we could have had an extra character artwise but there wouldn’t have been time to implement it effectively. Still, the success of this project was its scope – on the one hand it was insanely ambitious but on the other, we also didn’t over complicate things and worked within some technical constraints. For example, we wanted throw moves implemented but chose to leave them out in favour of unblockable heavy attacks which serve the same purpose of breaking guard without as much animation and programming overhead. Even simple things like foregoing a round timer, draw matches and using the same number of parallax background layers on each stage all added up in making the project more feasible for the timeframe.

Now that the jam is over we are still having a lot of fun playing game and are planning to add more to it (verses mode in particular is a blast). First we will be doing an overall update pass, attending to some things we ran out of time for as well as ironing out some bugs. Following that, expanding the stage and character roster will be a focus. Depending how that all goes, more game modes and fleshing out the single player content would be great to explore.

Play Cretaceous Carnage over on itch.io and let us know what you think!