Saturday, March 7, 2015

Thunder Moon Post Mortem: Early voxel lighting tests

Before there was Enzo (the red robot in Thunder Moon), the animation system, before there was much of anything, I was working mainly on the voxel system to make sure I was going to be able to make a voxel world work on the XBox with XNA. When I started this project in 2011, there weren't yet very many voxel games on XBLIG and none of them seemed to have the features I was hoping to implement so I was pretty optimistic about doing something new & cool.

These screenshots come from when I was working on the multithreaded lighting system. I could click with the mouse and carve tunnels with giant spheres out of the ground and then WASD around to see lighting and triangulation artifacts. Other keys would create or remove various patterns in the voxel world to more easily test problematic situations.

I had a lot of fun just flying around at this point, carving tunnels like a sandworm through the underworld.

Thursday, February 26, 2015

3D fractal fun

I wish I had more screenshots of this phase of development. I was doing a lot of experiments with the fractal terrain generator at this time, and I was still in Squad Miner mode so I was trying to come up with interesting procedural map generators and game rule-sets that would be fun (capture the flag, etc) in these worlds. The world was a limited size at this time, it wasn't until quite a bit later it became (virtually) infinite in all directions. The textures on the voxels were all placeholders, I didn't really have much artwork to work with at the time. The biggest challenge came from the fact that suddenly fractal costs were exponentially more expensive because instead of a 2D height field controlling the world generation, the logic was fully 3D. This meant the CPU costs were literally the same as the 2D mode, except multiplied by each and every vertical row of blocks. This is when I began to realize what a deeply complicated and fascinating problem creating an unlimited voxel world was going to be.

Wednesday, February 25, 2015

Squad Miner, the dawn of Thunder Moon

Thunder Moon was originally going to be a multiplayer voxel shooter called Squad Miner. At some point, I thought it would be easier to make a single player game since I was always getting reminded by people how hard network game programming is. The thing I forgot was these were usually people who haven't worked on MMO and other multiplayer server tech like myself for much of my game industry career. I probably should have stuck with this plan, because making the game support all the things that story driven content requires turned out to be much, much harder than I expected.

Tuesday, February 24, 2015

A long overdue update!


It's been an interesting year. Last fall, after Thunder Moon Online came out I was gratified to see how many players got it and were having fun. Sales were pretty good by XBLIG standards, but unfortunately after over three years of self-funded low budget game dev, I had to make the tough call and head back to the game industry.

I was very fortunate to land a job in San Francisco with a company making mobile games. They needed someone with my skills, and I was keen to learn about mobile games. A major factor in my decision to come here was the company was very reasonable about my indie game dev life and they were fine with me continuing to spend my free time on my own projects so long as they weren't competing with the company. This is a very fair thing for any employer to ask, and bodes well for the company culture in that they see the benefit of employees working to improve their skills on their own time. Because of this, I am able to keep the business active, keep the games on the market, and do my own thing so long as it doesn't impact work. With that in mind, I took the job, made the long distance move with my family and rebooted life in the heart of San Francisco.

To be perfectly honest, I haven't been able to spend much time on my indie projects this past year. Between work, the long distance move and settling down in an unfamiliar city it's been hard to find much time for anything other than a bit of research here and there. Finally, as I approach my one year anniversary here I have begun to sense a certain routine that I hope means I will be able to find more time for my indie goals.

The renewed spark happened when I was doing the most mundane of things, cleaning up a disk that was a bit full of redundant backups. As I started sorting through the screenshots and videos I began to panic when I realized some videos I had captured hadn't survived a main system crash that had occurred about a month after the last XBLIG update. I still have all my projects and important stuff, no worries there, but I did lose a folder of videos I had accumulated during development. That saddened me a bit, but in my search I found a fair bit of material which I plan to post in the near future a little bit at a time with some comments about the context.

The next thing I did was boot up the Xbox 360 and play Thunder Moon for a while. I was reminded of how satisfying it was to have created all that. I felt the fun, saw the (glaring!) flaws and thought about the future of my free time. Who knows what the future holds! Well.. I do have some ideas :)

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!