Matt Hughson

Just another game developer

Navigation Menu

Welcome to the Portfolio and Blog of Matt Hughson

A Game Programmer with 10 years of Industry Experience across all Major Platorms

Development

More work »

Blog

More posts »
Jan31

#1GAM Game 1: Dash Maximus

Posted on Jan 31 by

At the start of the New Year, I made a sort of nerdy New Year’s Resolution: to make 1 game every month, for an entire year. Month one is done, and I’m happy to say, so is my first game, Dash Maximus. Here’s the details: Development Stats Language: C# Engine: MonoGame 3.4 Platforms: Windows (DirectX) Resolution: 128×120 (half that of the NES!) Source: Open Source Development on this month’s game started surprisingly slow. You would think with the #1GAM challenge just starting, I would have a number of ideas just waiting to get out. But instead, I started with pretty much nothing. The first idea I really got anywhere with, was a kind of curling/billiards game where you flung cute animal faces around. It was going to be a kind of extreme mini-putt game, with power ups, and crazy courses, but it just wasn’t fun from the get-go. With such a short development time, I figured I needed something that was fun from day 1 in order to get anywhere by the end of the month. At that point I...

Dec31

#1GAM 2016 kick-off

Posted on Dec 31 by

In general, I find it pretty tough to maintain the motivation to make (and finish) games in my spare time. It’s not uncommon, I know. I program all day at work (and sometimes late into the evening), so by the time I get home, its temping to just veg-out on the couch, or do something completely different. My wife is a bit of a workaholic, so seeing her toiling away on her own personal projects, night after night, is a big motivator, but after having our first child last summer, it’s become even tougher for me to find that drive it takes to create. I love making indie games though, and when I go a long stretch without developing, it leaves me feeling remorseful; a feeling that I’ve wasted my time watching TV or playing games when I could have been making them! So this year, to help jump start my creative process, I’ve signed up for One Game A Month! As the name suggests, this group of developers commits to releasing a single game, every month of the year. Although making 12...

Aug05

Power Swipe Released

Posted on Aug 5 by

Earlier this year I released my 2nd substantial indie game, Power Swipe; almost one year to the day after the first line of code for the game was written! Like most projects, it was intended to be a relatively short development, but quickly grew into something much larger. The game is available exclusively on the Google Play Store completely free. No ads or in-app purchases. 100% free. I decided to take this approach after spending a good chunk of time implementing IAP in previous projects, only to see very few people actually buying the game. I figure this time around I will add some sort of monetization after the fact, if the game suddenly becomes popular. All signs point to that not happening. Power Swipe is a 2-player turn based strategy game inspired by the hits “Threes!” and “2048”. Each player attempts to capture the other player’s game pieces, as they work towards reaching the final tier: The Crown! Like my previous game, Swipe Tap Smash, Power Swipe was written in C# using the MonoGame SDK. When I wrote Swipe Tap...

Apr20

XNA to MonoGame.Android – Porting Primer

Posted on Apr 20 by

In June 2013 I released version 1.0 of Swipe Tap Smash, a Windows Phone game written in C# using XNA. By December of that year I was releasing version 1.2, and with it had implemented most of the major features I had wanted to add to the game. For the next version, the goal wasn’t to add any new features, but instead to port to a whole new platform: Android! I decided to take the approach that many other developers out there have taken or are thinking about taking: using MonoGame to bring my XNA game to Android. Although it seemed like many developers out there were taking this path, the road was not as smooth as I expected, and there was a lot of trial and error that I can hopefully reduce for others. When I first started looking at the port to Android, it seemed really simple. And then it quickly got really, really confusing. There are a lot of new terms and workflows, and they all seem to meld together, muddying the problems I ran into....

Jun22

Swipe Tap Smash Released

Posted on Jun 22 by

Motivated by a free phone offer, I spent last week or so crunching on a really small game project: Swipe Tap Smash for Windows Phone. I describe it as: Super Spike V’Ball meets Paper Toss! Volleyball with nothing but smashes! Flick your player into the air, and when the timing is right, tap the screen to send the ball flying! The goal is simple: just get as many consecutive spikes in a row as possible. It’s really quite a simple game, and was a lot of fun to make. The game is written in C# using XNA. It was my first time writting a game for Windows Phone (WP), but since I’ve been working on another PC/360 game with XNA for the last while, I was able to use that engine as a starting point and get things running very quickly. All I had to do was convert the Visual Studio Projects to Windows Phone (which is made very easy by the XNA tools), and then make some minor adjustments to the engine for the new platform. The biggest...

Apr07

DYNAMIC HPA*: PART 2

Posted on Apr 7 by

If you haven’t already, you should read part 1 of this blog first. To quickly recap the previous blog: My game uses standard A* for path finding, but would run into performance issues when trying to find paths around concave shapes. The problem is that once you go passed the destination, A* thinks you are going down a bad path and so it exhausts all other alternate paths first. The solution I found to this problem is an extension to A*, known as “Near Optimal Hierarchical Path-Finding”; often referred to as HPA*. All my work has been based on this white paper: http://webdocs.cs.ualberta.ca/~mmueller/ps/hpastar.pdf. This analogy summarizes the abstract theory of HPA* quite well: Consider the problem of traveling by car from Los Angeles, California, to Toronto, Ontario. Specically, what is the minimum distance to travel by car from 1234 Santa Monica Blvd in Los Angles to 4321 Yonge Street in Toronto? Given a detailed roadmap of North America, showing all roads annotated with driving distances, an A* implementation can compute the optimal (minimum distance) travel route. This might be an expensive computation, given the sheer size of the roadmap.   Of course, a...