Tag Archives: WorkHistory

FGSL #002 : How I’m building the project

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

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

Akumamatata dev video #3 : Game is done

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

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_Crossfire flow updates

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

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: