Spandex Force v0.3

January 13th, 2008

I actually released v0.3 of Spandex Force several days ago, but I didn’t want my blog to look like I’m working away like a mad banshee at this game; it was just a short while ago that I wrote an update, after all. Of course…I am working on the game like a mad banshee, but I wouldn’t admit it. Either way, a lot has happened since the last release:

  • New map art! This is not the final version – it’s just a preview jpg I received. The final even-better city will appear in the shortly-arriving 0.4 release.
  • Many more minigames! I realized that the game was lacking variety, so I followed sage advice I’d received from 0.2 playtesters, and added more minigames. A few of these are mini-minigames just to spice things up, but I also made new major-minigames such as getting a cat down from the tree, and stopping an attempted grand theft auto.
  • More sparkles! I added particles and sound effects to many places – it’s actually getting to the point where I’m unsure if I can add anything else and still have the game playable at low-end machines. For once in my life I find that I have too new computers at my disposal.
  • Lots of other bug fixes and tweaks and improvements. The problem with making rapid iterations like this is that I lose track of all that’s done. I could compose extensive release notes for each release…but that seems a bit overkill for “internal” releases like these.

Game Info
Spandex Force is a unique puzzle/adventure/RPG game that lets you create your own hero to clean up the crime-infested town of Vigilance Valley. Follow your hero’s quest to rid Vigilance Valley of vicious villains such as the Blizzard Wizard, the inept riddler Countess Conundrum, and the mysterious Professor Aphasia.

Screenshots
   

More screenshots and more info can be found at http://www.spandexforce.com.

Downloads
Download the Windows version here:
http://www.spandexforce.com/files/SpandexForceDemo.exe
Download the Mac version here:
http://www.spandexforce.com/files/SpandexForceDemo.dmg

That’s right, a Mac version is available now! You see, I’ve been pretty busy indeed. Please let me know if you find any problems with either release – and feel free to let me know if it’s working fine as well! Feedback is much appreciated.



Spandex Force Update

January 5th, 2008

People constantly ask me how things are going with Spandex Force (note: blatant lie), and I thought I’d write a small progress update. I may have been asocial during xmas, but at least I got some programming done:

  • The total minigame count is up to ten. This feat is accomplished by reusing game types and applying them in a few different situations, as well as adding a few minor chance-based ”mini-minigames” for variation.
  • More sparkles have been added. And many more sound effects. It’s way more polished now! Yayness!
  • I’ve made the early game a bit quicker; i.e., you level up faster and accomplish the earliest tasks quicker.
  • The tutorial system is much improved, with informative animations and popups when something interesting happens. I still don’t have a “no more tutorials” checkbutton; I try to keep the text to a minimum and you can banish the information with a simple click on the Rodent of Parc. (Rodent of Parc? See http://www.pottsland.com/mm6/eastereggs.shtml)
  • Finally, but not least: I’m getting a new city background!

Just check it out… Isn’t this much better?

Map!

I adore this sketch of the new map, and I’ll be releasing v0.3 of Spandex Force as soon as I have integrated the coloured version and tweaked the difficulty a bit. …That is, playtested thoroughly up to four episodes or so. Thankfully I actually like playing the game myself; I was afraid that I’d be getting bored at the gameplay by now, but it’s still fun to save cats and capture villains and buy new capes. I hope that’s a good sign!



Spandex Force v0.2

December 11th, 2007

The game formerly known as Truth, Justice and Spandex is now known as…Spandex Force! No need to tell me that you preferred the old name – I agree completely. But there’s not a single feasible way to find a domain for that name! Truthjusticeandspandex.com? Don’t be ridiculous. Justiceandspandex.com? Nooo. Spandexjustice.com? Dude, it’s starting to sound like a strange fetish site. So, spandexforce.com it is. Which incidentally also sounds strangely like a fetish site.

Game Info
Spandex Force is a unique puzzle/adventure/RPG game that lets you create your own hero to clean up the crime-infested town of Vigilance Valley. Follow your hero’s quest to rid Vigilance Valley of vicious villains such as the Blizzard Wizard, the inept riddler Countess Conundrum, and the mysterious Professor Aphasia.

Screenshots
Screenshot Screenshot Screenshot Screenshot

Download
http://www.spandexforce.com/files/SpandexForceDemo.exe

Notes

  • The art could be improved. I’ll see what can be done about it; at the very least I’ll need a new city screen. Suggestions for an appropriate artist I can contact are welcome!
  • It’s not fully balanced yet. Feel free to suggest improvements!
  • Peter: I haven’t included any sheep just yet, but the eagle from Sheeplings randomly appears on the city screen. ;)
  • And Anders, I’ll see what I can do about losing progress indicators… I need to get the art sorted out first, though! :/

Thanks in advance for any comments.



Truth, Justice and Spandex v0.1

November 20th, 2007

Evildoers, prepare yourselves! A new hero is in town, and Vigilance Valley will no longer be a putrid cesspit of crime and villany! Create your own hero in the puzzle/adventure/RPG Truth, Justice and Spandex, and battle horrible super villains like the Blizzard Wizard and Countess Conundrum. In other words: the first public version of my new game is available and I’d love to get some feedback!

Title

Screenshots:
http://www.karjasoft.com/test/screenshots/ss1.jpg
http://www.karjasoft.com/test/screenshots/ss2.jpg
http://www.karjasoft.com/test/screenshots/ss3.jpg

Download:
http://www.karjasoft.com/storage/Truth,_Justice_and_Spandex.exe

Note: I’m not happy at all with the city art. I need to find an artist interested in making it look nice an’ good; if anyone has any suggestions for suitable artists I might contact, please let me know at info@karjasoft.com!

More notes:

  • The game starts in full screen, but you can use the command line option “-w” to force it to windowed, or “-fl” to force it into fullscreen with the desktop resolution.
  • Many non-necessary things are missing. Options, profile selection, some special effects for the super powers, and so on. Please let me know if something’s completely off – but it might be on my todo list already.
  • The game will feature artifacts – weapons and armour that you can apply to your hero. But that store isn’t done yet.
  • All game mechanics aren’t explained; I’m still undecided whether or not I should go into rants about how some super powers level up along with powers, and how the power levels decide the defense against similar powers. Part of me reasons “Screw it! It’s playable without such information, and I can make FAQ pages for those who do care.”


God-Man and Clichés

October 30th, 2007

I’m slaving away at my new game Truth, Justice and Spandex, and I’ve come to the point where it’s…playable. Not just “I can start the different puzzles and finish them,” but more along the lines of “if I just get some more art and make some sound effects I’ll have a working demo that I can release to get feedback.” In fact, the programming and game design is starting to look pretty okay, so I’m concentrating on writing dialogue for the first episode, Cometh a Hero. In fact, I just finished a little exchange that will occur when you beat the first “boss”:

PLAYER: Take that, you vile miscreants! Prepare to do some heavy time.
THE HEAVY MOB: Oh man! Not again… We just got out two weeks ago!
THE HEAVY MOB: Maybe crime doesn’t pay after all…
PLAYER: You can say that again!
THE HEAVY MOB: Maybe crime doesn’t-
PLAYER: Don’t.
PLAYER: Off to the slammer you go!
PLAYER: Well, that’s that!
PLAYER: I have a feeling that Vigilance Valley will be a quiet and peaceful place now!
NARRATOR: Unfortunately, our hero is a lousy fortune teller.

I know, I know – I’m no Oscar Wilde. But in all honesty I’m not trying to be; in fact, I’m outright stealing ideas and clichés! Can you spot the Bananaman references, for example? Or the joke stolen from Dragon Half? The game will be riddled with subtle and not-so-subtle hints at various comics and superheroes, and in order to make it work I’m trying to make the game – and its story – highly clichéd and tongue in cheek. I hope that people will appreciate a dry, mellow kind of humour along these lines.

…And I hope that the clichés won’t merely be seen as clichés due to lack of interest/innovation.

Speaking of superheroes and clichés, if anyone hasn’t read Ruben Bolling’s amazingly awesome God-Man, go do so right now! Go here for a brilliant example of the comic, or check out the fan archive here. God-Man is an omnipotent superhero…which of course renders him invulnerable to every threat, and capable of anything. The comic is an obvious caricature of Superman at the height of his powers, but also takes a swing at just about everything it can.

Go read it now! I promise that you won’t be disappointed, or my name isn’t Nietzsche-Lad!



Spandex for All

September 18th, 2007

I think it’s time for a brief update on my new superhero project, Truth, Justice and Spandex. I was planning on having a 0.1 version done by September but – as always – things get delayed. This is not 0.1 yet, but I definitely think I have made some progress. (Click the images for bigger versions.)

Title
Ah, the title screen in all its splendour! Yes, the art styles clash…but I think I’m going for this version anyway. “Gallery, what’s that,” the observant reader may ask. Inspired by Freedom Force, that’s going to be a gallery of all the heroes that the player has created, and all supervillains that he has encountered.

Game1
I’m slowly getting to where the game scenes are looking…decent. This picture is lacking a falling piano/plane/meteor that the hero needs to deflect, but I think the GUI and game board works.

City
…And this is what the hero says after he’s successfully vanquished the evil piano. I started this project with a clear image of how the hero should be “over-the-top in a subtle manner” and I think this comment reflects that idea. (If you’re wondering what I mean by over-the-top…how often do you see pianos attacking a city? The hero is anthromorphosizing the piano, resulting in a ridiculously heroic comment.)

Game2
Another game screen! This time the hero needs to save a poor old lady from getting run over by a speeding car. Of course, the lady is lacking in this screen, but you get the idea!

Dialogue
Ah-hah! En garde, Blizzard Wizard! I love how he looks suitably creepy. This is an example of a dialogue from the game…of which there will be many. Have you noticed the red squares? Those are citizens running around the city; in a couple of weeks I’ll have proper little men and women instead.

With all this progress, why am I not calling this version 0.1? I called a much less polished version of Sheeplings 0.1 earlier than this! Well, I’ve decided that 0.1 means “playable from the beginning to the end, within the levels and constraints present.” In Sheeplings there were discrete levels that were very separate from each other. Once the main mechanism was there I could start churning out levels (and add polish and whatnot later). But with Truth, Justice and Spandex things are more difficult. The hero can level up. Levelling up gives access to skill points which can be distributed to the powers. Higher power ratings make you receive higher token values from making matches in the puzzles. So, the difficulty level must scale according to the player level. But the player also has a reputation and other parameters, and all of these must work intimately together to scale appropriately. And on top of this, I have to weave everything in with a storyline.

Sure, I can make individual minigames work by themselves, but not until I have a balanced stat/levelling/difficulty/reputation system will I call it 0.1. By then you’ll actually be able to play through the game as it’s meant to be!



What’s in a Name

July 10th, 2007

I wanted to create a new blog category for this post; a category for my new game project. The problem is that I can’t do that just yet since I have no name for the game. This affects more than just my blogging – I’d say that the name of a game affects most aspects of the development: PR, design, art style, music, etc etc. For example, Sheeplings was a haphazard collection of ideas until I registered the domain sheeplings.com and decided that the game would focus on a few aspects: cute, silly and easily accessible. The name had a lot to do with defining those aspects of the game.

Now I have a framework for a humorous superhero game with an insane mix of action/RPG/puzzle gameplay, and the project is constantly shifting gears between puzzle gameplay and a story-driven adventure. If I had a name I could decide which areas I really want to focus on; for example, a name with the word “quest” in the title would instantly be placed in the puzzle department and I would know that I have to focus on those bits.

“You silly sod,” someone exclaims now. “You don’t have to match the name with the gameplay.” Well, yes, I do. If you see a game called Inca Quest these days, you know that it will feature a match-3 (or somesuch) placed in an Inca surrounding; and it’s very very likely that the people who decide to try the game are expecting a game of that kind. Your game’s name will attract a certain audience, and if the game doesn’t fit their expectations it’s more likely to annoy/disappoint/be mistargeted than otherwise.

(Note: all above is pure speculation, but try to prove me otherwise. And I don’t accept evidence along the lines of “game XXX performed well despite having a misleading name;” that’s irrelevant since it might have performed much better if the name had been appropriate. The only way it could become valid is if there are two identical games with different names released at the same time. Preferably in two different markets that feature an identical demographic and economy. And identical psychology and social structure. Okay, you get the point.)

Some other important aspects of naming a game:

  • People will search for your name, so naming a game “Superhero City” would result in millions of hits when searching…and try to guess how many of those will point at your game’s webpage.
  • The flip side is that if your game name is too obscure, no one will ever be able to remember it. “Hmm.. One or two ks in Grakkthor the Miffomaker?”
  • The name has to be interesting. People always mention graphics when they talk about first impressions…but if the name is too generic, chances are that people won’t even get that far.

One error I made late one night when I tried to come up with potential game names was to narrow down my search too much. I listed superhero-related adjectives and tried to construct a name from that; I ended up with bland and uninteresting suggestions along the lines of Cavalier City, Vigilance Valley and so on. Thankfully the people at the Indiegamer forums rebuked me out of that notion. I have to think outside the little shoebox. Incidentally, just a couple of days after my post, another blogger raised the issue of the importance of names. See, this really is important stuff!

Anyway, to finish this off, here’s a picture of the game in all its non-existing glory (click for a bigger pic):
Screenshot
Unnamed game with hideous placeholder art and moronic dialogue. But I assure you that it will look better as soon as I find an artist! Oh, and this is just the city screen – not a screen of the puzzle gameplay. There’s not much puzzling going on here, except puzzling out what that gigantic phallic building obscured by the speech bubble is supposed to be.



Prototyping, Software 3D Algorithms and Sheeplings v1.0

April 16th, 2007

At long last, my uber-cute sheepherding game Sheeplings v1.0 is released and ready for purchase! It just might appear on a few portals as well in the near future. I ought to make a v1.1 to improve things even further, but – hopefully understandably – I really feel like diving into something new for the moment. Enter my new project – currently called New Project!

Or rather: enter prototype month.

A while ago I made an experiment with dynamic in-game music that I intended to use in a game called Crux. Recently I made a prototype of the idea, and…it just didn’t work. It was seriously lacking in fun. When it comes to (relatively) new ideas there’s just no getting around it: prototyping is invaluable to sort out the trash from the golden nuggets.

Instead, I started to examine other game ideas I’ve had: a SimCity-esque casual strategy game, a resource management game involving sheep, a game featuring automatically generated logic tests, a Guitar Hero-like casual game, and much more. I think most of them would work, but I decided to go for a game with strong, non-experimental gameplay.

Yes, I’m making a match-3 clone.

But there’s a twist to the tale: I actually like match-3 games. That is, I love the hypnotic gameplay, but I don’t like most actual games that implement it. They’re too slow or too mellow or too stagnant or too frenzied – there’s always something that leaves me un-gripped. So I won’t be making a straight clone – I’ll be making something I want to play myself. Also, given the twisted madman that I am, I won’t rest at that. There will be two different modes of match-3 play, and one special gameplay mode for “boss battles.” In short, I’m preparing a game that combines features from match-3 games, RPGs and Guitar Hero. Madness; it’s madness I tell you! Normally my cynical mind would have started to back away slowly by now, but I am approaching this in a careful way. Thanks to the power of prototyping I’ve managed to create simple versions of a few of the game modes, and they show the most important aspect: it’s fun. Even in this bare-bones manner the gameplay itself is fun. So I think I’m on to a good start.

I mentioned Guitar Hero; of course I’m not making a Guitar Hero clone in any way. It’s just some features that bear a similarity. For example, the 3D scrolling background that delivers objects to the front, along these lines:

Screenshot

It’s almost ridiculous, how much effort I had to put into making that. It took me all Sunday to get it running like I wanted. Let me give you a chronological summary:

  • First problem: BlitzMax’s features no “draw polygon” function. In other words, BlitzMax only works with two-dimensional square bitmaps (or plotting primitives that would be too slow). Okay, some searching around gave me a DrawPolygon function that some kind BlitzMax developer on the Blitz Forums had written. Time to test it out.
  • Second problem: the DrawPolygon function only implements affine texture mapping. In other words, a straight interpolation. Imagine that you have a polygon and a texture; affine texture mapping simply “smears out” all the pixels in the texture so that they’re evenly distributed. This is not a good thing for perspective.
  • And this brings us to the third problem: 3D systems draw images using triangles. In order to draw a square, you draw two triangles. Imagine what happens when you move the texture coordinates in a scrolling manner while simulating perspective using affine texture mapping? It looks like two trianges that don’t really fit together.
  • In order to fix this I – naively – imagined that there might be some primitive drawing function that used quads instead of triangles, and that – magically – would correct this behaviour. Hell no. Oh well, let’s leave that problem; let’s move on to the perspective issue.
  • Oh, look here! Both DirectX and OpenGL have support for XYZ coordinates, and not just XY! This means that I can just modify the Z coordinate and get perspective, right? Wrong. This requires additional setup of cameras and whatnot – something that BlitzMax apparently doesn’t do by default. I simply cannot be arsed to go through that, so let’s consider the options.

“What options exist,” one may ask. “It’s a fact that affine texture mapping looks like crap and that just adding a Z coordinate doesn’t fix it. You’ll have to be satisfied with affine texture mapping and this weird shift between triangles.” Bullcrap, I say! Time to think back to the days of glory; the days of optimization; the days when no 3D graphics cards were available. I recalled that I messed around with 3D graphics and perspective correct texture mapping back in the 486 days, and there’s really no magic behind it. All you have to do is put in a (1 / z) here and there, to make sure that the z value affects the projected x and y coordinates. So how could I exploit this to make things look better?

It’s really so simple that it hurts.

In order to minimize the projection error, all I have to do is subdivide the scrolling area into chunks, calculate each chunk’s coordinates with respect to the z variable, and then draw these chunks using normal affine texture mapping! I feel pretty stupid that I didn’t think of this immediately, but better late than never. So, to sum things up: in order to draw that nice scrolling background you can see above, what I do is make a loop that draws 16 (or 32 – I haven’t decided yet) horizontal strips (since that’s where the perspective is most correct). This not only gives a very good impression of perspective, but it also takes care of the nasty issue with the sliding triangles.

Even though 3D systems are getting more and more advanced, and no-one implements software 3D engines, I still think it pays to know basic algorithms.



Copyright © 2009 KarjaSoft