Saturday, November 26, 2011

Art for Video Games

Art is one of the toughest hurdles to publishing a video game.  Commissioning artwork actually involves a lot more than just contacting an artist and asking them to produce some 2D images.  Essentially the developer becomes a mini-art director, providing guidance on how to compose the images--content, theme, feel, dimensions, fit with the surrounding images within the game... it can get pretty complicated.  For more information, check out The Art Order, an awesome blog run by Jon Schindehette, who does real fantasy art direction for Dungeons & Dragons over at WotC.

Anyway, cost tends to be a prohibitive factor for low-budget video games.  Recently I stumbled across the Publisher Resources section on Drive Thru RPG.  Bingo!  You can obtain high-quality art for fantasy, sci fi, steampunk and other genres.  Most importantly, it's cheap.  Granted, the art has probably been used in many products, but if you're trying to decide between a $500 commission and a $5 clipart painting, it's pretty obvious which one to choose.  I dropped about $50 and got 100-200 images of characters, equipment, scenes and other material.  Simply awesome.  I highly recommend clipart on Drive Thru RPG to fill out your art content, especially if your development budget is very sensitive to cost.

Thursday, November 17, 2011

Booters on Kickstarter

Two awesome projects are now underway on Kickstarter.  Both are games by fellow Booters. Needless to say, I am backing each one.

The first board game, entitled "Ghost Pirates", is by Tim Rodriguez of Dice Food Lodging fame.  There are cards, tokens and dice.  How could you possibly go wrong with that?  I'm looking forward to some strategy and crunch, so I signed up for a production copy of the game.  Tim is already about 1/3rd to his $7500 goal.

The second Kickstarter is an iPhone branching text adventure game called "Narratavius" by Michael Ham and several authors.  It echoes old text-based titles like Adventure, but the demo video is most reminiscent of the recent Action Castle.  Michael & Co. have already exceeded 50% of their modest $600 goal, making it likely that they'll hit the funding threshold.

Exciting times!

Tuesday, November 1, 2011

E1 Complete

From the original objectives post:

E1:  Layout and Spinwheel

  • Produce HTML and CSS sheet layout.
  • Create a working spinwheel with radial x-y functionality.
  • Manipulating the spinwheel according to use case changes text boxes.

All E1 iteration objectives were met. I might do some layout experimentation with the CSS <div> x-y positions, and approximate it closer to my notebook layout.

Iteration E2 starts tomorrow:  11/2/2011.

Monday, October 31, 2011

E1 Spinwheel Prototype #2

The newest spinwheel design is working surprisingly well.  All the fancy math with angles and tangents wasn't completely necessary; the wheel is working adequately with just radii for Inside, Outside and Lock.  I did need to tweak the state machine with some intermediate states to avoid getting stuck in certain transitions.  The key breakthrough was a diagram I call Quadrant-Chaos, with a lookup table representing Clockwise or Counter-clockwise rotation.  A few threshold checks make it function adequately for the prototype.

Occasionally the spinwheel will fail to lock, or skip a state.  This implies the angles and tangents approach might still be the final solution in the implemented Construction project.  However, the spinwheel is certainly at a solid prototype level of functionality, so the technical risk is mitigated.

It's really fun to play with the spinwheel, and see it updating images and text fields on the screen.  Also, I'm really quite pleased with Javascript as an untyped, interpreted RAD language.  It's quite excellent for prototyping.

Friday, October 28, 2011

Mongoose for local web serving.

One of the hassles of my prototype development has been serving the web pages.  iPad Safari is very picky about simply mounting Windows shared folders.  I was stuck publishing my HTML and JavaScript/CSS to my personal website, then viewing it on my iPad.  It was a clunky process that added several extra steps when I was debugging code.

I described this problem over on the Fear the Boot forums and immediately got a great answer.  Runester of "Postcards from the Dungeon" fame recommended Mongoose as a solution.  Mongoose is a free Google open source project.  It provides a very lightweight web server.  You just fire up the mongoose-3.0.exe executable in the directory you want to share, and it is immediately published on your local WiFi network as http://localhost:8080  or http://ip_address:8080.  Mongoose also provides single-click start/stop service, so it's extremely handy.  I can now hammer code on my laptop, hit refresh on my iPad, and instantly see my code updates.

I had already planned on buying an Apple Airport for my secure home network and streaming stereo solution.  I wouldn't want to run a web server from my laptop while it's connected to the Internet, but since I already have a separate WiFi router for that, I'll just leave my Airport detached as a purely local loop.

Thursday, October 27, 2011

Anthracite Elaboration Timeline

Short and sweet.

E1:    5 ed     Oct 31 - Nov 4
E2:    10-15 ed    Nov 7 - Nov 11 (14)
E3:    15 ed     Nov 14 (21) - Nov 20 (27)

Tuesday, October 25, 2011

Anthracite Elaboration Plan

Okay, so here's the Elaboration Iteration Plan for Anthracite.

For non-techies, I'm using the Rational Unified Process from IBM.  An "iteration" is a project plan increment that encompasses requirements, design, code and test.  Every phase is composed of several iterations, each with specific goals. I just finished the Inception phase, which is a concept phase that focuses on business case, customer identification and technical feature analysis.  Now I'm starting Elaboration. The purpose of Elaboration is to address your biggest business and technical risks by constructing a prototype software architecture.

My biggest risks are that:  1.  it's tough to engage artists and writers without a product demo, because they are constantly approached by dreamers, and 2. I am a novice at Internet marketing and have very few industry contacts to create a real sales channel.

You'll note that I don't consider technology a risk at this point.  The Anthracite platform technology is fairly straightforward software, so I believe any reasonably competent software engineer can drive it through to completion.  Time and cost are more meaningful risks, but the only way to understand those risks better is to implement the prototype.

I originally came up with over a dozen Elaboration iterations, but then I realized that it's completely unnecessary to implement the entire product as a JavaScript/CSS prototype.  I need just enough to show potential partners that the concept is real, and that I have the technical chops to implement the rest of the product plan as an iPad app.  I've already constructed 60% of the use case model, which expresses (at a generic level) how the customer and system interact.  The next step is converting these into sequence diagrams, or use case realizations, which show how the modules in the system interact to actually perform the use cases.

UCRs are a big step towards actual code.  In my opinion they are also the toughest part of Elaboration.  It's easy to lose the forest for the trees, and start inventing cool new features in the use cases, or start trying to create a finalized product architecture in the design diagrams.  The former is a temptation for visionaries, who thrive on creating cool new concepts, and perhaps not so much on actually producing completed products.  The latter is a big temptation for code monkeys, because you start thinking that you can avoid any rework and refactoring if you just get the design 'perfected' in Elaboration.  Both are huge mistakes.  All you end up doing is stretching out the phase, which actually increases your overall project risk.  You've got to stay laser focused on eliminating (or quantifying) your biggest project risks by driving through to actual functioning prototype code.  Many stakeholders will readily agree with high-level use case descriptions, only to have a strong negative reaction when they're actually seeing the product prototype.  And you're always going to do code rework in Construction.  It's much more important to get aligned that you're building the right system (business case, use cases) and that you've got a solid high-level design for that system (sequence diagrams, analysis objects, large architectural blocks, mechanisms).

Elaboration is about running through the minefield, stepping on as many mines as possible, so you know where most of them are before you commit the bulk of your development budget in Construction.  Your prototype doesn't need to be pretty, full-featured or bug-free, but it absolutely, positively must address your biggest technical and business risks.

And having written that, I need to seriously consider how I'm going to address the marketing risk, because the prototype only addresses the partnership risk.  :|  Good thing I wrote this all out.  I'll put some target dates on these goals in a subsequent post, after I do a little more analysis.

Elaboration Goal:  To implement a JavaScript/CSS prototype for iPad demos and YouTube videos.

E1:  Layout and Spinwheel
  • Produce HTML and CSS sheet layout.
  • Create a working spinwheel with radial x-y functionality.
  • Manipulating the spinwheel according to use case changes text boxes.

E2:  Character Templates and Objects
  • Create object containers for Character (PC + NPC).
  • Modify E1 prototype for single character, spinwheel selects Effect + Target.
  • Establish EBTs getters, setters and aggregators.

E3:  Basic Effects Resolution and Simple Battle
  • Implement the following:
    • Random Success
    • Append Static Effect
    • Post-round Static Effect check (defeat check)
    • Available Effect
  • 2 EBTs:  Attack, Health
  • NPCs get 1 Available Effect (no equip), direct assigned EBTs.
  • Any successful Available Effect causes -1 Health
  • PCs get 4 effects to showcase selection
  • At end of round, victory check is made with Health - Static Effects

===== YouTube Video #1 =====