Videogames are software applications designed for interactive entertainment. They are available for home computers, dedicated games consoles, smartphones and tablets, and are an increasingly significant part of modern culture. They are also in most cases inaccessible to those with sight loss due to game designs that require the player to react to visual elements and on-screen feedback.
Audiogame Jam is a game jam event that ran between August 26th and September 5th 2016. The challenge was to make games playable in audio only so that those people with limited or no sight would be able to play them It was run to raise money for the Royal National Institute of Blind People, a charity that provides support and services to people with sight loss across the UK. RNIB are a charity that have provided me with a great deal of support since my sight loss through macular degeneration, and Audiogame Jam is my attempt to pay back some of that help through fund-raising,
I recently bought Pro Motion 6.5, a piece of software designed to allow the creation of pixel art. It’s quite good but has an interface that’s very unintuitive for someone used to Photoshop and GIMP. The online tutorial videos for it are also quite good if you can handle the terrible audio quality.
I did a little freelance work back in February – April this year but I’ve been reluctant to mention it here in case the game didn’t get released. It went live on Google Play last Thursday though so I guess now I can speak about it.
High Steaks was made by Future Fossil Studios in Dundee and I did some character animation and skin weighting for the main character. You can get it now on Android here. It’s free to play and pretty good.
Rewriting the character movement code for my character I found several approaches.
- Move by altering the transform.position of the character.
- Move using a character controller component and forces.
- Move using rigidBody component and forces.
The first of these worked fine but didn’t play well with my camera control code. Also, since I’d reworked the level generation code to automatically build invisible walls of box colliders in a corridor of any given width or height I wanted a solution that used these. Not using the colliders would have meant adding code to check whether the player would exceed the bounds of the level on the next frame, and I’d rather not have to write this if I can help it.
The second option seemed like a better fix. It would let me use the colliders I’d added to the level geometry but it became clear that I wouldn’t get the arcade style movement I wanted. Move() worked okay but SimpleMove() didn’t work at all, and neither allow any interaction with the Unity physics model. I saw a lot of negative feedback on the character controller component, so I decided to try the rigidBody instead.
In using rigidBody I was very much at the end of my rope in getting the movement I wanted. I found however that with some adjustments to the mass and drag of the player rigidBody and greatly increasing the gravity of Unity’s Input Axis functionality I could get very close to perfect movement; very responsive but with just a hint of inertia. It will need some tweaking no doubt once the game nears completion but it’s far better than it was. The final problem with this method is that, as it uses the physics engine of Unity it meant that friction was occurring between the player and level walls, though this was easily fixed by making a zero friction physics object and adding it to the box colliders of the level walls.
Some articles that were also useful in getting player movement right…