Space Shark
The Project
A mobile lane-based shooter. Created over 6 months for The Abertay module ‘Professional Project’ working on a brief set by FunPlus.
My Role
Project Manager / Programmer on a team of 8.
Project Description
In Space Shark, the player can swipe between lanes in a 3×3 grid to avoid obstacles and tap to shoot enemies. The game is split into 4 levels, each with different enemies and environments. The player also has access to power-ups which can be collected in the level and used by tapping a piece of UI.
The game was created as a team of 8 students for a cross-discipline university module. The module allows students to work on a brief set by an external client and the students communicate with the client and lecturers to deliver a prototype after 6 months. Our brief was set by Chinese game developers FunPlus to create a mobile arcade game. Our response was a Starfox meets Subway Surfers lane-based shooter.
My Contribution
In my role as team leader, I managed all internal and external communications as well as hosting all meetings. I was also the lead programmer and implemented most of the functionality for the game. Key contributions include:
- Lane based movement – the 9 lanes can be switched between by swiping in the desired direction. The lane’s location is easily adjusted in the unity editor to switch between landscape and portrait. The game was initially designed to be landscape, but we switched to portrait at a late stage at the suggestion of our clients, which was an easy change to make.
- Level segments – to provide a different experience each time to the player, the levels are procedurally generated from a bank of hand-designed segments grouped according to difficulty. The difficulty curve can be set for each level to choose how challenging it is, and random segments are placed to create the level – just beyond the view of the player so only currently used assets are being held in memory.
- Alpha shader – To stop obstacles obstructing the view of the player, a shader is used which fades out obstacles as they approach the camera, due to the performance limitations of mobile, this shader is only switched on when it is needed and only affects obstacles which would actually cause an issue.
- Source control management – The git repository used by all team members was handled by me, including training and a tutorial document which I prepared as none of them had used any source control prior to this project.
- Power-up system – A system for collecting/gifting power ups as well as using them was created by me, allowing the player to slow time / gain a one hit shield / gain invincibility / get a score boost / clear all enemies in the field of view.
- Polish – a loading screen system, menu and particle effects were all implemented by myself.
Learning Outcomes
Managing a group of 7 other students with varying levels of skill and commitment to the project was a tough challenge, as this was a prescribed team and I was previously used to working with motivated talented developers. In technical terms I learnt a lot about mobile optimisation especially with regard to memory management and mobile-suitable shaders.