Three games made for a University group project module. I was Head of Programming in a team of 7, doing over half of the programming for the games.
Module Overview
One of my second year modules was a Software Engineering Project where teams of six worked to create three games over the course of the academic year which had to meet requirements given by the lecturers. My role in the team was as head of the programming sub-team, responsible for the development and design of the game I did over half the programming.
There were distinct phases of game development at the end of which teams had to present their game to the other teams and then had to take over the code and documentation of another team, and work on that for the next phase. Extra marks were given to teams whose code was chosen by other teams. Each phase lasted about 8 weeks.
Teams were free to use whatever tools/languages they liked to create the game with. We chose to use:
- Java - as we were taught Java in the previous year we decided it would be a good language to work in.
- libGDX - a Java game development framework. We decided to use this as it is similar to Monogame for C# which I and other members had previous experience with.
- Tiled - a tool providing a robust and simple map editor to help development.
We also chose to use scrum - an agile software development strategy for the development of our games.
I created videos/trailers for each of the games that my team made. These were used in the presentations and can be viewed below.
Brief
The Brief we were given was that our game must be about a duck travelling across the University campus, encountering various obstacles and with various objectives.
Each team is to build a single-player duck simulator game, which must take place at the University of York. Ducks have objectives, and use their innate or acquired abilities to try to achieve those objectives. When an objective is completed, the duck is awarded points.
Your game must take place at the University of York, but you do not have to include the entire campus. It must include at least eight locations.
The game must support at least eight different objectives. You must support at least two different types of objectives.
The game must support at least five different types of obstacles, including at least one randomly allocated obstacle and at least one objective-specific obstacle .
The game must support at least three different Duck Special Powers. Ducks innately have the ability to waddle (fairly slowly), swim (fairly briskly), and fly (quickly).
Games
Straight Outta Heslington
Straight Outta Heslington is the first game we made. It is a JRPG modelled after final fantasy. We felt that it a JRPG would easily allow us to meet all the given requirements from the brief. Another good thing about choosing a JRPG is that we could split the programming evenly between the battle system and the overworld system allowing sub-teams to work on each part seperately- increasing our speed.
I worked primarily on the battle system, ensuring that the backend for the system was robust and easily expandable which was important as we wanted to get as many teams as possible to choose our code-base at the swap point. Development went pretty smoothly and our decision to separate the two systems (overworld and battle) proved successful as we were able to work quickly in our subteams without interfering with the other sub-team. The point where we linked the two systems went well which further showed our decision paid off.
We also created very high quality documentation for the game including requirements, system architecture, risk management and team management documents. The documents we created were very useful for ensuring the quality of our game and ensuring we met all the requirements given to us.
Delivery
We had quite a lot implemented by the time we got to the end of the phase:
- Navigatable Overworld
- NPC’s with dialog
- Menu System where you can view party stats, skills and equipment
- Random battle system with multiple damage types, enemies and items
- A boss battle
Due to our system design, we ended up with a game whose systems could be added to and improved very easily.
Result
Three teams chose to take on our game for the next phase, the highest uptake of any of the games that were created. We got a mark of 76% for this phase.
Images
The Empire Strikes Quack
For the second phase we took over a top-down shooter game. It was fairly basic but had a level system where you complete the objective to go to the next level. All the enemies were melee enemies but there was some AI to make them follow you implemented. There were some powerups implemented a form of flying.
Development
We thought the basics of the game were good but it needed a lot of work to make it fun. We also heavily disliked the art-style and decided to do a full art-pass on the game. One of my team made a good sprite for the duck being a jedi and the star wars theme took off from there (The Force Awakens had recently come out). In the original game you could only face in four directions, we upped this to eight to make the player feel more responsive.
Other changes we made:
- Implemented swimming - the previous team should have done this
- Changed Flying mechanics - previously you would fly in the direction you were facing for a fixed amount of time
- Added a melee attack - wanted a satisfying way to deal with close-range enemies
- Added a ranged enemy - made movement and positioning more important
- Made enemy health visible - improved player feedback, made attacking more satisfying
- Added a more rewarding scoring system
- Added a kill x enemies objective
- Added a boss enemy on the last level
- Complete sound pass - changed all the sounds to better suit the theme
Delivery
We fulfilled all and surpassed some of the requirements for the end of the module phase. I think this game is the best one we delivered of the three, I really like how cohesive the game feels and when I was playtesting it I was surprised to find it was actually a lot of fun- I wasn’t sure if it would be fun to play in the end. The actual moment-to-moment fighting gameplay is fun but you can blitz through the game by skipping most of the levels and getting the flag immediately.
I am most proud of the boss fight. We had a couple of hours left before our self-imposed development cutoff/feature lock and we felt the end of the game was lacking so we decide to add a boss. It took roughly two hours from having the first ideas for the boss to having it fully implemented and playable. The team really pulled together to do all the things necessary to make it in that time and I find it one of the best bits of the game, I am very glad we added it.
Result
I believe our game was picked up by only one team - we were somewhat expecting this. Our game wasn’t as appealing to be taken on this time round, part of this I think is that we were going to be given requirements changes when starting the final phase and our game probably didn’t seem as easily extendable as other games. However I am very confident in saying that our game was the most polished/refined, actual game-like game of all those made for that phase I am proud of that. We got a mark of 87% for this phase.
Images
DuckShot
For this final phase we took on a game that had the same starting codebase that we had used in the second phase to create The Empire Strikes Quack. The game we took on here was that original codebase that had then been worked on by another team in the previous phase.
We were given a change in requirements for this phase:
- Demented Waterfowl - a small number of waterfowl (both player and ai) must be able to behave randomly and unpredictably
- For AI, they must have unpredictable or random behaviour (Cannot just be random path algorithms for navigation)
- The player must randomly contradict an instruction over a period of time
- It must be possible for demented waterfowl to return to normal through some means
- Two cheat methods - Add two forms of cheating, invent any type of cheat but make sure it doesn’t make the game too easy or unfair
Development
For the cheat requirements, we decided to follow the cheat methods in other older games, on the pause menu, if you enter a certain key combination, the cheat is activated. We added two cheats, one where an explosion graphics happens where your bullets impact and the other which when activated causes a duck to bounce around the screen, obstructing your view. The second cheat also gives you a score multiplier while it is active to compensate for the visual obstruction.
The harder requirement is the demented waterfowl. As far as the player character randomness, it is inherently frustrating and bad game design- having your player character ignore your inputs every now and again is infuriating. I decided to try and gamify the system instead- every now and again the player has to press the key that appears above the character’s head within a certain amount of time else their movement controls will change so the left key may move the player up etc. If they press the key in time they get a powerup for a short while as a reward. This system fulfills the requirements whilst adding another mechanic to the game, ensuring the player has to pay attention to their character regularly. For the AI, we made an enemy that will walk up to you and explode, shooting out damaging feathers in all directions - I think that counts as random behaviour.
Other changes we made:
- Added damage frames- Prevents the player from taking damage too quickly
- Improve powerups- made picking up a powerup add to the powerup time instead of overwriting
- Improved flying- the flying system was cumbersome, added greater freedom to it
- Completely redesigned menus- A complete art pass on the menus
- Improved the minimap- made it slightly transparent
- Made the player look where the mouse is- player could shoot backwards previously
- Had to refactor doubles to floats- the previous team had used doubles instead of floats which was unnecessary and lead to various odd effects
- Improved sounds and made new music
Delivery
We successfully delivered on time, meeting all requirements both with documentation and with the game.
Result
This was the last phase so teams didn’t take over games from other teams. We got a mark of 90% for this final phase.
















