Alex McGilvray

FGSL #004 Milestone 1 complete!

2015/04/12 11:20:59 AM

Writing this blog post is the last of my tasks for this milestone I set for the fighting game study log. The organizational mix of Trello, Google Drive, Slack and Github for managing this project might be slightly overkill for a one developer project. Mainly I think I probably didn’t need Slack.

That said, once I setup Slack and its integrations there was no further upkeep required so it hasn’t been a loss in time at all. Plus I can use my Slack integrations feed to put together a chronological log of the projects development.

So here were the major goals outlined in Trello for the first milestone which are now complete.


  • Make list of all character states and draw into a flowchart. There will be a future FGSL post on this specifically.
  • Design a button remapping system for the joystick interface.
  • Design a button remapping system for the keyboard interface.
  • Design milestone 2 goals.
  • Fix up character movement speeds now that the game runs on a set fixed timestep.


  • Look up videos and articles to get a clearer understanding of some of the more advanced fighting game terminology.
  • Look up basic fighting game joystick holding techniques. There will most likely be a FGSL post on this specifically.


  • Implement joystick interface
  • Implement global keyboard system (for non-player related keyboard input)
  • Remove Alex D’s gamepad input library and use GLFW’s for now. In the future I may return to using this library if GLFW’s is lacking.
  • Implement joystick remapper.
  • Split character data types into mutable and constant data. For instance a movement data and movement constants.


  • Write FGSL log #003
  • Write FGSL log #004

Click to see the git log for milestone 1.


What I’ve been playing #002

2015/04/01 8:20:51 AM


I had some friends over recently for a drinking social night and decided to break out the PS3. We had a few rounds of Skullgirls. I brought that out mainly because the 2 of the people that were over were artists and I wanted to show them the art in SG (which is really well done).

After that we decided to break out Sportsfriends which none of us had ever played. I had gotten a copy for free from PS+ and hadn’t tried it yet. We had a blast playing Sportsfriends.

Sportsfriends is a collection of 4 mini games with a focus on local multiplayer.

Now when I say I played Sportsfriends, I mean BaraBariBall which is one of the 4 games that is part of Sportsfriends. We played this 99% of the time.

BaraBariBall is so much fun. What was supposed to be a few minutes of gaming before we got back to other non-gaming social endeavors turned into a 5 hour gaming marathon. The game is very easy to learn, even when you’ve had a few drinks and really promotes a part atmosphere.

The other games weren’t too impressive and we weren’t able to try Johan Sebastian Joust because I don’t have any playstation move controllers.If you are looking for great local multiplayer games for parties and people who don’t normally play video games then you can’t go wrong with BaraBariBall.


Guilty Gear Xrd

After maybe 10 years of knowing about Guilty Gears existance I’ve decided to finally take the plunge and try the series out. I ordered my copy of GG and have been having quite a lot of fun playing this game.

I’m totally prepared to admit that the tipping point for me to try this game is the insane graphical accomplishment this game has achieved. Once I saw how the game is actually 3d and read some white papers on how they accomplished the look I was sold.

So I already felt I had a good deal as a technical art study. It was a major bonus that the game is actually really really good.

If you come from a Street Fighter background you’ll notice that the game is much more forgiving, combos are much easier to execute. I believe everything is a chain rather than a link but I could be wrong about that. Regardless, I found myself not struggling on execution like I did with Street Fighter.

The characters are also generally awesome, my favorites being Faust and Ramlethal (confirm the spelling). Faust is just a crazy nutbar design with the ability to use intermensional doors.

Ramenthal has 2 huge swords and can use them for zoning, she also has a ton of target combo-like special moves that she can dispatch. She’s definitely a very interesting character to play.


PT is a free game on PSN for the PS4. It’s supposedly a mini Silent Hill. I haven’t played any Silent Hill games so I’m not sure how true that is.The game has you repeatedly walking down a hallway where things change slowly and get darker/scarier. The game I’d say it as its scariest when you are about halfway in when nothing has quite happened yet but you know something is going to happen.
Sometimes I found the scariness of the game was compromised from getting stuck on a puzzle. I ended up checking my phone to figure out how to get though one section and it pulled me out of the game.

Monster Hunter 4 Ultimate

About 18 months ago I came back from Japan and while I was there I discovered Monster Hunter on the PSP. I liked it but I also heard you need to play with friends. Since MH4 was already out in Japan and I didn’t know many monster hunter players I figured when I got back to Canada I would buy a 3ds and MH4.

I didn’t realize that there was no english release of MH4 and that it wouldn’t come out until a year after I bought my 3ds. Even worse, when MH4 finally did come out they released a new 3ds that plays MH4 with a better framerate and higher resolution graphics.I guess considering this is Nintendo I should have suspected that they might do something like this. It’s ultimately my fault for not confirming MH4 was released in English when I bought my 3ds.The game is great, if you have played Monster Hunter before then it will be very familiar, only much more refined. Despite my playing the game on an older 3ds it still looks fantastic.Also my work has a Monster Hunter club where we play at lunch and various times. This is really where teh game shines. We have a couple high rank players here who have been gracious enough to guide low level players like myself. As a result, in one lunch hour I got more monster parts than the entire 10 hours I played myself.

This is a great game for playing local multiplayer. It also has internet multiplayer which is also good but it’s never as good as being in the same room with the people you are playing with.

I worry about losing 500+ hours to this game.


Well I beat Strider and did a few of the challenge rooms as well.

I really liked the game overall, the style is great, the control is great and the combat is great. The biggest problem is that they take way too long to introduce you to all the character mechanics. The big issue with this is that the first hour of the game feels way too shallow because you don’t have enough moves. I’ve talked to quite a few people who were turned off on this game because of this. Hell I put it down the first time because I thought it was going to be too shallow.

I feel like they could have unlocked all the items in the first 10% of the game minus the weapon improvements and maybe the kunai. Also the launch attack I found clunky and it seemed to unoptimized to ever be used. I wonder if it would be more useful if it didn’t stop Strider from moving when it executes.

Here’s what Strider looks like when he’s more powered up and has more ability options.

So I wholeheartedly recommend playing this game if you are looking for some hyper-fighting Strider gameplay. The soundtrack is also really good. Particularly the Kazakh theme.


FGSL #003 Thoughts : Getting back into it

2015/03/24 11:00:27 AM

The last few months at work have been a tad exceptional and I’ve had to focus solely on work and use what little time I have to relax and spend time with friends and family. Now that things have begun to settle down I’ve promised myself I’d do one hour of development a day on personal projects. Any kind of development is fine as long as I’m learning.

One of the projects I want to spend time on is the fighting game study project I’m working on.So I’ve spent the mandatory weekend setting up my new computer with all my software and bringing over my projects.

I’ve now put the project up on source control. Needless to say the project is almost definitely going to chagne significantly in the future so I wouldn’t recommend forking it or anything at this point but in the interest of openness it’s up on github.

I’ve also setup Trello for keeping track of milestones. Finally I setup Slack on the recommendation of a friend and because it seems to be the new team communication thing so I might as well get familiar with it. To be honest on a project with one team member it seems a bit excessive but maybe I can do something like use the slack feed to have a realtime project progress widget for the website.

The github page for the project can be found here :

The trello page for milestone #001 is available for here.

The next blog post will be focusing on the milestone more in depth.

What I’ve been playing #001

2015/03/22 4:41:48 PM

Dark Souls 2

Been grinding away at Dark Souls 2. I’m only just realizing that the game consists of a hub with 4 major paths through the game. In a way it’s like Demons Souls but less obvious. I think they wanted it to feel like a continuous world like Dark Souls but it eventually becomes obvious that you are in a hub world.

The bosses are easier than the previous souls games. Much easier. I’ve only run into one boss that took a handful of tries to beat and that’s the dearest spider.

So far I’m not quite as engaged as the previous games. I think it’s more of a world design issue rather than me just starting to get tired of souls games. If Bloodbourne has good world design and similar gameplay then I’ll know whether or not I’m getting tired of the Souls gameplay style.


I played Strider once when I first got my PS4 about 3-4 months ago. I played for about 5 mins on the first level and turned it off. I thought the combat was a little simplistic and the lack of Strider stopping movement when attacking made it initially feel like there was a lack of impact.

I’m glad I went back because man is this a good game. The game has a lot of ability unlocks and you need to get the first charge unlock before the game really starts coming together. Once you have a few abilities the fact Strider doesn’t stop allows for some pretty fantastic looking combat.
Once you get past the first level you enter a metroidvania style world and then game becomes really really good. I stopped playing Dark Souls 2 to play more Strider!

I’m about 15-20% through the game so far and now that the difficulty is ramped up I’m having a blast. I plan to finish the game this weekend.

Here’s a video of one of the earlier boss fights. Just to note I captured this with the ps4 video capture. It’s pretty cool but it still lacks a lot of key features. I’ll address that in a separate article.

Rogue Legacy

I played Rogue Legacy about a year back and got briefly addicted to it before work and school started taking up all my gaming time.

I’ve now come back to it because it came out on Playstation Plus for Vita and PS4. In my opinion the Vita is the best platform for the game. The style of game lends itself perfectly for quick plays when commuting, when in bed at night or when you’re pooping.

I’ve now beaten the game once and started the new game+ type mode. My suspicion is that this game has multiple post-completion modes that make the game harder and harder.

This video shows a run that has a lot of the different gameplay elements that appear int the game. Castlevania-esque fighting and exploring, challenge rooms, bosses and leveling up your character.


I’ve been periodically playing Hearthstone. This is also the first F2P game I’ve spent money on. To the tune of about 150$. The game is fun but possibly a tad shallow. It certainly has me coming back all the time though.

I find personally I have a lot of trouble building decks. With a 30 card deck size you really have to focus on one set of synergy for cards. I tend to try to do too much with my decks which causes me to never get the combination of cards I want.

I’ve also noticed that high cost cards are really risky. Especially with cards like polymorph that can just completely shut down a card before you can use. Alexstraza gets around this with a battlecry ability that when used at an opportune time is worth it even without the 8/8 create you get. Her ability is to set a players health to 15. You can use this to cause massive damage to your opponent or heal yourself in a bind.

I’m trying to play this less these days because it can be a massive time suck when you keep  wanting to play just one more game.

Here’s a screenshot of one of the more interesting game states I managed to achieve.

Here’s one with 5 Kel Thuzads which IIRC was achieved by Echo of Mediva and Faceless Manipulator

Here’s one with 2 of that new guy that spawns a Leper Gnome after an enemy dies. Via Faceless Manipulator. That was fun.


I got Injustice for free on Playstation Plus for ps4. Since there aren’t many games for ps4 I’m interested in I’ve been messing around with this game here and there.

When I first heard about this game I was turned off because of the environments having set pieces you can use in game. This felt like it would hurt the balance too much. Whether or not that’s true it’s not as bad as I thought it would be.

The game is solid fun and has a bit of an MK9 feel but without the block button. So that’s already a good bonus.

I don’t know many characters in the DC universe and the roster looked a bit bland to me. I don’t think this is because of the characters themselves but the brown, dark toned look of the game causing a lot of characters to resemble each other in tone. Compared the highly saturated and colorful Marvel Vs Capcom it’s quite a profound difference.

Desert Golfing

Oh man this game. I first heard about it because a friend of my co-workers authored it. Later I heard about it on the Giantbombcast. Finally I broke down and spent the 2$ and got a copy for Android.

This is one of those games that made me step back and think about how I design games. I think I go too wide too fast when developing a game. For example if i were working on a platformer I might get a player with some basic movement then move on to working on a set of levels and then some enemies. The problem is that because I didn’t focus enough on making the movement and feel of the game good at the stage when I made the player, the rest of the game suffered.

Desert Golfing on the other hand is one small gameplay idea distilled and refined to perfection.

The game is insanely simple but there’s something about it. The fact the levels are generated from a fixed seed meaning everyone has the same near-infinite set of levels is pretty cool. It’s like everyone is playing through the same experience together. Considering the game slowly changes color and gets small changes in environment over a very long time is really interesting.

I think many of us playing this game are all secretly thinking that if we just play far enough into the game, we’ll find something. I’m currently approaching hole 200. A friend of mine on Twitter is approaching hole 3000. I’m sure there are people out there much further into the game.

One other awesome thing about the game is that YOU CAN’T RESTART. You have to live with your bad plays. There’s no main menu. When you start the game you just start on the last hole you played with your accumulated score on one side of the screen and your current hole score on the other. This is so great because it means that people who are competing aren’t able to factor in practicing a certain level in order to memorize the shots required to get a good score.

FGSL #002 : How I’m building the project

2014/10/15 3:30:15 PM

I thought to start out the series it might be worthwhile explaining how I’m going to build the fighting game.The game is being built using C++. No particular engine is being used, just a handful of libraries to help development. In the game’s current iteration I’m using the following api’s and libraries

  • OpenGL for rendering
  • GLFW for handling window management as well as keyboard and mouse input.
  • RapidJson for handling data mangement such as character frame data
  • ImGUI for handling debug gui elements

I’m using GLFW because I’m fairly familiar with the library. It’s a great way to get a window up so you can start focusing on your game and rendering code. I’m using OpenGL to render because it’s most familiar graphics API to me and I’d like to be able to target all the desktop OS’es at the very least. Right now I’m not being too careful about which spec I’m targeting but I’ll probably end up going for OpenGLES2 compliance since that’s the feature set I need and it tends to run on a lot of devices.

You can find out more about GLFW here :

RapidJson is the solution I chose when looking for Json soulutions via Google and various Json library comparison articles. I’m very happy with the library, it’s very easy to use. The reason I chose to use Json for data representation is really just so I can learn a new data definition format. I could have just as easily used XML but seeing as I’m very familiar with XML I figured I’d try something new. So far it’s working out great. I like the way you can declare arrays of data. Great for frame data definitions.

You can find out more about RapidJson here :

Here’s an example of some of the current frame data code definitions.


"looping": false,

		"lifespan"		: 72,
		"hitbox_body"	:
				"x"		: 10,
				"y"		: 10,
				"width"	: 150,
				"height": 350
		"hitbox_attack" :
					"x"		: 100,
					"y"		: 100,
					"width"	: 45,
					"height": 100,
					"damage": 5,
					"knockback" : 0.4

		"lifespan"		: 114,
		"hitbox_body"	:
				"x"		: 10,
				"y"		: 10,
				"width"	: 150,
				"height": 350
		"hitbox_attack" :
					"x"		: 50,
					"y"		: 100,
					"width"	: 245,
					"height": 50,
					"damage": 5,
					"knockback" : 0.4

ImGUI is a simple immidiate mode GUI system that is renderer agnostic and took essentially no effort to get hooked up in my rendering pipeline. I need a lot of diagnostic information when developing this game and didn’t want to spend a bunch of time making GUI elements. This library fit my needs perfectly. Small and un-intrusive. Exactly what I want in a GUI library.

Here’s a screenshot of the game with debug consoles enabled.

You can find out more about imgui here :

Opposable Eating Habits is released

2014/10/09 3:18:53 PM

I decided to spend a few more hours on my 3 hour game jam entry “3 Hour Opposite”. It’s now called Opposable Eating Habits.

Half of the time was spent adding some of the gameplay elements I didn’t have time to add during the 3 hours period of the game jam. The other half was exploring Haxe/OpenFL/Haxeflixel’s multiplatform capabilities.

After a small amount of pre-amble the Haxe development stack works surprisingly well. Getting the game to run in both Android and native Windows was relatively quite easy. I would definitely consider using the Haxe stack for mobile development in the future.

You can get the game for Windows or Android at Here is the link to the games profile page :

And here’s a screenshot of the game. It looks essentially the same as the 3 hour jam version :


HaxeFlixel pixel art piece : Chasing the Dead

2014/10/06 3:30:03 PM

In the interest of finishing open projects I finished up a small pixel art piece which has its motion driven with HaxeFlixel.

Always feels good to have something finished. Makes working on existing projects easier.

You can see it here :

Here’s a screenshot


I’ve been doing some cooking

2014/10/03 2:17:19 PM

A hobby I’ve always had is cooking. I was really sad and cancelled my cable when the Canadian food channel pretty much stopped showing cooking shows and only showed reality television or “food porn” shows that aren’t actually educational. That was around the time I cancelled my cable subscription.

Despite not being able to see shows like Chef at Home and French Food at Home I still like to cook when I can. Ideally I’d like to cook more often because even when my food isn’t super healthy , I still feel better than when I get takeout.

Anyways I’ve started a Tumblr where  I post about food I cooked that turned out well. I try not to post the total disasters 🙂

If you are interested you can visit the blog here:

Here’s a selection of my favorite entries I’ve put in the blog so far :


FGSL #001 : Introduction to the Fighting Game Study Log

2014/09/30 7:42:05 PM

I’ve begun a study of how fighting games are made and have decided to start a FGSL (Fighting Game Study Log) blog post series posting my findings and progress developing fighting game code.

Besides being a huge fan of fighting games I’m very interested in how you program a well made fighting game. To do my study I’ve decided to build a fighting game engine and game prototype. Experience making a fighting game is invaluable into learning how making a good fighting game is done. I need to try, fail, and learn about the different techniques that would be used to make a complex fighting game system. I don’t know how long this project will take offhand, I imagine it will go on quite a while at a slow but steady pace. I’ve found so far I’m spending more time reflecting on design than I am programming.

As a software developer, I’m very interested in how I would be able tomanage the relatively complex state machine logic of a fighting game character. I have some ideas which I’m implementing now but I’m sure I’ll learn a lot in the process and have a much better solution in the future.

Right now the game is done in C++ and uses OpenGL for rendering. I’m not using an engine because for this particular project there’s a level of control I want over game loop timing and device input that an engine typically abstracts away too much for my liking. I will get into more specifics on the libraries and technology I’m using in the FGSL blog post.

Over the course of this study I will be posting FGSL blog posts about my findings. They will roughly break up into a few different categories such as :

  • Design : I will focus on different design issues in fighting games. These posts will be high level and won’t involve any programming code or implementation details.
  • Development : Progress on the development of the fighting game I’m writing.
  • Implementation Spotlights : Articles on how I implemented a specific design feature. These will include code samples.
  • Thoughts : On topic fighting game posts that don’t necessarily fit into the other categories

I’m hoping to gain a lot of new knowledge across many different disciplines by doing this study. Some of the categories of knowledge I hope to improve in from this study include game design, c++, game programming, complex finite state machine implementation & art. I hope my findings also prove useful to other people studying similar topics.

Here is a image of the game as it currently stands, the progress of this photo actually reflects where I am development-wise in blog #004 in this series.


Sleeping Dogs Definitive Editon

2014/09/27 1:18:26 AM

The past 6 months I’ve been working at United Front Games and it’s been really great. It’s a lot of hard work but it’s really interesting work and I’m learning a ton from some of the very seasoned programmers I work with.

The first game I’ve worked on at UFG is now announced : Sleeping Dogs Definitive Edition. It’s been great working on a game I’m personally interested in. It really drives me to want to make the game as good as I possibly can.

Here’s some screenshots of the game.

sleeping-dogs-definitive-edition-crumple_1920 sleeping-dogs-definitive-edition-world_1920 sleeping-dogs-definitive-edition-brutal_1920