Tools tools tools


So with an absolute lack of time to make any kind of forward progress until we all get settled into the routine of the new house, things are taking a little sidetrack from the ‘milestone milestone go go go!’ mentality for a bit.

That means two things.
1.  Character sketches, concept art and little paper mockups. Ie anything I can do not in front of the development pc.
2.  Tools development.  Little things that I know I will be needing, but don’t need to be dependant on the whole application to function.  Things like getting http://editor.irismel.com to export maps and support the little things I will need in my map editor, like monster spawners etc etc.  Also all the little widgets (button classes, text dialogs and so forth) and asset & option managers that I plan on eventually releasing
as a standalone jar file to help other java Slick developers.  I’ve got the javadoc of what I have so far up at iristool.irismel.com.

So lots of little things but no real time to sink deep into the development mindset for now.  But I should have some pretty pictures and scribbles up before too long.

Screenshot Saturday

Good week!  Lots of nerdy stuff fixed and resolved.  Here’s the picture and more details in extremely nerdy speak below.

The biggest things that got done this week are :

  • applet -> javascript -> applet communications are now working.  Which is pretty awesome.  The biggest challenge was that sending outbound communications need to be triggered from a seperate thread to prevent the JVM from stopping and waiting for a response and that Inbound connections needed a custom version of appletGameContainer that exposes the StaeBasedGame object (more details on all of that can be found here).
  • More per puzzle gameboard abstraction, so now the gameboard knows what things are where on the board, this made implementing a board rendering based on the Y coordinates a snap, so things now appear in front of the things they need to.
  • The beginnings of a more robust image/particle manager system.
  • A passable Level Manifest.  A game Level can now be passed between the different Game States and (eventually) populated from the database via JSON jquery calls.

The biggest problem that popped up has definatly been the particle systems.  The slick ParticleIO.load(xmlfile) works great locally however on a deployed Jar it really grinds things to a halt.  This lead me down the path of trying .duplicate() on a set of master particles.. to no avail.. I also tried just loading them all at startup into a great big MagicBoltBucket… that worked but the applet startup went to ~2min  …

What I’m winding up doing (still in the process of) is a) have an image manager that loads all the images needed ONE time at init and passes them out as needed.   b) a great big bucket of pre-made Magic bolts that I can take and put from.   c) Create all the particle emitters programatically.

Not entirely done with that, but the intial tests have the Initial filling of the BoltBucket down to about 2 seconds for 120 bolts.  Eventually There’ll be about 400 bolts in the bucket at level init.

EnchantingUpdate

Not as much progress as I’d like, or on the bits that I’d like.. but that’s kinda how it works 🙂

Here’s the Screenshot and some more sordid details below.

Highlights of the week are:

  • Applet integration started.. The basic functionality now works in a web page
  • Mirrors  (and indeed all placeables) now ask and respond properly to queries about their facing
  • Lots of new particle effects on Magical bolts (trust me they look way better in action)
  • This lead to some serious stuttering issues when creating all the bolts.  This has been fixed by creating all the bolt objects at level init and just flagging them as no update / no render.

The big issues to tackle:

  • Java to Javascript to Java communication.  Because I really want to be able to send data from the database / facebook requests directly into the game.
  • An update glitch that causes bolts to not register hits with mirrors.  The solution to this is to just skip the ‘per pixel’ detection stuff and have the bolts just run a check against the game Board’s entity mapping table and see if the bolt is going to hit something and then find out if it needs to change it’s offset and direction or magic power type.     This is a bit of work, but the initial stuff is really just taking too many calls and calcultaions to be done if I want it to start checking for positions in between update calls.

Screenshot Tuesday

Ok, so last Screenshot Saturday slipped by in a haze of yardwork, cleaning and taking the baby shopping at Ikea and other general domestic goodness.

But better late than never, eh?   So here it is:

Enchanting Cadence Screenshot - week 2

Yeah.. Looks a lot like the last one, right?

Well, so it’s all still placeholder 20 second photoshop art, but here’s the rundown of the basic stuff that now works.

  • Magical Emitters exist.
  • Everything has a facing direction and is aware of it.
  • Emitters can shoot MagicBolts.
  • Magic bolts can bounce around off of mirrors.
  • Things are a bit more objectified and things like placeable and object manager entities are starting to do the stuff they need to do.
  • The game is either in editing mode, or enchanting mode (ie when  you get to watch things either work or not)
Next up:
There’s a couple consulting tasks to wrap up in the next week or so hopefully so that’s going to take a bit of the dev time But here’s what I’d like to have working for next screenshot saturday.
  • Be able to rotate mirrors in edit mode. (right now it’s hardcoded)
  • Have functioning Splitters
  • Get a basic enchantable object that can start to track its requirements for success
  • Get Energy changers put in place
  • Have bolts die if they leave the board.
Overall I’m happy with the progress  however I can easily see how all my plans are going to mean the 2 month deadline for the Slick contest is going to be tight.

Screenshot Saturday Barely

Well it’s been a fairly slow start to the Slick Contest entry.

But as of now Enchanting Cadence is at least underway.   With some very quick n dirty programmy placeholder art.

At least until I get the mechanics polished a bit (well.. ok functional for now) .


Other than that the basic applet framework is there.. some datamodeling for level storage and tracking user scores and FB integration got taken care of..

lots to do … lots to do…

Almost at the tail end of a couple consulting projects, so that took a good bit of the week. but  They’re a nice change of pace from the day to day humdrum.

Facebook Slick Contest And More

So not quite a screenshot Saturday… how about a paper prototype pass?

A quick paper prototype for Something exciting

Does time fly or what?

So ‘Interesting’ stuff is happening

In a bizarre twist I’ve wound up having to dive head first into the world of facebook apps.  So I’ve made a couple apps.

First up is a Simple Level Counter for use in card games… Like Munchkin (though I’d recommend their mobile phone App for that.. it’s awesome)

Next up, is much less useful (for now) a proof of concept Swiftthought Demo app.   This is an actual Slick applet that’s running inside a facebook frame.  Now that’s got potential.

So much potential that I was looking for any excuse to give it a real go.

And then a Slick2d contest started.

So I guess that’s that.  Now I’ve got a pile of consulting work to get wrapped up by contest start of the 15th so that should work out just fine.  But I’ve gone ahead and started thinking and planning a bit last night, which is what the paper prototype is all about.

I have a couple family things to do this weekend but other than that it’s crank out website goodness 🙂 Pretty proud of it actually..

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.

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.

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.

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.

Updating the look.

As mentioned in the last post, GarageGames.com is back and that brings with it a chance to kick the development of BSDDoD! back into full gear.    (well that and finally having the motivation and (hopefully) time to work on it).

So I spent a bit of time this weekend trying to actually get SOMETHING finished on the game and I’ve got the basic Map tiles all knocked out.  Along with it came a change to a 30 degree Zelda like viewpoint which is going to provide some challenges later on, but the straight down view really wasn’t working and an increase in tile resolution to 128×128.  Also floor tiles got some subtle shading changes etc meaning I’ve got to rewrite my web based level generator (which I was wanting to do, it’s really way too inflexible).   So that’s the next task at hand.  So here’s a mockup of a screenshot using the new tileset complete with scribbled wizard for size testing.

The new Tilesets Used in a Mock scene

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.

New [Year, Goals, Work]

Wow, did that holiday season just fly by or what?

Well 2011 is here and has hit the ground running!

Already have the first several consulting projects up an in progress and have been doing some fun development stuff.

As the little green android above may have hinted at,  there’s a new platform of goodies in development.   I’m currently coming up to speed with Java and Android development… The first tiny title is coming along…. albeit it’s a lot of trial and error and research into getting things working properly.  Additionally, I’ve discovered Slick for Java and it’s seeming to be a nice and easy framework for LWJGL applications (ie .. games) …

Other than that.. it’s been a bonanza of games and fun.  Most notably  Minecraft.

We’ve got a mini server running on the laptop nearby and a couple of us have been building and exploring.  Hands down 2010’s game of the year for me.

A shot of the spawn area on our minecraft Server.

Anyway.. no new years post would be complete without some resolutions…

1 – Paint more.. I will finish my 2 oils, finish the 2 images in the elementelves series and at least two more pictures this year.. that’s one per every 2 months.

2- Finish the art on the Mutant Sheep Eat the Earth! game and get  a handful of decks out to testers.

3 – Launch an Android title on the marketplace

4 – Loose 25 lbs

5 – Enjoy the baby and cherish the family.

Not dead, just busy.

Too many things and many small projects being done.  I’m looking to get an end of year update up.  Until then, its nose to the grindstone and wrap up the last two freelance projects of the year up.  Oh and learn android/java in conjunction with the day job.
Which is actually turning out to be fun, but was getting confusing learning on top of darkbasic pro so I had to put that on hold for a bit.

Which sucks. A lot.

All in all the projects and the baby have completely decimated all my personal projects for now… but I’ve got a list and totally plan on kicking butt in the new year.  Maaybe I can squeeze out a painting before the end of the year.