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...
A Thirst for Quench

A Thirst for Quench

As school starts up again for the year (my final year!) my attention has been focused upon the project of grand scale that lays before me: my capstone. The project that no teacher at Humber will let you forget from the first moment you sit down in a classroom. It is intended to be your greatest achievement before graduating, and to mark your transition into professional video game development. I’ve been dying to get started. And so much thought and care has gone into my plan — and Axon’s plan — to bring my capstone project to life as a commercial game called Quench. Quench is a top-down hex-based puzzle game in which the player controls the weather to assist herds of animals though desolate landscapes and the dark spirits of the past. The player uses earthquakes, lightning, wind, rain and simple psychology to guide their flock to safety, and eventually restore the world. Since Axon is working on this project as a whole, I find myself in the enviable position of having a team of some of the most talented people I know from a wide range of fields to bring to bear in creating Quench. Furthermore, Axon will be bringing another another Humber Game Programming student named James Zinger onto the team, and so Quench will be shared as our student work masterpiece. All told, the Axon team for Quench is comprised of 6 people: Myself (Jeff Rose) – Programmer and Technical Direction James Zinger – Programmer Tabby Rose – UI Design and Creative Direction William (Bill) Nyman – Game Design, Level Design and QA Albert Fung...
The Game Triforce

The Game Triforce

I want to break down game development from a specifically programming perspective. So, let’s talk about this thing we’ve been kicking around the office, which we’re calling “The Game Triforce.” The Game Triforce consists of three distinct parts: Control, Display and Timekeeping.   Created with Haiku Deck, the free presentation app for iPad   Control Control is probably the easiest component to understand. It represents all of the inputs to your system. Controls require an interface (called a human-computer interface) which is how you, the player, communicate with the box that holds the game program. Here’s a non-exhaustive list of inputs: button presses key presses and holds mouse clicks analogue stick hold input text touch and multitouch motion control accelerometer joystick dance pad voice   Display Display, which is the output of a system, is everything in the game that can be perceived by the player. Another way to look at it is as feedback to the player. Display can (and should) involve many senses, not just sight. For example, in a fighting game, if you press the button for a punch, what kind of feedback could you expect? Punching animation on player character Punching sound effect Player character power level dropping Enemy character reaction (block, hit, dodge, etc) Enemy character reaction sound effect Enemy character HP bar dropping   Timekeeping Timekeeping is the last corner on the Triforce. You might not have considered this before, but many aspects of a game require some kind of timekeeping. Timekeeping is necessary whenever an action needs to happen through time. This includes every character, background, or GUI animation, some physics calculations...
Flash Devs FTW!

Flash Devs FTW!

About a month ago I posted a little survey to a few sites to see if I could gather some data about Flash developers for an upcoming class I’m teaching. I left the survey open to any dev who wanted to take it, but since I was focusing on Flash in particular, the majority of people who responded did actually use Flash in some way. Over the last month I managed to collect 124 responses (way more than I was expecting) so I wanted to share the responses with the community so that we can all benefit from the (admittedly extremely unscientific) research. So, let’s see what we have. I’ve visualized each question and I will point out my observations/caveats as we go. The survey allowed respondents to choose as many categories as they felt appropriate. The survey was aimed to game developers so I mostly wanted to see how many people self-identified with that description. In retrospect, I probably should have added a fourth category for web developers. Regardless, about 3/4 of the respondents identify as game devs. The vast majority of respondents use Flash for work. Obviously since I was targeting Flash devs in particular, this ought to be the case and doesn’t reflect the percentage of developers who use Flash in the whole industry, even specifically games. But it’s reassuring that some 100+ Flash developers exist and are willing to take surveys! This question was meant to determine if the studio/workplace had more than one Flash developer or if the person responding didn’t use Flash but a co-worker did. In retrospect this question was somewhat confusing...
TOJam: The Sevening!

TOJam: The Sevening!

Our latest outing was TOJam: The Sevening! The 7th iteration of it’s kind, this year’s TOJam (that is “T.O. Jam”, pronounced “Toe Jam”) was a game jam that hosted an awesome 410 people, making a dizzying number of games with only one long-weekend to do it. Since it’s not a competition, there’s just a pervasive atmosphere of productivity and adrenaline and progress that really gets the blood flowing. We were all too happy to be there to ride on that wave. The three of us (Bill, Tabby, and myself, Jeff) entered into the jam with Albert Fung, our distinguished 3D artist collaborator, and a new acquaintance of ours, Marty Bernie. Marty is an incredibly talented musician and we had an great time working with him. Our team of 5 worked together really well, and I think everyone involved is itching to work together again soon. Throughout the weekend, we put together the foundation to what will be a really interesting game, which we call Quench. Since this year’s theme at TOJam was the world is not ending, we wanted to make something that really captures a feeling of life, protection and restoration; a blend of Okami and Minecraft, if you will. Quench is a game in which you play the role of a demigod charged with controlling nature. You must assist herds of animals as they trek back home, through a parched wasteland, to the safety of the Elder Tree. Only by protecting the herds on their pilgrimage will the Elder Tree have the strength to make the world green once again. Wonderful concept aside, we had to cut...