Alex McGilvray

Screenshot from my current Unreal 4 project

October 17th, 2015

This is a screenshot from my current project with the unreal engine. This isn’t exactly intentional but I do like it and might try to find a way to keep it :)




What I’ve been playing #004

September 9th, 2015


I recently got up very early in the morning so I could finally beat Bloodborne. As I suspected there is plenty of reason to go back and continue playing from New Game +. So if I can find the time then I’m certainly not done with this game yet.

I’m a really big fan of the Demon/Dark souls series so I expected to really enjoy this game and I did. The world is interesting, the art/graphics are very well done with a more consistent theme than usual. The game continues the tradition of telling a lot of the story and world lore by subtle events and environment in which the user must be observant to take it all in. I’ve always liked this way of presenting the world and lore rather than being to direct with explanatory dialogue or non-interactive cut scenes.

In the tradition of the series, gameplay rules are changed considerably from the other games. Shields are no longer a common item and changes in combat mechanics make overly defensive play the least viable strategy of all the souls games. I really like this and feel this is one of my favorite changes to the souls gameplay. Fighting feels much more exciting now. Especially PVP.

Here’s some footage of me playing a very early part of the game so you don’t have to worry about spoilers.

Here’s some footage showing why you want to make sure you don’t play in bright lighting conditions and accidentally walk into a hole.


New website look

July 27th, 2015

You may have noticed that my site now looks different. It’s a new custom wordpress theme I made for my website.

I’ve spent the last 3 weeks working on the site with approximately 30 hours of development time. The reason I decided to make my own theme is the following :

  • This site has a lot of static content that’s not necessarily easy to organize without using a ton of WP plugins. Even with the plugins it’s hard to manage.
  • I wanted a chance to practice some web and graphic design. I do a lot of programming and technical work these days. Practicing visual design helps keep me mentally balanced.
  • The existing wordpress themes I’ve used are never quite what I want and modifying them is always a hacky mess.
  • I wanted my site to look unique.

I will be writing up a small post-mortem this week going over exactly how I setup this theme, what went right and what went wrong.

Overall I’m personally quite happy with how everything went.

What I’ve been playing #003

June 30th, 2015

Dont Starve – PS4

I wasn’t sure I would be interested in playing this game for a couple reasons. First I felt I might be getting a bit bored of survival games. Second, relative to the games in my backlog it just wasn’t a priority.

Despite this, one Friday night before falling asleep with my partner I put the game on for a quick try and did and survived a couple nights before dying. My partner seemed mildly interested. Or so I thought…

The next day she picked up the game and started playing around a little bit. What I initially thought might be a half hour play session on Saturday morning ended up turning into a 7 hour Don’t Starve binge session. I kept coming upstairs to check on her only to get the response “I’m almost done playing, I’ll be down soon”. I remember how good it feels to get so immersed in a game like this that I felt happy for her to have found a game experience she likes this much. I was jealous too!

When she was ready to take a break at about 7 hours I started playing with her as my passenger seat driver. I’ve managed to make it about 11 days now. I think I’m at the point where I can see what I need to do to trigger the win condition which is make a rod item that allows me to escape the island I’m stuck on. It’s only a hunch at this point though since we are not using faq’s or guides at this point in time.

I think this game will continue to get quite a bit of play time over the next couple weeks so I will return with some more thoughts in the next article.

Here’s some gameplay from a playthrough the other night with my partner.

Marvel Vs Capcom 3 – Sony Vita

I have both a Sony Vita and Nintendo 3DS which I both love but statistically my Vita gets far more play time than my 3DS. There are a few reasons for this but the biggest reason by far is Marvel Vs Capcom 3.

The MvC3 port for Vita is amazing and fits the device so well.

MvC3 has 4 main buttons which fits the Vita’s responsive, well made buttons perfectly. The team tag buttons map to the Vita’s triggers which is fine for a game like this considering they aren’t really needed in any complicated, timing-heavy combo’s or inputs.

The very well implemented suspend feature works incredibly well with this game. What I mostly do is setup a training mode with my team and CPU at medium limited health and the rest of the standard arcade mode options. When the game is setup like this, immediately after a round ends the same match starts up again. It almost completely eliminates the wait and tedium or restarting a new match after the current one is open. In fact I don’t have any break from the action at all unless I want to change my team.

The end result of this setup is wherever I go. If I have to wait 2 mins or more I can just take out my Vita, hit the power button and have a match of MvC3 ready to go. No time wasting menus, no inter-fight animations or waiting. Just pure game.

There is an argument these days that games have too much non-game stuff you have to do to play them such as wade through menus, tutorials and even publisher splash screens. The setup I have going with MvC3 on my Vita is the antithesis of this problem.

Here’s a video of some high level tournament play :

Unreal Lightmass Study

June 22nd, 2015

So I recently took a vacation and during that time I thought I’d sit down and play with the Lightmass rendering system in the Unreal 4 engine and see how it compares to a high end renderer like mental ray. It turned out quite well although there were a few visual issues that came up.

Here is the series of images that shows my progress towards my scene match.


In this first pass I learned the lesson that when you have multiple monitors, make sure they are calibrated correctly. I had the reference image on one monitor and was doing the work in the other monitor.

They were the same monitor but one was hooked up using DVI while the other used HDMI. For whatever reason this caused them to have different color and temperature profiles.

Once I looked at them on the same monitor I began to see how different the two shots were.

The camera in my scene was also not setup very well. It didn’t match the shot and seemed to be a little rotated.


This second show shows some of the progress I made setting up the camera and getting the color profiles to match. I did this by checking the reference image and working in the same monitor.

Unfortunately there’s also some steps backwards here. The shadow on the floor is too sharp, there are bright light artifacts on the top of the screen. The floor texture is too dark and non-reflective. Finally the wall in the back of the scene had the floor texture applied to it!

The texture error seemed to be due to some funky stuff going on when exporting my model from Maya to Unreal. Resetting the materials and then re-applying materials per-face eventually fixed the issue. The materials always seemed correct in Maya though. It’s possible it was a exporter bug. It’s also possible it was a human error on my part.


This next pass cleans up the texture errors and attempts to make the floor texture better but still suffers from the over-bright corners in the top of the scene and the odd shadow on the floor on the bottom of the scene.

The floor shadow is also still too sharp.


In this pass a lot of the errors are starting to get cleaned up. I also modled in the small piece of trim along the bottom part of the wall.

The over bright corners at the top have been fixed up. This seems to have been a result of me dropping the global illumination contribution of my main light as well as disabling screen space ambient occlusion (I still use AO for the global illumination pass though).

The floor shadow is now also softer and the floor is more reflective.

Also starting here I broke my main light into 2 lights. One with a low GI contribution and very soft shadows to sort of act as a advanced ambient contribution light. The other light had sharper shadows and significantly less contribution to the global illumination calculations.


This final pass is where I told myself I just need to walk away from this project as it had now began to consume a decent amount of time. I was attempting to get some of the details that were blown out in the previous render visible again.

Unfortunately I deviated too much with my lighting color and took a bit of a step backwards from the previous render. There is also a slight artifact on the bottom trim where the wall changes angle.


This was a fun 2 hour quick project that ended up becoming a 6-8 hour study about how Unreal 4’s lighting and material system works. The lessons I learned from tweaking various material, light and render values helped me understand Unreal 4’s rendering process immensely but towards the end of the project the gains were becoming less and less profound so I cut myself off and considered this project complete.

I learned a lot and will be applying what I’ve learned here to all my future unreal projects.

FGSL #004 Milestone 1 complete!

April 12th, 2015

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

April 1st, 2015


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

March 24th, 2015

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

March 22nd, 2015

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

October 15th, 2014

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 :