Well hello! It's been 751 days since my last post here, so I feel like I've got some explaining to do. If you just want the TL:DR
TL:DR - Angular Velocity is not dead, but it was.
When we last saw our hero...
Back in November of 2013, I was committed to making Angular Velocity the success I envisioned. I tried to become active in Reddit's /r/gamedev community, started participating in Screenshot Saturdays, etc. AV was progressing at a good pace for a single developer project and I was happy.
Then one day I decided to publicly publish the Alpha to get some feedback and make sure the game was functional. AV is written in Java which is supposed to make cross platform development easy, but I didn't have a Mac or Linux box to test on. The results were underwhelming. No one on Linux or Mac could play, and the one Windows player crashed after a few minutes.
At the same time, several other issues began to crop up. The new shadow system was ugly and flawed, unexplained frame drops and pauses caused the gameplay to feel too jerky, and I was starting to feel overwhelmed. My decision to use Java started to feel like a fatal flaw. Even when it's working, popular opinion is that Java is an insecure mess. Would I have to start over with C++? That would take hundreds of hours, especially since I haven't touched the language in 10 years.
Meanwhile, my day job was ramping up in intensity. As the Head of IT, I was bringing more of my work home with me and it became obvious that it was going to be my career. Making it big as a game developer seemed more like a childish dream that was never going to support me.
So with the future of the game uncertain, I decided to take a break to clear my head. One month turned into two, 2013 became 2014 and I had lost interest. In April 2014, feeling some guilt and nostalgia, I fired up Eclipse and decided to mess around with the code again. The old concerns and frustrations about Java resurfaced and I quickly abandoned AV again.
Since that time I've committed myself in two important ways.
The first is that I've married my longtime crush and best friend Alexandria. She is the reason I wake up in the morning and taking care of family will always be top priority.
Secondly, my career at CBD. The company and the people working there are important to me. It's become more than a job. CBD is my second family. I feel invested in its success and I'm promised a long and fruitful career at the company.
Jealousy and Encouragement
Angular Velocity is a source of pride for me, but it hasn't been a priority in my life for some time. But over the last several months, jealousy and encouragement have made me reevaluate the game.
Back in September CBD lost a great artist and employee named Yuri Cantrell. Yuri decided to attend school at Full Sail and pursue her career in the game industry. Here's a link to her project H&S on IndieDB. While I hated to lose her talents at work, her decision impacted me personally.
For 30 years of my life I knew I wanted to make video games, but for various reasons I never made a serious run at it. Yuri's path ( great title for a game no? ) really caused conflicting emotions. I was very happy for my coworker and friend, but it left me mildly jealous. After I had just made the decision to abandon my childhood dreams of gamedev, Yuri was brave enough to pursue it.
Later Thanksgiving rolls around and I'm chatting with my longtime friend John Ennis. John's a programmer and has helped me test several projects in the past, including AV. He was also responsible for all the wonderful stats and charts on our old Minecraft server, Amish Paradise. We talked about a number of things, including Katamari Damacy, when Angular Velocity gets brought up. I told him I haven't been working on it and he gave me some serious encouragement.
What John helped to bring home was that AV had been one of my better programming achievements, even in it's unfinished state. Before I abandoned the project, I had visions of Angular Velocity being a launchpad for my career into the game industry. Now it was nothing but another chapter in my long list of unfinished projects. Between talking to John and watching Yuri take the leap that I never did, I began to question the decisions that lead me to mothball the project.
Photo my wife Alexandria Corbin took on our honeymoon on I-40 in Arizona
Finding the Middle Road
Angular Velocity is not going to define my life and career. I'm 40 years old, I have a family at home and a job I love working, with people who are my second family. AV is written in Java which makes it a second class citizen in the gaming community. There are many aspects of my life that require me to be a responsible adult, and to cast aside childish things.
Yet after a year away and several months of self reflection, I can't escape the fundamental core of how I define myself as a person. Since 1984 I've wanted to make video games. It's just who I am. Maybe it's not a career I can support my family on. Maybe I'll never make something popular or beloved by millions. But that's okay. As long as I'm creating a world, a story, a conflict, or a sandbox... as long as I'm writing code, then that is enough.
I don't have to be a Game Maker with a capital G, as long as I'm a game maker. I've figured out that as long as I can tinker and keep AV an interest and hobby, I think I can be happy. And with that realization, suddenly the problems with the game melted away. It can be a Java game. AV can have some performance and compatibility issues. I don't have to break my neck trying to fix these things because I've accepted that I'm a hobbiest. And that's okay.
Less Hare, More Tortoise
Friends like to joke about my two week attention span. Troy, they say, gets interested in something and intensely pursues it for about two weeks until he gets bored and moves on to the next interest.
I have trouble curbing my enthusiasm, and after a few intense weeks I burn out. Age and wisdom has curtailed that behavior some, but it is who I am. And so as I announce that I'm continuing work on Angular Velocity, it has to come with a warning: Progress will stop and start numerous times. It is a hobby for me now, so I'll never be able to devote my full attention. When I am working on it, you can expect real progress. But if I disappear for a month, that is just the nature of the beast. Very sorry, but it is what it is.
And Now: The Crazy Old Man Singers
As I dust off my IDE and re-orient myself with the project, I've come to a few conclusions:
- I've grown a lot as a programmer over the last 2 years. I look over some of the classes and functions in AV and all I can say is "What the fuck was I thinking?" I've never been great at CS theory, but some of this stuff is ridiculous. Likely I pushed myself to get some things coded at all costs when I didn't fully understand how to implement it. I'll need to spend some time rewriting that code to keep my sanity.
- I'm horrible at writing comments. When you're working on a project alone for long stretches, you don't notice the need for good documentation as much because it's all in your head. So I skimped. After 2 years I find myself rereading and rethinking large swaths of code just to understand the logic. This needs to change.
- Angular Velocity will remain a Java game. I simply don't have the energy or wherewithal to relearn C++ and rewrite my engine from scratch. Nor am I interested in picking up Unity or Unreal Engine and learning them. Sometimes you can spend as much time learning to work with someone else's game engine as you would working to improve your own. This clearly hurts AV's commercial chances, but that's no longer a factor for me. I'm making this game because I want to, not because it will make anyone rich.
Dynamic shadows cast as day shifts into night
With all that said, you can expect to see updates to the game again. I'm doing this for myself now, but I am very interested in hearing from you. Do you want to try it? Give me a shout. Have a question about the code or my process? Shout. Feedback, feedback, feedback. Let me know what you're thinking. I'll be as open and honest as I can.