Houston

WHY DID WE BRING BEES ON THIS SHIP?

This is a game in-progress (not yet finished) I am working on in Unity. The idea is that one player is in the cockpit of a rocket with minimal instrumentation, and must be given commands from another player who only sees the inside of their command center. This is based loosely on the game Keep Talking and Nobody Explodes, where the goal is a mix of humor and a sense of accomplishment and teamwork when the players are successful. I am not an artist of any sort, so all models and skins should be considered WIP - basically all of them are placeholders.

This is my first major project involving C#, though the language structure is very similar to Java, my strongest language. I once also attempted to write a VR chess game using C#, which was mildly successful, but I did not finish and moved on to other things before writing much of anything.

While I intended the game to be more silly, I got caught up in physics simulation and accidentally made an accurate simulation of a Saturn V rocket, including air resistance based on atmospheric pressure. I am still unsure if I will continue with this model or create a less simulated model

Most of my ideas for multiplayer interaction are not yet implemented, and neither is the multiplayer itself or any of the Control Center. This is a very early project but already utilizes some complex concepts.


Features

  • Realistic physics simulation for a Saturn V Rocket
  • Includes air resistance, weight loss due to fuel, gravity based upon distance to the planet
  • Randomized player-blind buttons - the operator is meant to relay the purpose of each button
  • Minor 'punishments' for pressing these buttons without direction, such as a 'jettison' button
  • Launch button will toggle rockets on or off
  • Full player control of rocket facing and rotation using QEWASD
  • Custom edited sky filter to display stars upon gaining atmospheric height
  • Ability to roam the cabin by using 'F' to exit piloting mode. Click the stick to pilot once more
  • Gravity applied on a roaming player based upon G forces on the craft and planetary gravity
  • 'Fake' ship - The player is inside a static model that displays the view of the moving model to reduce complications
  • Minor tree and terrain generation near launch site
  • Full-scale Earth and atmospheric mode

Known Bugs

  • Looking straight up or down can cause view problems
  • Rocket sounds do not end when thrusters cut
  • Resizing the game window causes the reticle to become offset from the center
  • Some textures or materials do not export properly when building with Unity
  • Unity WebPlayer sometimes offsets the game content slightly from the frame
  • Render issues at high altitudes due to precision problems

Image of the Game

Challenges

  • Learning Unity - I had never used Unity before and basically everything I scripted involved using Unity's functions. I was able to use the docs and various examples to accomplish everything I needed
  • Making Stars - I used an open source package to generate the stars, but they showed by default. I had to edit the material itself to make a gradient based upon my altitude variable and make them appear slowly as you gain altitude
  • Physics Problems - Unity has weird rules for parents and how they affect child movement; there was no effective way for me to simulate gravity on the rocket and also the player inside while both are moving. I instead cloned the ship to a static model and put the player in this, and made sure the window showed output from the moving model, and used G-Forces from the moving model to apply to the player when they are not in the pilot's seat
  • Licensing - I had to be very careful about any models, skins, sounds, and other assets I used to ensure they were licensed in a way that I could redistribute them with the game.
  • Standardization - I started this project to learn C#, but now that I have a grasp on it my next goal is to standardize the way I use functions, variable names, comment blocks, etc

Support Center 3

This was created at my previous job when their database system was running too slowly. This was only for personal use; I was not considered a programmer in this position.
Built with: Java

Sylva Bot

This was a chat moderation bot created for a client and actively updated with requests. It used multiple online services such as Discord, Twitter, Twitch, and others.
Built with: Java

Maptool Character Sheet

This is a character sheet designed for an online tabletop simulator. This is worth mentioning only because I managed to get a lot out of a very weak custom programming language that it uses, and it is very interactive.
Built with: MaptoolMacro and HTML/CSS