Wordsum Blitz coming to Google Play

The first game I released after 10 years of failed projects was Wordsum. I was proud of this game, but during development, I let buzz words like IAP and CPI's cloud my judgment. The result was a game I was proud of but felt wasn't quite right. I started to make a follow-up game called Wordsum Blitz that would realize my vision.

Wordsum Blitz was released on iOS, but I never ported it to Google Play. The original Wordsum is still being download and played 3 years after it's release, so I thought it was time to bring Wordsum Blitz to Google Play. Look for Wordsum Blitz on Google Play on April 23rd!

Community Garden: A Massive Scale Virtual Reality Simulation

I've been very busy building the next release of Community Garden. The first release to Steam Early Access allowed me to test the viability of Improbable SpatialOS on a small scale with virtual reality. The next release takes Community Garden to the next level by increasing the world size exponentially, giving player's ability to customize their avatar and providing a starter home to player's in the metaverse. There are still some bugs to squash before I push this release to Steam but in the mean time check out the new trailer. 

Windows Mixed Reality Impressions

I'm super excited to announce that I have a new member of Pixelshot Games: Jennifer Reyes! She's been helping out with Community Garden by adding procedural generation to expand the city limits. Now that she's working on VR development with me, we had to get her a headset of her own.

At the local Windows store, we were able to try a few Windows Mixed Reality headsets. The one she ended up picking was the HP Mixed Reality HMD. Here are some of my impressions about it.

hp-mixed-reality-hmd.jpeg

Room Scale without External Sensors

The most impressive part about Windows Mixed Reality is the ability for the headset to support room scale without the need for any external sensors. The headset does all the tracking. The only thing you need to have room scale VR experience is the headset and two controllers which are included in your purchase. This is amazing for a number of reasons:

  • No external sensors to mount or setup.
  • Transporting your headset and controllers is so much easier. This means you can do virtual reality development on the go.
  •  

Low PC Requirements

The second thing that really impressed me was the low hardware specifications needed to run the headset. Basic functionality is supported with the following hardware:

  • Intel Core i5 7200U
  • 8 GB RAM
  • Integrated Intel® HD Graphics 620 or NVIDIA MX150/965M
  • Windows 10

This means most modern laptops can at least run some of the VR content available for the headset. Of course, other more graphic intensive applications require higher powered hardware. Community Garden, for example, requires a Nvidia 1060 or higher for the HTC Vive or Oculus Rift but I was able to run it on a Nvidia 1050Ti when using a Windows Mixed Reality headset. This is a huge plus since it will allow for more people to experience virtual reality.

Screen Quality

The screen quality is very high. I was impressed with the clarity of the display and didn't notice much if any screen dooring.  I would need to see a Oculus Rift again to compare, but I would say it's the best display I've seen to date. This is even more impressive considering the low price tag.

Easy Setup Process

The last thing that really impressed me was the setup process. Installing the updates to the new laptop to support Windows Mixed Reality was the only step in the process that took a long time. Once the update was complete, the installation and setup of the headset and controllers took minutes.

Summary

My time with Windows Mixed Reality has been short but I'm impressed with what it has to offer. This headset would be a good entry for anyone thinking of trying out virtual reality. I will need more time to see if the headset holds up but so far so good.

Having some fun with retro and government contracting

I've worked for a number of companies over the years as a programmer. My time at government contractor was particularly interesting. It was like working in a different parallel universe where everything looked the same but was strange. Unlike the commercial sector, we didn't worry much about deadlines or being first to market with an idea. Our struggles revolved around protecting the funding for our contracts. We had fought against bad Project Managers that would mismanage team resources. We fought to keep bad programmers from ruining code. At the end of the day, there was the threat of the government swooping in to take away our funding. No funding meant no job.

We joked that all of this sounded like a old video game. Something like Missile Command for the Atari 2600. The evils of the world trying to destroy our project while the lowly employee fought to defend it.

It sounded like a good idea but my skills as a video game developer were lacking and Unity hadn't become the giant it is today for indies. Fast forward 10+ years and I decided why not try to see what I can do in a week. I busted out my notebook and sketched a rough idea of what I envisioned.

 Design notes for game. This was my first time really trying to make pixel art so I tried to keep it simple. I also kept track of issue discovered during play testing.

Design notes for game. This was my first time really trying to make pixel art so I tried to keep it simple. I also kept track of issue discovered during play testing.

I faced some interested challenges along the way but after a week, I had something that was pretty fun.

 Final screenshot of Project Defender. Bad Programmers and the Gov weren't originally in the game but I added them to solve issues that came up during play testing.

Final screenshot of Project Defender. Bad Programmers and the Gov weren't originally in the game but I added them to solve issues that came up during play testing.

I really enjoyed taking a break from working on big projects to make this game. It was very helpful showing me some holes in my game design knowledge. Give the game a try and let me know what you think.

The Secret to Picking Up the Gnome in Community Garden

Being able to interact with objects is a key component to VR. Common player interactions include the ability to pick up objects, move objects around and set them back down. With previous versions of SpatialOS, implementing this was pretty easy. Unfortunately, with the latest version (V9) implementing these player actions isn't as straightforward. The code has become more flexible internally, but the documentation does not expose these new changes.

In previous versions, if a player wanted to pick up the gnome, a message would be sent from the player's entity to the gnome's entity to request ownership. The gnome would receive that message and handle the transfer of ownership to the player, allowing the player to move the gnome. I could not get this to work in Version 9 of Spatial OS, so I created a forum post to try to get some of my questions answered. 

After some back and forth with Improbable, I learned that I needed to modify the Entity's ACL when the player wanted control of the gnome. I tried to do this by building a new ACL which set the Player as the authority of the gnome using SetAcl(). Unfortunately, SetAcl() didn't seem to change the gnome's ACL. I tried to communicate this within my forum post and decided to create a simple fork of Improbable's PiratesTutorial Repo. I created a new branch and wrote some code with my current implementation. Check out my version of the PiratesTutorial.

Progress was still slow on the SpatialOS forums, so I tried a different approach. Instead of attempting to gain control of the gnome, I had the player send coordinates to the gnome's entity telling it where it wanted the gnome to move to. This worked but was not perfect and had one major issue with collision which you can read more about here.

Example of collision issue from alternative solution. Dropping the sphere in the planter should create a new plant but does not consistently.

Silly collision issues and still blank stares on my forum post...I was getting desperate at this point. I decided to make new post where I tried to explain my problem differently.

Eventually, the Improbable support team cloned my git repo and made some modifications. These changes revealed one major component I was missing. In SpatialOS, there is a concept of Readers and Writers in regards to an entity's state. With this new version of SpatialOS, it is required to use the new EntityAcl.Writer to make updates to the Entity's ACL. This allowed me to make the write access updates. Once I changed this, the player was able to take control of the gnome in the world.

Player can now pick up the the gnome.

I'm really glad this pesky gnome problem is out of the way. Not being able to interact with Community Garden's world would have really hurt player immersion. 

Update: I noticed this morning that Improbable forked my repo to help others work through similar problems. I happy to see the example being put to good use :) I think SpatialOS is easiest to under via example.