Alex McGilvray

PSM Rush - Sony Vita & mobile game framework

Development status

Active 2012 Q4 - 2013 Q4

Language

C#

Technology used

PSM/OpenGL

PSM-Rushlib is a framework for developing games for the PSP-Vita and other Playstation Mobile (PSM) enabled devices such as the Xperia Play and Xperia Tablet Z. It is focused on making a framework for quickly and easily developing 2D games for PSM devices. I currently use it in my first game NekoRush and am using it in another educational game I’m currently developing.

  • Animation
  • String Rendering (via fontmap generation)
  • Camera system
  • AABB Collision via optimized version of the SAT algorithm
  • Efficient rendering (only two render submissions per render cycle)
  • State Management
  • Visual diagnostics system for profiling various code on device
  • Tilemaps
  • Light GUI framwork
  • Emitters

The current features are very basic such as scene management, multimedia controls and a basic component system to encourage creating objects via composition and reduce the likelihood of having deep inheritance hierarchies.

Here is a video of NekoRush during its development (I should really post a development video of a complete version of the game



PAEA

Development status

2011 - 2014

Language

C#

Technology used

XNA, MS Web application stack

PAEA is a research project for which I was hired as a programmer to implement a multi-tired application consisting of many software components that all had to communicate including a game, game engine, web application and backend software components.

The project is funded by the University of British Columbia and the British Columbia Institute of Technology.

Monorush 2D Game Framework

Development status

Active 2013 Q4 - 2014 Q2

Language

C#

Technology used

Monogame

Monorush (name subject to change) is a 2D framework I started working on early 2014. It is essentially a redo of my previous Heliopause engine but with the many lessons I've learned about programming in the 3 years between their conceptions.

I've switched the engine to run on the Monogame framework over the XNA. This is a trivial switch but it should be noted that the engine is specifically built to target Monogame if XNA and Monogame in the future have different interfaces.

The current features are very basic such as scene management, multimedia controls and a basic component system to encourage creating objects via composition and reduce the likelihood of having deep inheritance hierarchies.

I've developed a small shooter game using this framework as a proof of concept and am looking forward to a time where I can work on this project more. In the future I'm looking at removing the monogame backend for my own native backend solution. Here is a video of the shooter in question :



Heliopause 2D Game Framework

Development status

Active 2013 Q4 - 2014 Q2

Language

C#

Technology used

XNA

The Heliopause engine is a 2D engine/framework written in c#/XNA/.NET. The focus is on making a library and toolset that allow people to very quickly prototype 2D games of any kind.

My reasons for making this library were that I wanted to take the overall ease of use of Flixel but make certain features such as state mangement and sprite animation more robust. By using XNA I can also draw many more sprites onscreen than I could with Flash/Flixel.

Over the years I've used this framework for many different projects and game jams. It's been quite a workhorse for me but is now in retirement. By trying to emulate Flixel and it's heavy hiearchal design I started to bump into development blockers related to deep inheritance chains. These days if I want a C# 2d solution I use my monorush framework which has a very flat hiearchy. Nevertheless making this library and using it over the years was immensely educational and it will always have a special place in my heart because of that.

If you are interested in using this I would recommend using my Monorush framework instead. While it's not currently as feature complete I believe it will lead to smoother development and I do plan to port over features from this framework to monorush at some point. I mainly plan to port over the more robust animation system.

  • Sprite class
  • Graphical String class
  • Simple AABB Collisions
  • Custom GUI framework including many classes specifically intended for games and console game menus
  • Tilemaps
  • Resource Management (textures, fonts, sounds)
  • Debug console and debug tools
  • Stack-based state management
  • Particles
  • Emitters
  • Pixel Shader post process support
  • Camera system
  • Multiple 2D cameras and viewports
  • Intricate animation system with own .anm human readable file format for controlling animation timing on a per-frame basis
  • Animation editor tool for creating, saving and importing .anm files if you prefer to make them graphically than by hand

Here is a video of a small test game I did with a friend during its development.