Categories
General

Post Funk

Happy Holidays.
Tons of family fun was had and much food was eaten and celebrations were celebrated in glorious style.

However, we’re leaving 2011 behind with an impending close and consequent move to the new house in the next 45(hope hope hope) days and a 22month old with a broken leg. So I’m just going to abandon any pretense of having ‘fun project’ time untl March 1. (outside of any lunchtime coding I can squeeze in)

This totally sucks but, alas, is unavoidable.

Catch ya on the flipside..

Categories
design Development General Post

Stalls, Inertia and Progress

I’ve followed a ridiculous amount of indie and small developer projects over the last couple years and watched them just peter out and vanish into the ether.  Hell, I’ve started quite a few that have gone the same way.. unfinished paintings, games, websites, etc.  So why does this keep happening?  What can we do about it?

Well.. It seems to be all about preventing Stalls and building Inertia to make manageable Progress.

Stalls

By ‘Stalls’ I mean it literally like a plane..  Sometimes projects get caught up on a glitch, bug or feature that is unexpectedly problematic or simply a massive chore to complete.  Then the motivation to work on it stops being fun and an awful lot like work.  That’s not a problem if it’s your day job, you can button down and just work through it, but for the indie developer who is doing this in their spare time, once development stalls everything else starts looking more and more interesting and exciting. The longer the project remains stalled the stronger the chance is that the project is going to crash and burn.

So here’s a couple thoughts on recovering from when your project seems to be stalling and the enthusiasm is waning that seem to be working for me.

  • in my task list, I keep several parallel development tracks.  So if UI development gets bogged down, I can simply just get it to a basically compiling state and hop over and work on something else in the project, like art assets , AI or path-finding.
  • but sometimes you just get sick of the whole project.   If you’re like me, you keep running across things/tech you want to try and work with, so keep a folder/binder/google doc around where you can jot down ideas for short exploratory exercises however it’s essential that they pertain to some shared functionality with your ongoing project.  So give yourself a day or two to work on it (like making a demo with a new api or skinning a UI library or something) Then force yourself the next day to IMPLEMENT it in your current project.
  • but some times you simply have to force yourself to sit down and bite the bullet.  Schedule some time, get away from distractions and simply sit down then work through it… yeah sounds stupid, but the ‘Schedule some time’ part is what makes this the hardest approach.  Which brings me to the next problem

Inertia

The fact that this isn’t a dayjob for many indies it means that life can sometimes turn the smallest molehil into a mountain, because Everything is a competition for your time, and the rolling rock of your project can’t go uphill very far on its own.  So we need to build up momentum in our project, make it feel like it has got a life of its own or decrease the amount of work it takes to get it rolling again once it comes to a complete stop.  Because, your time is precious and limited (even more so when you start having to work around a family life and maintaining a home) I tend to lean heavily toward the second approach, decrease the amount of effort needed for the next milestone.  I can imagine that the first approach would work well if you have a small team where everyone is all rushing forward together, so when one person stumbles the ball keeps rolling along and lets them catch up after their personal disaster has passed.  However I’m just me by myself so my tips lean toward:

  • Get your project compiling as early as possible.
  • Add basic core gameplay as soon as possible.
  • Build you milestones on that and make them each a standalone ‘functional’ improvement.

Because, sooner or later, something is going to come up and you’ll have to step away from your daily progress for a week or two, like children, broken computers, holidays, family vacations, household chores etc etc.  And when you come back to having time to work on your project you gotta hop back on the ball and be able to easily see where and what to do so you can get to that next ‘hey I’ve made something cool!’ moment and prevent yourself from stalling out.

Progress

Progress is king.  Progress also doesn’t like being kept in the corner. Getting your project to a point where you can shout out about your progress, via tweets to #screenshotsaturday, self serving blog posts like this, friends and family on Facebook, myspace, g+ or whatever is essential. Take pride in your progress. Get used to practicing saying in public that you’re working on something, have made progress and show it off.  Make it real to you and it will be that much harder to drop when the new toy sheen tarnishes and you have to spend a week debugging the text editor.  It seems almost impossible at times and the odds of actually finishing something really are stacked against you but it can be done.  And with great success.  MinMax did it over a period of two years,  CokeAndCode is doing it, RampantCoyote has done it,  all of them with keeping a dayjob, family and real-life’s responsibilities.

I hope to do it too.

[deleted a bunch of excuses for my lack of progress.. lets just chalk it down to life’s little mountains]

 

Categories
General

RMA / Small jobs

Well I’ve been hobbling along on a crippled system for a couple weeks now. My SandyBridge system motherboard got smacked with the defective Intel drive controller and before you know it I’m having all sorts of problems. So dev work is pretty limited.. I should know about getting a RMA in the next day or two (according to MSI’s website.. so I’m not holding my breath)

Other than that, consulting work has been a steady stream of little projects helping a client get ready for a couple tradeshows. So that’s been nice.

Add in a handful of general household stuff and you have pretty much a perfect recipe for exhaustion.

October is looking good though, and I’ve got some more stuff jotted down on a design doc, ready to be implemented.

Categories
General

Not Dead

Nope not dead, or forgotten.. just trying to survive the heat.
As it turns out, today, the day when the temps didn’t reach 100 for the first time in 40 days I finally get the initial map renderer working.. and it’s very good news.. The FPS hit on rendering even in full 1920 x 1280 is almost negligible.
So to celebrate.. here’s a screenshot!

Categories
Code design Development General Post

Bits N Bobbins

Short post on progress things.  Things have just been lots of grunt work and non pretty things.

Will have things to show real soon.

Honest.

  • basic player object ..er.. exists and rotates properly.. mostly.  need to knock out some better test sprites and stuff to be able to make things actually ‘work’ together, but the fundamental concept of 8 direction independently moving head, torso, arms, lowerbody seems to work and will look pretty cool.
  • monster entities can be spawned and basically kept track of.. no AI or whatnot but still it’s a start.
  • Implemented basic box2d physics for player and monsters. this will have all sorts of fun payoff later I hope. Force waves, shapnel etc 🙂
  • Got the macro tiles wired for a* pathfinding.
  • Got the World generating a Maze and then replacing it with matching macrotiles that randomly match the exits of the cell.
  • started on map rendering
  • camera instance screen objects so I can have a smooth moving controllable camera that chases the player.
See.. lots of neat stuff… however nothing that you can actually look at other than a bunch of  diagnostic log output.
Performance wise it seems to be running at ~240 fps on the low end test machine and ~somewhere over 3,000 fps on the new machine.
So I might need to add in a ‘laptop’ mode which disables the whiz bang pretty stuff I hope to get put in.
and damnit .. http://www.garagegames.com/products/torque-3d the introductory price will be ending soon.
So I’ve got to grab that soon.
Categories
Art Code design Development Games General Post

Enchanting Cadence post launch retrospective

What went right?

Well… lots of stuff really.

I managed to turn a paper prototype  into a fully functional game in two months.  Overall, game play grew and changed organically through the development process as low hanging fruit features were revealed.  Taking a project from A-Z in Slick was very educational (which was the primary reason for the whole thing).

The facebook integration worked (albeit their documentation leaves something to be desired) for the most part seamlessly.

The back-end level creation and management web tools worked and the general process of back and forth data between the webpage and applet worked as anticipated..

The multi threaded stuff to send and catch javascript communications works and once the basic process was understood was easy to implement.

Graphics and Music. Visually the game managed to capture the look and feel that I wanted.  I was able to work out an efficient workflow to take concept /programmy placeholder art and iterate it to the final art.  No assets were lost and not a lot of dead ends or un-used art was created.   Overall the music worked nicely as well.

It was a nice first version, however not something I’d call mainstream release ready yet.

What went wrong?

The first three weeks were spent having the enchantment process be based off of what visually was happening on the board, this caused massive issues as framerates turned out to be really unsteady once the game was in an applet form.  The fix was to have a logical representation of the game board where the simulation was run and then just have the rendering update it’s assets from the virtual model.

It turned out that applets have a massive overhead when instantiating any sprite as they check the applet’s remote filesystem path for the files.  This lead to the implementation of a boltManager object which pre-creates 500 bolts and tosses them to the game logic as needed and returns them to the source pool when taken off the board.  This fixed the issue .. until I added particles.

Particle systems create an image loading hiccup as above even if it’s pre-created on their first .render call.  The fix was to change the applet call to isolate the applet from the webpage with <param name=”codebase_lookup” value=”false”> .. The downside is.. this effectively killed the idea of loading level specific assets from the website.. so suddenly everything needed to be included in the jar file.

Java <–> Javascript communications are paaainfully slow.

Gameplay wise, it reaaaally needs a tutorial level, ease of use features, and a better dialog box system.

Level design really did not lend itself to the whole 1-3 stars for each level completion.  Usually there was just ONE solution.

Not enough time to build good levels.  By the time I’d gotten enough features to behave stably enough, I had to cut several features and wound up with still only a week and a half to build all the 10 levels. (remember there’s a fulltime job, consulting work and family with baby who all come first)   As a result several of the levels are pretty shoddy.

Applet communications don’t work in Safari on mac, and the game rendering doesn’t work in other browser on mac (but the communications do)

Considerations general thoughts?

The primary reason for making this was essentially a way to motivate myself to finish a project and learn a crash course in SLICK and java.  In this sense, this was a roaring success.

Perhaps it was a bit much to take on as my first real Java application… naaah.. just because I spent 2 days wondering why my string comparisons never worked. (even went as far as building enums and value catalogs to avoid having to compare strings)  … then I discovered   ‘string1.equals(string2)’ … sigh..

Applets are too restrictive to be viable.  Pretty much every benefit of having a web program work in java (other than the openGL) is overshadowed by a downside.  Heck just getting it up on the user’s screen means they’ve clicked through several very scary warning prompts.  And if you want to do any kind of network communications behind the scenes (bypassing javascript comms) means asking people to punch holes in their firewall rules.   All of which make applets un-usable for general mass consumption.  JNLP’s seem better but they’re not very user friendly.. (they don’t ask you where you want to install.. let you know you need to un-install etc..)

In the future I’m leaning towards wrapped jars into exe files for Slick and java applications.

Thank goodness this was a 2 month test project, eh?

SLICK is a lovely codebase and java really is a dream to work with.  Any concerns I had about java being slow or whatnot really have been blown away.  If I un-meter Enchanting Cadence it easily runs at several thousand FPS.  Actually it runs so fast that the math behind the simulation can’t measure the time between cycles correctly and it all falls apart. (that’s pretty cool)

The SLICK community and the java-gaming.org guys are really helpful and there is a wealth of tutorials and training out there.

The future?

For Enchanting Cadence

  • facebook integration will go away, hell, the whole applet thing was a mistake
  • it will be a standalone application
  • the first level in each levelgroup will get a real tutorial. (introducing mirrors, introducing prisms…etc)
  • there will be help indicators showing the path and time bolts travel when hovering over a launcher
  • the enchantment track will show what bolts hit and failed on the last attempted enchant.  This will help you find out what went wrong
  • infinite loops will not be allowed
  • the dialog engine will be changed for better and prettier dialog boxes allowing for more narrative and flavor text to come through
  • more levels and assets etc.

In General

  • I’m building a group of tools to use in the standalone EC version that will also be useful in other projects
  • Blood Soaked Deadly Dungeons of Doom! is coming.  Much as I love TGB it looks like you always wind up needing to do some core C++ tweaks and thats beyond what I’ve been able to wrap my head around.. so I’m exploring basic things and techniques to get the new isometric view working in slick… (repeat after me… I will not try and go 3d… I Will not try and go 3d!… )
  • Mutant Sheep Eat the Earth! need some loving too…
  • Swiftthought Consulting work, of course, trumps all of the above.  🙂
So, lots of projects to keep the summer interesting.  Lets see how it goes.


Categories
General

Bolt Art

Yay got the final bolt particle effects and images put in yesterday!

4 of the final bolts
Categories
General

Quote of the day

“Making games seems to me as very hard. So this is like a adventure. Your most precious loot will be experience.”

– Tei on RPS

I couldn’t agree more.

Categories
General Post SwiftThought.com news

Happy Mutant Turkey Day

Have a happy and safe holiday.  I’m looking forward to unplugging for a few days.

Categories
General

Dippy!

Just a Quick Post for future reference for the universe.  Below you will find a complete guide to assembly of your very own dip of seven layers.

SevenLayer Dip Construction Guide

Categories
Development Games General Post

03/03/2009

Well, some development progress.

The in-game map now reflects a proper mow branching randomly generated maze based on Prim’s Algorithm, the trickiest bit was adapting it to do without proper arrays Toquescript is a bit funny about that. After that, I created a basic start for a tileset etc etc and got it rendering properly in the engine.

Alpha 3 screenshot 001
Alpha 3 screenshot, Doors!

Tonight I got the tilesets to properly interpret the door and trigger tiles and render the proper animated tiles for them (after creating said animations of course). Spent a little time trying to figure out why shooting seems to crash the game on the tile based level but didn’t get much beyond making it not crash.. but not showing the shots either..

Alpha 3 screenshot 001

So that’s the next step, and after that activating the triggers and shutting the doors to indicate the start of a wave of enemies.

On the webby front, some minor tweaks galore to the theme with some more changes planned. Over the weekend I put up the site www.wenderflonia.com for GFW and she’s putting it to great use already.

Categories
Code Development General

Turkey Time approaches.

Well the year sure went fast. 

Been playing with some basic python and pygame stuff.  Seems like a pretty easy to learn language and api, just havent gotten myself convinced for the need to learn yet another language… oh well Im sure I’ll think of something to use for an excuse.

But it probably wont be until Xmas.  Letting the brain relax and just enjoying some neglected games and movies and such.  blah blah blah blah..

Categories
Games General

The Witcher gets a head start.

Looks like the guys who make the Witcher couldnt contain themselves any longer.

Sources report that “The Witcher: Enhanced edition” is popping out today.   The big decision is, buy it off stardock, steam or wait for the box to hit stores and get the extra goodies.  I’m partial to stardock, but steam’s platform is better and I like goodies.

*sigh*

Well I guess there are worse problems to face.
[edit: steam offers 10% off until the 16th]

Categories
Development General SwiftThought.com news

Server move

Well things are now settling down here on our new server. 

Got a handful of old and new domains consolidated across the board and some nre goodies lined up.

Most notably would be the start of development on the dream wars.  Got a good start on the dsesign spec and some of the data modeling up and running.  It’s an ooold idea I had a long time ago but with the new png support that’s universal plus a bunch of new nifty ajaxy2.0buzzwordladen tools at my disposal it actually might be doable now.  The biggest concern is how browsers support 3-400 pngs with 8bit transparency.  I hope pereformance doesnt just suck. 

anyway.. more layout changes and general tweaking still needs to be done all over the place.  But it’s a beginning.