Posted on

More Progress

Good progress.. A little slow.. but progress nonetheless.

PC icons (as seen below as the Tokens with Wizard faces on them) can now be selected, and told to move to proper spots on the map and assigned a facing location.

Also good progress on the whole monster spawner Behavior.  Still some thinking to be done on how to do some of the details but I must say it’s really nice to be making tangible progress again.

Posted on

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]

 

Posted on

Third Time tis the Charm

Ok, needed a bit of a fresh mental break from typing and numbers for a day or two so I started the beginning of the large pile of character protraits that I’ll need to make (somewhere between 10 – 50)   That’s the joy of doing things as an indie developer.. I can put on whatever hat I want to today.  Granted at some point I’ll have to put on the businessperson hat and then it’ll not be so much of a joy.. and when time comes to put on that 400lb steel and barbed wire hat labelled accounting I’m sure it will be no fun at all.  But today… today I’m wearing a paint spattered cartoony beret.

Oh and I also got a large chunk of the UI implemented.

Looks a lot like yesterday’s post?  Well it should.. except this one works and lets you scroll the map etc etc.

 

Posted on

Daily Progress update.

I know… updates two days in a row??!  What madness..

Manged to get A* following objects to automatically turn and adjust their facing while maintaing their portrait’s orientation.   Also increased the basic map tile size by one so things aren’t as cramped.  The remainder of the evening was spend working on the following Mocup UI:

As you can tell I’m targeting a baseline 1280×768 resolution.  (obviously.. doesn’t everyone count the pixels on every image they see?)  The different thing is that designing for widescreen (6:9 / 6:10) and then making it work in old school 4×5 instead of doing it the other way around, lets you make some design decisions that you usually probably wouldn’t do.   With Widescreen you can essentially forgo the old L shaped UI frame and just settle for a thicker | shaped sidebar.. and still have plenty room left over.

I think we’ll be seeing more and more of this as the old 4×5 proportion fades into obsolescence. ..

Posted on

Building Better Tools

So, basic progress is in swing.  There’s a bunch of stuff I can port over from the GarageGames Torque Game Builder version that I was working on, however, there are a bunch of things that I didn’t need then or just do not have access to in Java or just don’t integrate with Slick very well.  So with that in mind.. I’ve been digging  into Pre-Pre-Production.

To that end I’ve stated building a toolbox. Figuratively, of course.  Here’s a few of the silly things  that are a pain to write but very useful to have.

  • AssetLoader – based on the slick tutorial this little thing lets me have a loading bar on a title screen while the game loads every asset it needs.
  • OptionsController – manage loading and saving user settings and profiles for resolution, sound, and player name.
  • InternetFile / InternetString – for pulling a string (current version) or file (updated assets)  This makes keeping the user informed of latest news/ updated versions a snap.  Since Minecraft came out with an auto updater, it’s been glaringly obvious that at minimum having a latest version check is a MUST Have feature.
  • Movement Library – a pile of functions to take two points, and interpolate between them,given a method speed and time elapsed and whatever else that comes up.  I expect this to grow for some time.
  • ImageCounter widget – display a number with a series of images. Like hearts in zelda. Supports horizontal and vertical orientation, whole and partial increments etc.
  • Basic Image Button – yup it’s a simple little button made out of a bunch of images, it’s self contained and easy to use and change.
  • State Based Button – also called a modal button.  Essentially displays several options on a button bar and you can select one.
  • Text Block – an angelfont based text block widget , hand it a block of text, an AngelFont, and give it a max size.  It auto animates the display, pagination etc.
  • Text Entry – an angelfont text entry widget.  easy and simple..
and as I find things that would be handy in future projects I’m adding them to it.
So it turns out that making little widgets is actually really kind of fun.  Much like building the IrisEdit level builder tool that I’m using to build the levels.
And with those tools in hand, I’ve created the game Launcher / Version Checker,  Here’s what it looks like without the Launch Game button (it goes in the middle)

 

Posted on

Tech Choices: Walls

Assuming you’ve decided to build a 2d engine for a non side-scroller you quickly come face to face with one of the biggest decisions you’ve had to make so far.  How are you going to represent the game world? Basically there’s two choices each with their own benefits and issues.  There’s the ‘Walls are a block’ approach where everything is a block and the ‘Walls are an attribute’ approach where walls are things that are part of a tile and appear on the edge of a tile.  Here’s a little Pro/Con info that I jotted down while deciding on which way to go for BSDDoD.

Walls are a block.

Example: minecraft, zelda This is probably the most obvious approach to building a 2d world.  Everything about the world construction is handled in a simple array of blocks letting you quickly build a map.

Basic implementation:

It’s essentially a lardge 2d array that contains the structure of the world.  With each location in the world represented by a number.  For pathfinding you can easily implement floodfill tests and even weighting the passability of tiles is pretty trivial.

Upside:

They’re easy to implement and fairly lightweight, make a whole bunch of visibility / raycasting real easy and fast.

Downside:

Aesthetically they’re not as nice/real looking as what can be achieved with thin walls.  Destructible walls are more unrealistic and the wall type is determined by the block that is the wall.  So if you want blocks with different wall textures you have to create and track many more entities. Windows are pretty much out of the question and doors tend to look a bit odd.

Walls are an attribute

Example:  X-com, project Zomboid, old Gold box D&D games, the Sims

Basic implementation:

Every game tile has 4 flags associated with it used for indicating if there’s a wall. This means that there’s a bit of extra overhead but it comes at some interesting benefits.

Upside:

Aesthetically having walls look like walls is a big bonus.  Also the ability to do things like have windows, half height walls, one way doors and portals is nice too.  Also the ability to have different textures for a wall regardless of whats in the neighboring tile is nice (but there’s workarounds for tile based maps for this as well).

Downside:

Complexity.  Pathfinding, line of sight and collision detection all become significantly more involved, not necessarily slower,  just more complicated.

What did I choose?

Well since I’ve got a bunch of the art assets already created for a straight on view, I eventually settled on the Block based walls with the Straight on view (right side of the image above).  Really that was the deciding factor.  The straight on Blocks as an Attribute would just wind up looking odd and I have no need for windows or doors since it’s essentially an arena based shooter.

For the next project I’m leaning toward an isometric Block based map, however with blocks being smaller than the characters, so that will give thinner walls and hopefully a more enjoyable dungeon building experience… but that’s still way off in the distance, percolating on the back burner.

Posted on

Screenshot Saturday

Managed to get the web editor exporting tileframe data nicely, and with a few modifications was able to get TGB to import the new map data and render the maps in the existing tilemaps.  🙂 yaay.

New tilemaps in Game Engine.

Now if I can only find out what makes it crash when you touch the mouse……

*scratch head*.. well at least it’s progress..

Oh and we have new and very awesome epic in-game music now from www.indiegraphics.net

So it’s  been a good week overall.

[Edit::]  Found the Crash.  it was to do with the checks for various player positions on the tilemap for shooting.  Which is totally obsolete, due to the new tilemap, so it was crashing.

Posted on

Milestones

Pardon me while I ramble..   if you get bored you can pop over to the map editor and play around and let me know how it performs for you (IE users, don’t bother), and saving is disabled.   This is essentially me trying to externalize the process of development that seems to work for me.

It’s easy to get lost, sidetracked, disillusioned, or just plain worn out when embarking on a massive self guided project.

Even when you feel like you can just keep working on a project forever because you have so many ideas you risk it all if you don’t know what the final product is going to be.  For example, the megahit Minecraft was in development for over a year and sold close to a million copies before the guys at Mojang finally sat down and decided what they were actually making.   I’d wager if it hadn’t been for it going viral, it would have wound up just another of the tons of  half finished abandoned indie projects that litter the web because they didn’t know what they were making.

On the other extreme, there are just as many abandoned overdesigned, super perfectly detailed design documents for games that will never be created, scattered all over the internet as well.  Potential games that were literally designed to death, go dig around on sourceforge and you’ll find hundreds of em in ‘planning’.

So what’s an indie developer to do?

Frankly, I’m not sure.  I know what seems to work for me  (so far), and that’s self imposed milestones.

Now let me clarify a bit.  I’m not talking about your usual development project, spec sheet loaded, time and budget allocated, cut your funding if  you don’t make it milestone.  That’s for a different type of development, not a creative endeavor.  It has it’s place, but not here.

What kind of milestones?

I’m talking more of a softer, moldable, flexible type of milestone.  You take one, you work on it, do whatever you want withing the parameters specified, and when you’re done you have real tangible progress.  Then you pick another one that mirrors what you’re in the mood for.    That’s key for me.   When I get to the point in a project where I don’t have a choice in what I need to do next and don’t want to do it , I get distracted. (see the Mutant Sheep Eat the Earth!, game… it’s pretty much stalled because I’ve worked myself into a corner where there’s nothing exiting left and I’ve gotten totally de-motivated  (psst it’s not dead.. just hibernating in my subconscious.. I have plans percolating.))

For example, by the time you’re reading this, I’ll have wrapped up my latest milestone for BSDDoD! which was ‘Build a web based editor to let me edit game elements and export them into a flatfile for use in the game in 20 days.’

Flexible task definition

That’s it for the definition of it.  I didn’t have any other notes or plans other than I knew the map size has to be 20×20 due to memory constraints of the final 10×10 grid of 20×20 maps that the game will happen in.  I could go as feature rich and as crazy as I wanted to, but I always kept a mental track of trying to hit the date or at least get as close as I possibly can.   I didn’t even know what I was going to write it in (jquery, cakephp and custom javascript if you’re interested, it almost wound up a desktop based Python application or java applet)  I didn’t pre-plan features other than the map size.  This let me actually create and explore while working on it.

I really try no to make too many choices that will force me to wind up in a position of having to determine things for future milestones.  Now of course it’s inevitable that there will be some overlap, but striving to make each milestone into it’s own creative endeavor keeps me interested in the long run.

Know how long you can stay focuse… ooh look shiny!

I know how long my attention span is, and how long I can proceed with certain types of tasks before getting bored and I make the milestones accordingly, and I try to have a couple of milestone choices available to choose from, so if I’m in the mood for more coding I can do that, or if I need a break and switch to art asset creation, planning, music etc those options are available for me.

So my next choices for BSDDoD! milestones are:

  • Coding, Import map data and generate levels in the Torque Game Builder engine that alpha 4 was working in, 7 days
  • Art, Create Door, wizard (basic wand and arm) and basic creeper art assets, 14 days.
  • Design, come up with different enemies and concept art and various powerups available in the witch’s shop, 14 days.

Time is relative

Now you’ll notice that my ‘days’ have very very very little relevance to normal time, this comes with having a 1 year old, and a fulltime job, an art site and business to help launch  and some awesome swiftthought.com development work that all take priority.

That’s ok.  I’m fully aware that this 6 month project is already in it’s second year and I’m ok with that.

I can see progress being made.

I can see what  I need to do, to get there.

I still have to make up how to do it.

I can see the milestones all the way to the end.

I have no idea of  what all the things I will have created by the time I get there will look like.

That’s damn exciting.

Posted on

IrisEdit Screenshot Saturday

In an attempt to keep updating this on a more regular basis here’s the first of (hopefully) many Screenshot Saturday.

a screenshot of the almost complete level editorThis is a screenshot of the irisEdit map editor on my dev box.  At this point it’s 90% complete.  There’s a glitch in the saving/reloading that needs tweaking but other than that it’s ready to start building levels in.   At which point I’ll move to the live databse over at editor.irismel.com

Unfortunately this week was full of all sorts of fun freelance stuff and prep for the baby’s 1st birthday party (in roughly 11 hrs from now)  so I didn’t get the editor wrapped up.. but hopefully I can get it knocked out Sunday if I’m lucky.  Next week promises to be full of more and maybe even some new paying client work, which of course takes precedence over BSDDoD! progress.

What I’m Playing:

  • http://insideastarfilledsky.net/ A recursive, larger than the Galaxy  shooter.  From the guy who made Sleep is Death (more coverage of that over on RPS) which was a lot of fun to play with P.
  • Bejeweled 3... because it’s like sparkly snappy happy crack…. especially some of the new gamemodes.
  • X3 Terran Conflict – the last, best, biggest, entry in the X series of intergalactic space trader conquer the galaxy games (available on steam)
  • But with a new Minecraft patch hitting tuesday… all bets are off for the next week.
Posted on

Editor Work

So what do you do if you have an unexpected 3 days of vacation.  Well if you’re like me you get a chance to dig into some new fun tech and wind up making a new version of the tile editor to support your game.   As I mentioned in the last post, I’m in the process of moving to a front face Isometic camera for BSDDoD! (like the original zelda).   Which is going to necessitate a new tile editor to do all the hard work.

The old editor is still online at http://irismel.com/tileEditor/ and functioning in it’s primitive state.  However the new editor, is slowly coming online at http://editor.irismel.com with the real magic happening on the editor pages ( http://editor.irismel.com/maps/editMapTiles/12 )  There’s still a bunch of fun stuff to do, like detecting and placing the  front facing tiles and being able to place and edit objects, not to mention being able to export this and get it into the primary game engine files.    But, overall, this has been an excellent week’s worth of progress.  Cake PHP is proving to be a fast and flexible framwork to be able to create complex data driven applications.  I really hope to get many more chances to dig into it and do fun web-app stuff..

The new editor does everything that BSDDoD! needs and then some, in fact it’s pretty close to being a whole generic level editor for all sorts of tile based games… but one step at a time eh?    I have a short list of to-do items left for the editor and then I can pop back into the main TGB code and start to implement the new map style (should be simple since the editor will generate complete maps) and start updating the player, adding new creatures, and adding the equipment shop…

What I’m Playing:

Revenge of the Titans: This is an addictive, just incredible take on the tower defense genre, and the latest version just simply does so many things right.

Space Chem: This is probably the puzzle game of the decade.  Build chemical compounds with an assortment of commands given to waldos… oh hell I can’t describe it.. just go get the damn thing or read Rock Paper Shotgun’s coverage...

X3: Terran Conflict :  the last entry into the X3 universe by EgoSoft.  It’s got a steep learning curve but leads right into the heart of one of the best space trading/combat/strategy games of the last 15 years.

Posted on

Back To Torque

It has been a few months of crazy development environment ping-pong around here, but things are beginning to settle down.

Back in November the guys over at GarageGames.com announced they were shuttering the InstantAction team and that generally the outlook for all of Torque seemed really bleak.

So with the future of my development tools up in the air I did some research and started switching over to DarkBasicPro and then in tandem, the day job necessitated a crash course in Java.. which lead me to Slick2d for Java, which I’ve also done some poking around in now.

The problem is that they both (Slick and DarkBasic) seem to magnify the deficiencies of the other.

DarkBasicPro is EASY, and Fast to get prototypes up and running in. It’s also Basic, that means no objects, no event handlers, and scoping variables is fast and loose, ex arrays are always Globals.  And no garbage collection, premade main loop or GUI tools, so you’ve got to write that yourself.  However the community is FULL of snippets and other pieces of code so you can cobble together a nice utility library in a couple of days.  Oh and it supports 3d and shaders etc.. for that reason I may come back some day.

Slick2d, on the other hand, is 100% object driven, with all sorts of good things that come with that.  Tightly scoped variables and inheritance etc etc also make it really powerful and clean to code in.  It is, however, not easy or fast to throw together a prototype.  Especially since there isn’t much of documentation other than the auto-generated API docs.  Throw in some of Java’s memory limits and stuff and it gets pretty cumbersome fast. It’s got a nice state-based game core and main loop that works really well… once you find it.

I wasted too much time on both of those only to realize that I miss Torque Game Builder.  It’s not perfect, but it is very much a nice place between the two.

So, I’m really happy for the guys at GarageGames.com when they announced they’re Back! And T2D is still alive and kicking.

Now it is time to install the latest version, get tweaking on the Blood Soaked Deadly Dungeons of Doom! and get this whole thing back on track!

I’m still doing the whole Java Android development stuff, and that’s been making good progress as well.  Hope to have more details and maybe a screenshot or two by the end of the month. *cross fingers*

Oh and Wenderflonia is going to be getting a minor facelift and its own Online Shop by Mid Feb and a couple more freelance projects should be wrapping up and I hope to be able to refocus my energies a bit more on development.

And to wrap it up I’m going to try and end every post from here on out with….

What I’m Playing:

  • Minecraft – indie game, sandbox phenomenon.  If you ever wanted to play with legos, build anything, explore a world this is the game for it.  We’re documenting our latest travels here http://blocklandtravels.tumblr.com/
  • SpaceChem – puzzle game of the year  all time.  It’s fiendish and guides you into an extensive set and before you  know it you’re inventing solutions like this (my you tube video of a solution) The stats comparison lets you know how you stack up to everyone else and is absolutely addictive to optimize your solutions.
Posted on

Impractical Exercise

Unplanned Diversions

So as I’ve mentioned before I’ve been playing / testing the Elemental Beta, which has since been launched er.. well… poorly… Apparently There was a bit of developer tunnel vision and it turns out the release version was kinda… well.. unfinished..  However Stardock has a history of supporting their releases magnificently.. and if the newly released 1.08 patch is any indication Elemental is quickly on its way to being worth it’s weight in gold.

So Funnily enough, this plus a couple other factors all gelled together and I’ve unexpectedly / inadvertently managed to start a new project.

First the elemental launch  got me thinking a lot about about the old classic Master of Magic(now available at GoG) and Age of Wonders (also at GoG and Impulse) and how hard it would be to make a classic fantasy TBS with modern tools.

Second, I’ve been coming to grips with building real web apps with CakePhp and getting used to working with the whole MCV concept.

And, perhaps, most significantly, I’ve messed with fun tool-set jQuery overlays and dungeon creation tools via web browsers in the past and while updating all my domains I found that I had registered fantasywarsonline.com a long time ago and simply never gotten around to messing with it.  So I spent some time re-discovering things I’d made a long time ago.

So one evening later, in the breaks between putting teething baby to sleep,  I’ve managed to get a good start on a random map creator, and some basic database modeling laid out.

I’ve got a few freelance projects to work on this weekend and a painting to finish, but hopefully I’ll be able to define some Fun Milestones to knock out so hopefully this can be a fun multiplayer web based TBS.

Analog diversion update

The Sketches for all 4 element paintings are done.

The finalized sketches

And the Fire Element Painting is getting closer to being done.  I hope to wrap it up in the next few days (baby willing)

Step 3 the Hair
Step 3 the Hair

That’s it for now.  I know I haven’t gotten to the Amnesia or Reccetear games post, I just haven’t played anything in the last couple days to get screenshots from them, however they’re Both Excellent and you should buy them.

Amnesia is probably the scariesy 8-10hrs you’ll play this year, and Reccetear is an addictive, cute and surprisingly huge rpg where you play the town’s item shop owner!

[edit] clearly this was written late late at night and makes little sense in parts… updated for coherence.

Posted on

On the road to nowhere

Well.  So according to “the plan” By now I should have had 28 sheep wrapped and packed.

Turns out it’s more like 4, well.. not like… it’s exactly 4.

On the other hand, though, I do have 20 sheep drawn, inked and scanned ready to paint, and that’s good.  That was all last week but I’d qualify that as keeping up on the schedule.

So this week just didn’t lead to any real work getting done.  Worked on some freelance stuff and started messing about with what will be the marketing site for Mutant Sheep Eat the Earth! Which I’ve the photoshop files all ready to go on. And ninjababy has been taking up all the time that’s more or less left over at the end of a work day.

Baby Jude earns his Ninja Legs at 8 weeks.

So, I’m not gonna fret.  Just buckle down and give it another go.  And I’m gonna be a better blogger and actually post on a semi-regular basis, there’s actually a series of game related things I’ve been meaning to get put down.

For now.. It’s time to crawl into bed and plan to assault next week with renewed vigor.

Posted on

Quick update 50% marker passed!

Just tooting my own horn.  I just passed the 50% mark on the art asset creation for the sheep decks.

Just 62 more cards to finalize..

Here’s where things stand as of now:

Cards Drawn 78 remaining 47 total cards: 125
Cards Painted 63 remaining 62 ready to paint 15
Cards Placed indo Deck Files 63 remaining 62 ready to place 0
Cards Tested in Gameplay 1 remaining 124 -<this isn’t exactly accurate but I know what it means>-
Known Text Revisions To do 3
Proof  for Press complete remaining 125
Done 0 remaining 125

Drawn 78 remaining 47 total cards: 125Painted 63 remaining 62 ready to paint 15Placed 63 remaining 62 ready to place 0Tested 1 remaining 124 Known Rev 3 remaining 122 Proof 0 remaining 125 Done 0 remaining 125