Posted on

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.

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

More UI work and little things

Yesterday was a down right beating and tonight is pretty much just simple recovery.

I got some basic Tool Tips in place for the various pc heroes health bars ,functions to manage and intialize them  and some general cleanup and organization of the whole game and level initialization process.

You know, it is kinda odd how many game tutorials, engine demos, books on programming etc etc that totally ignore the fundamental importance of getting the foundation right.  The basic core logic, update loop, memory management, debugging, maintaining player data integrity and all those un-glorious details even though utterly essential get just a few words here or there.   The best book I’ve found that goes into all those nitty gritty details is this Game Coding Complete,  By Mike McShaffry.. some of the content is out of date ,but oh my god .. it covers all the icky dull essential things that you NEED to know. [edit.. I only have the 1st edition.. he’s now on the 3rd]

Now a Lot of us are using 3rd party engines these days… (‘Im using TGB, Slick and flash mainly) .. and it’s easy to shrug it off thinking that it’s ok to rely on the engine to make the decisions about all the nitty gritty and dull as hell details.. and for the most part you’d be right.  However….  When it breaks, or you push it too far, or you try and do something ‘not according to best practices’  and you’re lucky enough to have access to the source (thanks GarageGames and Coke&Code!) you can understand HOW it works and how you want it to work and arrive at a functional compromise.

Anyway I’m straying from the topic at hand and I’m still trying to formulate the whole ‘Why you should build your own engine and never use it’, blog post.

So consider that a preview of sorts.

Oh yeah and I knocked out another GUI mockup.

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

The Fall Season!

Whoa.. after what feels like an absolutely morale crushing infernal heat wave that has more or less sapped all willpower for the last several months… it’s time to get the show back on the road.

Here’s a peak at what’s been worked on.  More details as soon as I get more gameplay things put in.  And after a break to Javaland  it’s back to good ol TGB.  The upside is that things make so much more sense now.   Many more thoughts on the matter later on.

Posted on

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.
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 2 Comments

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.


Posted on

Screenshot Saturday Delayed.

Well Friday the 15th was the halfway mark in the Slick contest.

I was hoping to have a glorious screenshot bonanza after a few more hours of work showing the completion of the core mechanics.  I’m  that close to having the functional workings of the gameplay.

Then mother nature decided to throw a hissy fit and bounce the power to the house 20-30 times in about an hour.  This, it turns out,  is bad for hard drives.  The surge protector did its job and the only damage was an irretrievably messed up FAT table on the primary drive.

So, time to re-install Vista…  followed by 2 days of patching and re-installing applications and now I’m basically back to where I was before..

On the upside, it was a wonderful weekend of just chilling with the family and going to bed early, and I know for sure now that my Backups are working.

So here’s the short list of things for basic feature completeness:

  • smooth interpolation of the tick based movement.. there’s hiccup in it currently
  • add dialogs for succeeding and failing enchants
  • get the ‘record’ mode of the solution to not mis time the first bolts
  • add splitters
Time to get to work!  well.. after work work that is..
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

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

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.

Posted on

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.

Posted on

Slow progress

So progress in sheepsville has been..well.. slow..
I’ve got another dozen or so sheep painted and ready to go into their cards, but overall, progress has been a fraction of what it needs to be.

The upside, however, is that I’ve gotten a bunch of freelance work (that’s right, I’ll work for money) and that’s pretty much all wrapped up for now.

I’ve started the process of reworking the site theme. Currently I’ve got the new headers and superfish menus in place, and gotten a jquery lightbox up and running, the menu’s need a bit more work though. Also, we now have a gallery.

All that remains is the re-styling of the content and sidebar and drawing a new site background image.

But first up, www.Wenderflonia.com is gearing up for a massive overhaul and that’s #1 in the priority list. Keep an eye out for it, we’ll have art commissions, prints and more goodies coming soon.

And more sheep. I must make more picture of sheep, and get an accurate count of exactly how many I still have left to finish.

That’s it for now. Further updates shortly.

Posted on

A week of dubious progress

Well ok so I’ve got a valid excuse for not getting a whole lot done over the last week.

However, I did manage to get the whole loading, saving, entry and displaying of high scores implemented.

 So.. that’s a plus.  Still a couple bugs to work out but 90% there.  Next up … hmm.. not exactly sure.. maybe I should iron out some details so I can see what I need to do before calling it Finished.