Community Garden is ready to take a big step and go live to the public via an alpha preview build. This build isn't a representation of the final vision of Community but first step to get it in front of players and provide me a way to gather feedback. The build is not without bugs but the main concept and tech is present. Players should be able to get an understanding of what is possible with SpatialOS and what the future holds for Community Garden.
It's been a year and a half since I starting using SpatialOS. Being the first person to use SpatialOS with VR and being one of the first developers using the platform was challenging. Life with SpatialOS though didn't start with Community Garden. Before Community Garden, I was creating the code that would become MetaWorld but limitations with SpatialOS in regards to VR made MetaWorld's future dark and not promising. I decided to changed course and set out on my own to create something that could become the building blocks for something much bigger. During this time I've identified two key areas that were problematic for me during this time.
The first problem I ran into was testing. Due to the limitation with VR development and SpatialOS development, testing a new feature requires me to build my code and upload my build to the cloud servers hosted by Improbable. This can take 5-10 minutes (sometimes it has taken as long as 1 hour) depending on my internet connection speeds. Trying to rapidly prototype new ideas becomes impossible. Each change requires a lot of upfront design work and coding before testing. This resulted in ideas that required a lot of effort to be thrown out. In addition, I've been building Community Garden by myself so testing requires me to find people willing to donate their time. I would rather test new ideas constantly but instead I have to create many new systems at once so I could maximize my testing time.
SpatialOS provides the ability for developers to dream big. It's not without its problems. Version management has been a big issue for me. There have been 8 major releases and many point releases during that time. Some versions required me to perform complete rewrites using limited documentation. I'm currently running Community Garden on a version of SpatialOS that is 2 versions behind the current. The risk to upgrade is too great based on previous upgrade attempts that have introduce too many new bugs that crippled the project.
There are two main systems that are working with Community Garden. The first is the Player Rigs that allow players to interact with the world and with other players. The second is the world simulation that currently manages how the plants in the world grown and mature.
- Players are able to pick up and throw certain objects in the world.
- Players can use the hose in their right hand by squeezing the trigger.
- Players can see other players hands and head.
- Players can communicate using spatialized VOIP.
- Player can see other players eyes blink and their facial expressions change when they talk.
- Players can see other players mouths move using custom code based on Oculus's lipsync library.
- Interactions with objects are visible by other players.
- Moving objects in the world is persisted no matter if you log off.
- Of course there are cowboy hats, basketball and garden gnomes.
- Plants are created by getting seeds, placing them on soil and watering them.
- Plants grow using time scaled real world clock. Growth is based on real world data.
- Plants use water based on time scaled real world clock. Players must water plants through out the day.
- Plants growth slows based on water levels.
- Plants growth slows based on weeds and proximity to other plants.
- Weeds can be pulled by players
- Plants indicate when they can be harvested by showing a green check mark.
- If plants aren't harvested in time they will eventually die. After this they must be pulled and discarded.
- Harvested plants can be harvested by picking them and throwing them in the plant harvest stand nest to the seed vending machine.
There are a number of known issues with interactions and physics that must be addressed. Additional features to improve the experience of the garden are planned. The next steps are focused around immersion plus additional things for players to do.
- Day/night/weather cycles
- Additional plant simulation factors like disease and weather
- Better facial expressions
- Simple mini games like chess and checkers
- Better Oculus Rift support