Alex McGilvray

Cult Retribution : Reloaded

November 3rd, 2011

Last year I posted some videos of a shooter I was working on in XNA. Unfortunately I ended up going to school for programming and then getting a job through the School’s CO-OP program. Well things have died down temporarily and I’ve had time to catch up on many game related projects I had to put down when my studies began. I now try to spend a few days a week working on the game. The artist for the game also comes over and works at my place 1-3 times a week.

I find that working from home there are a lot of distractions, by having another developer working along side of me we tend to keep each other focus and get more work done together than individually. It also helps to be able to discuss design decisions in person. IMO that will always be better than over the internet.

The game we are developing is Cult Retribution which is a shoot-em-up game with leveling and weapon purchase/upgrades. I plan to use some RPG concepts to encourage players to use a wide variety of weapons rather than just a few choice OP (overpowered) weapons. I plan to do this a couple ways. One is to have damage types for bullets much like the traditional Final Fantasy Fire-Ice-Lightning types. Attacking a fire-element enemy with fire element attacks would do little damage but attacking a fire-element enemy with ice element attacks would do lots of damage.

Progress on the game has been getting better and better. I started the game by writing the engine which is interesting but it’s not game development. There was a lot of initial time where the artist had to wait for me to figure out how thing will be done in the engine before he could start working.

I’ve now got most of the engine work out of the way and have decided to write LUA exporters for the DAME level editor rather than write my own level editor. This has saved me a ton of time and allowed me to focus more on the game itself rather than it’s supporting technology.

In this video you see me create a level in DAME really quickly. Export it. Then load the level in the engine and play it.

Plans next are to add various scrolling cloud layers to the game to give a sense of height in the game. Post-processing shaders for different events are also being investigated. We want the game to have a much darker look than what you currently see in the video.

I will be making a point to post often about Cult Retributions progress both for the readers and myself so I can guage how much work I’m getting done.

Update for May 2010 : What I’ve been up to

May 7th, 2010

Long time since my last post. Been finishing up school and havent had a lot of time for getting things done. Looking forward to finishing up a lot of projects this summer, some that have spanned 4 years. Here is a breakdown of where I’m at:

Firearms|Source : Valve Source Engine mod

I’ve been involved with this mod (and it’s previous mods before the merge) for over 4 years now. I would have never guessed it would take this long but then again I didnt know a lot about game development at the time when I joined. One of the best things about this project is due to necessity I ended up learning a passable knowledge about many aspects of game development, from character rigging/animation to code to general engine function. I would agree with the people who say that working on and completing a mod is probably more important to learning game development than taking some kind of game development course (and a hell of a lot cheaper). It’s good for training yourself to find answers to problems yourself rather than rely on a superior.

FAS should be released sometime in the month of July 2010! As per the timeline we posted here :

The Loop : Flixel Game

I’ve been working on this game in short 4-6 hour bursts when I have a brief moment or can’t take any more mathematics homework.  The gameplay is done, I’m having trouble writing the story though. I have a LOT of trouble with writing, I have the ideas in my head but I can’t articulate them well ingame. Hopefully a large bag of summer reading novels will help me get into the spirit.

The Loop should be released in June. After working on a 4+ year project it’s insanely satisfying to be able to make a whole game with all my own art, music and code in a matter 3 months on a very part time basis.

I can see Flixel being a part of my game development life for a long time (assuming flash doesnt get killed by HTML5) . Working with it is what I might consider game development stress relief.

Willow Engine : XNA Engine

I’ve begun developing the Willow Engine for fast XNA 2D game prototyping and development. I’ve been working on 2D game libraries for the last year on XNA but I had also been learning .NET and C# at the same time so naturally I made a lot of questionable design decisions while learning. Now that I have a much firmer grasp on C#/.NET/XNA I’ve begun to pursue something far more “professional” in nature.

The Willow Engine will consist of a few things:

  • The Game Library DLL
  • A Tilemap editor
  • A sprite editor

So far I haven’t begun on the tools, I’m currently in college learning .NET winforms development, so I plan on taking that on once I’m further into my winforms studies. As for the DLL, here is what I’ve completed:

  • Input management : Basic input management
  • Tile Engine/Tilemaps : Pretty basic tile engine
  • State Management : There is an emphasis on making this very easy
  • A Base -> Sprite -> Entity class heiarchy for game objects
  • SpriteLayers : for managing rendering more easily, everything must be committed to a sprite layer, currently no object has the ability to draw itself, I’m trying to keep it that way.
  • Animations : I’ve written a 2D animation system about 4-5 times and have a good idea of what I need. Easy submission and use of animations.
  • ToolBox : A Set of tool functions that exist in a global class. Some features include a texture repository to avoid duplicate textures in memory, housing for the input manager, & sound management.
  • 2D camera system : This has been fun to implement, it’s interesting to see how linear algebra is interpreted in programming code.  Currently only supports translation but rotation/scale is being worked on.

A short list of features I plan to work on

  • Entity > Physics : A physics adhering sprite for simple collisions
  • Particle Emitters : self explanetory
  • Defferred Rendering

I’m still deciding on whether to release this to the public. I think once the tools are done and I reach alpha I’ll release the engine for others to use.

Big thanks to Cale Dunlap & Venom Game Labs for providing SVN space and coding advice on this project. My singletons would still probably be not working if it was for his help. You can visit his site here :

Cult Retribution : XBLIG Game

I have teamed up with artist Shea Lane to make our first XBLIG release. It will be a top down shooter with light RPG elements in the vein of a Diablo skill tree. It will have a fairly dark artistic style which Shea is doing entirely.  Concept and design has REALLY ramped up over the last couple months and Shea has been banging out concept art and game art. I will be posting up some concept and possibly in game shots in the very near future.

PS_Caliber : Source engine map (I’m still mapping!)

While I have been coding a lot, I never plan to give up on level design and mapping, I have too much of a passion for it. I’ve now taken on the adage  that all my future maps should have ideally 100% of the assets created by me. So everything you see these shots, models, textures etc are all custom stuff I did the last month or so.

The map aims to fill the void FAS currently has for outdoor open maps. Historially it’s been very hard to get a outdoor map that both feels open yet doesnt alienate the FAS style of gameplay. I hope that this time around I achieve the right balance.

I’ve attached a few screen of it’s current very early state.

Deathning Dev vid #2

January 23rd, 2010

Here’s an update to the parallaxing background test I was doing before. I added a bullet manager, some collisions and “camera code” to keep the view on the player. I also went out and bought a xbox360 controller so I can start coding for its inputs and it is very nice.

Parallaxing Backgound

December 22nd, 2009

Made a parallaxing background manager that takes in a vector from something (in this case the player) and alters the background.

I ran into trouble with the math when I wanted to get extremely small parallax scale values.

The art is done by Shea L.

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 🙂

Been a long time since a coding/XNA post : Akuma’s Quest dev video 001

October 15th, 2009

I’ve spent some free time int he summer studying C# and XNA in preparation for school and just for the fun of game development. Years ago I did some introductory classes in programming at college, mostly in c++. I did well gradewise but all the exercises were about fundementals like making linked lists and pointer management, basically all console programs. I coulnd’t quite grasp how that would come together to form a useful windows program, much less a game.

After getting back into programming through C#/XNA I’ve managed to stay a lot more motivated than before. The language has had the effect of making c++ more understandable. I’m looking forward to really getting into the guts of the SourceSDK eventually.

So I have today some video footage of what is actually my first 2 projects:

The first is LemurLib, a 2D platforming game library that currently handles texture management, cel animation (both snap and linear), input handling, and has a premade protagonist class so you can get a character running in game with only a few lines of code and a textuer.

The second is Akuma’s quest, a personal project full of lifted sprites that promises to be both terrible and blashphemous. In the video you have the basic player character moving around with a teleport for fast movement and 2 attacks. The background is a quick parallax hack that I plan to replace with a well thought out implementation for the library.

One thing I’ve learned from this so far is that I really should have included a play duration parameter when you submit an animation to the animation manager, relying on the animation to just play perfectly without any sort of time comparison doesnt seem to work very well.

Note to self : Learn the programming language before learning the API

May 28th, 2009


A shot of a early version of Chilis Treat Quest

I have recently been reading Aaron Reeds XNA3.0 book for beginners without actually knowing C# to begin with. I have taken some entry level c++ programming nearly 7 years ago and my knowledge is rusty at best. Despite that, I’ve been having a blast going through the book and doing my own takes on his game projects. I did however order a few books from the same publisher Oreilly on the topics of C# so I can get to know some basics I’ve most likely overlooked.

I’m currently developing a game starring my cats Bug and Chili called “Chili’s Treat Quest”. It’s very similar to the first half of the XNA3.0’s 2D game project but I’m trying to do a few small modifications. Namely using different functionality for the sprites, nothing too far off at this point. For instance one enemy spawns and bounces around like a old screensaver until a certain number of bounces is met. At that point the sprite leaves the screen. Ideally I would like the number of bounces to be tied to the level that you’re currently playing but I haven’t gotten so far as implementing levels of difficulty yet.

I hope to have the game fairly complete by next week and then move onto a sidescrolling platformer type game in which my significant other will be doing the art for.