Jario Update: Kinda Working!

I’ve just pushed an update to Jario with some pretty nice changes since I last mentioned it. As usual, you can check out the source if you’re interested or just Launch Java Web Start button!

I’ll be quick:

Features:

  • All the important items – coins, mushrooms, fire flowers and stars.
  • Goombas, Koopas and even empt shells, with the ‘proper’ graphics and animations.
  • Vastly improved input and collision handling.
  • Added a marginally more satisfying ending, though it still doesn’t do anything.
  • Fixed many, many bugs (but not the intermittent collision mesh one yet).

Architecture:

  • Cleaned up collision handling systems into a hierarchy of similar handlers for increasingly concrete entity types. I’ve found it to be very flexible and reusable so far, which is nice, since the logic of a game is little more than input and collisions.
  • Refactored image and animation spatials into a hierarchy of intermediate abstract classes, and added a SpatialComposer to group the different spatials of individual entity types and handle different states.
  • Inserted a hierarchy layer for spatial effect handling. Currently only processes changes in rendering alpha value, but does so quite nicely.
  • Played around with a TimerSystem to be used in conjunction with a Timer component, allowing systems to easily register callbacks with individual entities to be executed after a given delay. Makes it very easy to add temporary properties to entities. For instance, giving the player X seconds of invulnerability (hurt with >1 health, or press I) reduces to a single static function call. Still need to play with Artemis’ DelayedEntityProcessingSystem to see if that does a similar thing.

That’s all the significant bits so far. Still plenty more to go, though! Some of the above will need to change in order to support a complete level, which will be interesting. I also need some better game state transitions, though that’s nothing to do with Artemis. I’ll talk a little bit about some of the more interesting points soon, such as the collision handling and spatials, since those two are key to getting a game working smoothly.

Introducing: Artemoids

As I mentioned previously, I’m back to work, and my first order of business is playing around with Slick and the Artemis framework. To that end, after a mere day or so of coding, I’m pleased to present Artemoids, a simple Asteroids clone using the Artemis framework. I’ll talk more about the framework soon, but suffice it to say that it is incredible, and exactly what I’ve been looking for on and off over the past couple of years.

So. Artemoids is a simple, top-down 2D game in which you fly a ship around in space (zero gravity) and shoot asteroids. If an asteroid hits your ship you die, and when you shoot an asteroid it splits into two smaller asteroids. That’s pretty much it. There’s really no win/lose conditions, because I don’t intend to make a full game out of it; it’s primarily a test and demo of the Artemis framework, and something easy to cut my teeth on to kick off the holidays.

That said, I am planning a much more sophisticated game with quite a few similarities to Asteroids, so the Artemoids code should serve as a good foundation when I kick that off (and hopefully that will be soon, with an accompanying announcement).

You can try it out for yourself right now in a browser applet, or download a JNLP Java Web Start file to run it a little more locally. I’m quite excited about finally getting both of these deployment methods to work happily, as it means I’ll be significantly more able to show off any future Java projects I create.

Also, notably, this is the first project I’ve ever open-sourced, not because I’ve been a selfish git all this time (well, not only because of that) but because my projects have typically been pretty small-scale and hacked together for personal use. Hopefully however Artemoids (and of the some games that follow) will help to serve as an example for how to use the fledgling Artemis framework, and I’ll be referring to some of my code in future posts/articles. You can check out my Artemoids Bitbucket repository to read the source, submit any issues (bugs/feature requests) you find, or even fork the code for your own project. I’m a big fan of FLOSS, and I’m more than happy to lend a hand to anyone with any interest in what I’m doing.

Happy New Year!

Happy New Year to all and best wishes for 2011!

Why bother posting this when no one except me will read it in any relevant period of time? Because one of my new year’s resolutions is to make significant progress with at least some of my projects, and I’d better bloody well remember that. Tune in for serious updates from February onwards!

Still Alive

Just in case someone happens to read this while there’s nothing much happening, I’d just like to say that there is A LOT happening, just not on the site. Work is getting increasingly important, and Christmas (among other important dates) is coming up faster than I might like.

I haven’t had much change to work on the projects I’ve had listed all this time, but there is a new project under way, with the working title of Hario. Not surprisingly, Hario is something to do with Mario; it’s a little more than something to do with it though, since it’s basically a clone. I’m working on making a very simple game with The Artist Currently Known As DK, just so we can settle into actually trying to work on something together while simultaneously learning about all the tools we’re using. Hario is being written in C++ using Haaf’s Game Engine, and after a pretty full day of smashing against a wall, we’re set up and ready to code!

I get the feeling that actually working with someone will significantly increase my own productivity, especially once work my internship is over and done with. I’m going to be doing a whole more personal work next year so this blog should get much more of a workout. For now though, rest assured things are turning over behind the scenes. There will be results! Eventually.

Taboo Is Here

I just finished moving my Taboo content over from the old piemaster.net, while simultaneously filling in the blank pages. To find out what on earth Taboo is, you could do worse than to check out the Overview page. In short however, Taboo is a drum tablature editor designed by a drummer for drummers who are sick of hacking around with Word and Notepad to put their tabs together. It’s intended to put the relevant tabbing commands at the user’s fingertips to allow fast and easy transcription. It is however still very early in development, and there are plenty of fancy features planned for the future. Just as soon as I get some time…

It’s also free (and super lightweight), so feel free to download it and give it a spin. Bear in mind it will probably throw a few errors at you since I haven’t fixed it up for a while, but it’s safe to ignore them all. Restarting after opening it for the first time helps.

Anyway, it’s just another step towards filling this site up with content which is a little exciting. I’m also transferring the piemaster.net domain over here as we speak, so it should hopefully be much easier to get here in the near future. Hooray!
EDIT: Scratch that, the domain is still registered at GoDaddy for another year, so I’ll just try and get the DNS info to redirect. Same result, $9 cheaper.

The Apps Cometh

So I figured some things out, and I can now host all my stuff on here! Unfortunately WordPress doesn’t want to let me embed things in pages, but I can happily store them just off to the side, leaving them accessible from a nice, static URL. I’ve quickly put up two examples to show them off before I get down to business, which you can see in the Projects menu above, but just briefly:

Forgbook (working title) is my primary project at the moment, though it doesn’t get nearly as much development love as it should. It’s the result of many factors, the main one being when I decided I had stop leaving loose ends everywhere and actually DO those little things that make the big things come together. It is in essence a glorified to-do list (especially in its current form), but it has a very exciting future ahead of it. It’s still in a very early alpha stage, but it’s at least fairly usable. Check out the version roadmap for a preview, and hit up the feedback form to land yourself in the credits!

Treetris (also working title) is something new that I came up with yesterday while waiting at Parliament Station. The idea is a survival-strategy game based on growing out tree branches, inspired by Tetris and another game I failed to coalesce a while ago. I want to keep it simple in rules and mechanics, but have a bit of depth in how it’s actually played. The Java applet I’ve got up is just a couple of hours of work and is more of a teaser than a preview; it’s just a tree that keeps growing out until your computer grinds to a halt :). It should give you some idea of what I’m going for though, and me something to work off.

It’s exciting enough at the moment to just see these two out in public on a decent web host, but there will be plenty more to come now that the foundations have come together. If you’re even a little interested in any of this, you can subscribe to any (or all!) of the RSS feeds up the top-right corner there to hear about future developments, and I promise there will be plenty. I rather like this site, and I’m itching to dump my mind on it as soon as I get the time!