Posted October 17, 2023 by Twixiduster
1. List of differences between concept and actual
Ships
Initial concept called for 4 ship types; fighter, gunship, corvette and hauler. In the finished game we have a drone, gunship(player), fighter/bomber, carrier.
Fighter removal – Technically the fighter is still in, it’s just now a fighter/bomber.
Corvette removal – the main reason for this is time, I was not able to get around to creating the sprite, or a movement system for it.
Hauler removal – the hauler was meant to be part of the extended game, a civilian vessel you could communicate with, perhaps steal cargo or attack if you wanted to, but would have some negative consequence for doing so. This was not implemented again due to time constraints.
Addition of drone – The drone was my first enemy ship, essentially a concept testing the movement, weapons etc, I kept it in because it helps the game to have another enemy type.
Addition of fighter/bomber – This was just the fighter however I needed an asset to test the missiles on, and once they were added I kept it.
Addition of Carrier – Whilst testing spawners I created the carrier sprite to have something to spawn them from, then added guns and missiles to it. The carrier remains somewhat incomplete itself. The movement script simply tells it to go in a circle.
Station
Initial concept called for a station to repair, upgrade, improve, purchase cargo and supplies. This was removed due to time/skill constraints, and because none of its functionality had been created.
Weapon loadouts
Concept called for weapons which could be swapped out for other weapons either found or purchased, and that weapons be upgradable to improve functionality. Unfortunately, due to my lack of skill + time constraints this has not happened, and the only weapons available are what is on player when the game is loaded.
Weapon types
Concept called for Lasers, beam, missiles, plasma, ballistic, electro-magnetic, however only laser balls and missiles were implemented. Again, lack of skill and time constraints prevented me from getting around to the others.
Enemies and combat
Initial concept called for the player to choose fight or flee, to have different enemy types, strength and numbers depending on location chosen, and rewards based on location.
The ability to choose fight or flee is redundant since each level is standalone, with no carryover of health, items equipment etc.
For strength and numbers based on location, this has not been implemented due to the map not being created, nor have randomisers been used.
For rewards, this has not been implemented as there is no way to upgrade player ship or weapons, and no currency or score.
Moral dilemmas
Initial concept called for moral dilemmas to occur when you enter a different location. These dilemmas were meant to have consequences based on decisions, and have options based on your ship and crew.
They could still technically exist and would be created if I had time, although they are a rather low priority as to function correctly, they would need the map, carryover of items, equipment, score, crew, or currency.
Permadeath
Initial concept called for permadeath, technically this may not have changed, because the game resets after any level, but this is not true permadeath, as you have nothing to lose anyway.
Map and exploration
Intention was to have showing different areas you can go, and the rewards would be based on the difficulty of that area. When you go in that area, you have another map showing different events to access. This was removed due to time constraints.
Random Event
Initial concept called for a random event when you load into a map, could be a combat zone, could be a station, decision dilemma, or civilian. This was removed because currently only enemies have been created besides the player, so no other event types can be generated.
Allies
Initial concept called for allies to encounter, that might be under attack or aiding you and your mission. Allies have not been implemented due to time constraints.
Storyline
Initial concept called for a storyline where you are hunting down an individual who is leading a terrorist cell against the dominion, and once you beat him you can keep playing and exploring.
This would have been completed after all the other parts of the game were in place, as it relies heavily on persistence between missions, being able to upgrade and having some dialog options.
Summary of differences between game and original
The initial concept was deliberately ambitious because this is something I want to create. I did not expect everything to be completed, however Lack of skill and available study time means I’ve completed far less than I was hoping for.
2. Tester feedback
Summary of feedback
Controls
There were mixed reactions to the movement controls, some people liked the unique style, some people did not like the ‘heavy’ feeling it gave the ship. The incremented movement speed gave similarly split reactions The attack controls were generally disliked because they had to be pressed consistently, using the same buttons as needed for turning. People liked there were the forward guns and the turret, but reactions were mixed on the front turrets not shooting out of their arcs.
Camera and Art
The feedback generally was that the art was nice, but the camera was too far back to be able to see it. In earlier builds people did not like the fixed camera and small gameplay area, nor the lack of a background. There was also disappointment in a lack of win or lose screen, or ability to replay after victory in earlier builds.
General
Needing enemies was much called for by testers the early builds. People also wanted the ability to switch weapons, and to have different weapon types. People were also disappointed in the lack of UI during the early builds, as there was no way to know your speed or health. In the final builds people said they had fun, but the game is lacking any polish.
Personal observations
All the feedback was quite valid and much of it reflected the state of the build they had tried. The ship was fairly sluggish to turn in the initial build. In the later builds most people didn’t mind the movement controls after a verbal explanation of how those controls were meant to influence the gameplay.
Feedback influence on the game
Camera too far back – This feedback was because the camera was so far out the ship looked small, pixilated, and difficult to see. The cameras intent at the time was to show off the movement, specifically that the ship turned slower when it moved faster. The camera now sits a lot closer to the players ship and follows it. The menu screen shows an up-close image of the player ship and some enemies, and just for fun you can shoot the enemies in that screen.
Background is bland – This feedback was because there was no background, just an empty blue screen. This has now been resolved using a space style background, then the background was made smaller to be less pixilated and put in a tile pattern so that it isn’t very noticeable when the player ship wraps around it.
Small play area – This was from the initial movement test, because it was confined to the one location and would loop indefinitely. The play area is now much larger allowing more freedom of movement.
Needs enemies – this feedback was provided prior to having enemies. They have now been implemented and can be shot and killed.
Mouse buttons would be better for shooting – This is because the q and e buttons are awkward to use with a and d simultaneously. A better choice would have been space, shift or ctrl for shooting when using keyboard. Shooting with the mouse is now enabled, along with the keyboard options. The forward guns are also on toggle so that the button doesn’t need to be pressed every time.
Unique movement increment – it was generally disliked that there was no way to tell what the movement speed was. Due to this the speed was limited to 5 increments, and a UI bar was added to display the current speed.
The feel of the ship turning – The initial feedback was that it was too slow to turn at speed, and that it could not turn at all whilst stationary. Due to this feedback, the ship was made able to turn whilst not moving, and the turn rate when moving was increased.
Weapon not shooting outside arc – There was frustration that the forward weapons did not fire when curser was outside their arc. If I had more skill and time, I would have implemented some kind of UI so that it was obvious what the turrets range was.
No way to tell controls in game – In earlier builds there was nothing in game to explain the controls. Due to this an in game ‘tutorial’ level to explain the key binds and safely move around has been added.
Feedback not acted upon
Switch weapon ability – This would be amazing, to be able to switch weapons by pressing 1234 etc. However, I did not have the skill to implement this in time.
No death or win screen – this is unfortunate, I didn’t have the time or skill to implement, which is disappointing as it makes a less engaging experience when it just cuts out.
3. List of assets and identified the source of each
Audio Files
Laser_cannon
Laser_cannon 1
Missile_Fire_War
Rocket_Thrusters
Prefabs
DoubleGreenBallPref
EnemyCarrier
EnemyDrone
EnemyLaserBall –
EnemyMissile
Explosion
FighterBomber
Player
PlayerMissile
RedBallPref
Scenes
CarrierLevel
Controls
DroneLevel
FighterLevel
LevelSelect
MenuScene
Settings
Scripts
CarrierMovement
DestroyAfterTime
DestroyOnCollision
DroneShooting
EnemyCounter
EnemyHealth
EnemyLockOnMissile
EnemyPointDefenceShooting
EnemyTurret360Shooting
EnemyTurretShooting
FighterMovement
FollowGameObject
HealthBar
HurtOnCollision
HurtShieldCollision
Menu
MissileSpammer
PlayerAmmunitionCauseDamage
PlayerHealth
PlayerLockOnMissile
PlayerMissileSpammer
PlayerMovement
PlayerTargeter
SceneSwitcher
Shields
Shooting
ShootingMainCannon
SpawnEnemy
TurretAIming
WrapAround
Sprites
Ball Turret
DoubleGreenBall
Drone
EnemyCarrier
FighterBomber
MainTurret
Missile
Missile2
Playership
RedBall
Shield
Space
SpaceBackground
Turret
Notable game objects
GameLogic
SpaceBackground
Outside sources
I did not use Github or Copilot.
In this project I used ChatGPT extensively for scripts whenever it was a new topic, or something that I hadn’t learned. Much of the code based on tutorial work, or ChatGPT then modified to work for each circumstance.
The following are links to ChatGPT
https://chat.openai.com/share/eb5dd3fe-c1ff-47fa-b8f6-45988dc5e628
https://chat.openai.com/share/e2b25fdc-222b-4d51-bb9b-860fea3fbde1
https://chat.openai.com/share/8ea83300-97fd-4c6e-adf7-f213f7b0022d
https://chat.openai.com/share/f161e7b8-f608-4434-bb29-d17188981464
https://chat.openai.com/share/1c07f864-1bdb-40ed-9c3f-01e9bcf57f28
https://chat.openai.com/share/635777eb-78c1-45c7-8aa8-2b1b298b227a
https://chat.openai.com/share/86b2f17e-d0ab-4d10-b732-463cb4efd7d1
https://chat.openai.com/share/4bd576fc-4476-4be6-8431-6f9a9e939e5d
https://chat.openai.com/share/c712ffb5-b029-4fa8-ad7e-d64ef05b8183
4. Name and controls
The name of this game: Dominion Upholder
Gameplay description:
Move your ship around in space whilst blasting enemies, destroy all the enemies in a level to win. If your ship runs out of health, it will be destroyed and you lose.
Controls
Movement controls:
Tap W and S to move forwards and backwards. Your speed will change in increments, one tap will set your speed to the next increment forwards or backwards. When moving forwards, you can hold down Spacebar to stop quickly.
Hold A or D to turn, your turn rate is affected by your speed, the faster you are moving, the slower you will turn. You will need to pay attention to your speed if you want to train your weapons onto the enemy.
Your speed will be displayed on the top left with the purple indicator.
Weapon controls:
Aiming is done with the Mouse Pointer, wherever the curser is, that is where your ship will attempt to shoot.
Forward guns are pointed to the front, they shoot rapidly but do-little damage, firing for these weapons are toggled. Press Q or Right Mouse to begin firing, then press again to stop. They can fire rapidly and indefinitely; however, their arcs are limited, and they will cease fire if you are targeting outside their arc.
The main cannon is fired using Left Shift or Left Mouse. It is far stronger than your forward guns and can shoot in any direction. However, it has a slow recharge rate, slower bullet speed and you need to click each time you want it to fire. The orange indicator in the top left will let you know when it is ready to fire.
A special weapon can be used once per round with the F key (It is a little buggy and will only work sometimes) this weapon will lock onto the closest 5 enemies and fire powerful missiles at them each time you press F until they are dead.
Other controls:
From the combat and practice scenes you can return to the menu at any time by pressing M.
For testing purposes, you can increase your health to 4000% of max by pressing U.
5. Game Functions
Stats:
Player shield: Your first layer of protection is your shield, this has 20 hit points, and will recharge at a rate of 1 point every 2 seconds, even if you’re in combat. However, if your shield is destroyed, it will not return. Your shield is displayed as the blue bar on the top left, you will also see your shield become more transparent as it is damaged.
Player health: Your ship has health of 25, health will not begin to lower until you lose your shield. Health does not regenerate, and when it reaches 0 you will lose. Your health is displayed as the green bar on the top left.
Player forward guns: Your forward weapons do 1 damage and shoot at a rate of 1 shot every half a second. (total DPS between both is 4) They each have a 110-degree arc from the front to their respective side and cannot shoot outside that arc. (red lines in the image below are the arcs)
Player cannon: Your cannon does 10 damage and can fire every 3 seconds (total DPS is 3.333) It can shoot in a full 360 and the ammunition travels at ¾ the speed of the forward guns.
Player Missiles: Your launchers were most certainly constructed by the lowest bidder. They will occasionally work. When they do, they should lock onto the closest 5 targets. When they hit a target, they will do 20 damage each.
Enemy Drone: This is a basic enemy, they will attempt to strafe you whilst firing, when they get close they will speed up to get past you, then turn around for another run. They have 1 health.
Enemy Fighter/Bomber: This is a medium enemy. Their movement is the same as the Drone, however these have 2 weapons, and a missile launcher. They will fire 5 homing missiles, then reload for 15 seconds. The missiles will last for 12 seconds. The missiles cannot be intercepted, but they can be outrun, or you can tank them with your shield. Large groups of these enemies are dangerous. They have 3 health.
Enemy Carrier: This is a large enemy. They will either move slowly in a large circle or be stationary. Carriers have 3 turrets that shoot very quickly, and in all directions. Carriers have 100 health, and will spawn drones until destroyed.
Winning and Losing:
Win: Defeat all the enemies in the map.
Defeat: If your health reaches 0 you will lose.
Levels:
Main menu: Lets you chose to go to level select by pressing play game, or check out the instructions and settings.
Level Select: When you press play game it will take you to a level select and you can choose one of the following 3 options:
DroneLevel: This level puts you up against multiple drone enemies. It should not be too challenging.
FighterLevel: This level has multiple fighter/bombers and drones. It can be challenging to deal with the missiles.
CarrierLevel: This level has 3 carriers, with an escort of 9 fighter/bombers, and continuous Drones being spawned. Try destroying the fighter/bomber escorts, then going after the carriers.
Controls: This is an empty level that can be accessed from the main menu directly, it allows you to fly around with no enemies to test your weapons, and provides basic tutorial information.
Settings: intended for updating sound settings. The options are not functional.
References
Mike Koenig n.d., Laser Cannon, SoundBible, viewed 14 Oct 2023, <https: soundbible.com="" 1771-laser-cannon.html=""> </https:>
SoundBible n.d, Missile Fire War, SoundBible, viewed 14 Oct 2023, <https: soundbible.com="" 201-missile-fire-war.html=""> </https:>
dobroride, n.d., Rocket Thrusters, SoundBibleviewed 14 Oct 2023, <https: soundbible.com="" search.php?q="Rocket+Thrusters"> </https:>