Beard Second and Drunk Mile

December 28th, 2009

Last week I had an interesting conversation about confusing units. For instance, the commonly used light year is of course not a measurement of time despite its rather confusing suffix. During that conversation I heard about another length measurement called beard second. As you can imagine, what it measures is not time despite its ending in “second,” but rather the length that beard grows in one second. Something like 5 nanometers, or 100 Ångströms according to some.

Wikipedia’s list of humorous units of measurement lists a few more of these, but I feel that a very important unit is missing: the drunk mile (drm). I debated with myself whether or not to call it drunken mile instead but in the end I opted for the shorter version. This is a unit of measurement that is supposed to be used during rather inebriated states, so the fewer syllables the better.

So, time for some definitions. What is a drunk mile? The drunk mile, despite ending in a length measurement, is the time it takes for a drunk person to traverse the distance of one mile.

“But Karja, that won’t work,” I hear you cry. “The time it takes to walk a mile varies enormously from person to person! And what if someone has a bike? Or goes by taxi?”

Ah, but despair not! Careful scientific study has revealed that – despite what one might think – the drunk mile is surprisingly constant. And that constant is two and a half hours. I’ll give you some examples of situations that have been proven to support the drunk mile hypothesis, i.e. take exactly 1 drm:

  • Sven and Inga has been drinking heavily but at different locations. Sven’s location is exactly one mile from Inga’s. Sven calls Inga whom replies that she’ll be right over. She arrives two and a half hour later.
  • Ragnar and Knut are at a party, and Knut suddenly remembers that he’s forgotten to bring his iPod filled with awesome trance music (or whatever kids today listen to). Ragnar graciously lends his bike to Knut, who rushes off to fetch the iPod from his house which is located one mile from the party. He arrives two and a half hours later, even more intoxicated for some reason.
  • Sophie and Sanna are preparing to go to a party, and are drinking heavily at Sophie’s place. They call Mauri, whom they are going to meet downtown, and say that they’ll take a cab right away. Despite the introduction of a motorized vehicle they still arrive downtown (which of course is located one mile away) after two and a half hours.

As you can see, the drunk mile is a very useful measurement. Instead of saying “we’ll be right down” or “oh, maybe fifteen or thirty minutes” you can say “I’ll be down in 1.5 drm” and everyone will know what it entails!



Web and Downloadable Game Engine Choices 2009

December 20th, 2009

In my last post I complained about the lack of a perfect silver bullet game engine that would fit my needs as a small indie developer starting up a new game project. My three primary target platforms are Windows, Mac and the web, in roughly that order.

“But Karja, haven’t you heard? iPhone/XBox Live 360/Android/etc etc is the new indie platform of choice! This guy I read about made six billion dollars on his game there!”

I have a number of reasons why that is utter bull excrement:

  • iPhone is flooded with games. Literally flooded, with thousands and thousands of games that make it hard to gain visibility. Also, iPhone relies on Apple’s SDK, objective-C (to some extent at the very least), touch screen, low-end hardware, etc etc – and all of these aspects have to be hand-crafted for the iPhone release without being reusable on other platforms.
  • XBox 360 is good if you only intend to target Windows and XB360. But that would be incredibly stupid for me, since my target audience isn’t the XBox lads.
  • Android is interesting. It would be neat to get in quickly just in case the market suddenly explodes á la iPhone. But, and this is a big but, Android requires Java which is utterly incompatible with web deployment (Flash is the only viable option there).

After some consideration, I found that my options are as follows:

  • Java – Windows and Mac deployment is possible, and I can deploy on Android as well, eventually. I also looked at Java-to-Actionscript converters, but…that feels desperate and unreliable. So, web deployment is a no-go for this one.
  • BlitzMax – What, BlitzMax? That only supports Win/Mac! Yes, but I seriously considered trying to write a BMax->Actionscript converter since I already have a lot of BMax code and an abstraction layer API in place. (This means that I would have to write the APIs for drawing/sound in Actionscript from scratch, but convert the game logic at least.)
  • C++ – Screw web deployment, and go for a full-fledged C++ engine! That would be the most fun to code in. But… No. 2010 is coming up and the web is the new black.
  • HaXe – This would allow web deployment, and there’s a neat HaXe->C++ converter that can be used along with NME/NEASH, an SDL version of the flash API. Essentially, what this promises is that the same code could be used to make a Flash version and a compiled standalone downloadable (…as well as an iPhone version!). Alas, things aren’t as good as they sound. I did some quick tests and NME/NEASH lacks a lot of bitmap manipulation support. For example, BitmapData.colorTransform() support is missing – and this means that the alpha channel of bitmaps cannot be modified in the downloadable version. Things like this make HaXe seem way too shaky at the moment.
  • PushButton Engine – If I’m considering pure Flash (well, Actionscript) engines, this is a strong candidate. It’s a well-designed library intended to be used for larger game projects. However…. After looking at the code a bit, I fail to see exactly what it will bring. The rendering, file-loading and game state management seems to be the biggest things that it provides but to be honest those aren’t all that tricky to write by yourself.
  • flixel – Another Actionscript/Flash engine. This one seems very attractive at first, but the main problem with flixel is that it makes assumptions. “You only want to make a platformer style game, right? You’ll want to use pixelated effects, right? You want to embed all files since you’re deploy for the web only, right?” And so on.
  • Actionscript/Flex – Finally, the last option is to go for pure Actionscript with Flex. No no no, I’m not trying to reinvent the wheel and have a NIH (Not Invented Here) mentality. But to be frank, writing the main framework that flixel or PBE would provide is…not that much work. Also, I have specific needs: for example, I need to target different platforms and handle files differently on the different platforms (embedded/external).

Nothing is decided at all, but I’m currently leaning towards using PBE, flixel or pure AS/Flex. My main beef with that is whether or not it’s fast enough to look good on the downloadable versions. HaXe seemed like an interesting choice for a long while, and I’m sure that it will be in the future, but I simply found too many flaws in it to provide any actual benefit at the moment. I’m (probably) going for a double-buffer approach with quite a few alpha effects on bitmaps (not in the least for the particles), so the current unstable alpha support in the SDL parts makes HaXe’s NME/NEASH solution for downloadables and iPhone pretty dubious.

In the end maybe I oughtn’t spend so much time investigating this, and just choose something and start developing instead. I guess all engines and choices have their flaws, so nothing’s going to be perfect.



Game Engine Choices for Indie Developers 2009

December 10th, 2009

This post is going to get a bit technical, so if you’re easily bored by the gritty details of game development you might want to go somewhere else right now. Maybe to Cute Overload or something.

My latest game, Wildhollow, is released and I have some great ideas for my next game. Let’s just say that it might include puzzles, RPG elements and some online functionality. Oh, and superheroes or monsters too. Not really sure which yet. Either way, in order to get the game done I need to decide what to implement it in. Sheeplings, Spandex Force and Wildhollow were all developed in BlitzMax, an object oriented BASIC language that’s extremely easy to develop cross-platform games in.

As long as your cross-platform needs are Windows, Mac or Linux, that is.

As an indie casual games developer I find myself wanting to maximize my potential market (of course), and that means maximizing the number of platforms I can distribute games too. To make things easier for me I’ve constructed this table of feasible game engines/libraries as things are now in 2009:

Engine Name Language Windows Mac Web iPhone Android Xbox 360 Linux
Android SDK Java (X) (X) (X) X (X)
BlitzMax Misc X X X
ClanLib C++ X X X
Cocos 2D Obj-C X
Flixel Flash (X) (X) X
Game Maker Misc X
HaXe Misc (X) (X) X (X)
Haaf’s Game Engine C++ X
LWJGL Java X X (X) X
PopCap Framework C++ X
PTK Engine C++ X X
PushButton Engine Flash (X) (X) X
Pygame Python X X X
Simple DirectMedia Layer C++ X X X X
Silverlight Misc X (X) (X) (X)
Slick Java X X (X) (X) X
Torque 2D C++ X X (X) X
Unity C#/JS X X (X) X
XNA Game Studio C# X X

Note that I said feasible engines and libraries. This is not close to a complete list, but they are the ones I’m considering. I can list some criteria:

  • There must be decent performance, which means preferably no software rendering
  • All Windows only, Xbox only, etc libraries are of no use to me. I’ve listed a few anyway just for consideration
  • I want to be able to create mostly 2D games in an efficient manner. 3D engines are often bloated and unusable. Unity may be free but it’s of no use to me, for example
  • Finally, I have a prioritized order of platform preference. You may note that the columns in the table are ordered rather strangely. That’s because I’m going from most important to least important platform

A quick glance at the table shows that there’s no single engine or library that fulfills all my needs. An X demarks that the platform is supported, and an (X) means that limited support is possible. That could mean that it’s possible but requires a lot of messing around (e.g. HaXe for iPhone), or that the solution isn’t practical (e.g. Java web applets aren’t very useful), or that it requires unreasonable things (e.g. Unity on the web requires a specific plugin).

Most engines and libraries support Windows and Mac, so that’s not really a problem. The real problem comes with my third platform of choice: the web. And by the web I mean that it should run seamlessly for most users. Which means that Java is doubtful (too…clunky, and portals won’t accept it), and that leaves only Flash. Which, of course, is mostly incompatible with “normal” programming languages and engines.

This is not an easy decision…



Wildhollow Reviews and Warez

December 7th, 2009

My latest adventure/pet raising game Wildhollow is released and things are progressing fairly well. Many seem to like it, and thanks to Pätr a game-stopping bug was found in time. It could have been immensely embarrasing otherwise…

For the ones curious what Wildhollow is all about, here are two reviews:

http://jayisgames.com/archives/2009/11/wildhollow.php

http://www.gamertell.com/gaming/comment/gamertell-review-wildhollow-for-pc-and-mac/

Also, I’m constantly googling “Wildhollow” to see what people are saying about the game. One thing I noted this weekend is that a cracked version of Wildhollow has popped up on various file networks. Trembling with fury and sorrow and trepidation and other things I downloaded one of these files to see if it was a bona fide copy of the game. Were people downloading my precious little game and playing it for free? Were people ignoring my hard work for a moment’s instant gratification?

It turns out that the answer is no.

If anyone feels tempted to download the “Wildhollow RIP” that’s circulating on warez sites you should be aware that it’s technically cracked but you won’t be able to play further than Steinheim Keep. You see, for the trial version I made two modifications: I added a time limit of 60 minutes, and I content-limited the game so that nothing from beyond that point is included. The warez version available only removes the time limit but – obviously – cannot add the missing content.

I guess that it’s just a matter of time before a real version pops up, but I feel pretty happy that for now loads of people are going to play the game an hour or two until they realize that they’re playing a trial version after all!



Follow the Indie Games Xmas Calendar

December 1st, 2009

Juuso of the Game Producer blog has initiated a cool project: an indie games xmas calendar. The concept is to reveal a new game each day, until…well, you can guess what day. For obvious reasons there’s only one game revealed so far, but I’m interested in what games are going to pop up during the following weeks. This is an excellent opportunity to see what’s brewing on the indie development scene.

Oh, and one of those games just might be a certain adventure/pet raising game called Wildhollow.



Get Ready for Adventure! KarjaSoft Releases Wildhollow

November 27th, 2009

FOR IMMEDIATE RELEASE

Get Ready for Adventure! KarjaSoft Releases Wildhollow

Sweden, November 27, 2009 — Independent game developer KarjaSoft proudly announces the release of tongue-in-cheek adventure/pet raising game Wildhollow for Windows and Mac.

Wildhollow introduces the story of a young boy or girl returning home to find his or her parents missing under mysterious circumstances. The player is tasked with solving quests and ultimately discovering the fate of his/her missing parents, while also restoring the titular Wildhollow ranch to full glory. The game features an original mix of dialogue driven adventure gameplay and pet simulation elements in which animals can be raised and crossbred. A wide variety of breeds can be discovered, and varied food gathering minigames spice things up even further.

The game world is filled with colorful characters and humorous dialogue, and provides many hours of open-ended entertainment. The player encounters inept adventurers, cowardly dragons, greedy merchants, dwarf lords in love and much more as the story progresses.

“If you enjoy funny dialogue, adorable pets to raise and clever jabs at common fantasy cliches you’re going to love Wildhollow,” says Miro Karjalainen, owner of KarjaSoft, not at all deterred by the fact that his opinion might be slightly biased.

Wildhollow is available for Windows and Mac at the price of $19.99. More information, screenshots and trial downloads can be found on the official webpage:

http://www.wildhollow.com

Features:

- Loads of wacky characters to interact with
- Adorable animals to breed
- Tongue-in-cheek humor poking fun at fantasy cliches
- A colorful fantasy world to explore
- Hours of adventurous quests
- And much more…

System requirements:

1 GHz CPU, 512 MB RAM. Windows 2000 or higher, or Mac OS X 10.3.9 or higher.

About KarjaSoft

Founded by Miro Karjalainen in 2006, KarjaSoft has previously released the fluffy arcade game Sheeplings in 2007 followed by superhero puzzle/RPG Spandex Force in 2008. KarjaSoft focuses on developing casual indie games with a twist, including lots of humor and genre blending. Visit KarjaSoft online at http://www.karjasoft.com

Contact:

Miro Karjalainen
www.karjasoft.com
info@karjasoft.com

###

:D



Wildhollow Release Tomorrow

November 26th, 2009

“Karja, you lazy sod! Why haven’t you blogged for several weeks now,” I hear you cry. Well, SOME of us have a full time job while we also try to fit in a wedding (not my own!), beer with friends, TV-series (I love House M. D.!) and casual adventure game development. The latter is what’s been occupying most of my spare time these last couple of weeks.

The adventure/simulation game Wildhollow is about to be released November 27, and I’m trying my best to arrange everything for tomorrow. Full version and trial builds for Windows and Mac, press release, webpage touch-ups, ordering system setup, and on and on and on… The time is now 10 PM and I’m starting to question how much sleep I’ll get tonight.

Stay tuned for a press release posting tomorrow…



Wildhollow Flash Game Part 3

November 4th, 2009

A little while ago I started a side project to my adventure/management game Wildhollow: a simple Flash game for the website as a teaser. I’m aiming for a game where you learn what animals like what types of food; something that’s useful to know in the real game too.

In my previous two versions I was using…well…Flash, but now I’ve experimented with Flex and lately with flixel, a game framework compatible with Flex. Things are progressing much more smoothly now that I can focus on writing the ActionScript code instead of mucking about with learning basic Flash concepts. This is as far as I’ve come right now:

I’m starting to figure out the different game states, and I’ve added stages as well as a simple scoring system. By the way, if you get past level 5 the game will crash. Just so you know. It’s far from finished – but the main idea is beginning to crystalize.

Things left on the todo list:

  • More stages with different animals
  • Possibly, an online highscore table
  • Sound and music
  • Better loading screen
  • One-screen tutorial
  • General design issues – improve the look of the game
  • Try out small things like should the food items start bouncing instead of just moving forward, etc
  • Misc things like KarjaSoft logo, link to the Wildhollow homepage, optimize the game for size, etc…

Time to get some work done if I want to finish this before the Wildhollow release…



Thoughts on Indie Game Marketing

October 21st, 2009

I’ll be releasing my new game soon and I’ve ben reading up on marketing ideas to get some inspiration. As a gift from above came this Gamasutra article about indie game marketing, and it contains loads of good ideas. Some things are obvious (start a blog, but write about interesting things), some things are very good advice (get some initial attention and keep that momentum), and some things are simply the hip thing to do right now (social networks, facebook, twitter, etc).

One thing struck me in particular, though: obscurity is major problem for indie developers. Of course I’m well aware of that but for some reason I still don’t do anything about it. Wildhollow is soon to be released and I haven’t made a single press release about the game yet. I don’t even have a public beta download on the homepage!

It’s probably a mix between fear of receiving negative feedback, and bad experiences from previous games. Sheeplings was featured on Kotaku and it generated a lot of attention…but the game wasn’t polished enough to benefit from the traffic. For Spandex Force I tried an awesome publicity stunt: a superhero photo contest. Alas, it generated no entries. So for Wildhollow I’m trying to find the right balance when to send out information about the game; the game has to be good enough so that I can keep the momentum going, and I must push out info about the game gradually so that I don’t end up in the Spandex Force situation. (”Here’s a competition for a completely unknown game! Wanna send in a pic?”)

I’ll probably send a press release any day now, and who knows – maybe I’ll even make the beta version of the game public on the homepage. Another thing I’m going to do is start twittering about the game. I’ve been very sceptical about Twitter, facebook marketing and all of these things, but today I saw a major benefit with using Twitter as a marketing tool for Wildhollow: I can show the latest twitters on the game homepage; this can serve as a small news column that I can update quite easily. Yay!

Maybe I should ponder if facebook can be used for something good as well… Possibly to give hints to people playing the game later, when they get stuck in my (not very) fiendishly difficult quests and puzzles.



Wildhollow Trial Modifications

October 18th, 2009

I have a suspicion that I’ll be releasing a beta trial of my adventure/management game Wildhollow v0.4 later today or tomorrow, if all goes well. I thought v0.3 was relatively solid, but there were still a number of things to improve for v0.4. For example:

  • More eye candy for the minigames
  • More eye candy when tending animals
  • Additional dialogues and items of interest in most locations
  • Click a button to check for new versions – and if so, download the upgrade
  • Trial version limitations and nag screens

The upgrade feature is a simple version checker plus redirection to the Wildhollow webpage where some PHP scripts will run. It may be simple but it will be a major time saver when I release updates! If you’re running a trial version, it will redirect you to the updated trial download; if you’re running a full version you’ll have to enter your e-mail address and it’ll authenticate the e-mail with the purchaser database before sending the upgrade.

The last item is trail version limitations.

So far I haven’t bothered with having a trial/full version but from now on the trial versions I release will be limited to 60 minutes, have a nagging screen, and be content limited. There are three reasons why I have content limitation as well as a time limit:

  1. The download will be smaller
  2. Games are always cracked, and with missing content I’ll ensure that it’s slightly harder to get a full version of the game. You can’t just run a patch to remove the trial limitations
  3. Related to the second item, I chose to have a really trivial method to determine trial vs full version. I assume that the game will be cracked swiftly either way so I’m taking the least problematic route for me. Thus I really need to have content limitations – otherwise I’m guaranteeing instant warezing of the game. As it is now a pirate will have to get hold of the full version first, at least

All good reasons, I think.



Copyright © 2008 KarjaSoft