Posted June 01, 2025 by BLejeune
#User Guide #Documentation #ufo #aliens #shooter
“No plan survives contact with the enemy” – someone old (seriously like a bunch of people are attributed to saying this first.) This is true of game development too, I think. The enemy ultimately is time and scope. Don’t Let Them Land suffered the same fate ultimately proving its original concept a little too ambitious for me given the circumstances. I think a combination of illness, a new job, other units and honestly a little ego all came into play when it came to not quite meeting the original design. I think I believed given my previous experience making things in Unity I wouldn’t run into issues and for the most part that was true but the issue I did run into was myself. I found myself too often perfecting or experimenting with a feature longer than I probably should have. I had fun with it if I’m honest which I think long term is my goal for game development, but it did complicate completing a specific design in a given time frame.
There were choices not to implement certain features given they made no sense in the current context of the game. Turrets and upgrades couldn’t be added until enemies were in a working. Boss waves and more weapons lacked a reason until the game got more difficult. I think looking back on things I wanted to make a game that was a 15–30-minute experience but I lacked the time to build the content to implement something like that.
Looking back at the original concept now in writing this, more of it ended up out of the game than I thought. This is a little disappointing, but I think I made a good call a week or two ago when I realised that the original concept wasn’t going to be viable in time. I took the time to re-evaluate and decide to work with what I had to build something solid out of that instead of adding new untested and unbalanced features that might be broken by the time this needed to be submitted. While my ambition could not be met, I’m happy to have found a functional (and hopefully fun) game instead of a buggy mess.
Below is a table of all the originally planned features and whether they made it into the game or not:
Feature | Implementation Status | Reasoning |
Central Planet w/ gravity | Implemented in full | - |
Player shoots lasers | Implemented in full | - |
Defensive Shield | Implemented in full | - |
Upgradeable player | Not Implemented | Balance |
Turrets | Not Implemented | Time |
UFOs | Implemented in full | - |
UFO Variants | Partial Implementation | Did not add EMF or Gatling UFOs due to time limits |
New Weapon Types | Nearly Implemented | A rocket weapon was very close to being implemented but removed due to both time and balance reasons |
Bosses | Nearly Implemented | However, the implementation would not be difficult and simply don’t exist due to time/balance constraints. The current enemy spawning code would have to be re-written |
Player Death | Implemented in full | - |
Game Over | Implemented in full | - |
Difficulty | Partial Implementation | The games difficulty does involve the tricky aspect of getting around the planet which was very important for the original concept but other than more enemies the difficult does not change and lacks a little balance honestly. |
Score | Implemented in full | Mostly full. Probably would have liked to have more than one high score slot |
UFO AI | Implemented in full | This one I’m most proud of and probably where most of the time was spent |
Gravity effected weapons | Implemented in full | Lacked weapon variety to take full effect of though |
Menus | Partial Implementation | Lacks a settings menu |
I think if I had an extra week or two then the rest of the features could have been implemented comfortably but I’m proud of the game I made and am happy with what I’ve submitted.
Also, it’s not all gloom. There are extra features I hadn’t planned on that were added in. Music, sound effects, particle effects and animations were all meant to take a back seat, but all ended up being implemented in full by the end of the project. These ended up pulling the game together. I think without them the game would have felt like a much lesser experience.
Having gamer friends who are willing and able to test your game and provide unbiased feedback on their experience was invaluable. Not only did the game improve drastically because of it but many bugs were noticed by them too that nearly made it into the final release. (The game is at 1.2 for a reason.)
One thing I noticed for myself is how much I played the game and how much my experience playing it shaped things. For example, those sound effects and particle systems only got added when I felt like I wanted to get positive feedback for shooting down a UFO.
The feedback throughout the semester I think has been overly quite positive and useful. People really seemed to like the unique aspects of the concept and how well-implemented it was as I progressed. My biggest concern was having the movement around the planet feel fluid and the feedback I got was it did indeed feel that way.
My next concern was how the camera felt and this was well-received for the most part but there were concerns and I personally had concerns for it so I spent a lot of time refining the camera but decided against keeping the planet centred a suggested in some feedback since it would require the camera to zoom out more to keep things in the frame. It was a balance between zoom level and centredness that I hope most people enjoy.
This was aided by adding in the doom arrows, so I didn’t need to zoom things out too much, but the player knew where the threats were coming from. The doom arrows weren’t originally in the concept either, but they just felt right once they were in. So hopefully that helps the camera concerns too.
Later in development there was feedback about it being difficult to get around the planet which honestly is exactly what I was looking for so I didn’t see a need to change things in terms of player speed, but a dash was suggested which if I had time could have added a strong upgrade choice.
There were only a few bugs pointed out by testers that I hadn’t already seen myself. I like to think the current version is bug-free, but I know it likely isn’t. One bug that was helpful in recent feedback was a change I made to lasers that let them shoot through the planet making the game way too easy which thankfully was an easy fix. Another was that the aiming felt a bit off and even included a suggestion for why (which ended up being at least partially accurate) but led to a much smoother shooting experience overall that I otherwise might have missed. Both were great catches. (I can’t believe I didn’t notice that you could shoot through the planet :D)
The following will contain a full list of all the assets in the project (some scripts that do similar things will be bundled together), their source and their purpose. For external sources, I’ll have references to their external links at the end of this document. This list is in no particular order, but I am going to leave some to the end that all relate to one another. I’ll bundle them into the folder structure of my project (which is not in any particularly good structure but at least one exists.) Where there are assets that hold references to assets elsewhere, they are not referenced in the holding asset. I.e. Prefabs have reference to external sprites but these are referenced in the sprites section for simplicity.
Don’t Let Them Land is a 2D survival shooter in which you play as a cute robot trying to defend his home from invading aliens. You need to shoot down the UFOs and any stray asteroids before you get overwhelmed and they manage to land. Using A and D to move side to side you traverse the surface of your planet to make sure you can get the angle to shoot down the enemy. Clicking or holding the left mouse button allows you to shoot your trusty laser gun and take down the crafty aliens. Jumping with the space bar can get you that little bit of extra height you might need to angle your shots just right. If it all gets too much you can hit escape to return to the main menu.
The main menu is where our defence starts. Here you can choose to start the game or see the high score. You can also turn on Lindsay Mode if the game is a little too challenging.
Here you get the display of the highest survival time of past invasions. Try to survive as long as you can to make your name. You can return to the Main Menu when you’re ready.
Here is the meat of Don’t Let Them Land. Here you defend your planet from the invading forces with the controls above. Keep going for as long as you can. Each UFO type has a different mechanic. Pink aliens shot lasers, yellow ones shot rockets and the beige (?) ones have a tractor beam. Asteroids will also pose a threat so make sure they don’t land either. You have a shield to help with the defence but it won’t hold forever. The robot will get destroyed if he collides with any of the enemies but will respawn after a few seconds. Shoot down the aliens and asteroids with your laser gun for as long as you can. If the shield goes down the aliens will try to rush the planet before it respawns.
Getting a new highest survival time prompts you to enter your name and this will be displayed on the High Score screen.
Regardless of if you get a high score or not after the game is concluded you are given the option to restart the game if you want. You also have the option to return to the Main Menu.
External assets used: