Recent Search Terms, December 2008 Edition, Part Two

December 21st, 2008 (permalink)

Anyone in the US in need of an experienced game programmer?

Figured I'd do another batch of these, even though I already did one this month:

amateur mmorpg

Amateur pro wrestling?

anyone who announces they are leaving sol let's see how long they can stay away for

Uh, sure.

basic kanji book

What do I look like, a library? Have you checked if amazon has something suitable?

bit shift tutorials on int and char data types

They're more or less the same, with different amount of bits. Except if you're talking about java, in which case char is a bit more different.

escapi camera save file

After you've captured a frame, save it.

gta iv highly compressed full game download

This almost made me laugh out loud.

how to create persian font in glcd in microcontroller 8051?

The same way you do western font in a graphic ldc in microcontroller 8051: pixel by pixel.

how to fix a webcam problem generating a hazy pic

Check if the camera has a focus adjustment, this is typically done by rotating the lens. Check the manual of your device.

how to make cryokinetic effect in photoshop

No idea, but it sure sounds interesting.

how to make people love you in mmorpgs

Be nice?

it's important to note that you shouldn't try to optimize you homepage for more than on theme

Is it? Actually, I have no idea what you're talking about. There's plenty to optimize in a homepage, like navigation, readability, accessibility, render speed..

little circle with r in it keyboard functions


new blocks fall down into grid beginning game programming tutorial

Okay, that's one idea.

sdl resize windows lost texture

Yes, you lose textures when resizing an SDL window. Luckily they're pretty easy to put back, as long as you load your textures through the same function every time. See my 2d gl basecode for an example how to do this.

she looked at me with a tear in her eye

How romantic!

shower door effect kernel in image processing

What, you mean like a blur?

sites which can help me in making project on simulation of bcd adder

If digit is greater than 9, reduce digit by 10, add one to next digit.

sol pisses me off

A thousand pardons, effendi.

terra nova strike force centauri source code

Don't I wish.

using your keyboard to draw

Dip your keyboard in a bucket of paint..

what is meant by handle to device context

That's two abstraction layers you're talking about. Handle abstracts data access, and device context abstracts the target hardware.

why sol's shouldn't count towards graduation

Could someone tell me what the heck is this referring to?

The Turing Machines Didn't Care

December 18th, 2008 (permalink)

The new TMDC organizers didn't have anything against me releasing my entry at this point. I don't know the rating yet (and probably won't for another month or so), but you can enjoy the demo now =)

Watch it in high quality if possible, or better yet, download it (win32) and watch it that way. If nothing else, the audio quality will be higher.

For a stand-alone version of the tune, !cube posted both mp3 and ogg versions on his site.


December 15th, 2008 (permalink)

Took part of this year's TMDC - the first time I'm competing in it after organizing it for so long. In process I also made a refresh of my old TextFX library, and I'm now releasing the new version, with a couple new rgb->textmode converters. I had plenty of plans for my entry, but due to lack of time didn't end up realizing most of them. In the end, I built the demo in one day. We'll see how it fares.

Oh, and the library can be found on the code page.

Roads of Dare

December 7th, 2008 (permalink)

Made an entry to Ludum Dare 48 hour game design contest #13, with the theme "roads".

I ended up making a board game for 1-3 human players. We'll see how well that fares. Feel free to download it (win32 binaries, sources included).

Additionally, wrote a short article on Duality of Visual and Physical Realities in Game Designs, or "rings theory" in short, which is a way of looking at game designs that I came up with a couple days ago while taking the dogs out.

Recent search terms, December 2008 Edition

December 4th, 2008 (permalink)

A bit early this time, and a bit short as well. Is it my fault people aren't using enough weird search terms to find this site?

"strange attractors" pixel shader

I'd probably use the vertex shader for this. Makes more sense.

are hwnd and winclass.hinstance the same

No. Back when windows was still in real mode, it made sense to have only one copy of an application in memory even if the user saw several instances of it. Each instance was separated by having its own hinstance. It's historical garbage.

feet hurts no apparent reason

Go see a doctor.

how do i write a movie animation program with dev-c++

Do people really think they can find tutorials like that?

how to make a baby cradle out of a watermelon


how to multiply a(10 bit variable) with b(5 bit variable) in easy steps?

Step 1: a*b

i need a team to make my own mmo

I really should stop commenting on these, as they only seem to attract more of the same.

need for speed carbon (download compressed file) what's next

Go to the store, buy your own copy.

platform specific file open dialog sdl

Should get around to cleaning up and releasing it. sigh

why do we need vector normalization in graphics programming

Because floating point math isn't accurate.

winfrotz symbian

Instead of winfrotz, try to find frotz for symbian.

zlib microcontroller


Additionally, you may have noticed the small 'wish list' icon near the top of the page. I added it a couple days ago.

DRM Blah.

November 29th, 2008 (permalink)

Oh well, no GTA IV for me. I've bought a couple games on steam as soon as I found that the steam version doesn't include hostile DRM mechanisms. GTA IV is yet another game I've looked forward to, but will have to skip for now due to this lunacy.

Could someone please tell me why companies want to punish legal customers? I could probably download the game from piratebay or whatever a couple weeks after it's released, but I've decided not to pirate stuff.

If I did, however, I would get a better product than if I'd pay for it, since the hostile DRM would be removed. I'm OK with steam's DRM, as it doesn't stop me from doing whatever I want (assuming copying the game to other people or re-selling the games are not things I'd want to do =).

Finding out when steam version of games loses the hostile DRM, like in the case of trackmania and bioshock, has always been roundabout. Some posts in some random message boards. Never any really public announcement. I wonder why this is - it can't be because they are afraid that pirates will leap to the opportunity, as pirated versions of the games have been around for ages at that point.

Only thing I can think of is that the DRM supplier companies demand that such announcements must not be made, and their customers are bound by contracts.

In other news, I've experimenting with doing some small video tutorials with Atanua. If you wish to listen to me stutter, step this way.

New Atanua release

November 16th, 2008 (permalink)

The new Atanua release includes the 8051 bug fixes mentioned below, plus whole-net hilighting when mousing over wires.

8051 Emulator v. 0.72

November 16th, 2008 (permalink)

Released a new version of the 8051 emulator with a couple small bugfixes. A new version of Atanua will probably follow soon with these fixes as well.

Recent Search Terms, November 2008 Edition

November 5th, 2008 (permalink)

"boom boom driller" source code

You know, I've been considering cleaning it up and releasing it. Whether I get round to it depends.

a simple understandable tutorial for compiler design?

Yes, that would be nice.

can we add pixels on the white dots on the screen


coding of traffic controller by using atmega32 microcontroller

Sounds like a school assignment.

create ur own games then own them 100%

Do it by yourself, don't steal anything, don't use copyrighted material. Presto.

curver aromafresh

Why on earth do I find this in every month's search terms?

cycle exact simulation

Is tricky.

have your own mmorpg

Sigh. Let's consider this. If everyone had their own mmorpg, who would play them? If nobody plays a mmorpg, is it multiplayer, much less massively so?

how can i get c program for graphics to create a game

The person who said that there are no stupid questions obviously didn't read search terms for his website.

how to clone an mmo and make it your own


how to create a cfl file


how to make a 1% sol from a 48% sol

Add water.

how to write text-mode demos

Figure out how to plot characters in text mode, and then.. do a demo. There are plenty of libraries out there which you can study to figure the first part out, if you don't want to use the libraries directly.

i don't understand pitch in sdl

Width is the.. width of the visible image. Pitch is the width of the image, including non-visible part. To get to the start of the next visible row, add pitch. Note: pitch MAY be the same as width.

i want to make a mmorpg but have no idea how

Accepting the facts is the first step towards getting healthy. I'm glad for you.

if you have 128 pixels how far will that go in seeing distance

Depends. Are you an ant, a bee, or a HD-ready security camera?

is graphics programming fun?

Much more so than just playing around with algorithms with no connection to reality. With graphics you have something.. more real. It's like physics is to mathematics, I'd say.

my life the game that you get make your own life just how you want it

Let me guess: someone told you to get a life?

prince make sol valve

watermelon pour moon bolt

replace game and watch graphics


what does the word vertices mean


what is esc to quit in c++?

That isn't what c++ is for. You need to check the problem at slightly higher level. What operating system and/or framework are we talking about?

who was the first main sourse of housekeeping

What the heck?

win32 selectobject what does it do

I'll just wager a guess here, but I'd say it has something to do with selecting an object for something..

Thread Test

November 4th, 2008 (permalink)

Did a small threading test on a dual-core CPU. The application renders a 1024x1024 mandelbrot at few thousand iterations. The speed of the algorithm is irrelevant.

I split the image to 32x32 pixel jobs, and made it so that the job thread yields after every 32 pixels, as well as after each job is done. I made a list of these jobs, and each job thread looks for the next undone job, marks it as busy, and starts working on it.

I added all those yields so that the rendering thread, which shows the progress in real time, can have some time to work. Then I checked how busy this whole thing made the CPU with each job-thread count.

As can be seen from the image, 1 and 2 job threads don't show much difference in cpu use, but the processing time is chopped. At four threads some increase is seen, but nothing drastic; however, the processing time is significantly shorter. Eight threads seems to be a sweet spot for this particular test, as it just manages to peak the CPU time. The 16 thread case isn't much faster, but caps the CPU totally; thread overhead starts to play a role.

I bought Gothic from for kicks. GOG seems to work fine, as does the game, after installing tons of additional fan-made patches. Ignoring the obvious gripes (like the control scheme - still haven't figured out how to get those little harmless beasts, nor have I figured out how to use bows), the game is pretty nice for its age. Still, I keep spotting several tiny things that could have made the game more enjoyable. For example, if you're in the forest at night, a pack of beasts decides to go to sleep. At the exact same time. With the exact same animation. Some randomness would have made that much less noticeable.

What really gripes me about the game is the writing, though. Everyone you talk to seems to be more or less generically frienly, and its hard to tell most of the characters apart. Maybe this is because many of them have the same voice. Often you're told things in gameplay terms, which really wrecks the game's illusion. Quite far into the game a character actually tells you that great, now that you have that object, you have to go back to this and that person to complete this mission. What were they thinking?

As to voice acting, when you walk around in towns you overhear parts of discussions, which is cool. Except that everyone keeps repeating the same line. They've had several voice actors repeat the same line. What a waste!

Anyway, it's an old game, and I'm kind of sad that I didn't find it when it was new. It reminds me of some plans for an adventure game that I might one day make, although that becomes less and less likely with the constantly rising content requirements..

Textmode OpenGL Proof of Concept

November 1st, 2008 (permalink)

One of the questions that pops up every time TMDC comes around is whether its possible to use OpenGL in textmode. I decided to look into it now that I'm not actually organizing it anymore, but might actually take part - for the first time.

My first attempt was running a non-visible OpenGL window and pull pixels using glReadPixels(). It worked, as long as you don't go fullscreen in textmode, in which case you just get black pixels. Returning to windowed mode gets you pixels again, but I'm pretty sure you've lost textures at that point, with no way of knowing this.. (as far as I know, anyway).

I also tried pbuffers. They work the same way. I didn't bother going into FBOs, as the main problem is the OpenGL initialization.

Starting those apps from a fullscreen console resulted in some.. rather interesting effects. I'm pretty sure the friendly folk at nvidia didn't expect anyone to want to start an OpenGL context while a fullscreen console is open =)

But anyway, I found a way that works. Using render-to-bitmap OpenGL instead of render-to-window. There's a gotcha though: you only get Microsoft's software OpenGL implementation, which means about OpenGL1.1 features, no hardware acceleration, etc. Still, you're running at 160x100, you get 4xFSAA, and the convenience of OpenGL.

Here's the source code to my proof of concept. Requires LibCACA.

Oh, and if it wasn't clear already, there's a TMDC this year as well, organized by the Northern Dragons. More info (and familiar-looking web pages) can be found at!


October 25th, 2008 (permalink)

After a brief discussion on #tAAt, I made this small program that tries to emulate theremin on a webcam. It doesn't work too well, but I'm pretty satisfied with it as a one-evening project. A crappy youtube video of it in action (should have muted my microphone, but I'm too lazy to do a new video):

Technically I do a conversion to HSV color space, ditch the hue, and look for high-saturation objects that are not too dark. This works fairly well. Then I look for a scanline with more than N pixels that are above the threshold, and call that the spot.

There are better webcam-theremins out there, I agree. If you want to play with mine, feel free to download Theremincampoop 1.0. The zip contains the source code. Requires SDL and ESCAPI (available from this site).

In other news, if you have a iphone or ipod touch, check out SPiN by secret exit:

Due to the Fathammer background, the game has probably a megabyte of my code in it. In my opinion they've priced it too low, but that shouldn't stop you from buying a copy.

Atanua, Recent Search Terms

September 15th, 2008 (permalink)

After a 6-month pause, I finally released a new version of Atanua, with a couple new chips, a bug fix, and a helpful new feature, namely tooltips for the toolkit.

And now, recent search terms that found their way to the site, along with commentary.

achievers not dreamers programmers

While finishing tasks and projects is one of the most valuable characteristics of a good programmers, having a bit of a dreamer in you doesn't hurt.

adobe after effects tutorial cool intro square tunnel

What, square tunnel is a cool intro? On what planet?

are there games where you build your own stuff

Yeah, it's called the GNU compiler collection.

buy your own mmorpg site

I guess it's possible.

calculate angle and distance c code

Angle - look up atan2. Distance - look up pythagorean theorem.

calculate distance in perspective

Now that's a bit trickier.

can a hedgehog's spikes hurt you


cbclsextra is for

User data.

directx 7 sdk sucks

Try OpenGL instead?

electricity effect d3d c++

I did this by making a more or less linear triangle strip, and then randomly moved vertices around a bit. Additive blending, and a cool light blue color. Worked pretty well.

gdi+ crash and matrox

Matrox is still around?

how to build a toggle with atanua

Look up T-latch.

how to make a c++ educational game

Make a game. In C++. That is educational.

how to make a game use less graphics

Re-use some.

i'm 14 and want to make my own mmorpg

That's nice. You may have it done by the time you're 25!

if (you're happy and you know it()==1) } then clap your hands() c#

Okay, let's all calm down, take a deep breath..

kaija koo pics

In certain light, sure.

ludum dare tutorial

No-one can be.. told.. what the Ludum Dare is. You'll have to experience it yourself.

screen shows lemon background vertical lines when starting xp home what does it mean

Probably a broken vid card.

site hiring people with good mmorpg ideas

In your dreams.

the gtk file open dialog blows

Yes, it does, doesn't it?

things you need to make a successful mmorpg

Plenty of money to burn, and no hurry in paying it back.

vc++ change display resolution fail

epic fail?

want to make my own mmorpg

What is it with people who want to make their own MMO these days. Would they play their neighbor's own MMO? Where would they find all the players for their own? I guess running a BBS 'back in the good old days' was kind of running your own MMO..

what is an 8051 processor emulator

Depends on whether you ask a hardware or a software guy.

why is boolean 8 bits

It isn't. Boolean is a concept. How this concept is simulated depends on the system. Booleans can be anything, from 1 bit to a bazillion. Common values are 8 and 32.

winapi future

With all mission-critical winapi-based software out there, I'd say it has a few years in it yet.


September 2nd, 2008 (permalink)

Wrote a short article on putting magic back in magic, or more precisely, some ideas that I have that might make magic in games feel a bit more like magic and a bit less like a rocket launcher. Have fun!


August 27th, 2008 (permalink)

Wrote a short tutorial on L-system fractals. Have fun!

Firefox 3

August 16th, 2008 (permalink)

Updated to firefox 3 finally. I gave the plugin authors some time to update their tools, so that I wouldn't have to wait with a browser that doesn't have all the functionality I've been used to.

The history bar is.. different. Took a while to get used to, but it's nice.

The layout of my pages was also broken with ff3, but managed to fix them. Also updated to the latest php, hopefully nothing is broken.

Recent Search Terms

July 27th, 2008 (permalink)

Strange/funny search terms that have found this site recently..

bring window to top which one will be clicked + win32 api

I have no idea whatsoever.

c programming+ datastructures +change the colors of bmp file+linux

Using a few more quotes would probably get better search results. Sounds quite specific..

carma cameleon lyrics

It's Karma. You know, "your Karma ran over my Dogma", and all?

curver aroma fresh

No idea.

decrypt cfl-file

Good luck. Most CFLs in the wild with encryption, the ones that I have had anything to do with, anyway, use pseudorandom xor encryption, which, as far as I know, isn't "cryptographically safe", but personally I have no idea how to attack it. Apart from hitting the application with some hardcore debugger and let it decrypt whatever you wanted. This assuming that we're talking about my compressed file library format files.


Aiming high?

flc fli source code

There were several flc-related searches in the log, including ones linking SDL and flc, wxwidgets and flc, and PSP and flc. Either 'flc' has started to mean something else as well (than the old 'flick' animation format), or there's something weird going on. Anyway, you're on the right site - download for the sources. The fli/flc part is not textmode specific. There's some trickery involved if you want to port it to ARM, as there's some non-aligned 32bit reads going on.

graphic operating system from scratch tutorial

Here's a hint. Operating system != user interface.

how much money do i need to build my own mmo

If you need to ask, more than you have.

how to make graphics?

Good question.

i need a team to make my own mmorpg game

Why not just join some team that's already working on one?

i was done xor to one veriable but now i want it back same variable

Hit your 'veriable' with the same xor again.

is there a mmorpg that you can create what you want?

Depends on what you want.

liquid keyboard drying time

This one just depends.

logitech quickcam 100ma messenger download

Tried the logitech site yet?

making your mmorpg popular

Ah, another good reason why you need more money than you have.

max value of int using bit operation

Try "Not zero".

my pc writes z instead of y

Wrong keyboard layout, maybe?

opengl how to draw cosine and sine

Sample the sine and/or cosine and create, for example, line segments between the samples. If it looks too blocky, take more samples.

photoshop filter to create zx-spectrum style graphic

The ZXSpectrumizer to the rescue! Actually, when I made the Koalizer I did the ZXSpectrumizer just for the heck of it, but for some reason it's more popular. Weird brits, I guess.

ripped max payne 1.0 stops working after some time vista

Perhaps you should try a purchased copy of the latest version of max payne? It's available on steam, for example..

shower door hinge

The last time I looked, shower doors tend to be sliding ones, instead of hinges. This doesn't mean that there could be hinged doors in some showers. Our current shower just has a curtain.

sol dirty

But I just took a shower!

step by step create s3m

First, build a PC that's capable of booting to MS-DOS, and has a ISA sound board, such as SoundBlaster Pro or Gravis Ultrasound. Install MS-DOS 3.3 or equivalent, and whatever version of ScreamTracker 3 you can get your hands on. Read the documentation of the latter for more information.

Mass Effect

July 22nd, 2008 (permalink)

Picked up Mass Effect for the PC a bit over a week ago, and I've managed to finish it.. and I'll probably start over from the beginning with a different character soon.

After spending a couple days of my vacation hooked to the game, I started wondering what, exactly, is it in the game that makes me like it so much. At that moment I was on some alien planet, climbing a mountain at a rather improbable angle with my all-terrain vehicle, and realized that I had done that before, in some other game, and had been having a good time.

When I started thinking of Mass Effect in terms of other games, I realized it's kind of a mix of Star Control 2 and Terra Nova: Strike Force Centauri, two of my most favorite games of all time.

Most of the media on the net about Mass Effect is related to discussions and such, and much of the gameplay time is spent talking. The discussion system is (technically speaking) a fairly simple conversation tree, and I didn't see much of the "dynamic" side that was hyped a lot. Still, it's very, very well done and enjoyable. I'll have to see how well it works when re-played though.

Other parts of the game include the fighting, which is also well done, and driving around (and fighting) with the all-terrain vehicle. It's sort of strange that you cannot upgrade the ATV at all. It also takes a while to realize that the only way to survive fights with the ATV is to snipe enemies from as far as possible..

Apart from the above, there's also a bunch of mini-games, basically logic puzzles (such as Hanoi's towers) which can be largely avoided by paying some fee. Sometimes these feel a bit out of place - let's say you find a mummified corpse of a space trooper on some alien planet and want to get the dog tags off it. In order to succeed, you have to solve a logic puzzle. What the..?

During my play-through (which I did with difficulty settings set to minimum; which did not stop me from having a blast) the game crashed once, and the game lost all textures at another place. The crash taught me to use the quick save often, even though it never crashed again. The texture glitch was solved easily by just alt-tabbing to desktop and back.

From story-side, the idea of faster-than-light travel is one of the more believable (or understandable) I've seen in a scifi story ever. It does, however, depend on invention of Something New that Does Not Exist though; but it's still graspable. When they explain biotic powers (basically force powers or psychokineses) with the same Something New that Does Not Exist, it kind of reduces the effect.

All in all, Mass Effect is one of the best games I've played, period. If you're into SC2, Terra Nova, or, heck, Babylon 5, you really should check it out.

In other news, I turned 33. Just a few months to go and I've been around a third of a century. Scary.

New Digs

July 9th, 2008 (permalink)

I have more or less successfully relocated myself to the nice town of Drying Barn Hill, about an hour's drive away from Helsinki. Still working for AMD, thanks for asking. Yes, this was the place where I did my military service, but I'm not too familiar with the town - yet. The primary reason for the move is the location my wife's school, which is not exactly in the middle of nowhere, but slightly to the side.

Like I said, the move was more or less successful. We organized things so that we renovated the place a couple weeks before the move, so that paint has time to dry, and I had a week off from work for the packing. We managed to unpack most things in just a couple of days due to the effort we put into the packing side. There's still small piles of books which haven't found their place, and similar things, but mostly things have progressed well.

We also ordered some new furniture, so the place was quite empty when we got here, but has since become somewhat more crowded. The sofa we ordered from Asko is missing; should have arrived last week, but the courier called and said that they haven't got it, and the person who sold the sofa is on vacation. We ordered new handles for all the closets and drawers - a total of 28 - from keitti�.net. They shipped us one handle. After I managed to reach them through the phone, their customer service was very quick to remedy the situation, and the remaining handles arrived at our door in a couple of days.

The BenQ video projector that I bought a few weeks before the move, and tried out briefly (it was working), was broken after the move. It was properly packed in its own carrying case and everything. It was a model that is designed to be lugged around, hence the carrying case. Anyway, in the new place, I fire it up and it says it requires service (and promptly shuts down). So service is ordered, courier picks the device up the next day, and in a couple days I hear that the repair estimate is 2-3 weeks. Brilliant.

Elisa, the ISP which (in practice) has monopoly in these parts, screwed up big time. I ordered the move of our DSL line exactly one month in advance. The line was cut one day early, and when we arrived in the new place, there was no net connection. Apparently the folks making the order didn't exactly know how to, and just ordered the cancellation. The person I talked to said that they're very very sorry, and we'd get the line connected as a priority job. This priority job took over a week, but here I am, online finally.

A sane company would have given me some alternative form of net connection for that time, such as one of the relatively cheap G3 network plugs, or a cable modem - I thought about asking about those, but the result would have been that they would have billed me about them for the next decade or so. I've had problems with their billing before - that one ended up so that I gave up; they're a monopoly, so there's little you can do. The error in my bill at the time was only about 50 eur or less, so I figured I value my time more.

There was also some talk of compensation for the dsl move messup, but I'm not exactly holding my breath on whether it materializes. Since there was no net, I couldn't handle many things like pay bills, figure out where the closest store is that sells all sorts of things we needed immediately after the move, etc. It's surprising how dependent we have become of the net.

To top things off, I was in a very nasty flu during the whole process. But overall, here we are =)

I'm a B.Eng. Now

June 12th, 2008 (permalink)

So, the graduation day came, and that's them papers. From left to right, the diploma itself, study transcript (2 pages), study transcript in english (3 pages, third one just explaining I know a thing or two about English), diploma supplement (4 pages) explaining in English what this diploma is about, and the bottom one there is the award ("stipendi") I got for being such a kick-ass student.

Whoo boy.

For those interested, my studies included.. (takes a deep breath)

"Meetings and reporting", "Academic writing", "Introduction to Swedish", "Professional Swedish", "English communication", "Introduction to Mathematics", "Basic Mathematics", "Integral calculus and Laplace transforms", "Series, Fourier and Z-Transforms", "Supplementary Physics", "Engineering Physics", "Professional Physics", "Physics labs", "Chemistry and Environment", "Application Development", "Business Economics and Marketing", "Learning tools", "Mathematical methods in computer engineering", "Technical documentation", "Programming", "Unix", "Circuits", "Signals", "Electronic systems", "Electronic components and circuits", "Digital technology", "Microprocessors", "Communication networks", "Measurement and control technology", "Computer architecture", "Embedded systems programming", "Electronics applications", "Writing skills", "Software engineering", "Algorithms and data structures", "C# programming and NET framework", "C++ basics", "Local area networks", "Internetworks", "Printed circuit boards", "Programmable logic devices", "Interfacing PC", "RFID technology", "Relational databases and application generators", "Introduction to XML", "Business skills and practises", "People management", "Human resources management", "Quality management", "Security management", "Environment management", "Strategic management", "Change management", plus a few projects.

A couple of notes on these. First of all, you can see that I went through a rather wide range of different kinds of courses. This was rather fun, as it gave me lots of new views on things. Second, the C++ course. I wanted to go through some more advanced C++ courses as there are plenty of facets in the language I haven't played around with; unfortunately the 'advanced' course was never held, due to lack of attendees. You may also note the lack of java or symbian - this was intentional. The C# course I took because I felt I was too lazy to learn it by myself - the course was a pretty good spring board, even though C# requires vs2005 in practise, and I'm not touching it unless someone sponsors me a professional edition (and Microsoft Finland has said 'no' - yes, I asked). =)

A large chunk of the courses has to do with business, leadership and management. In retrospec I found that surprising, as it didn't feel like I had done so much of it.. and as to math, since I haven't had to use many of the more advanced math tools, it's already fading. But now I know the tools exist! =)

The average score from all courses was (about) 4.1 out of 5, and I got perfect score from my final year thesis project, Atanua.

Atanua in Prosessori

June 10th, 2008 (permalink)


The 6-7/2008 issue of Prosessori, the largest electronics magazine in Finland has a brief mention of Atanua in their links section. They never replied to my emails, but posted a nice, if short, note about it. If you spot Atanua in some other magazines, please do toss me a mail about it =).

Atanua in Elektor

May 29th, 2008 (permalink)


The June 2008 edition of Elektor Electronics magazine has a short article on Atanua in the new products section. Yay!

In other news, my school is rolling steadily towards the end; The final exam apparently went well and I will graduate on 12th of June. It's been quite a busy four years. I've moved a couple of times, gotten married, changed jobs, just to name a few hilights. At this point I can say that I have no idea whatsoever where I'll be in another four years.

When I was starting the school several people asked me (including some teachers) what the heck am I doing in that school, as I'm already working in the field. I'd say that the school gave me a lot - math, physics and all sorts of things related to electricity being the biggest things - and it's been a great spring board for various cool projects.

Now that it's over, one thing several people have asked me is that whether I'll be studying after this. Possibly, but not in this manner (meaning just about every evening for about four years), at least not for a couple of years yet.

Search terms, LD11

May 14th, 2008 (permalink)

I took part of the LD11, which had the theme "minimalist". I wrote a game in just under 4 hours, as the theme did not really inspire me. I did receive 3rd position in "theme", but other than that, the game isn't really worth mentioning.

YouTubed timelapse of the game writing. Here's the game if you really want to take a peek. Sources (needs SDL, SDL_mixer and SDL_image to compile) and windows binaries included.

And here's a new episode of "funny search terms that found their way to this site":

.fi website extension

It's Finland, Baby!

.pcx library in .net

Wow, old image formats never die. I don't think converting old C code to C# would be difficult..

7474 pins connection

Next time, search for "7474 data sheet", mmkay?

a paint program c source using opengl

Interesting idea.

adding and substracting in a differnt base

Step 1: convert to same base. Step 2: add or substract. Step 3: convert to whatever base was desired.

address of brilliant tutorials

Try this.

afraid of 3d math

Most of the time, you don't need to be. APIs tend to hide most of the complexity, although knowing some concepts does help.

ascii code for alphabits in c++


atanua +rotate

Select part, press Ctrl-R.

atanua examples

Inside the distribution zip file. (or tar.gz, or .dmg)

atanua help tutorials

There's the interactive flash demo which might help; contact me if you really think there needs to be something more comprehensible.

atanua source

My experience with the linux community has caused me to reverse my earlier plan to release the sources. Maybe some year.

bad base code image


best place military service finland

I can heartily recommend the signal regiment in Riihimäki.

best way to learn sql

While I wrote it, I still think GalaXQL is at least the most FUN way.

bit manipulation is it faster in c

Faster than..?

bit twiddling highest bit

There were several search terms like this; some way to find the highest bit. That is actually a rather interesting problem. This page has several solutions.

broken framebuffer vesa


c hex 0000011110110111

My windows calculator says 7B7. Does that help?

calculating screen pitch

You generally don't calculate it, but get it from some API.

checkerboard on games asus 8600

Sounds like a broken video card (or possibly bad drivers)

cursed things

Lots of things are being cursed every day.. like crashing computers, or the Symbian OS..

floating dots game


galaxql answers

Yeah, I probably should get around to writing some kind of document on that. On the other hand, that would also require a rather big reworking of GalaXQL from my part, so don't hold your breath.

gametoy corporation

Alas, my 'gametoy' project has probably stopped, as I ran out of motivation on it. And no, I have no idea about the corporation =)

helpful ways to get through the sol tests

Who to the what now?

how to make your own 3d mmorpg easy and fast

This question can be understood in two ways. Either it means "how to build the mmorpg in a easy and fast manner", or it means "how to make the mmorpg easy and fast". Answer to the latter would be by optimizing and doing focus group testing; answer to the former is, you don't.

how to steal game files from a game


i want to make an mmorpg of copyrighted characters

License the characters then. If you have the funds to make the MMORPG, you probably also have funds to license the characters.

ir webcam software

Usually it's the hardware that does the IR thing, not software.

koala painter for windows

I doubt there's one, but there's always the Koalizer photoshop filter!

loading bmps c++ without d3dx

Look up the BMP file format and write the loader. Or use one of the bazillion image loading libraries out there.

make old 8 bit graphics gfx game

First, you need to travel back in time. There's no other way to make an old game.

make your own text based mmo

Look up MUDs.

mikko nurmi metal

Quote from IRC: 22:51 <+spector> hääh?

nand gate 7402

As far as I know, 7402 is a bunch of nor gates, but different manufacturers don't neccessarily agree.

negative values as booleans in c

C doesn't really care if your booleans are negative or positive. 0 is false, anything else is true.

pcx compress source

You may wish to peek into my 'pcxlite' (under "code"); it includes PCX saving routines.

purchase base code

Contact me, maybe we can work something out.

sdl blur c

You may wish to try to apply a 3x3 averaging filter kernel over an image.

sdl webcam support linux

There was some talk about doing a linux port of escapi, but it never materialized.

sdl, bundle into exe


simple coding to renders several copies of object in different position using opengl

Render object. Adjust matrix. Repeat as neccessary.

symbian pause millisecond

Good luck.

tutorial for drawing detailed trees with shadows

I recommend shadow maps, even though they have their own problems. Doing stencils on detailed trees sounds painful.

watcom win32 api

Look up wintab.

what resources do i need to make an mmorpg?

Money. Lots. More than you have.

windows winapi stop shutdown

Uh oh.

winfrotz games

Look up z-machine, inform and infocom.

Steal This Game Design

April 6th, 2008 (permalink)

I've been thinking of this game design for a while, and I think its got lots of potential. It's also lots and lots of work, and will require lots of testing to see where the fun comes in, but.. it's cool.

Groundhog day - the game

While the game idea pretty much springs from the movie, there's no real reason to tie it in - the same concept could be used in different scenarios. Closest thing to what I'm trying to describe that exists today (as far as I know, anyway) are the Thief and Hitman games.

So basically: sandbox game, heavily scripted, resets every 24 hours game-time (what that translates to in real time requires testing). Only thing that stays the same is the player's experience.

Additionally, it's kind of billiards with people. This is where the heavy scripting and lots of work come in: You talk, in the evening, with someone, who's had a bad day, because they didn't get any food in the restaurant, because the waiter did not show up to work, because they did not get a ride to work, because you stole the car keys. The complexity could be this high - or it could be milder (like in the Hitman series).

So the game would progress so that the player finds out stuff, sees what different people do, and try to figure out how to make certain things happen. At the end of the day, the player would get a score card on how the day went (as opposed to if the player had not done anything) - some things go better, some things go worse; the result is some kind of score. Additionally the player's character learns stuff. Maybe learn some French poetry, maybe learn what the key code to the bank vault is - these kinds of things will stick, while all the physical world resets.

Solving the game would mean to collect enough karma points during one daycycle - and to get the girl, naturally.

I really think this idea could be used to spring up several different games, and I'd love to see them happen - I might experiment on this myself at some point, but I don't see any reason to keep this idea a secret either. =)

If this gives you a spark and you want to talk more about it (I've spent some time thinking about it), toss me a mail!

Bachelor's thesis

April 4th, 2008 (permalink)

I believe that's the biggest image I've used on this site up to date. =)

The PDF version of my thesis is available here, and the slides of my short presentation as well, assuming someone is interested in those.

Like I said before, still one exam to go, which basically tests that I've done the thesis myself.

Recent search terms

April 2nd, 2008 (permalink)

I realized I haven't done this for a while. Here are some picks of more-or-less funny search terms used to find this site. No real gems this time, but some are somewhat amusing..

5 bit binary list

00000 00001 00010 00011 00100 00101.. you get the picture.

64-bit hexadecimal fill pattern


640 bit programming


8 bit to 32 bit operation c example

char my8bitvalue = 0x3f; int my32bitvalue = my8bitvalue;

altering the graphics card color look up table

I think this question was relevant a decade a go or so.

c bit manipulation 512 bits

Split it in 32 bit chunks and you're nearly there.

c++ number-guessing game with switch


can u do a quake source mmo

Yes. But why?

change color while the ball rotate

Just do it..? I can't see what's difficult in that..

change icon in an sdl application

This comes in two parts. First is to change the app icon, which is platform-specific, and the second bit is that you can change the running application's icon with a simple SDL call.

compiling drivers for gp2x tutorial

Don't see any reason why you'd need to compile drivers for the gp2x..

cosine for game programmer

Hint: it's exactly the same as the cosine for other people.

d.a.r.e.- what stuff does alcohol cause

Hard to say, considering that I don't drink.

definition "content-driven projects"

There's projects that are logic-driven (or code driven), like tetris or minesweeper, and then there's projects that are heavily content-driven, like all MMORPGs, etc.

dev c++ lowercase to uppercase tutorial

char foo = toupper(bar);

generate rare name

I guess if you take a bunch of random characters, you'll end up with a rather rare (and unpronounceable) name..

help to make bcd and binary up and down counter using 4 bit binar adder and a register

Why would I help you do your homework?

housekeeping graphics


how do big companies make mmorpgs?

With big piles of money.

how i want to make stuffs

I wouldn't know.

integer division with boolean logic

Have fun =)

koala painter for windows

I planned this kind of program long ago, but found better uses for my time.

looking team for mmorpg making

I'm pretty sure you can buy one from China, or India. The team, I mean.

make a huge mmorpg


make old 8 bit graphics gfx game

That's more like it! awards

Unfortunately, nobody has given my site awards (that I've taken seriously, anyway).

sol writing games

Mostly at Ludum Dare.

survival do nots

Don't die.

symbian pause millisecond

Good luck.

triangle strips to render n-sided polygons

Try fans instead.

veggietales theme teachertube

Who to the what now?

what are exceptions in 8051

Do yourself a favor and find the data sheet.

what is 0xff as an unsigned integer


what mmorpg developers need to create better games?

Stop making mmorpgs?

why we should lock vertex buffers before writing in it

So that the driver knows that you're changing the data. Too many cooks and all that.

you want

Funnier search terms =)


April 2nd, 2008 (permalink)

Prey was $5 on steam last weekend, so I figured I might as well buy it. The graphics are decent, physics simulation more or less works (so that the one single physics puzzle doesn't irritate that much). The weapons are nothing really special, but have some nice tweaks like a gun which works in vastly different ways depending on the ammo you load in. The innovative game elements are portals (before valve's 'portal'), playing around with gravity (enter a doorway, gravity is sideways - that sort of thing), and the ability to "project your ghost" or whatever, in order to go where your physical body can't. These all work pretty well.

Spoilers ahead. I doubt that any amount of spoilers really worsens the game, though.

There are two major problems with "Prey", and some smaller ones. The first major problem is that the main character isn't likeable. He's a jerk. And this is a first person game, making the player a jerk. That doesn't quite work. If this was a third-person game, it would be different.

The second major problem is shooting little girls. Okay, they are evil ghosts.. I don't have anything against that as such, except that it's entirely out of place. You walk into a room and suddenly without pretty much any preparation you're attacked by a bunch of little-girl ghosts that want you dead.

With proper set-up and explanation (say, "Cradle" in thief 3) this could be made to work, but not like this. Eventually you find a school bus that the aliens have harvested, and have to fight the ghost-girls again, for no reason whatsoever again.

For the story that it tells, the game is too long. I spent three evenings on it, which was at least one evening too much. The player's motivation is vague at points. At first, it's clear that you have to save your girlfriend - a process that takes way too long, as in many of the levels in this process the player's motivation gradually degrades from "have to get there to save her" to "okay, what do I need to do to get out of this level?". You lose focus on why the heck you're doing this thing at all..

Later on, the game's passive-aggressive arch nemesis shows a holographic map and where the player is and where girlfriend is, hinting that it's futile and so on. After this you get to drag yourself towards the goal again.. except that due to constant portaling from one place to another and way too many levels in between you quickly lose focus on what you should be doing, how you're doing, and so on. And you're back to thinking "okay, how do I solve this level". This isn't a random puzzle game - there this would be okay, but here it just doesn't work.

In one of the levels you need to start some complicated machinery and use it to get through a door. This is so far beyond the focus loss point that the story itself doesn't really matter. Suddenly the arch-nemesis says to the player that he's not going to be able to sneak in, he's seen all the time.. to which the character answers "oh shit", hinting that the player was supposed to be thinking of sneaking in.. somewhere. To me, this was a "wtf" moment.

After some plot twists the game changes the rules of where the player character is in spirit and where he's in flesh, although since it's probably the only truly surprising twist so I don't go there, but I just mention it because I think it's a bad idea to change the rules in such a way - the little immersion that was left was pretty much shattered. The ending is pretty predictable, and naturally there's a deus ex too.

Many of these problems should have - and probably did - show up in testing. Too bad the writers messed up the otherwise promising game.

But yeah, I think it was worth the $5.

Whaz Happenin', End of March Edition

March 30th, 2008 (permalink)

I wonder if I've ever been this busy. I'm buying an apartment - been renting so far, but finally taking that step. The cost of renting in the area where we're moving next is about as high as most of southern Finland, but the apartments are relatively cheap, so it makes sense to take that big loan and buy the damn thing.

On top of that I'm finishing off school - one final test to do - as well as adding little touches to Atanua, which was my final year project. I've posted the project report on the Atanua site as well, and tried to spread the word about it in various places, but getting the word to the people that matter - teachers of electronics, binary logic, and so on, is a bit difficult. I'm open for ideas.

And no, things haven't been too quiet at work either. =)

Hobby-wise, I've been working on a small racing game for the gp2x:

The complexity of the project is somewhat higher than I originally expected. I'm not rushing on that project though, so it may take some time.

I bought 'The Longest Journey' on steam and have been playing it, trying to figure out why it got such rave reviews. Haven't figured it out yet. We'll see if I do.

I've just about finished reading "His Dark Materials" trilogy, for which the first book was filmed as "The Golden Compass". I really want to see the sequels as movies, as I can't imagine how on earth they will manage it. The books have so much material.. and ignoring Christianity on some of them is all but impossible. The books also get much, much darker than what the first movie was.


March 7th, 2008 (permalink)

After getting Atanua in some kind of shape I thought about playing around with some kind of a touchscreen device. I checked what PocketPCs cost (300e+), and compared that to GP2X F200 (175e), and decided to order one.

Whether I'll ever play with the touchscreen remains to be seen, but at least I made a port of orbital sniper for it. Thanks to Guyfawkes for some hints.

GP2X seems like a more or less decent hardware with more or less horrible software. All programs work in a slightly different way. Volume controls either work or not. Some apps can't be quit. Those that can, exit in different ways. Some hacks are needed to make software work as expected. Some developers seem to have a slight "linux attitude", so asking for help is not always too fruitful. Anyway, to follow suit, orbital sniper also works in a slightly different way (there's no pause, only quit) =)

It also sucks batteries like no tomorrow. I bought a wired power for it - otherwise software development would be horrible. Sure, I also have rechargeable batteries.

But those are the negative sides. On positive side, the GP2X F200 feels much sturdier than GP32 did, and it looks pretty nice. On the Zodiac, my hands felt cramped after a short game session. I haven't yet played a lot on the gp2x, so I don't know how well the controls work on it. So far it feels pretty good.

On other fronts, I figured I'd try to sell atanua on eBay. We'll see if there are any takers. =) If there's someone out there with a reasonable offer, don't hesitate to toss me a mail.

2d gl basecode release 2.0

February 19th, 2008 (permalink)

Released 2.0 of my 2d gl basecode. It's still not pretty, but includes lots of the code I've found myself rewriting for every single ludum dare contest. This is basically an update integrating changes, improvements and additions done while using this to build Atanua, like portability, IMGUI widget fixes, some simple collision checks, etc.

Dialogs of Madness

February 17th, 2008 (permalink)

I've been porting Atanua to other platforms for the past two days. Atanua is a rather portable SDL-based application with over 10k lines of code. The only platform-specific bits are:

  • Dynamic DLL loading for plug-ins
  • Platform-specific file open, file save and ok/cancel dialogs

Dyndll stuff sounds difficult, but it's pretty easy. Dialogs, on the other hand, are hard. Here's some notes on the trials I went through.


Windows was.. familiar. There are some tricks that you need to do to have the dialogs behave like you want, but after those it's pretty straightforward.

Atanua expects the data files to be in "data/", so the current working directory may not change. Plus, the current working directory had better be the same as where the executable is in the first place.

Finding the application directory and going there works like this:

void gotoappdirectory()
    char buf[1024];
    GetModuleFileName(GetModuleHandle(0), &buf[0], 1024);
    char *rch = strrchr(buf, '\\');
    if (rch == NULL) return;
    *rch = 0;

I do remember having to fight with windows for a while to dig that up when I first did a decade ago, so the above is definitely not "obvious". But like I said, it's familiar.

For the file open and save dialogs, I first store the current working directory with _getdcwd() and return to it afterwards. This is due to the fact that the file open dialogs also change the current working directory. I could have saved myself the trouble of saving the cwd and just gone to the app directory with the above function after the open dialog call, but anyway.

Asking the user for a file to open is a matter of filling OPENFILENAME struct and calling GetOpenFilename(). The call returns true if user pressed ok, and the name is saved to the buffer you declared in the OPENFILENAME struct. You can easily specify default extension, filters, default filename, and so on.

The ok/cancel dialog is a single call to MessageBox.

Due to the way the file I/O works in atanua, it's quite likely that it won't run from non-mapped network drives. I don't see this as a problem though.

OS X / Carbon

Whoo boy this was a mess. I chose to go with Carbon, mostly because that's what most of the google hits talk about when trying to make a file open dialog on OS X. If I had gone with Cocoa, I probably would have saved myself lots of grief, but on the other hand, my Obj-c is a bit rusty, and I'm not quite sure if calling Obj-c functions from C is as easy as calling C functions from Obj-c. But I digress.

Starting SDL development again on OS X was a bit bumpy. The way the SDL frameworks are used has changed a bit - the old way made starting to develop with SDL on OS X very easy, but made the release of SDL apps on OS X somewhat complicated. The new framework stuff requires a bit more work on the set up side, but helps a lot on the release side.

Porting majority of Atanua to OS X running on PowerPC was pretty easy - I found a couple of endian mistakes, a missing typecast or two, and one missing variable type which I assume visual studio just considered integer. Then the platform-specific stuff.

Going to the application directory was not necessary as it was already handled by the SDLmain.m, objective-c main class. I modified that to go to the app bundle's resources instead, as that's the mac way.

The open file dialog consists of defining a NavDialogRef, NavDialogCreationOptions, NavReplyRecord, plus several smaller helper functions / structures. First the options are populated by default values with NavGetDefaultDialogCreationOptions, dialog is created with NavCreateGetFileDialog, run with NavDialogRun, after which we ask for reply data with NavDialogGetReply. So far a bit clumsy but not especially difficult.

Next we need to extract the file name so we can feed it to fopen. Is this somehow in the reply structure, maybe as a simple asciiz string? No.

First we need to ask for the filespec from the reply, using AEGetNthPtr(). Information from the filespec is used through PBMakeFSRefSync (along with another structure to be filled) to get a FSRef. This can be fed to FSRefMakePath to finally get a path.

Afterwards, NavDisposeReply and NavDialogDispose are used to clean up some of the resources.

That wasn't so hard, was it? Ok, how about saving a file then. Save file dialog is created pretty much the same way, except that we're using NavCreatePutFileDialog instead. Getting the filename isn't as simple because the path will be just a path, and the filename is separate, and we need to extract it from the dialog response with CFStringGetCString call, which will probably blow things up if the filename has any non-ascii characters, but hey, at this point, we're not picky.

If any default extensions, names, filters, etc. were desired, callbacks, events, or some other would have been needed. After 8 hours of the above, I figured this is enough.

For the ok/cancel dialog there is a handy StandardAlert function. Only tricky bit there was that by default, even if you're declaring a caution alert, the dialog box only has an OK button. After filling out the AlertStdAlertParamRec structure things rolled along fine.

Building a release on OS X is somewhat tricky, but luckily I had tackled that long ago, and simply followed my own notes.


Before getting to compile stuff at all, I had to fight over half a day to get linux to work.

I first thought about running linux in a virtual box and save on the hassle of switching between monitors and keyboards, but since I needed OpenGL, this wasn't possible. There were some two year old discussions on adding OpenGL piping to Qemu, for instance, but no word on whether it ever got patched in.

I built a PC from some older parts that I had laying around, downloaded the latest Ubuntu ISO, popped it into the drive, booted, picked "run or install", booted fine, ran the installer, etc. Everything completely smooth so far. I've installed linux plenty of times, and the installation procedure has improved quite a lot along the years. I didn't even need to do anything to get the mouse wheel working!

After the initial setup the trouble started.

I'm skipping several little things that I don't recall anymore, but one specific thing was that the ATI drivers did not work with my radeon x850, which probably should not have surprised me. After replacing it with a geforce3, I had a (mostly) functional Ubuntu 7.10 box, which already proudly said on the top bar that my name was "No value has been set". There was the bit where title bars disappeared and consoles appeared as white rectangles, but this bit was solved by toning down the display effects. I guess GeForce3 isn't enough for GNOME.

After installing the 200-odd updates that were waiting for me after a fresh install of the OS, I spent time installing tons of packages just to get a hello world to compile. Granted, Ubuntu isn't exactly the software developer's distro, but figuring out which packages to install wasn't exactly straightforward.

I noticed that the handy find files widget did not find files. Getting smb share to work was painful. Ubuntu's helpful file sharing widget wasn't. I could find the machine from windows, but it did not accept my name and password. After using another widget found using apt I managed to get it working, except that it made all files copied over samba lowercase by default. After very nice help from folks at #coders I got over this one as well and managed to get the application to compile and run with minimal hassle, as long as the native functions were stubbed.

As someone mentioned, it's usually possible to work around the problems in linux. The point is, though, that none of the above problems should exist. Guess why I didn't mention the set up of file share with OS X above? Yep, it worked on the first try.

Next I started to look how to create a native file open dialog under Ubuntu. SDL gave me hWnd in windows, and it gives an X window handle under linux. I tried to find a X file open dialog example on the net, finding none. Then I figured I'd use GTK's GtkFileChooserDialog, as that seems the GNOME way.

After fighting with which packages to install, what include paths to add, what libraries to link to, and so on for several hours (with nice help from several folks on #coders) I managed to get the file open dialog to appear, based on the simple example here. Create a dialog with gtk_file_chooser_dialog_new, run it with gtk_dialog_run, check return code, use gtk_file_chooser_get_filename to get the filename, do some cleanup and you're done. Of course you also need to call gtk_init somewhere in your application before any of these. Did it work? Yes. And no.

I got the file dialog, clicked on a file, it loaded fine, but.. the dialog did not go away. Thinking in retrospec, I'm guessing the GTK main loop has to be run at some point in order for the dialog stuff to work. Why it even worked that well on that first try, I don't know.

I spent the next several hours trying to find alternatives. Even a file dialog done in OpenGL would have been fine for all I cared. In response I was accused of "not doing things the right way", which invariably meant not using Someone's Favorite Technology X. Should have used WxWidgets. Should have used Qt. Should have written a GTK application to begin with. Or KDE. This was a SDL application, and I liked it that way. Was a simple platform-specific dialog too much to ask? I was generally treated as an idiot, with a severe Not Invented Here syndrome. At this point I started wondering why the heck am I trying to support a broken platform where I'm not appreciated?

Anyway, after all this treatment DrPetter on #ludumdare mentioned that mjau had done a SDL+GTK port of sfxr, so I might want to check out the source code. Mjau had done pretty much exactly what I was doing, except for using a different dialog, in a very different way.

I modified mjau's code to use the file chooser, and found other bits around the net to make the approach work. Basically the dialog had to be non-modal, with gtk's main loop rolling, with a callback to terminate the main loop when the dialog was done with.

I did not notice any easy way to set default extensions, default filenames, or filters. I'm pretty sure there are some, set in some roundabout way. After this ordeal, the ok/cancel dialog was pretty easy to do.

At this point I had a binary ready, so I packed it up, uploaded to the site, and popped at #linux asking if someone could try it out so I know it works for someone else than myself. The only reply was an accusation of trying to get people run a trojan. Again, this should not have surprised me at this point.

In the end I didn't implement any code for changing to the application directory. Double-clicking on the application worked, as does running from the same directory. I assume that if someone knows how to make a shortcut to the application, he also knows how to make a shell script to fix it. Hey, it's the linux way!

I'm only releasing a binary build for linux for the time being. If it works, great! If it doesn't, well, I may be doing a source release eventually. At this point it doesn't seem like it's appreciated.

At least microsoft's platforms are defective by design..

Well, what the hey

February 10th, 2008 (permalink)

Pushing a one-line joke a bit further.

If you're telekinetic and know it, clap my hands

If you're telekinetic and know it, clap my hands

If you're telekinetic and know it, don't be shy, just show it

If you're telekinetic and know it, clap my hands

If you're pyrokinetic and know it, fry my hair

If you're pyrokinetic and know it, fry my hair

If you're pyrokinetic and know it, don't be shy, just show it

If you're pyrokinetic and know it, fry my hair

If you're cryokinetic and know it, cool my drink

If you're cryokinetic and know it, cool my drink

If you're cryokinetic and know it, don't be shy, just show it

If you're cryokinetic and know it, cool my drink

If you're telepathic and know it, guess my name

If you're telepathic and know it, guess my name

If you're telepathic and know it, don't be shy, just show it

If you're telepathic and know it, guess my name

If you've got precognition and know it, you saw this coming

On music

February 9th, 2008 (permalink)

I listen to extremely wide variety of music. I can listen to Britney Spears, or Rob Zombie. Sometimes in the same playlist. Sometimes I listen to classical music. Or some Tim Story. Or c64 remixes, scene music, kohina. Sometimes I listen some trance marathons, or even happy hardcore. Jarre, Vangelis, Tangerine Dream. Or some pop, jpop, kpop, or lots of different kinds of indie, etc.

However, my favorite kind of music is what I call (pardon my French) "weird shit". There's no specific genre that I know of that covers this category, but I'll give you some examples.

In other news, I've done several new Atanua releases, and it's pretty much approaching finished state.

Full week of Atanua releases

January 28th, 2008 (permalink)

Since the last post, I've been making daily releases of Atanua. Since the first release, improvements include undo/redo, 7-seg displays, logic probe, 18 (eighteen) 74-series chips, flipflops, mux, dx, labels, window resize, and various bigger or smaller tunings. If you took a glance of atanua before, be sure to pop back again.

Oh, and I registered the domain, so it's easier to remember where it can be found. I'm kind of running out of small things to fix, so send me mail with your suggestions if you have any!

Atanua revealed (0.5 released)

January 21st, 2008 (permalink)

My final project at school is Atanua, a logic simulator. Despite the fact that it's still under heavy development, it's pretty functional - please take it for a spin and give me feedback so that I can improve it!

2d gl basecode release 1.0

January 13th, 2008 (permalink)

Released 1.0 of my 2d gl basecode. It's not pretty, but includes lots of the code I've found myself rewriting for every single ludum dare contest.

Features include:

  • SDL/OpenGL base
  • Texture loading
  • Simple particles, "popup" texts (think '1up')
  • Sprites
  • Quick font
  • Angelcode font file loader and renderer
  • IMGUI widgets: button, scroll bar, text field
  • Mersenne twister c++ implementation by Jetro Lauha
  • Some performance monitoring

I've also included several different resolution bitmap rasterizations of the Bitstream Vera font as it has a pretty relaxed license.

The Angelcode binary font file loader has been written in a way that should make it relatively easy to support different byte orders.

To use this code you'll also need GLee, SDL and SDL_Image. Download here, about a meg, includes prebuilt win32 binaries.

TMDC over, other bits

January 12th, 2008 (permalink)

After discussing the matter with other folks at tAAt ry, we decided to stop organizing the pseudoannual text mode demo competition. The general interest simply seems to have fallen. To give the old war-horse (as abyss/fc put it) a nice farewell, I built a neat ISO image with all the entries from all the contests, along with the latest DOSBox and batch files that launch each of the the dos demos under DOSBox - no install needed.

So if you're feeling nostalgic, go download the image, burn it, and watch at your leisure.

We could consider burning a few hundred copies, print some nice covers and selling the collection, but we never asked for permission for such a thing from the authors of the entries, and contacting all of them at this point would be a herculean feat =)

In other fronts, I've made a couple of IR pens so that I can play with the wiimote. I did some tests with my IR webcam, and noticed that while the camera gives me a pretty good framerate, its feed pauses every now and then. Irritating, especially since it makes doing stuff like using the IR pens as pointers impossible. Oh well, there's always the wiimote..

Study-wise I realized that I "only" have my final project to do at school, and then its over. Now I just have to push myself to do said project, and try not to get distracted and build several other projects. And the clock is ticking.

Partycle Popper 1.5

January 1st, 2008 (permalink)

You can grab the post-contest version of Partycle Popper here


Pretty much recoded based on cleaned up basecode which was based on the contest version of the game

The widescreen bug fixed

Audio recoded using SDL audio instead of fmod to make porting slightly easier

  • Custom mixer for sound fx and midi instruments
  • MIDI player (only supports one instrument and note on, but hey, it works)

Gameplay tuning;

  • Player's bullets and bad pop bullets are faster, normal pop bullets slow enough to dodge around now
  • Scoring is slightly tuned
  • On player death, the same level is restarted with the same score as when the level started
  • Couple new hint lines, and couple informative printouts here and there

Postmortem moved to its proper place.

Ludum Dare #10 results

January 1st, 2008 (permalink)

I took part of the 10th Ludum Dare 48h game design contest with "Partycle Popper".

Full rankings;

Theme 2nd, Polish 2nd, Effort 4th, Graphics 5th, Overall 6th, Technical 7th, Audio 8th, Fun 11th, Journal 12th, Innovation 20th(!), Humor 24th, Food n/a.

There were 50 ranked entries. I did not strive for humor, but the 20th spot for innovation was a bit of a disapointment. Other than that, I think I fared quite well.

You can grab the (slightly buggy) contest version here - note that it bugs on widescreen displays. Launch with some parameter for windowed mode. There's also something strange in my basecode that causes it to be very slow on some computers.. which is odd, as I'm not doing anything complicated (it's practically all OpenGL 1.1 stuff!).

I'm working on a fixed version, and I'll be releasing said 2d-opengl base code at some point. There'll also be a postmortem on the game.

The main reason why I haven't been updating the site is that I've been working on too many things at once, and thus haven't got anything finished enough to a releasable state =) Stay tuned..