1.4a Features of Proposed Solution
Mechanics
Movement
Movement needs to be fluid and intuitive to use, as this will make the game more likely to be easier to use for a new player. Movement will be done using a linear acceleration on screen, with a varying amount of gravity on each planet. The player will automatically begin to slow down once a movement key is released, but it will not be an instant stop. The gravity and movement will be done using a basic physics engine such as Matter.js

Collisions
Collisions will be handled via the physics engine I use, and will not use a box method to calculate the size of a sprite as this leads to irritation where a sprite may collide in game when visually you weren't touching. This will be essential for the collisions with planets and space travel in game.
Controls
The controls will be both WASD and arrow keys, as this gives the player more options for how they play. There will also be other controls such as using E to interact and Shift to be able to speed up and Control to slow down, which will be based around using WASD as your main controls, but many people are used to using WASD in gaming anyway, so would make the most sense to use those.
Level Design and Layout
Fixed Camera View
The camera will be fixed, like in asteroids, and the background will move underneath as you move. This allows for open exploration of the map whilst also being simple to program, and easy to get used for the player. Additionally this adds an element of mystery, as if you haven't been in a certain area before, then you're unsure what is off screen and could be dangerous for the player.
Puzzle
The biggest difficulty with this game will be making everything efficient as possible and making sure that you explore to be able to find and get everything as without you will not be able to progress as quickly. You will also have to figure out how to make different items and how they are manufactured. The puzzles in the game will take some thinking about, but there will be hints and ways to find out how to figure out the puzzles easier so that a player doesn't get stuck in a certain part of the game.
This also means that the game can get more difficult as you progress to each level, as enemies get more demanding and there's more of them.
Obstacles
Obstacles are the perfect way to keep a player playing a game as you can make it so that the player can see the reward, but not be able to get to it. This means that they want to keep going to get the reward. Some obstacles may require logic and thinking to be able to complete them whilst others could be more simple such as...
Enemies
Enemies need to be varied to help add a challenge to the game. They will have set speeds for different enemies and this will help there be more variation, and adds to the challenge of the completing the game. The key role of enemies is to distract and move the player away from completion and this adds to the challenge and puzzle of getting to the end of each level, and make each planet harder to complete than they really are. Enemies also keep the player playing the game as it keeps them engaged in the game.

Graphics and Interface
Graphics and Design
I will be going with a simple vector style with simple rocket designs to reduce visual complexity and make it easier to see what you are looking at. Additionally this allows me to have more time to develop the game mechanics and systems rather than focusing on what they game looks like. I will also being using bright colours for the planets and environment to contrast the blackness of space, as well as bringing a nicer brighter theme to the game, rather than a dull an uninteresting looking game, like I stated I didn't like withFactorio.
Furthermore, making the game brighter makes it more accessible to more age ranges, as a brighter colour scheme makes it more inviting for younger audiences that may want to play, and widens the range of players from not just teens and above.
User Interface
The interface for this game will be relatively simple and easy to navigate. This will mean that it is easier to navigate to what you want, and is simple to read and use. I may also pursue the idea of having a space theme to it, based off of the game content. I may also use the UI to be able to show the player what planet they are currently on, and their progress through the game, which will allow them to be able to see how far through they are and what they were last doing or where they were at.
Saving and Restart System
Additionally the game needs to have some sort of saving system so that the player is able to pick up the game from where they were last and resume without having to restart the game and begin from scratch. This also allows for the option of having a restart button so that you are able to go back to a saved point, which allows for more playability and so the player can make mistakes and go back on those to improve how they play.
Limitations
Super Complex Building
Due to the time constraints making a fully custom way to build and design factories isn't possible, and will be limited to small sizes, or premade factories. Factory building such as what is is Satisfactory and Factorio simply isn't possible.

Deep Exploration and Map Size
Due to the scope of the project and the time limitations of the project, it is unreasonable to expect a massive explorable map with lots to explore and many different things to go and look at. There will be only a few 'planets' which are different maps, that will be limited in size and what there is, but will differ in what they offer and do.
Offered Across Platforms
There will be limitations in what computers and what devices can play the game as it will be web based and different computers will run different versions of a web browser, with different hardware and frameworks. I will aim to cover the majority of the most widely used browsers such as chrome and safari, but there will be limitations.
This also includes touch controls for mobile devices, as these would need separate code from the basic WASD controls and this would distract me from making the core functions of the game. Adding touch controls would widen the player base, but is not a necessity for the scope of this project.
Performance
The performance of the game is based off of the browser and the hardware that powers it. The browser can have a huge impact on the performance, but thankfully most commonly used browsers are usually very good in this regard. The performance of the computer or laptop will impact this greatly as different hardware acts differently under loads. I'll be testing this game on my M1 MacBook and my desktop PC that has an AMD Ryzen 5800x and RTX 3070. Both of these have fantastic performance, so will be difficult for me to test for slower hardware, and may lead to the game not running properly on older or slower hardware.
Art Style and Graphic Presentation
The game will have a basic art style that doesn't take up much time to make, and this is in order to focus on making the game itself and implementing the different features, as this is what matters most, and graphics to not contribute massively to a game with little to do. If I can find any, I will be using art from online, that I can use legally as this will reduce the amount of time I spend creating sprites and maps.
Last updated