Alex McGilvray

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 : http://www.glfw.org/

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 : https://github.com/miloyip/rapidjson

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

{

"looping": false,

"frame_data":
	[
		{
		"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 : https://github.com/ocornut/imgui

Sleeping Dogs Definitive Editon

September 27th, 2014

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

Firearms:Source featured in PCGamer this month!

October 8th, 2010

Just found out PCGamer did a mini article on Firearms|Source this month. Gotta run to the store and pick up a copy!

Level/Environment Portfolio update March 2010

March 17th, 2010

The portfolio was getting severely out of date so I took some time the last couple days to update it.

Check it out here:

http://www.levelism.com/

Second FA map I ever released : sdtcps_outpost

March 12th, 2010

Found a working copy of the second map I ever did.  Had a blast testing this and playing around on it with my old FA clans.

Now if I can only find my first map : ps_CityConflict

Akumamatata dev video #3 : Game is done

November 13th, 2009

Finished up Akumamatata the other night. This would be the first full library and game I managed to make without having to constantly resort to a book or reference somewhere. I’m finally starting to get a grip on XNA, at least the 2D portion of it.

Over the next while I’ll be doing a handful of 2D projects this time with original content drawn by me and some friends.

Anyways here’s a vid of Akumamatata, no download link of course for obvious reasons :)

Ps_ForestPass an attempt an outdoor map in the source engine

October 23rd, 2009

Here’s a map I’m working on for FAS. It attempts to do an outdoor forest scene in Source which is a little rough.

I learned the value of modulation blend textures from this map, the quality increase from using them on your terrain blends is huge. The tree model is about my 4th attempt at doing an evergreen, I’m still not entirely happy with it but it’s improving every time which is good.

Ps_Derailed flow update

October 8th, 2009

It became apparent this map had some serious bottlenecking issues so I completely redid the red side of the map opening the path to the main area from one tight route to 4 routes. Blues side was also opened up considerably.

This map was also changed from 5 flags to 3 flags. I really look forward to playing the new version.

PS_Crossfire flow updates

October 8th, 2009

Well we’ve been playing ps_crossfire and it is maturing as a map but it was suffering from a set of narrow hallways that had a lack of identity and gameplay value. I went through the map and tried to turn these narrow hallways into rooms, when I could find a way I would try to find some way to attach it to a main route. An example would be turning a long stretch of hallway into a garage so that there can be some width and crossover to the main route.

Hopefully these changes will make it so that new players will be able to learn the map much faster.

PS_River remake for Firearms|Source

June 15th, 2009

Over the development of Firearms|Source quality control has gone up exponentially. If I were to count every map that was ever made for the first release of FAS it would be probably be between 20 and 30 maps. The reality of the situation is we have about 8 really really polished maps. Many maps died in the process that had good gameplay but didn’t stack up visually. My remake of ps_river is one of those maps.

Dont worry though, there should be a supplmentary mappack shortly after the release of FAS that will include this map among other classic remakes that didnt make it into the official build. I will have more news on that in the future.

in the meantime here’s some screenshots: