At last I’ve unleashed Spandex Force onto the world! Go download yourself a copy of this exciting puzzle RPG right now, and make sure you buy it as well. Here’s the official press release which you can find on…surprisingly few other game-related pages so far. Strange. Sheeplings was picked up like wildfire, and judging from sales per day compared to Sheeplings, Spandex Force is approximately 1900% better than Sheeplings.

That’s a completely bogus comparison, of course. Sheeplings was slow to pick up speed, and didn’t really start selling after I made a new version that added many improvements; Spandex Force, on the other hand, has sold consistently since v0.5. Speaking of sales, I imagine that it’s easy for the casual reader to think that making games is all profit and fun, but let’s put things into perspective a little:
For the work I put into Sheeplings I got less than 50 cent per worked hour, after deducting what I spent on art. Probably more like $0.2 - I didn’t keep track of the hours I worked on the game. Surely, if Spandex Force sells better than Sheeplings, I must be better off this time?
Not exactly.
At the moment all sales of Spandex Force have paid off just above half of the art and music costs. I.e., so far I’ve had to pay for the privilege of releasing a game.
So go play Spandex Force and buy yourself a copy so that I can make more games! I promise you that I won’t be buying any sports cars for your dough - it’ll all go into production costs for my next game that I’ve started prototyping…
There, I’ve done it. The sheep’s out of the bag: a Sheeplings press release has been sent out. Click here to see it in all its glory, or go to Sheeplings.com to read more about the game!
And for the ones who won’t click the link above I might as well post the release here as well:
FOR IMMEDIATE RELEASE
Are You Ready for the Fluffiest Game Ever?
KarjaSoft releases Sheeplings, a thrilling mix of puzzle solving and sheepherding action.
Sweden — May 2, 2007 — KarjaSoft releases Sheeplings, a thrilling mix of puzzle solving and sheepherding action. As Windsor the sheepdog you must protect and guide your flock toward the final goal: the sheep-jumping competition in Woolyville. Armed with only your bark you will face ravenous wolves and eagles, sheep-napping bandits, logic puzzles, stubborn sheep, hidden powerups and much more.
Sheeplings is designed to provide fun for the whole family. The casual and non-violent gameplay is suitable for kids, but adults will also find themselves challenged by more than 80 wool-raising levels divided into three quests. Sheeplings also features an innovative unlocking scheme that lets you tackle the levels in any order you want.
Sheeplings is priced very sheeply at $19.99 and is available for Windows 2000 or higher, and Intel Mac OS X 10.4.4 or higher.
Read more about Sheeplings at
http://www.sheeplings.com
Download a Windows trial version from
http://www.sheeplings.com/files/SheeplingsDemoInstall.exe
Mac trial version is available at
http://www.sheeplings.com/files/SheeplingsDemo.dmg
About KarjaSoft
KarjaSoft was founded in 2003 but changed focus in 2006 from small applications to family-friendly games with innovative gameplay. Current plans include world-wide market domination in fluffy sheepherding games by 2008. For more information, visit http://www.karjasoft.com
Contact:
Miro Karjalainen
KarjaSoft
infokarjasoft.com
http://www.karjasoft.com
As you might have noticed I included a link to my KarjaSoft page as well; this meant that I had to do some serious restructuring before sending out the press release. First and foremost I switched web hosts from Cirtexhosting to Lunarpages in a vain attempt at receiving more stable hosting. Secondly, the old site design was…practical. And not particularly appealing. The new one isn’t exactly the Mona Lisa either, but I think that I won’t scare away people from the moment they enter my page at least. I hope.
Incidentally, on the topic of switching web hosts, here’s a tip: don’t forget to set up your e-mail accounts on the new host. It becomes rather embarrassing when everything starts to bounce all of the sudden, and you have no idea why.

Do like the ram tells you or he’ll nibble your legs off!
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:

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.
Over a year ago I started making a small prototype in which you played a blue box that herded small white boxes around a black playing field. “Herding sugar cubes,” my ex called it, and she was very fond of the gaming mechanic. That’s when I thought I was on to something: if the prototype was an amusing toy, it would surely become a fun full-fledged game!
I’m of course talking about the beginning of my illustrious little game Sheeplings.
About a year ago I wrote a design document for the game; the document was wildly different compared to what can be played today. I originally wanted to make a simulation game in which action levels would feature as interruptions. “Oh no! On the way to Woolyville a nasty wolf attacks; prepare to defend your sheep,” and things along that line. The action levels would be randomized, and the main focus would be on the simulation parts. Unfortunately I decided to scrap that idea due to budget constraints: it would simply cost too much to have someone draw all those locations. Instead I went with an action-based game with hand-crafted levels instead.
Why all this nostalgia? Because I am finished with Sheeplings v0.5, and this is also something I call Release Candidate 1.
Download it here (Windows 2000/XP/Vista, 7.5 MB)
Requires Windows 2000 or higher, 1 GHz CPU or better, 256 Mb RAM, DirectX 7 or later, and 16-bit or 32-bit color mode.

View more screenshots here!
The observant reader might note that this post is a very poor excuse for a post mortem, and that’s totally correct; that’s why it’s called a pre-post mortem. After all, I wouldn’t call a product at version 0.5 finished. I’m planning on making a proper 1.0 release in a little while, and after that it’s time to make a properly retrospective analysis of what went right and what went wrong in the process. All in all - given my limited resources - I’m fairly pleased with the game as it is, even though I hope to make many improvements still before I completely leave it.
So, in this pre-post mortem I’m simply looking forward to being able to look back on the project.
Or - possibly - I just wanted a more intriguing title than “Sheeplings v0.5.”
I am slowly but inexorably losing my mind. I’ve been working on Sheeplings for ages, and now I’m finally almost done. I released 0.3 to the public and received lots of good feedback that helped me improve the game. I released 0.4 to a smaller number of people and received even more feedback that made me fix some important details. Now I’m almost done with 0.5 which will be the release candidate.
“Well, get it done, then,” I hear you sigh. But I just…can’t. Making the levels is destroying my mind. The first dozen were fun and new. The second dozen were interesting, since they brought in new gameplay elements. The third dozen had the appeal of bringing in new “logic puzzles” into the fray. And so on. Now I have made 69 bloody levels, and it’s just not fun anymore. Y’hear? It’s not fun! I need 15 more levels for the last quest before I’m satisfied, but I loathe starting up my level editor whilst vainly trying to think of a new concept I haven’t flogged to death like a bug-ridden equestrian carcass.
Isn’t my editor beautiful:

At least it’s almost WYSIWYG. The objects at the top are clickable, and you can place them on the playing field below. You can also remove things (if you’ve clicked the grey box beforehand) and add goal areas (if you’ve clicked the red box). But it’s still a big steaming pile of excrement even worse to work in than vi. Well, okay, not really quite that bad.
Oh well. Let’s move on to my little proposition: can you imagine yourself a level designer for my marvellous Sheeplings? Can you think of some levels that utilizes the existing concepts and characters and limitations, and doesn’t include new functionality like “the sheepdog has a paintbrush and has to re-paint all white sheep black” or similar things? I assume that not a single person will take me up on this offer, but if - for some reason - you would be interested I can offer a free copy of Sheeplings once it’s done, and your name in the credits section of the game. Making levels really isn’t such a chore, so you don’t have to be totally put off by my ranting; it just gets extremely dull once you’ve made so many of them.
In a vain escape from finishing the game I’ve started making small promotional pictures I intend to use on the homepage later:


My God, I have no shame.
Before I post the obligatory link to the Sheeplings download, and mention the obligatory bug fixes and remaining problems, I thought I’d make a brief top ten list:
You Know You’ve Been Working Too Much When…
- It’s only Wednesday and you’ve gotten home from work around 10 PM twice already this week.
- …Okay, I’ll just leave the list at that.
Nah, I’m not really complaining. I just thought a top one list would be a fun thing to post. Back to the topic of Sheeplings:
Description
Wolves, eagles, bandits - everyone is after your cute little friends! Protect and guide the sheep through 80 (54 in this beta) wool-raising levels, until you finally reach your goal: the sheep-jumping competition in Woolyville.
Screenshots
http://www.sheeplings.com/screenshots.php (from version 0.1)
Download
http://www.sheeplings.com/get_file.php (version 0.3, Windows, 6.5 MB)
System requirements
It’s worked on all comps so far (with graphical glitches in a case or two.) Except for a Greek Windows XP Home, where it didn’t run.
Known issues
* Just the default profile
* The keys can’t be remapped (control is by mouse, cursor keys + space, or gamepad (standard axis + button))
* Collision detection is still a bit iffy
* There’s some irritation when the sheep get stuck in a corner. I’m working on improving this
* The bandit on the second quest behaves like a moron at times; this will be improved
* Graphics leave a lot to be desired
* Better baah and bark sounds ought to be found
* No error management (but there doesn’t seem to be that many problems)
Please note
* You start with 80 tokens. This means that the second quest becomes unlocked immediately, and that you can unlock levels of your choice from the beginning. (You will of course start with 0 tokens in the released version.)
* If you happen to experience some graphical glitches, would you please try the alternate renderer option; this indicates whether it prefers to try DirectX or OpenGL first.
* If the 80 tokens aren’t enough, you can edit the generated profile file “Karja” to change it to whatever you wish. Likewise if you find that you want to change the dog’s range or speed.
So, Sheeplings… The third iteration is out, and I’ve received some feedback from various places. It’s mostly along the lines of “good game, but the collision detection is a spawn of Satan.” I wonder if 0.4 or 0.5 will be the release candidate, once I sort out the remaining issues.
I find it irritating that I can’t produce good art. I am a good programmer and I can make pretty good music. I can write decently. I can do pencil sketches half-decently as well. But I can’t produce good art - something’s just lacking for me. As an example, here’s the second map I made for Sheeplings:

It’s for quest 2, in which the bandits are introduced. You can see their bandit cottages at the left; oh, and the blue spots here and there is rain falling down. I think that the map looks pretty nice - it’s cheerful but a bit more desaturated than the first map, bringing it a slightly more sombre tone. The large patches of grey mountains also add to this, of course. I think I was going for a typical Star Wars pacing: the first quest is happy and full of…well…hope. The second becomes darker, and then it all ends in a climax in the third quest.
The map may look nice (at least to me), but it doesn’t look good. It’s like comparing a Toyota to a Ferrari: the former does the job, but no one’s particularly impressed. Except maybe the ones who own a rusty old Dodge or something.
Why can’t I do better than this? I really don’t know. I can move my pen around, and I can select colours that sort of work together. But after that, it still just looks flat, and like it’s missing something.
I wish there were tutorials on the net focusing more on artistic details than technical issues. Composition and emotional impact and information about how to make subtle but effective variations. Information about how to convey the message of, for example, mountain or forest with only a few lines; information about what makes people automatically associate some details with a specific object or instance or emotion.
Maybe this is what people learn in art school? Or maybe it’s an ability you’re born with? I’m the first to admit that I sometimes have trouble understanding and relating to others; my empathy and social skills aren’t always top notch. Maybe that’s something that’s required for a good artist?
When I have more time I think I’ll browse around for good books on this topic. I’m sure I saw a reference to a book along the lines of “drawing with the right side of the brain” or something; that sounds like an excellent book to examine! ‘Cause I’ve realized that I actually enjoy drawing despite my shame of performing so poorly at it.
It appears that I’m doing something correct with my uber-cute sheepherding game called Sheeplings: a few days ago I posted my second iteration (version 0.2) on a few message boards, and the response has - all in all - been good. Some things, most notably the graphics, are still not up to par, but the gameplay seems to be pretty appreciated. Yayness!
Appreciated is a relative term, of course. I doubt the addictiveness of Sheeplings, but the majority of the ones who have tested the second version seem to think that it’s enjoyable. That’ll do for me; I’m not going for a hit game - I’m going for good enough. If only the graphics could be improved further. There are very few complaints about the music, and this is something I did not foresee. The case might be that they judge it in comparison with the graphics: since the look isn’t top notch, they don’t expect the music to be any better either. Either way, I’m thankful that my wee tunes aren’t instantly frowned upon.
Here’s a little screenshot in which you can’t see anything:

And here’s the download link in case you want to try the game:
http://www.sheeplings.com/Sheeplings.exe
Please note
- The options cannot be modified yet.
- Only the default profile is present.
- The side quest cannot be solved in the demo.
- User-defined keys aren’t available just yet, but there are three ways of controlling the game: mouse, keyboard and gamepad.
Keyboard: cursor keys + space
Gamepad: default 2-axis control + button 1
No need to select which control to use; you can switch between mouse/keyboard/gamepad at any time.
- If you happen to experience some graphical glitches, would you please try editing the generated profile file (called “Karja”). The attribute “renderer” can be set to 0 or 1 - this indicates whether it prefers to try DirectX or OpenGL first.
- If you don’t want to play through all the levels to gain tokens, you can edit “Karja” and set the “tokens” attribute to anything you wish.
Any feedback is much appreciated!
Why is it so hard to find an algorithm that deals with a specific instance of a problem instead of solving everything at once? I’ve looked at various pathfinding and flocking algorithms, but nothing fits the bill so far. What I have is a bunch of sheep running around, and I would like to see them avoid corners but still move around objects gracefully. It’s a simple task, but not really simple in reality. And I really don’t want any involved path-planning in all of this, so advanced algorithms are right out.
The sheep have two modes of self-initiated transport: walking and running. When they walk, they’re intended to be pretty random and can go everywhere. Previously I added constraints that they prefer to be within a certain distance of each other - flocking behaviour - but it wasn’t really noticeable. When they run, on the other hand, they have a goal: get away from the dog’s bark. In other words, they have a destination angle and they move along this angle. That’s when they can bump into objects and get stuck in corners; and in the latter case, how should the dog get them out if the bark only makes them go farther into the corner?
So far I’ve gone through these attempts:
- Just let the sheep run straight ahead; who cares about avoiding objects? This version sucked.
- When a sheep runs forward, add vectors according to this simple algorithm:

The red lines are vectors from the objects to the sheep; the blue line is the initial destination vector; the green line is a vague approximation of the resulting current vector.
* Create a temporary vector of the sheep’s destination angle.
* See if an object is close enough. If not, disregard it.
* Add to the temporary vector a shortened version of the vector from the object to the sheep. This is in order to make the sheep move around it.
* Do this for all objects. The final result is the current angle that the sheep will run to. This worked surprisingly well, and the sheep moved smoothly around objects. However, the sheep got stuck in corners despite this. They moved away, and then immediately walked back to the corner when they could.
- In my next attempt I tried to change the destination vector along with the current angle change. The destination was moved a little bit to where the current angle was pointing. I.e., in an attempt to make the sheep change running destination when they current angle was pointing away for a while. This looked very silly when it came to avoiding common objects in the way: the sheep avoided it by running in another direction instead of just moving around it.
- Fed up with vectors I went back to my old friend potential fields.

The red parts show the intensity of the field; sheep will want to avoid red areas.This is the current method I’m using, but I made a very simple version of it. Basically, the sheep predict if the block that it’s going into has a potential greater than 1 (marked as the lightest tone in the image). If so, it decides that this won’t do. It checks the surrounding blocks of the destination block, selects the one with the least potential, and goes in that direction.
This last method works reasonably well for getting the sheep around stuff, and it also makes the sheep very reluctant to get into corners. It’s good enough, but I’m considering adding some vector additions to this to make things even smoother.
It’s rather ridiculous that I’m spending this much time on a simple problem like this. But I really want the sheep to run smoothly and be nice to the player!
I finally took my thumb out of the place where no man has gone before, and released a demo version of Sheeplings at a couple of message boards. This is what I call iteration 1, or version 0.1. If you’re interested, here are some screenshots and the download link:
http://www.sheeplings.com/sheeplings1.jpg
http://www.sheeplings.com/sheeplings2.jpg
http://www.sheeplings.com/sheeplings3.jpg
http://www.sheeplings.com/sheeplings4.jpg
http://www.sheeplings.com/sheeplings5.jpg
http://www.sheeplings.com/sheeplings6.jpg
http://www.sheeplings.com/Sheeplings.exe (~5 MB, Windows 2K/XP. Maybe 98/Me.)
Some feedback has been gathered from this, and here’s a brief summary:
The Good
- A few people actually like it (gasp!) and suggest that it could work decently for casual gamers. Others seem to think that it could work for children at least.
- Except for some issue with the particles in one instance, there don’t seem to be any major bugs.
- The graphics and sound appear to be passable - this is something that I didn’t really expect.
- This demo is finally out the door, so I can concentrate on improving and eventually finishing the game.
The Bad
- The game isn’t varied enough.
- The art styles clash; there’s inconcistencies between the pixel art and the hand-sketched art. And some of the art ought to be re-done.
- A few people found the mouse control bad.
- The gameplay gets frustrating if the sheep get stuck against the wall and such.
- A storyline would be good to add.
- Some features of the game ought to be explained better.
The Ugly
- Nah, nothing really ugly. Just wanted to make the trio complete.
So, what will I do about this? These unnumbered points work well, so I’ll continue to use them.
Results
- I’ll add keyboard/gamepad control, so that people get a choice of how to move the dog.
- If I can get the art, I’ll add other animals to be herded around. Different types of sheep, or - as was kindly suggested - flamingoes and such. That just cracks me up. Imagine a herd of flamingoes jumping around. That even beats my Hot Chocolate mode that I wanted to include: the sheep would run around sheared and buck naked.
- I’ll ponder if a storyline can be added, to gradually be revealed when playing.
- More explanatory screens, but preferably ones that can be disabled.
- Improve the sheep-avoid-static-objects algorithm.
This should work for starters at least. Then we’ll see if I can tweak things even further! All in all, Sheeplings doesn’t seem to be a complete waste of time at least.
Feel free to comment and suggest other improvements! Feedback is extremely welcome, even if it’s just a “don’t quit your day job” comment.
Next Page »