Dev Blog: Lighting Fires

Dev Blog: Lighting Fires

Since entering into production for Quench, we’ve been building out all of the gameplay by making the world much more dynamic and complex than our prototype ever was. Not only can you use your rain power to create water and bring the map to life, but wind is able to shift sands to uncover hidden objects, and lightning is able to start fires that can quickly become uncontrollable under the wrong circumstances. Many of these features are brand new and still very programmer-art-iffic. We have a Grand Plan™ to soon move all of these systems rendering into 3D with awesome particle effects, but as of this moment everything is a black-and-white demonstration of data flowing through the map that we use to help us debug. Don’t let that scare you though. We just want to give an insider’s look at how we get our work done before we have assets ready to see the final product in all of its shimmering polygonal glory. Until then, we’d love for you to take a look at a couple of short videos about fire and how it behaves, and a short discussion of some of the tools we’re using to help us design the behaviour of our environment even with so few assets to render what’s going on. Only YOU Can Prevent Forest Fires In this video, Jeff shows off the environment simulation with regards to fire and spread of heat in a level, including how fire reacts with water (rain, surface and groundwater), movement of fire with wind, and production of ash. Currently the simulation is not associated with 3D assets...
TOJam Tentacular!

TOJam Tentacular!

TOJam 10, possibly our favourite jam event in the city, just ran last week. James and I (Jeff) were lucky enough to be able to participate this year and we wanted to be able to give some nuggets of wisdom from the professional gamedev world to some students in the Humber Game Programming program that we recently both graduated from, so we formed a group with 3 first-year students from Humber, none of whom we had ever worked with. It was an awesome experience and I think we all worked together wonderfully, our floaters especially, to make possibly the nicest jam game I’ve ever worked on in my short career so far. The Core Team Game Design/Programming – Jeff Rose (Axon Interactive) Programming – James Zinger (Axon Interactive) Programming – Steven Jomha (Humber Student) Programming – Terry Katsoulis (Humber Student) Programming – Tyler Paisley (Humber Student) Floaters Sound Design – Sook Binning Music – Andrew Farnsworth (ACCRETION.of.PLANETESSIMALS) UI Design & Art – Dasha Gordeeva Special Thanks To Tabby Rose for her the game design contributions If you’d like to try out the game, you can play a (buggy) version here http://digitalmachinist.itch.io/the-cube-thing (Note that the menu controls are a little funky as of now, but that will soon be fixed). Some progress shots: Day 1, 10PM:   Day 2, 7PM:   Day 3, 7PM: Tabby and I worked on the game concept together in the couple of nights before the jam, combining puzzles like simple mazes and the classic Rubik’s cube problem. In our game, you start somewhere and need to get to somewhere else, but if you fall off...
Early Quench Footage

Early Quench Footage

The semester has drawn to a close and our first demonstration of Quench is up on YouTube. This is mostly a tech demo, but it shows off many of the core features we’re aiming to expand on to build out the major game mechanics, so I’m proud to have this out and in the public eye....
A Sea of Hexels

A Sea of Hexels

We’ve been working on the Quench pipeline tools for a couple of months now, and despite the apparently endless barrage of school assignments that keep slowing things down, we’ve managed to reach our first major milestone! As I mentioned in this post, our plan has been to closely integrate a hex-based pixel art editor called Hexels with Unity as a 2D map editor to let our map designers more easily do their work. We’ve got the initial stages of this process working and from this point forward we’ll be making more and more map features in Unity editable from Hexels. I figured that I would run through the stages that we’ve passed through on the way to a working (but still pretty unstable) product. First Steps When this integration process began, we planned to utilize Hexels’ XML output feature to pass data back and forth between it and Unity, but after a short email conversation with Ken Kopecky of Hex-Ray Studios (the developers behind Hexels) it was made clear to us that Hexels doesn’t actually read its own .XML output format. With that in mind, we realized that we’d have to bite the bullet and decode the Hexels binary .HXL file format. Thankfully Ken is amazing and happily provided us with a specification to follow in the process of building a C# .HXL reader/writer (Hexels itself is written in C++). Ultimately the power of Hexels has been well worth the effort, as it provides us with a ton of map editing features that would have been a mountain of work to implement from scratch in Unity as Editor extensions....
A* And My Love Of Excel

A* And My Love Of Excel

We’ve been working on the Quench editor and pipeline for about a month now, and before anything else, I want to know what I can and can’t get away with doing on an Android tablet. Over this past week I’ve performed a semi-scientific study to identify how best to use the A* algorithm in Quench. AI can be incredibly demanding on CPU resources. Having spent time studying robotics, I know the kind of computational power that often goes into academic robot designs with goals no more noble than ensuring even coverage of a surface by a Roomba. It can be surprising how much computation it can take to do something that seems trivial in the human experience. Quench is going to require that groups of animals have herd-level group-think AI and individual-animal-level AI that result in flocking/swarming behaviour to move as a group and also avoid enemies while finding their way through a map of hazards to reach a goal location. Our plan is to implement the group-level AI as an A* algorithm that runs at intervals to identify a clear path to follow. Flocking requires some further study before we can say how exactly that will work. With these goals in mind, I dove into the first assignment for my AI class at Humber to answer some important questions for myself. I wanted to know what factors cause the computation complexity of A* to grow most quickly, so that I could plan to mitigate or sidestep them. And so I wrote myself a simple A* testbed as a C# Console Application that utilized interfaces to specify the necessary...