Singpolyma

Archive for July, 2012

Archive for July, 2012

BitBrawl: Cleanup and Multiplayer

Posted on

I’ve pushed some stuff up to the BitBrawl repo. It’s really starting to come together!

First off: the art/data is in the repo now. I’m using the grass from the base assets for the background for now. I’ve also built a custom character from some of the art by Johannes Sjölund, and put the credits in my COPYING file. This sprite sheet has more animations than just “walk”, which will be very useful when I start work on combat.

I have also done some simple obvious things: players can no longer walk off the edge of the screen. The control configuration start screen now gives useful names for the keys, instead of internal names. Art and data are searched for in system folders, with a fallback to the current directory, instead of hardcoded paths.

BitBrawl with 2 players

I’ve also upgraded the drawing/physics code to actually draw and control all the N players who join the game! So, while all they can do for now is walk around, you can actually add as many players as you want! (There’s a small bug in that if you add more players that can be shown across the screen, the menu will draw some of them off-screen. I’m not sure yet how I want to handle that.)

BitBrawl, Opening Screen

Posted on

It’s not got a very shiny look yet, but I’ve got an opening screen for BitBrawl working now that lets the players join and configure their controls simultaneously. Only one player is actually rendered once the game is started by pushing one of the configured START buttons, but it is progress!

BitBrawl Opening Screen

After the game is started, the player can, as before, walk about the screen using the controls as they were configured for player 1.

The code is a bit hacky, but I’m quite excited by my progress so far!

Liberated Pixel Cup

Posted on

This is my first post about the Liberated Pixel Cup. I only became aware of the contest near the end of last month (indirectly, though a discussion on identi.ca) and was immidiately intrigued. The first phase of the contest (which is completed) involved pixel artists submitting compatible-yet-thematically-diverse isometric art. One of the big blockers to me getting seriously involved in a video game project has always been access to a body of art. Looking over the art that has been submitted, I think there is enough to do something I would be interested in, so I decided to start.

Using my latest favourite hammer, Haskell, as well as previous favourites of mine, SDL (which has good Haskell bindings) and Chipmunk Physics (which has acceptable Haskell bindings, though a bit out of date), I played around with ideas until I hit some inspiration. I am going to attempt to create a PvP brawler (dubbed “BitBrawl”) since this is a sort of game that I have always enjoyed (and of which there are too few!) I’m going to experiment with a twist involving “energy pellets” that players pick up which both decrease their odds of being eliminated (damage increases said odds) and gets used up by special abilities.

I want the combat mechanics to be of medium complexity (more complex than “hit A repeatedly”, but simpler than something like God of War), and auto-generated maps. Though honestly that’s a bit grandiose at this point. My primary target with the project is really experience, though I hope to also get a playable game out of it that can maybe be improved upon after the competition ends.

The last two days are the first chance I’ve really gotten to do some serious coding, and I’ve made quite a bit of progress, given my lack of experience with the tools and with game development in general. I have a single player who can walk around the screen (using any of the walkcycle art submitted to the competition) using configurable (hard-coded, but in a datastructure) keyboard commands and configurable (I parse a text file) animations.

Character control uses the top-down “Tank demo” physics from Chipmunk, which means that collisions and such will be nicely handled for me (once I get around to adding a second thing to the space).

My next step will be allowing two characters to be walking around. Then maybe a better background than just all-black. Then trivial combat. We’ll see how far I get.

One thing I’ve had to do is make a small patch to the Chipmunk bindings for Haskell to give me access to the maxForce and maxBias properties of constraints (necessary for the “Tank demo” physics). I will submit the patch upstream, but may have to package the library myself for my submission if it does not get mainlined in time.

I have released the code on GitHub under my normal ISC license, as well as the GPLv3.0 license required by the competition. There is no art or data in the repository yet, so it won’t run unless you put some in, but you can take a look. It’s a bit messy and IO-heavy right now, but it is getting cleaner as I go.

Hope to write more later.