After returning from Europe, I spent over a week dealing with being sick. Even though I couldn’t get back to work right away, I was able to read through all of the advice I received on my post on the importance of speed, and I really appreciate all of the feedback. Thanks, everyone!
In that post, I expressed frustration with how slow my game development has been, especially with Stop That Hero!. I wondered if the project was too much for me at my current skill level, and if I needed to step back and try lifting lighter weights, so to speak. I know some game developers leverage a library of personal code that they have written and updated over the course of years. Others leverage existing engines.
While I have some boilerplate code, it’s not nearly as comprehensive as I would like it to be, and the stuff I do have isn’t always as easy to work with as it should. As I said in that post, 2D engines for GNU/Linux, my development platform, by and large do not exist, so I find I have to write a lot myself. If I had more to leverage, I’m sure development of STH! or any other game would be a lot faster since I wouldn’t have to stop and implement scaffolding technology to support a feature every time. It would already exist.
The advice I received fell into a few camps:
- Muscle through and get the game finished. Your tech will be ideal and perfect for YOUR needs.
- Stop targeting GNU/Linux and desktops in general as platforms, and focus on more “marketable” platforms.
- Stop working in C++, and use Flash/Unity/higher-level programming language/engine instead.
- Break your project down into smaller projects so you can have finished games and build your needed tech.
- Stop writing your own tech from scratch, and leverage the hell out of libraries/engines/existing source.
- Stop worrying about writing “good” code. Hack something together and get it done faster!
I didn’t know whose advice to ignore first! B-) Seriously, though, let me clarify some things about what I’m trying to do.
First, I am not making games just for GNU/Linux, and I never said I would, yet this seems to be a common assumption about my business plan. I am not locking myself to only one platform. My original plan all along was to release games for GNU/Linux, Windows, and Mac. It turns out that ports to mobile platforms, which are a huge opportunity these days, would also be fairly easy, so I went from following supposedly dying tech to being relevant again.
Second, I’m using C++ because it is what I know, and my choice was to make a game or spend time learning a new language to make a game. I chose to go with what I already know, even if it supposedly limits me, because I wanted to start running right away instead of figuring out how to put on my shoes. I can always use the next project to learn a new language if I want to, and switching languages on this project would be way too disruptive and set me back way too much.
Third, because my development platform is GNU/Linux, which makes targeting GNU/Linux dead-simple and a no-brainer, it means that engines like Unity are not options for me. I might be limiting myself in terms of access to premium development tools such as Photoshop and Adobe Flash, but I have been using GNU/Linux exclusively as my main desktop environment for a long time, and I’m not about to start booting into Windows just because most everyone else does. I’ve had to find non-proprietary alternatives for a lot of applications and tools, and I’m doing it for game development as well.
All that said, I think everyone had great advice, whether it was about my tech or my business plan or my development process. Without sales, my savings account is going to get smaller and smaller, and my biggest concern was where I should be focusing my time.
My choices:
- I could continue to work on Stop That Hero!. I have been discovering how much more complex it is and how much longer it is going to take to finish it, and there’s a worry that by the time it is done, I’ll be out of savings. To make it worse, I’m very much aware that I can’t expect sales to take off just because the game is released. Sales is going to to be a lot of work, and I might not make enough to cover my expenses early on, forcing me to spend time and effort making money in other ways, which takes away from my business. And I’ll admit that I do not know what the reception of this game will be once it hits a real audience, although I do plan to get feedback from play testers once I have something I feel comfortable showing to people, which should help. Still, it might be an unsellable flop that can’t be salvaged no matter what I do. That’s a lot of pressure on this one game.
- Put STH! on the backburner and work on something smaller. My intention was to work on multiple small games over the course of the year. I’ve since learned more about my capabilities as a game developer and the limitations of my existing tools and tech. Essentially, STH! was not as “small” a game as I originally thought. STH! was meant to be a one-month game project in the first place. Since the schedule has slipped so far, perhaps it is best to cut my losses or at least put the game on hold and work on something I can accomplish in a matter of weeks. I have a couple of Ludum Dare projects that could be candidates for simple games. The diversified portfolio I could create in a matter of months could help reduce risk. If one game doesn’t do well, I’d have another one on the way shortly, and cross-selling might help improve sales. On the other hand, what kind of sales can I expect on a bunch of quickly-produced games that must compete with all of the free and low-priced casual games being produced every day, as opposed to focusing my efforts on my current project? Also, I run the risk of having two unfinished projects since it is possible that a lot of the problems I’ve encountered with STH! could crop up in another project anyway.
If finishing STH! would take two years, and my savings will only hold out for three months, I’d do best by switching to a smaller, faster project in the hopes that I can make at least some income. On the other hand, the race to the bottom in the pricing of games doesn’t provide me with a lot of encouragement to produce small, disposable games. Perhaps the fact that STH! is a bigger project means that the finished product can be something that a fan base could build around.
Since STH! is not a two year project and I expect to finish it before I have to worry about my savings disappearing, I’ve decided to continue working on it. My goal is to get it commercially ready to sell in June.
I did not have a playable game to release yet, but I looked at the remaining features to implement and various ideas I wanted to try, and I started pushing a bunch to Version 2.0. I spent a good chunk of the remainder of April in a self-imposed crunch. I ignored my project planning system, ignored writing for the blog (which explains the lack of posts in the previous month before Ludum Dare), and dedicated as much of my time as I could to making a friends-and-family playable game.
By friends-and-family playable, I mean I wanted to implement enough of Stop That Hero! so that I can hand it to my fiancée or a friend and say, “Here, play it with the understanding that this is an early Alpha version. The graphics suck, there’s no sound, and the game play is raw.”
While that Alpha build isn’t ready yet, I will say that April has been a very productive month, especially considering that I was only able to do all of the work in the final couple of weeks. And since recovering from Ludum Dare #20, I’ve started off May with some quality development time as well.
I’m seeing this project through, and I’m confident Stop That Hero! will be a great game.
10 replies on “Continuing Development on Stop That Hero!”
You CAN do it! We believe in you.
Have fun with it, follow the K.I.S.S. rule, don’t be afriad of a few sloppy hacks here and there, and most importantly take everyone’s advice with a grain of salt. Your gut instinct is almost always more likely to be correct.
I’m 100% confident that Stop That Hero! will be awesome. I can’t wait to try it out and would be very happy to beta-test, critique constructively, and offer enthusiastic encouragement.
You need to be careful. STH! is your brain baby, and it’s tough to settle for anything less than the world… but that can do you in. Don’t make the mistake of thinking that your first real game should be Braid.
Something that is currently working for me to get over myself is to scale back with the intent to scale up. I’m making very specific plans to reduce the scope of my long-term project so it will be finished in finite time, then I’ll add stuff back into a later version, maybe even a sequel.
I have this other option for you. If things become urgent, you might even consider this: Scale back STH! until the alpha version is nearly finished in the current state of the code. It will hurt, but it will help. Write down all chopped features in a TODO list. Then release a demo. Use the feedback to polish the game up and then try to sell it. Some features you chopped out might creep back in and make the final product worth paying for.
I wish you the best of luck! Keep it up!
I know you just want to get on now, and that’s probably for the best, but you might want to have a quick look at SFML, a free opensource 2d engine works with PC/Mac/Linux, very simple, exposes pixel shaders through opengl in a simple way (in case you want to add some optional whizz bang which helps sell games in trailers). Anyway, good luck 🙂
Go get ’em, GB! I look forward to seeing the finished product.
Thanks, McFunkypants! I’ve started a Beta volunteers list, and you’re on it!
Jonny D, what you described is what I was hoping to do. As I’ve been working, I’ve been identifying features I want, and I’ve been fairly ruthless in saying “For version 2.0.” Also, I want to get a demo out and receive feedback from people before putting a lot of effort into the remaining tasks. Thanks for the reminder about the trap of falling in love with my brain baby! I definitely do not intend to spend forever making this project supposedly perfect before I show it to anyone. B-)
Poo Bear: Just as with the concerns about switching languages mid-project, I’m going to hold off on exploring SFML for now. I’ve had a number of people recommend it over SDL, and while I have SDL sectioned off in my code in a way that a replacement should be relatively simple, it would still mean more work and a delay. I’m going to work with what I have instead of pursuing the next great thing. Otherwise, STH! would turn into DNF. B-)
Thanks for the encouragement, everyone!
Hi,
Reading your blog recently. (saw you on LD)
I recommend this:
http://www.joelonsoftware.com/articles/fog0000000069.html
The principle in the article can be expanded likewise:
Reject existing well tested code -> pay a huge price.
And tbh that’s were the line between working on what you love and doing what you love extremely well but as a hobby for self gratification sits.
You are doing the prior.
When you write code yourself, it is costing you invaluable time you could have been using on game logic or on your next game.
As an indie developer you have a limited work force so using your resorces wisely is crucial to your success.
I’m writing this as a concerned gamer anxious to play your game.
elbowroom, I remember that article, and thanks for connecting it to the general case of writing your own code when you don’t have to.
More than ever, I would love to use preexisting engine code, but again, I’m not going to gut out my project at this late stage. I’ll see this project through, and for my next project, I’ll decide what to do then.
“Stop That Hero!” has taken a lot longer because I was spending most of my time implementing scaffolding code, and if it was six months ago, I would love to have found an existing 2D game engine that runs on GNU/Linux, or at the very least integrate disparate existing source code such as Micropather, but since it is six months later and so much is already implemented, I’m not changing my approach. I’m finishing this project first.
I’m a student and game developer trying to follow a path similar to yours. I was facing what could be my last summer of freedom but I was tempted to sacrifice it for lucrative proposals from prestigious companies in Silicon Valley and Redmond. Then I realized I had enough money in my accounts to cover 4 months of expenses and after some soul-searching I decided to go the entrepreneurial route.
And here I am in my small apartment/game studio, just over a week into summer. I have many ideas and I’m eager to build. This experiment certainly has its risks but the lifestyle and potential rewards seem worth it.
Best of luck with STH! and thanks for inspiring other small scale developers with your confidence.
Really interesting to read on.
I agree to those comments as well as respect them.
It’s hard decision to make really whether you will put what you have invested and switch to what you believe it’s promising and good for you. It’s harder as what you already have on hand is really big.
ONce I see c/c++ is the only main stream language to write game, yeah I start to learn how to do thing low level with DirectX. But not until I switch to Java for creating a several small games which I could put them showing off to my friends. Yes, that to say it’s different in productivity. Even if c/c++ has something to do with perf but one man solo for the project takes you too much time to finish something and making your moral higher.
So for my thought, switch to others to make your motivation getting rise and if be able to find more free time then go back and reinvent the wheel, until that time you already have something in your hands which you can for sure learn from that and even adapt and create even bigger things from it. 🙂
Woo! Get ‘er done! Ship!
I’m in sorta the same boat, hoping to ship my long delayed project before I start a new job at the end of June. it’s not super realistic for me, July is
more likely but we’ll see how it goes.
Good luck with StH!