Wednesday, October 30, 2013

ID@XBox Seattle Event notes

Last week I attended the ID@Xbox conference at Microsoft’s main campus in Redmond. It was a very useful event for me because I was able to get my most pressing questions about the new platform addressed by some of the Microsoft staff working on the Xbox One. There were a number of presenters ranging the spectrum of technical, business and management areas of the Xbox One. They covered a wide variety of topics over the course of the day, all of them of interest to me. Apparently it was a more condensed version of talks given at a previous conference, but overall it was useful information that really helped solidify my understanding of where the platform is headed and how Indies can be part of it. There was a Q&A session after each speaker and at the end of the day with all the speakers available to answer questions that may have accumulated during the day. I have to say, the folks presenting were all very eloquent, articulate and almost visibly radiating their brainpower as they spoke in detail about the features they have been working on. 

Since NDAs were required to be there, I’m going to have to skip any specifics of what I learned but I will say the tech seems pretty dang cool. There are definitely some new things going on with this platform that will enable fun new features in the games we make, and it doesn’t appear there will be any of the unfortunate limitations that were imposed on XBLIG. From a technical standpoint, I'm pretty happy with what I saw and look forward to working with it.

Like any big product, there are lots of ideas and other things they would have liked to have ready for launch that will have to wait for the future but they did make it clear that their plan for the platform in general involves a lot of evolution. They expect it to change and grow, and built their systems with that in mind. That’s not to say anything seemed lacking for launch, in fact it has a ton of great things going on, it's more about how there is a lot of potential for the future of the platform and they have been as forward-thinking as possible. It’s plain to see they learned a lot from pushing the Xbox 360 so far beyond its original specifications and this is a good thing because this motivated them to put effort into making sure the Xbox One will be easier to manage and extend through the life of the product. Being able to safely update and extend the platform is from my perspective far more important than getting every last feature they could think of in the first release. It's easy to think of more features than you have time to implement, regardless of the product; it's much harder to make a framework that supports evolving a product's core features while maintaining compatibility with previously released titles.

The thing that I am most excited about is that it does seem likely the Xbox One will be generally a lot more open than the Xbox 360 was. A shorter wall for the garden, if you will. Not as open as the PC, but not as restricted as the previous generation either. While I get the impression a lot of things are still being decided, I think there is a good chance Microsoft will strike a better balance between the chaos of completely unrestricted app stores and the stifling limitations of access to the more visible marketplaces of the previous generation. One thing is certain, they are deliberately choosing a business model for the Xbox One and Indies that is different than what I’ve seen before and I can only think that is a good thing. It could just be the afterglow of the event affecting my opinion, but right now I think there is a good chance they will hit the right combination of curation and openness that will allow innovation to occur on their platform without flooding the market with junk apps that cause visibility problems for games worth having.

In the end, I left the conference optimistic about the platform. WinRT+DirectX, here I come!

Friday, September 13, 2013

Update notes for Thunder Moon Online

I've made all the changes I plan to make for the update to Thunder Moon Online tomorrow night. The final build has been made and I'm going through my pre-submission tests now.

The goal with this update is to fix a handful of crashes people have reported and to improve network performance. While I expect to submit the update about 26 hours from now, it will take a minimum of 48 additional hours for it to reach the marketplace. It might take longer, depending on how fast my fellow XBLIG devs will peer review it. That part of the process is out of my control, unfortunately, it's just how it works on XBLIG.

Here's a breakdown of the things that have changed.
  • All reported crashes have been fixed. There were a handful of these, and they generally happened when players joined a game. I've only received a few reports of crashes, so hopefully this means it hasn't been too much of a problem. In either case, everything I know of has been fixed.
  • Bandwidth usage has been reduced by about 50% overall. This should help a lot overall lag and with the voice chat quality.
  • There is now motion smoothing to the characters, hover bike, and lander so these should all be less jerky in their movement. There is now a bit of glide that occurs with characters when they stop moving, but its much better than the popping that used to occur. This is a pretty common technique for networked games.
  • Fewer pickup items, those blocks that pop out of bugs and terrain, will be physically active and moving around at once. This probably won't be noticed except when tons are being spawned while mining.
  • Units would sometimes be vertically offset from where they should have been. This was most often noticed with the spawn portal and beacons.
  • Sometimes, units would be re-spawned despite having been destroyed. I found one problem with this which was fixed, but I never found a way to reproduce this bug reliably so hopefully this is all that was wrong.
I took care to make sure these changes wouldn't break save files and is compatible with existing data. Hopefully this will all go well and the game will be more fun as a result.

Thanks for playing!

Thursday, September 5, 2013

Announcing Thunder Moon Online!

Today, I am announcing Thunder Moon Online. It is the culmination of over 3 months of work building on the Thunder Moon engine which brings multiplayer, improved AI and other new content to the Thunder Moon universe.

I had been planning to provide these new features as an update to the original game, but it turned into three months of work which is just too much to do for a free update. Also, it became apparent late in testing that the changes to how data is stored makes it impossible to apply this upgrade without causing loss of player data. While this is something that could be solved with more development time, it is not a trivial task and as a solo developer I simply can’t afford the time to do that. I didn’t make this decision lightly, but if and when you play Thunder Moon Online (and I hope you do!) I think you will find that the addition of multiplayer, over 150 new blocks and other features will make this new iteration a lot of fun for a dollar.

Thanks for playing!

Tuesday, August 27, 2013

Thunder Moon Crafting simpified in the coming update

I simplified the crafting interface in Thunder Moon based on feedback from testers & players. There are now just 4 item filters to flip through: Equipment, Supplies, Buildable and Terrain Blocks. Previously there were 9 (!) filters, and objects could appear in multiple sections based on meeting the filtering criteria. It was just too confusing, and too much to take in. This should help a lot with finding what you are looking for amongst the hundreds of items you can create in this game.

Items will appear in only one section, unless it's Buildable then it will show there also. The Custom filter used by "Find Related" feature is still there and behaves the same.

The Equipment filter is for things you wear or activate. Items that do things.

The Supplies filter is for all those items that are only used as crafting components. These items are not equippable or activatable.

The Buildable filter shows only those items you can build right now.

Previously, there were filters for each equipment slot (Held, Worn, Aux), and one for items that were activatable or had some passive effect (such as a heal kit, or persistent shield buff). These are all consolidated into the Equipment filter. There was also a filter for "Partially buildable" (meaning you had some of the parts required to build) which was redundant because the items already indicate if they are partially buildable by being yellow instead of red background.

In all, I am pretty happy with this change. The original crafting UI didn't turn out as user friendly as I wanted and this is a good improvement.

Thursday, August 22, 2013

Thunder Moon Multiplayer Update & new box cover art.

Over the past several weeks I've been working through the very difficult task of rewriting the way game units are saved to make it work properly with multiplayer. As a bonus, I expect this will fix the sporadic bugs people have reported about certain mission-critical NPCs not being where they should be for missions later in the game.

One big challenge was to make NPCs work in a way that didn't kill performance on the host while properly tracking all the units that might be around each player, where each player could be at very different parts of the world. When the old system was used with the new multiplayer games, there were lots of problems that never happened in single-player games. Unit duplication, lost units, misplaced units.. these are all problems the old system wasn't able to deal with and these should all be fixed with the rewrite. There were actually a whole host of difficult problems that had to be solved to make this work, but after a lot of head banging and keyboard pounding I wound up with something that I think does the trick pretty well.

The new multiplayer-friendly unit management system is all up and running and so far it seems to be working. This is the last major barrier I know of for getting this next update out, and it's the reason why it's taken longer than I expected. I still have a lot of testing of the new system and some UI stuff to deal with but seeing this new unit manager work for the first time is a big relief. It was a really complicated solution! Often that's a sign of bad planning or sometimes just me trying to do something "the cool way", but sometimes a complicated solution is the only way to solve a complicated problem.

I'll be continuing the push hard to get this out as soon as it is safely possible. I never want to publish buggy code and since there were a lot of low level changes since the last update this will have to get a lot of testing. Hoping it goes well!

While working on the multiplayer has been a priority, I did take some time to update the box cover art. I hope you like it.

Saturday, August 17, 2013

Thunder Moon multiplayer dev update

Wow, it's already been a month and a half since the last blog post on this. Time for an update!

Multiplayer has been coming along pretty well! One of the biggest challenges was to get the world map data to sync up and cache efficiently, but after a several weeks of long days that system finally came together and has been behaving properly for a while now. A few days ago the final planned features were wrapped up and now we are testing. As was expected, some bugs and unexpected feature requirements have come up along the way and I've been working through them as fast as I can.

Multiplayer supports both XBox Live and System Link. There is full support for game invites, both friend and party, which I hope you will find makes it very easy to bring your friends into your game. It also supports private slots, so if you want an invite-only game you can just reserve all the slots and others won't be able to join. These can be changed on the fly, too. The number of players the game will support is still up in the air and the final number will be decided on after I do some load testing and optimizing.

In addition to the world state, all of the characters, vehicles, weapons and their corresponding animations are all synchronized over the network. It's pretty neat to see the backpacks animate, or weapon aiming, and all the other animations working across the network the same way they do when playing local. I paid careful attention to the bandwidth for all these things and made sure the code doesn't cause needless latency.

Multiplayer is supported for Survival and Explore modes. It won't be enabled for story mode in this chapter of Thunder Moon because that wouldn't fit the storyline since, as you will know if you have played it, chapter one is all about being stranded by yourself. Chapter two, however, is planned to work with multiplayer as natural progression of the story and I look forward to seeing how that turns out.

I am hoping to be ready for peer review soon. It feels nearly ready, but there are a number of issues that I have to wrap up still so stay tuned for more info.

Thanks for playing!

Thursday, June 27, 2013

Thunder Moon - Multiplayer First Steps!

Work on adding multiplayer to Thunder Moon is progressing well. The general infrastructure is in place and the remaining work largely involves discovering the data that needs to be kept in sync between peers and a fair amount of UI work. It's been quite a while since I've been able to use my networking background, and it's been a lot of fun to get back into it.

Here's a quick clip captured on my PC showing a connection to the XBox over the LAN.
I expect this is probably a pretty boring clip to most people. It just shows a couple characters walking around each other for a little bit. Personally, I'm excited to see this because it shows that the networking system exists and that it works. Next on the list is to start finding all the things that need to be synchronized between machines for gameplay to work as expected. I've already synchronized some of the character animation and physics as the video shows, but there is quite a bit left to do: inventory, equipped items, projectiles, NPCs.. it's actually a fairly large list that is bound to grow more as I dig into it more. The good news is that I am pretty sure that most of the work is fairly low risk and I hope to power through it quickly.