Thursday, February 28, 2013

It's Time to Bring This Ship In To the Shore IN SPACE

OK, As of last night, around 11:30, I pushed what I considered the completed version of Interplanetary Space Courier. Two games in two months, I didn't go completely crazy, and I haven't lost my day job (yet).

What Have I Learned So Far?

 Oh, probably a great number of things, mostly little bits of techniques that I've used in previous games that I've adapted to new stuff. As I go, I'm building up a toolbox or library that I can go back to and loot from, which will make things easier on future projects.

So, the easy answer is that there's lots of little things I've learned how to do in JavaScript, like playing sounds, or drawing backgrounds.

I've also learned that JawsJS is a fine framework for my JavaScript games, but as I go forward, I'm leaning on it less and less - so I may end up abandoning it entirely and just use my own code. It's not bad, it's just not helping me as much as some other frameworks have done in the past. (I'm thinking primarily about PyGame, but PlayN and DirectX might be worth considering.) One thing that contributes to this feeling is that HTML5 with JavaScript is a pretty feature-rich platform to begin with, so I need less support to get my work done.

One great area of stuff I haven't learned is good Closure practices. I took on this challenge of One Game a Month in part to force me to write more JavaScript, and I chose JawsJS because it was friendly to the Google Closure toolkit, which is something I want to become fluent in.

I've learned that posting to this blog helps me maintain momentum - just journaling about stuff makes it feel different - talking about features I completed, or pieces I'm working on puts it in a different perspective than just seeing it on a TODO list.

On a meta-level, I've reminded myself that a game jam format (and One Game a Month is sort of like 12 month-long game jams stacked end to end) is a good way to provide a deadline, and a deadline provides focus, but it doesn't guarantee that you'll accomplish the things that aren't your top priority. I've seen so many people jump into a game jam, maybe a LudumDare 48 hour challenge, and say "Ok, I'm going to learn Python, and PyGame, and...". You know, more power to you, but finishing a game is hard, and learning a language isn't easy, and doing both is maybe biting off a lot.

So, about my challenge to myself to learn JavaScript and Closure and HTML5, and make 12 games...

Well, OK, so it's a little crazy, sure. But I'm not trying to learn the language in a weekend - I've already learned bits of it, enough to get by, most of the time. Closure, like I've said, I need to remind myself to incorporate that more into my workflow. Closure is a good tool in that you can integrate it into your existing project a little bit at a time. I just have started at the dependency management support and minification, and haven't incorporated a lot of other good Closure practices.

What's Next?

I want to do something that's tablet-friendly, and doesn't take a lot of time, to give me time to breathe a bit. It'll also give me time in case work goes crazy, like I fear it might.

My current thought is to make a Dots and Boxes game with a pretty straightforward alpha-beta pruned adaptive-depth game tree evaluator. I expect to cache evaluations, which should keep the tree evaluation under control. The one interesting bit is that a player may get to go again after their move, which is a small wrinkle in the implementation. Not hard, but important to get right.

I'm also thinking of making a Choose Your Own Adventure-inspired game book. I knew that going into this that I didn't want to just do computer games (and certainly not just browser games). So, a branching-path game book would be kind of fun. It'd require me to write English, instead of JavaScript. Hm, I could do both if I wanted to make a fancy app. Or, maybe not. I've looked a tiny bit into the EPub format, and have downloaded some Python code that makes EPub files, so there's some opportunity there.


5 comments:

  1. There is no beta - barring catastrophic problems, it's done.

    http://bigdicegames.com/SpaceCourier/courier.html

    ReplyDelete
  2. I should have said "We're out of beta; we're releasing on time".

    ReplyDelete
  3. Nice .. I exploited the price difference on ore between red and blue planets to make a small fortune :P. I like how the supply/demand changed the prices over time.. which motivated me to find new planets to trade with. Wasn't sure what to do with the money except refilling my tank though.

    I understand it's only a minigame so you haven't fleshed it out so much.... I want space-pirates, battles and multiplayer! ;) .. trading safaly in the beginning, beeing up the ship.. before daring to go into the most lucrative trade-routes where the space-pirates lurk :P.

    Also would have been nice controlling the menus with the arrowkeys instead of invidual letter-keys.

    ReplyDelete
  4. Glad you enjoyed it.

    I deliberately chose to avoid combat for a few reasons, mostly having to do with the amount of time I had to implement the game, and it grew much bigger than I anticipated at the beginning of the month.

    Multiplayer, I didn't even consider. Largely, again, it was a time issue, but also because I didn't think that it'd add a lot to the game, especially given the lack of combat. I could chase you around and deplete your favorite trading routes, but that doesn't seem like a worthwhile experience. Also, the number of people I expect to play this game, ever, divided by the amount of planets in the game didn't seem to make the likelihood of actually meeting anybody else make sense.

    You mention buying fuel, I trust you also bought new ships. That'll consume a fair amount of cash pretty quickly.

    As for the menus, I think the direct menu key navigation makes more sense - it's fewer button presses for the user, and it's less state for the menu code to handle; it's hard to pass up a win-win like that. If I were going for a more mouse/touch-oriented interface, then the menus would be completely different.

    Thanks for the comments, I hope you'll try other games I make throughout the year.

    ReplyDelete