Hi, I'm Henry. In 2012 I quit my job as a programmer at BioWare to spend a year making my own indie games. This blog is about what happened next...

Like Spaceteam? Want to support my work?
Join the Spaceteam Admiral's Club!

Heavy Turbulence

*beep* *boop*

This is your Captain speaking.

We've been going through some rough weather since take-off. If you had seatbelts I would urge you to fasten them, but due to budget issues we had to cut some corners. My sensors are picking up:

  • Install/update problems on Android (error codes -504 and -505)
  • Restore Previous Purchases not working
  • Difficulty connecting to the Waiting Room
  • Crashes at the end of the game (when you crash in Spaceteam you crash in real life...?!)

With version 2.0.2 I think I've fixed the first two issues. I'll investigate the crash next, and the connection issues will continue to improve as CaptainsMess (my networking library) gets better.

I'm also getting messages begging me to bring back Bluetooth. I hear you! I'll bring it back as soon as I can. I've been getting some promising results so far from the Android Bluetooth Multiplayer Unity plugin. iOS might be a bit trickier but I'm sure I'll figure something out.

Other things I've been working on:

Blabyrinth Project Setup

Last week I spent several full days working on Blabyrinth and it felt great. Now that I'm more familiar with Unity I have a much better idea of how to structure everything.

Some of the Unity lessons I've learned from Spaceteam (these may not apply to other games):

  • Force all assets to be stored as text. Otherwise it's very hard to track changes in scenes and prefabs.
  • Use a lot more prefabs, even if the object is only used once. Try to keep the main scene as empty possible. But be very careful with "nested" prefabs.
  • Keep server & client classes totally separate. Never have ambiguity about which data lives where or who has access to what.
  • Put static game data in ScriptableObject classes, not in the scene hierarchy
  • Don't use Unity's built-in Animation Controller for simple 2D and UI animations, use a tweening library instead (like DOTween).
  • I ended up not making good use of PlayMaker, and it was the cause of some of the suspicious Android permissions. For Blabyrinth I'm going to keep my state machines in code.
  • Have an in-game log viewer and debug panel available from the beginning
  • Use more custom editors and property drawers
  • Use more coroutines and enumerators. But be careful about how and when they get cleaned up.

Modular Systems

I'm designing Blabyrinth to be pretty extensible and modular, both for my own sake to manage the scope of the project and also to give it some longevity with later expansions.

I'm breaking systems up into components that I can work on separately, and the scope and complexity of each can change independently:

  • Level Layout Generator — connectivity between rooms, secret passages, major landmark locations, etc.
  • Level Editor — by default the level and puzzles for each game session are procedurally generated. But I also want to support handmade or "curated" levels, allowing for levels made by guest contributors and eventually fan-made levels.
  • Puzzle Generator — locked doors and obstacles, clues, and solutions
  • Mysterious Diagram Generator — certain clues will involve diagrams that contain hidden information and look something like this: https://twitter.com/ebooks_goetia
  • "Riddle" Generator — a system for language-based clues, more on this later...
  • Item Appearances — general purpose items like keys and books will have many variations in style, shape, material, and colour
  • Level Appearances — cosmetic variations in the walls, floors, and scenery
  • Character Appearances
  • Custom Set Pieces — most rooms will be generated from a combination of reusable scenery elements, but there will also be unique special-purpose rooms used in certain situations
  • Character Abilities — each player will have one special ability that allows them to solve certain puzzles that no one else can, ensuring that everyone gets a chance to participate
  • Traps!
  • (Secret systems that I don't want to spoil yet...)

I'll start small and add things to each component as needed. This way I can quickly make a fully playable prototype and then the game will progressively get more varied and interesting from there. But the first step is to make a bare-bones version of each system and get them all working together so I can start testing the game as early as possible. That will be my next major milestone.

Happy Canadian Thanksgiving!

Space out,
- Henry


Spaceteam 2.0 has landed!

If you haven’t been following Spaceteam development, you should know that for the past 9 months I’ve been rebuilding Spaceteam from the ground up using the Unity game engine. It took much longer than I expected and was a pretty stressful time for me. But it’s finally ready.

Every day thousands of people are still discovering Spaceteam for the first time, making new spacefriends, and using the game in creative ways. I didn’t want it to die.

This is Spaceteam 2.0

 

 

App Store: https://itunes.apple.com/us/app/spaceteam/id570510529?mt=8

Google Play: https://play.google.com/store/apps/details?id=com.sleepingbeastgames.spaceteam

Don’t get too excited! The game is mostly the same, but it works on more phones, looks a little better, and has a few new features. But everything has changed under the hood. Because of this it’s also bound to have its own unique set of problems, so bear that in mind as it flies into the wild for the first time.

Notably this version doesn’t have Bluetooth support yet, although I plan to add it soon.

The game now speaks 4 new languages (in addition to the 12 it already knows):

  • Dutch: ASTEROÏDE! (iedereen schudden)
  • Greek: ΑΣΤΕΡΟΕΙΔΗΣ! (κουνήστε όλοι)
  • Turkish: ASTROİD! (herkes sallansın)
  • Korean: 소행성! (모두 흔드세요)

If you have friends who speak these languages please share the news, as I don’t have any special marketing campaigns to reach out to those countries. As usual, news about Spaceteam spreads by regular people shouting things to each other.

Welcome to the new Admiral’s Club!

Some brief backstory: I never planned to do this rebuild. But when the Android version of the game was put in jeopardy last year I had to make a difficult choice: to abandon the Android version, or make some major changes. Thanks to a group of generous fans and supporters, the Spaceteam Admiral’s Club, I’ve been able to keep it alive and also teach myself Unity which is a huge investment in my future games. That investment is going to start paying off… now :)

For the first time since it started, the Spaceteam Admiral’s Club is officially accepting new members. If you missed it the first time, or you want a fancy golden laser or an alien pet, now’s your chance. The Admiral’s Club is the best way to support my new games and get cool goodies. Please join if you like Spaceteam and want to see more!

Join the Spaceteam Admiral’s Club on Patreon:

https://www.patreon.com/hengineer

Getting Back To The Future

I’ve actually been trying to move on from Spaceteam for a while. Last year I started building prototypes for my new game Blabyrinth. Now that Spaceteam 2.0 has launched I feel like I can get back to it. Spaceteam and its spin-off projects will still need support but I’m once again making a promise to devote at least half of my time to Blabyrinth. This is something I’ve been excited about for a long time. You can read more about the ideas behind Blabyrinth in this post.

The next immediate steps for Spaceteam are:

– Spaceteam ESL 2.0 (The ESL version had the same Android problems so I’m updating it too. Unity will make this process much easier.)

– Official Leaderboards for special events

– Chromecast experiments, and a special observer mode for collecting stats for research

– Spaceteam Kids

I’ll probably end up sacrificing the Apple TV version (sorry if that’s your thing). It was never the best platform for Spaceteam and the market is still quite small. I’d rather spend the time on Blabyrinth instead.

And those are the last scheduled plans for Spaceteam. Once these tasks are complete I’ll be able to transition to the new game(s) full-time. If the Patreon does well I might even be able to get some help to reach that point sooner.

Reaching this milestone is a huge weight off my mind. Thanks for sticking by me through the process.

As always, if you have any questions or want to chat, join me on the forum or send me an email.

Space out!

– Captain Spaceteam (aka Henry Smith)


Admiral’s Club 2.0

With the upcoming launch of Spaceteam 2.0 I will also be re-opening the Admiral’s Club to new members using Patreon, which is another crowdfunding platform.

I wanted to give existing club members a heads up about what that means.

First of all, the work I’ve been doing for the Kickstarter project is still happening. Blabyrinth is still in progress, and Shipshape is still in my future plans (although it’s possible I may make another game first… too early to tell).

Secondly, I don’t want my Kickstarter backers to feel any pressure to join the new campaign. You were part of the initial push, the founding members, and I’m forever grateful for that. You’ve helped keep Spaceteam alive and kick-started these new projects into existence.

The Patreon campaign gives new fans the opportunity to join and helps me stay sustainable long-term. It’s different from Kickstarter in that patrons subscribe to creators they like by giving a small amount every month (eg. $1 or $5). It’s more in line with my philosophy of supporting people rather than projects, and it’s a more predictable income stream.

If you’re frustrated that Blabyrinth isn’t ready yet, I understand. I am too. I wish I was working on it right now. But all the projects that it made way for, some planned, some unexpected, were worthwhile investments and couldn’t have happened without your support.

  • Spaceteam ESL now has a life of its own through Concordia, and has opened further educational doors
  • Spaceteam Apple TV got some great App Store features and experience working with a big screen
  • Spaceteam the Card Game was a fun foray into the physical universe and gave me a peek at the board game production process
  • Spaceteam Unity solves a difficult problem and ensures a healthy future for all my games
  • CaptainsMess will hopefully lead to even more awesome games from others!

I’d like to point out that crowdfunding, specifically, was what allowed me to pursue these opportunities. It would have been very hard to sell the Spaceteam rebuild, for example, because it’s not a new game.

These are the kind of business decisions that I have to make if I want to keep on creating. I’ll continue to be transparent about them and I’m hoping that I’ll get to spend more time on creative decisions in the near future :)

Don’t hesitate to contact me if you have questions or comments.

Space out!

~~~

P.S. I’ll be in San Francisco next week at the Casual Connect conference if any of you want to say hi or go for a drink.