top of page

Floranauts

Soon to be released on Steam!

Third person multiplayer couch co-op game.

Travel the galaxy as a botanical astronaut, terraforming planets to claim them as your own. However outer space is not as lonely as you might think. Only one can remain victorious.

Roles

  • Project Manager

  • Lead Gameplay Programmer

  • Physics Developer

  • Level Design

  • Sound Design

  • Particle FX Artist

PlayersChasing.png

Because we were creating a couch co-op game, we knew from the get go to use Unity's input system package to make easy transitions between controllers and PC.

My Involvement

This project started as a group of 6 members working on it. Me and one other worked as lead programmers while incorporating assets made by others.

What I primarily worked on was player movement and the gravity system. Because this game relied on individual planets, I created a physics based player movement using Unity's rigidbody system. I incorporated Mixamo animations for all the actions of a player and made sure they worked with the physics events that could be triggered. The player rotates with the planet he is on, and moves around a spherical object rather than a flat surface. However he also switches which planet he is attracted to if he jumps to another planet using trigger events.

I also had to make sure the camera followed the player smoothly, rotating in all 3 axes rather than just in the traditional x and y axis. This took me on a deep dive into Quaternion and Euler angle math as I programmed a sort of virtual gimble.

Player
Movement

For both the player rotation and the camera rotation, I wanted to have a very smooth transition as the player switches planets, so instead of just changing his orientation at once, I gradually added force along the required axis of rotation to ensure by the time he reached the next planet, his orientation in relation to the new planet was correct.

Because every planet had it's own gravitational field, I carefully placed them as to not conflict with each other to provide a smooth player movement experience.

Game Mechanics

I also created the black hole system which teleports the player to a randomly selected point from an array of possible portal locations. This dynamic adds a randomized element that can hinder a player's ability to win quickly.

When coming up with the idea for this game, we wanted to make a fun competition against friends, so we decided to not include a player health dynamic. Instead we went for a items inventory system that allowed players to slow each other down, but not outright "kill" another player. I created the knockback system and worked the items ability to initiate that such as the tree branch weapon.

I programmed a projectile system for both the rocket launcher and the freeze gun which also communicate with the gravity system to add for a entertaining experience as projectiles zoom around the map looking for a place to land. Both projectiles have adjustable targeting which will attract to the player if near enough. I did not want 2 identical items so while the rocket launcher throws the opposing player into empty space, the freeze gun spawns a ice mound which not only slows down the other player, but can block his path if used strategically.

JetPack.png

Special Items

I also created items that don't necessarily harm the other player but rather help the player with the item. The jetpack adds a short boost that allows for faster travel between planets, while the energy drink actually increases the player's movement speed while on a planet. I found that adjusting player movement in this way caused bugs in my gravity system and player rotation, so I had to revisit my gravity scripts. I added functions to attract the player to the nearest planet, instead of just trigger events, to be called after jumping across the map with the jetpack. I also adjusted the gravity and rotation speed on the player while in speed boost.

Most of the items utilize particle effects to add an artistic element while also making it clear that an item is in use. I furthermore added sound effects for things like launching projectiles and explosions once they hit their target.

PlayerTreeBranch.png
JetPack.png

Public Release

After finishing the school project with the 6 members, and hosting a play-test event at my university, The other lead programmer and I decided that we wanted to officially release this game on steam. While none of the other participants were interesting in doing more work on the game, they were more than encouraging of us taking our joint idea further. We drafted legal documents to ensure fair division of shares and to officially release any rights to the development of the game for those who did not wish to participate. We then added a fellow student who was not originally on our team as a environment and character modeler. 

Changes to the Game

Because the majority of our assets were created on student licenses in Maya, ZBrush, and Substance, we purchased the needed commercial licenses and recreated all of our assets to avoid license infringement. We also wanted to add a variety of playable characters and introduce in game purchasing.

After watching others play our game and introducing it to new audiences to get all the feedback I could, I decided there were some major adjustments needed on player and camera movement specifically. I decided to use Cinemachine to help with smoother camera movement by adding follow dampening and adjustable camera positions per player preference. I furthermore added more rotational movement on the camera to allow for better visual navigation of the map. I also programmed the player to only orient itself to camera forward while moving to not only show off our new models but to also add to the freelook aspect of the camera movement.

I am still in the process of developing a better aim mechanic to shift more of the projectile use to the player rather than programmed targeting. I have incorporated camera movement into this, creating an aim toggle in our input system which transitions the camera into a scope position.

We also are working on cleaning up UI and overall player experience by adding a tutorial and better looking graphics.

Another change we have planned, lies in the dynamic of capturing planets. To lean farther into the plant theme, we are developing a procedural sprite grass/shrubbery effect which will spread across the planet to demonstrate it has been captured. This effect will also differ depending on the character and will allow us to add different plants to follow the theme of the variety of character designs.

The biggest change yet however is adding a network capability to the game. While we have since added 3 and 4 player to our local multiplayer, we are working on incorporating a lobby system and opening up the game for online play. While there is a lot more work to be done before this is available, we have enjoyed the huge learning experience it has been so far.

We can't wait to finally release this on Steam and see if others enjoy it as much as we have, but in the meantime we continue to work diligently and playtest it in the hopes to release the best game experience we can. Our deadline to release is early Summer 2024!

TitleScreen_edited.jpg

We are looking for as much feedback as we can get, so any recommendations for improvement are much appreciated! 

bottom of page