Thursday, November 22, 2012

On Finding the Right Tools

You know that feeling when you've found exactly the tool you were looking for? And it's cheap too? Well I got that when I found WebStorm.  It has precisely what I was looking for in a node.js IDE.  Some of you (non existent) readers may say, "bah!  IDE's are for teh noobz!" And who knows, maybe these phantom tech elitists are correct.  Throughout college I used emacs and programmed in C++ and I liked it.  But now I've been spoiled by Visual Studio and C# and I don't think I can ever go back. 

So WebStorm has all the features I love about visual studio, but works well with Node.js, and on my mac.  Code formatting, smart auto-complete, "jump to definition", easy to add JsDoc comments...  I'm actually surprised I hadn't found it earlier, since most of the VS features I love are from a plugin called Resharper, which is made by the same company (JetBrains).  And unlike VS, the price is pretty reasonable ($50).

Saturday, November 17, 2012

Sounds Like *Snatch*

I think I'm finally done polishing the game jam game. I was able to incorporate a bunch more of the assets Adam and Scott made that I hadn't been able to get to before. Plus you can actually win now. Getting to this point was kinda interesting. I had to quickly learn how to use two game creation tool. Being that we had a limited time, one of our first decisions was to go with a tool that allows rapid prototyping without needing to know too much of the inner works. So we started making the game with a tool called GameSalad.  It's an interesting engine in that there's no real coding.  Just rule creation.  However, after about half a day, we realized it's features were too limiting.  So I had to rapidly switch gears and learn something called Stencyl.

Stencyl has a lot more customization and an interesting visual programing form of writing it's scripts.  It also had a much steeper learning curve though.  I found myself often searching through their visual methods trying to find something that would work for what I wanted to do.  Plus their documentation isn't the best.  Most of it is pretty superficial and the only way to figure out the details is through trial and error.  Also, I ran into a bunch of small but annoying bugs in their editor.  It would really help if I got to know a more professional game engine before the next jam I do.  But without further delay, here is the final(ish) product:

Tuesday, November 13, 2012

WammyJammy

Just completed my first game jam!  It was a 48 hour one called WammyJammy with the theme being 'sound.'  Kinda stressful, but fun.  With being the only programmer on the team, and not having really made a game before, I was happy with the outcome. On my team was Adam Rickert (a graphics guy) and Scott Looney (a sound guy) who bith did some excellent work.  I felt a little bad that I wasn't able to incorporate all their assets before the jam ended.  But I'm planning to go back and finish it up, just for the hell of it.  Here's the final product:

Thursday, October 18, 2012

Whale Food Games

This is great!  The domain name wfgames.com just expired and I was able to pick it up.  So now I have whalefoodgames.com and wfgames.com so I can officially start setting up my company!  First things first, I need some business cards.  I bet there are companies with some cool business card templates I can buy...

Monday, October 15, 2012

Titles are hard to come up with

I should rename this blog "Technology commitment issues."  I'm pretty sure I'm done with my objective c affair.  It's just so ... verbose.  Not very conducive to rapid iteration.  Maybe I've been spoiled by C#, but after spending almost an hour trying to figure out the right way to do a two dimensional array I'm pretty sure I'm going to switch to Lua and Moai.  But not right away.  I think it will be educational to at least get my basic prototype working first before I rewrite everything.  That way I at least know some of what's going on under the hood before I decide to ignore it all. 

Sunday, October 14, 2012

Flipflopping

I know I said I wasn't going to use Heroku in my last post, and instead use a combination of nodjitsu and dynamodb.  Well, now I've decided to use heroku for everything.  It's just a more mature product than nodejitsu right now and there's much better documentation.  It's also really easy to get up and running.  Need a database?  Just click the "add on" button and you're set.  Also, free is nice.  I was able to get a single dynamo (like a micro instance) up and running with a 500 mb Mongodb add on from MongoLab all for zero monies.  Not a bad deal.

Wednesday, October 10, 2012

Switching gears

Well, sort of.  I'm still working on the game, but I've got a new project as well now.  It's an interesting and simple idea that I could see potentially making a little bit of dough.  The idea is from a couple of marketing dudes I'm working with, so I can't say too much about it at this point.  I can talk about the technologies I'm planning on using though.  I've decided to delve back into node.js.  It's going to be a simple, mostly javascript app built on top of facebook.  So I figured keeping the back end javascript as well would make sense.  Other than that, one thing I've decided for sure is that I want to do as little managing of servers and hardware as possible.  So I've been looking into PaaS's (Platform as a Service) available.

Thursday, September 27, 2012

Game Engines

There are many choices for a mobile 2D game engine.  There are even multiple free, open source ones.  So far I've been able to narrow it down to two engines that look promising: Cocos2D and Moai.  Both of these are free and open source and seem to have an extensive community supporting them.  The company that creates Moai has some extra services you can pay for, but it's not required.

Cocos2D seems to have the advantage in thorough documentation.  Also, it was created with the iphone in mind, so it's easy to integrate.  The big disadvantage is that it only runs on the iphone.  Moai will compile to iphone, android, or even a desktop app.  Also, Moai has a video of Tim Schafer extolling its virtues.  I love Tim Schafer.  The main thing I don't like about Moai is that the interface is Lua.  I'm just not a big fan of dynamically typed scripting languages.  At least not for performance critical applications like games.  Too much going on under the hood.  Also, arrays in Lua start at 1 instead of 0.  That bugs the hell out of me.  (I know, they aren't really arrays.  But still.) 

So I think I'm going to stick with Cocos2D for now.  I don't want to have to worry about multiple platforms at this point anyways.  If my game is successful, I can always port it to Moai.  The engines can't be too different, right? 

Wednesday, September 26, 2012

Starting anew

Over the weekend someone asked me what my target demographic is.  At the time I said 'everyone.'  But that's not really possible.  Also, that's not really my objective.  No, my target demographic is just one person: myself.  I'm making a game that I want to play, and if others end up wanting to play it as well, that's cool.

So I started my prototype, as evident from the photos below.  The basic idea I'm exploring is a puzzle game that is somewhere between a strategy rpg and chess.  I know I said I wanted to do something closer to Go, but chess just works as a better analogy for individual characters and positions.

Friday, September 21, 2012

Reevaluations

It turns out running unity on IOS is not included in the free version.  There's a 30 trial for the ios integration, but after that it costs $400.  Now, that's not a huge amount of money, but it's more than I want to pay to just mess around for a while.  And I really need to mess around with the controls on a phone to make sure the mechanics are fun before I start seriously working on the game.  But that actually got me thinking, maybe the game I have in mind is a bit too ambitious for a first outing?  It might be better to try to create something very simple first and just go through the process of releasing something.  I'm sure even a simple game will be many months of work.

So for something simpler it will probably be better to go with a 2d game engine.  I've been talking to James Morrison who runs SpinTingle, and he's been pretty happy with Cocos2D.  He's about to launch a very fun little puzzle game using it.  The disadvantage there is that it's iphone specific.  So all you android users loose out.  But it's just a hard truth that games sell a lot better on ios than they do on android.

So now I need to come up with some 2d game ideas.  Puzzle games are generally good because they don't require a large amount of assets.  I was at a game design conference the other day, and one of the useful takeaways I got was that almost any game can be prototyped with cut out pieces of paper.  That's what Luca Redword with his widely successful (and relatively simple) game 10000000Check it out.

So I think I'm gonna try that.  I still need an initial idea though.
Let's see, I really like strategy rpg's but they're generally too complex for a phone.  Maybe if I boil the idea down to the basics?  Or most strategy rpg's are kind of based on the mechanics of chess.  Maybe if I did one based on the mechanics of Go?  (A game with much simpler rules).  I might be getting too ambitious again...

Thursday, September 20, 2012

Platformer Demo 2.0

Platformer Demo 2.0 is complete(ish)!  Go check it out here
http://jonahw.com/platformer_demo.aspx

It took a while to get the animations to import correctly.  And it also took a while to get the running animation to look right.  I spent a lot of time tweaking it since the post below after getting some tips from a professional animator. Animating a run cycle is a lot harder than a walk cycle it turns out.
Anyhow, now I feel relatively confident in Unity.  The tutorial goes on to add enemies and splash screens etc, but I think it's about time I start on my real game.  So "new project" "BattleBallz"!  (Except not really since I'm sure that name is taken).

Sunday, September 16, 2012

Relearning Blender

So about four years ago I started learning game development using a combination of Blender for modeling and JMonkeyEngine for the game engine.  Recently I dug up that old code to try to pick up where I left off.  Both of those programs are now many versions ahead of where I left them though, so it's time to do some relearning.  JMonkeyEngine I'm going to scrap in favor of Unity3D.  There seems to be a lot more community support for Unity and it has the advantage of being able to compile to almost any platform out there (including ios and android).  Plus, it uses C# instead of Java.  C# has really grown on me as a language.  Especially with some of the functional programming constructs they've added.  Generics, lambda expressions, and custom iterators (with IEnumerable) make for some very pretty code in my opinion.  But I'll talk more about C# and Unity later.  I wanted to talk about Blender here.  Now, don't get me wrong.  I love Blender.  It's free, open source software that can do absolutely amazing things.  But it can be a real bitch to learn.  There are just so many controls and options and modes and sometimes clicking here does one thing and other times it does another thing and arrrgh.  Plus they moved everything around since the last time I used it (now on version 2.6).  But I'm slowly relearning how to do things.  I recently added a running animation to the Megaman Z render I made years ago.  I think it came out alright.

I'm back

So yeah.  Back to this whole blog thing.  I had stopped because it turned out the project I was working on was no longer needed.  But now I'm starting a number of new projects.  The eventual goal to to produce a game of sorts.  But I want that game to be polished, so I'm taking the long route.  I'm taking my time to familiarize myself with the available tools and meeting other people who are into game development.  My plan for this blog is to document my progress and hopefully that will in turn motivate me to make progress.  I'll also be posting my sketches and doodles along with some random thoughts.  You know, the usual blog stuff.

Monday, January 2, 2012

Status

So this whole thing is going a bit slower than I would have hoped, but I shouldn't be surprised.  New technologies always take some time to warm up to and really feel comfortable with.  At least one thing I've accomplished since my last post is that I got my codemirror mode into the main Nide repo.  So now that's technically two open source projects I've contributed to =).

Another thing I've been working on is sketching out my site layout and database structure.  It's kinda weird, since the whole idea of redis (and no-sql in general) is the lack of a concrete structure.  So there's no tables or columns to make, it's all just notes to myself on what 'keys' I plan to use.

Besides my (ethereal) db design, I've also been working on a mockup for my page design and interface.  Right now I'm envisioning just four pages for the whole site.  The login page, the upload page, and a couple pages for browsing the images.  Actually, the browsing can probably be one page, just two layouts.  Here are the beautiful notes I was working on last night: