Brian Nguyen – 3160984
Nik Szafranek – 3173634
Brian – Creative and Development
Nik – Creative, Design and Asset Creation
Our project is a three player space survival co-op game. Players each have a role they must play on the space station in order survive until help arrives. Player 1 is the engineer of the ship, and must repair problems inside the ship. Player 2 is the pilot of the ship, they must steer the ship out of the way of asteroids and other space junk. While they are dodging the asteroids, items inside the ship will be affected by the thrust. This makes player 1’s job of acquiring items directly linked to player 2’s performance. Player 3 takes on the role of being the antagonist of the players. They control the path the asteroids will spawn on and their goal is to destroy the ship before help comes.
Our book inspiration is from How Do You Go To The Bathroom In Space. The book answers questions regarding daily functioning while in space written by a former astronaut. We brainstormed many different ideas based off this topic such as a toilet building game, reverse magic 8-ball style game, and even an AR experience. But settled on a Kings Quest inspired point and click game, which is where player 1 is heavily influenced. From then on we bounced ideas on how this make this an interactive, multi-user experience. Where eventually we ideated to create a space survival game, stemming from works such as Spaceteam, Keep Talking and Nobody Explodes, and Don’t Starve. Our original concept is different from our final due to time constraints. In the original concept, player 3 would be someone at Mission Control providing troubleshooting info from a manual. Similar to how the book itself is structured.
The order of events originally planned was as follows:
- Air filtration breaks
- Waste full
- Solar Panel hit by small meteorite;
- a) X amount of time before power level too low.
- b) Low power lights
- Sensors scrambled; Pilot can’t see Engineer
- Magnetic storm/Solar Flare; no contact with mission control for 1 hr
- Pipe leak
- A) Hole starts to grow because items are pulled into it.
- B) Pipe breaks
- C) Hull integrity damage
- Toilet clogged
- 1 thruster is broken
- A) restart
- Film on camera runs out
- A) Replace film
- B) Swap out film
- Thermostat breaks
- X amount of time before it is too hot
- Certain equipment won’t work if too hot
- Easier to miss keys; image distortion
- Die of heat stroke
We chose p5.js for the project because we were both comfortable using it and could develop the project quickly enough for the timeline. In hindsight, it might of been easier to learn and use Unity to build the point and click adventure game as there are no available libraries to aid in the creation. Clicking on objects in p5 takes a little extra time to setup the collision detection and classes, essentially we had to create a 2D game engine from scratch.
Implementation & Issues
The final implementation consists of three p5 sketches connected through PubNub. Assets were made with Affinity Designer. Player 1 uses p5.scenemanager.js to handle switching between rooms. Every room is split up into their individual js file for organizability.
- Game over state – Boolean
- Used for all players to determine when the game is over
- Thrust direction – “up” or “down”
- Used by player 1 to shift around items on the screen when player 2 moves the ship
- Ship position
- Displayed on player 3’s screen of where the ship is
- Updates only when player 2 stops moving as a balancing decision, during movement it will not update.
- Asteroid X Position
- The x position of where to spawn the next asteroid, set by player 3 and then used by player 2.
Demo & Code
Github Repo w/ Commented Code
Link to live links