December 6th, 2009 (permalink)

I recently re-read Frank Herbert's 'Dune', and was surprised to find just how great a book it is. I re-watched the 'Dune 2000' miniseries promptly afterwards, and was just assurprised at just how good adaptation of the story it is.

And if you don't know what 'Dune' is, shame on you. Go grab a copy and read it. It's a book that's spawned, among other things, the whole RTS computer game genre, and its influence can be seen in plenty of places, including the Wheel of Time book series. The rest of this post may include spoilers, so there.

Ahem. Anyway.

Naturally you have to make plenty of liberties with the source material whenever making a transition from one medium to another; changing who says what and when, picking what to show, what to skip, perhaps invent new scenes to cover the holes. And of course, eliminating some characters while expanding others.

As an example, there weren't all that many mentats in the miniseries, but then again, explaining what they do, and showing how they work would have required far too much screen-time, and wasn't all that necessary for the story. And all they do that is relevant to the story can be easily done by someone else.

There were some bits that did irritate me somewhat, though. First and foremost, everyone (including the fremen) walk in rythm on the sand. Hello? Isn't it, like, one of the main things you learn from the book that if you walk without rythm, it won't attract the worm?

There's also clear lack of water dicipline throughout the film - people sitting without stillsuits outside the sieches, and what the heck was that waterfall in the "I'm your duke" sequence? Personally, the first time I read the book, I started noticing dripping water pipes and feeling it's a terrible waste of water.

Expanding the part of the princess was a brilliant move in my opinion. She doesn't do much in the book, but lots of things are revealed through her discussions in the series.

As a tv-movie, the 'dune 2000' does have lots of talking heads, but that's ok. Generally you should try to show, not tell, but as it is, they've managed to jam pretty much detail in the about 4-5 hours of the series. As an example, let's think of the jihad. Throughout the book, Paul sees a jihad in the future, with people killing in his name, and tries to find ways to stop this from happening. As far as I recall, he never mentions this to anyone.

Now, how do you do this in a film? Okay, you can do some visions where he sees fighting and dead bodies and his hands bloody, but that doesn't really say it; so you can either choose to be faithful to the book and not have him tell it to anyone, make him talk to himself, or make him confess his worries to someone. Which of these choises is the most economic, screen-time wise? Is it really so important he doesn't talk about his worries? Or would you rather give the audience a chance of having a clue on what's going on?

Seriously, people who are whining about the lord of the rings movie adaptation should try to think about the challenges of even trying to do such an adaptation.

And no, I don't think I'll dig up the sequels to the 'dune' book. I did so long ago, and it just went downhill. And weird. I think when the author starts ressurrecting old heroes (literally), he has trouble letting go. But the first book: pure genius.

The Problem with Bundles

November 13th, 2009 (permalink)

When I dabbled a bit with OSX programming few years ago, one of the things that I found amazingly simple, elegant and functional was the concept of bundles.

Apps in OSX are actually directory structures, with application metadata (like name, icon, etc), binaries, private dynamic libraries, and application data in their proper places. Need to install an app? Just copy the bundle. Need to move it around? No problem, just drag it. Backup? Sure.

The philosophy of bundles solves lots of problems - not only the above, but you can also have OS9 and OSX binaries in the bundle, for instance. It would be trivial to create a bundle launcher for windows, and just drop the needed binaries in a well named directory. After that, all you'd need is one release which would work on any of the supported platforms, and you could just copy it from one machine to another.

Now, to the subject of this post - what's the problem then? Apple doesn't seem to understand bundles, even though they authored it. I don't get it, but that seems to be the fact. When they moved from PPC to Intel, and wanted to support both architectures with single application, they had to do Something New - fat binaries. Why? Why not just add a new folder in the bundle and be over it? Users in desperate need for disk space could simply clean out the binaries they don't need as well.

Further evidence is the placement of binaries in iphone/ipod bundles - at the bundle root.

Now, this doesn't have anything to do with me - I haven't done any new mac software for ages, mostly because I'd need an intel mac to do anything these days - but it's still aggravating.


October 28th, 2009 (permalink)

Tonic sent me a link to a nifty little device I immediately fell in love with:

(store link)

So what is it? It's basically a text mode module, outputs to vga monitor or a TV, and connects to a microcontroller.

I just had to order one immediately. It's also surprisingly cheap. The text mode is controlled via good old "ansi codes" which were rather commonly used back in the BBS era. You talk to the device via serial or spi interface, and it talks back whatever is typed on the keyboard plugged to the PS/2 connector. We'll see if it's possible to update the screen fast enough for any demo use, but if so.. plug in an AVR chip and it's a portable text mode demo machine! =)

Oh, available here. Almost forgot.

One Down, Two Billion to Go

October 21st, 2009 (permalink)

Now that Death Rally's done with, I wonder what's the legal status of the following:

  • Ignition by Unique Development Studios (UDS)
  • Terra Nova: Strike Force Centauri by LookingGlass Studios (LGS)
  • Little Big Adventure 1 and 2 by Adeline Software International
  • Outcast by Appeal
  • Dune by Cryo Interactive

All of the above (and I'll probably think of more later on) are in legal gray area, as the developers and/or publishers have gone bankrupt. I haven't been able to dig up who owns them, or if the source code still exists.

Additionally, companies like EA and Infogrames are sitting on piles of rapidly decaying cultural heritage, including the whole portfolios of Bullfrog and Origin.

In any case, I'd love to see them open sourced. Toss me a mail if you have any idea.

Death Rally

October 20th, 2009 (permalink)

The cat, along with parts of the NDA, is out of the bag.

My Secret Project was porting Death Rally to Windows. It's now released, and free - go grab it.

And if you just arrived here because you saw the URL in the game, welcome. Feel free to browse the site. You'll find tons of stuff here, including programming tutorials, demos I've made, games I've made, source code, and so on..

Ads Reverted, Work Stuff

October 17th, 2009 (permalink)

So, I let the project wonderful ads running for 6 months. The results have been abysmal (less in 6 months than google ads generate in one), so I reverted to just plain google ads.

I've had some legal anguish at work related to my hobby projects, especially the Secret Project, which will be (unless something really unexpected occurs) revealed next week.

Since information of said Secret Project has already leaked, some of you visitors might already know what it is. Hello there!

The legal anguish caused me to ponder if I had any options - if I should just give up and change jobs. Thanks to everyone who reacted to my Facebook post about this; it gave me strength and hope that if I should need to change jobs, there just might be something out there for me.

Situation being what it is, the current job offers several things I would probably have to give up (including extremely flexible work environment arrangements; I telecommute most of the week), and interesting challenges I won't see elsewhere.. basically the only thing I have problems with are some IP policies.


September 26th, 2009 (permalink)

Fairly little of importance happening.. spent my evenings for the past month or so by watching the whole futurama series, all four seasons. Currently suffering from a flu, which doesn't help the work-related frustration I'm going through.

I guess the whole licensing theme with Atanua is wrong, so I should revamp it. When I find the time. Which doesn't seem to be soon.

Re: "Steal This Game Design" (a post I did a couple years ago), some people noted that I should check out zelda: majora's mask. I bought it for the wii virtual console, and tried playing it. The first save point occurs at about 40 minutes of play, assuming you know what you're doing. Should I point out that this is completely impossible with a 6-month old child? I got about 80% of the stuff done, and quit in frustration. Instead, I've watched someone else play it, on youtube.

Based on what I've seen, it's much simpler than my idea - basically consisting of things like "this door is open from 9 to 5 on Thursdays". Much simpler than the 'social billiards' I was aiming for.

As it stands, the Hitman series is closest to what I ment, except that it doesn't loop the same day over and over.. =) Of course you PLAY the same day over and over to get the job done, but it's not exactly the same. The mechanics are similar though: poison the muffin person A will bring to person B to whack person B, for example.

But it doesn't need to stop there; like I said, it might be possible to do things like (and I'm quoting myself) "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.". But that's a rather extreme example.


August 24th, 2009 (permalink)

Fairly little of import has happened lately. Played through Trine, it's a fun platformer with a twist or two. Recommended. Just a pity the last level has to be a pain.

Just to make things a bit weirder for my search engine stats, I'd like to mention that I recently read Cecelia Ahern's "A Place Called Here", and liked it a lot. I had previously read "PS, I Love You", and kinda liked that, so when I noticed the book in a used book store, I picked it up. Easy reading, refreshing Irish references and so on. Also manages to surprise on what it's about. Yes, there's romance in it as well, but it's.. different.

I've been thinking about CFL4 lately again. It's been an on-and-off thing for ages. I don't really need another virtual filesystem/packfile thing, but there's several features I've been thinking about that might be really useful, especially for games. When I've started writing it before - and trust me, I have - I've started from a wrong place, in some of the more interesting plugin thingies, but since there was nothing to plug into, the project has stalled. I remember last time when I started, I wrote a bunch of code and as I was saving it, I found an almost identical file in the place where I was planning to save it. That was kind of embarassing. And shall I use those bits if I start again? Unlikely.

While talking about things I'd like to do, there's a project I've been thinking about, but which will probably never happen. It would be a book/cd kind of thing (or heck, a website) with Finnish music, translations and analysis of the lyrics, under the name of 'musical journey to the Finnish mentality'. Stuff like Kaija Koo's city stories from Mikään ei riitä, Marraskuu by Miljoonasade, Jos tahdot tietää by Maarit, and so on. The reason why the project will probably never happen is because of rights. Basically I'd need a publisher to handle all the publishing contracts on the songs and lyrics etc. I can't even do it for free, because the lyrics themselves are under copyright.

Triangle Rasterization Tutorial, Seminar Slides

August 10th, 2009 (permalink)

The seminar slides are here. If you missed the seminar (and my rather rushed performance), the slides cover the subject pretty well.

Second, wrote a short tutorial on triangle rasterization. No reason.

RST 'How To' Extravaganza

August 3rd, 2009 (permalink)

First off, I'll be speaking at Assembly again. I hope I won't be stuttering too much this time.. my seminar slot is on Thursday at 16:00, and I'll be talking about how to get more out of your education in a scene way.

I haven't been updating this page for a while due to summer vacations and some interesting things going on, which I can't talk about, but which have been taking my free time lately.

Since it's been a while, here's some recent search terms. Not too recent though..

Figured I'd do something different and searched for 'how to' in the past few years' search term logs and picked up a few that caught my eye.

how to build a level tutorials

Depends.. on the game.

how to build a mmorpg fansite

Just like any other web site. Mind the copyrights.

how to code fractals in opengl

Depends on the fractal. Some fractals, like L-systems, you might want to create as geometry; other kinds, such as the common mandelbrot, you would probably want to write as a pixel shader.

how to copy opengl framebuffer video memory


how to count words in a text file.cpp

Count all non-whitespace surrounded by whitespace and/or file start and end.

how to darken a sdl surface

Make the pixel values smaller.

how to determine horizontal and vertical distance in graphic c programming

Substract the coordinates from each other.

how to disable 1 bit logical operator

To toggle, use xor. To enable, use or. To disable, use and.

how to do 32 bit shift left operations on 64 bit machine

Use a 32-bit data type, or if that fails, mask out all unused bits.

how to do graphic for my game

With hard work.

how to do old school graphics programming?

SDL is pretty good, in my opinion. Others prefer allegro.

how to draw sonic the hedgehog how many spikes do you have?

Maybe google for some images of said critter and count yourself?

how to draw vampires tutorial

Draw people. Add fangs. Captivating eyes optional.

how to enable backspace in html textfield

I didn't even know you can disable it. Live and learn.

how to find max value for same two lookup values

Lookup tables are generally a 1:1 relationship between key and value, so maybe you're talking about some more complicated data type?

how to fix a webcam problem generating a hazy pic

It's likely to be unfocused. Try to focus it - in many cases that's done by rotating the lens.

how to get a lumex lcd character display to work with a microcontroller

With hard work.

how to get calculate position using srand

Calculate. Using random. Um.

how to get ride of debugger detected - please close down and restart !

Petition to make all forms of DRM illegal?

how to get the most out of mmorpg

Don't play it. Instead, buy a good book, and read it. In a café. That'll give you all the fantasy you need, along with real social interaction. Yeah, like I'm the one to preach..

how to implement blining cursor using sdl

Don't draw it every frame.

how to include bresenham line algorithm into opengl to draw alphabet on grid

You don't need bressenham in OpenGL; just use the line primitive.

how to install terra nova strike force centauri on vista


how to make a high graphic game

Start from a low graphic game, and then lift the graphics higher.

how to make and sell your own role playing game

Travel back in time and try to talk to TSR and folks in the early 80's.

how to make good pixel graphics

With hard work.

how to make skeleton using metal threads as homework

Wow, cool! What school do you go to?

how to make slippery tiles rough

Depends on the material, but chisel and hammer might work.

how to make your sister do stuff for you

Following the golden rule, do stuff for your sister?

how to map lpdword to wparam

"lpdword" being long pointer to doubleword and "wparam" a word parameter, I'm not sure if that works. But win32 api being weird as it is, maybe it does.

how to sell your mmorpg idea

Step one: Find someone incredibly stupid enough to pay for ideas. Step two: introduce him/her to me..

how to use boolean logic with effects alcohol has on syndrome babies



June 13th, 2009 (permalink)

Here's another nugget found in old hard drives.

While I was working for Viherjuuren Verkkoviestintä, before my trip to Israel, I was asked to look into Macromedia Director in order to support some of the "multimedia CD" projects the company was doing. I spent a while looking at the program and then asked if I could get into some actual course about it, in order to learn what the heck it was about in order to tackle the scripting side.

The company sent me to a university class about Director. It was.. interesting. I ended up having a shouting match with the teacher who claimed that 32 bit mode had "over 4 billion colors", and tidbits like that. By the end of the course I did the following:

Due to being horribly outdated in 2023, I've removed the director content.

You'll need the shockwave plugin to play it. Anyway, after the beginning message, click on the rotating box in the lower right corner to start the effect proper. That little effect included several things the teacher did not know were possible in director, and I doubt could figure out how to do.. =)

Back then director did not have actionscipt, but lingo, which looks something like this: "SET THE A OF THE B TO THE A OF THE B + 1", which in sane language would be "a.b++;". Other fun oddities include the fact that maximum line length of the script depended on window width - so if you run out of space, just make the window wider..

In general the whole scripting of director back then was a pile of hacks on a pile of hacks, with multiple levels of ways to override scripts, all linked to different things, like the timeline, scene, sprites, and possibly other things. Debugging, without prior understanding of how scripting had been used in said project, was a nightmare. From what I understand of lingo's history, it was a scripting language designed for graphics artists, not programmers. But then new features were desired, and the language mutated into something designers can't use and programmers don't want to use. May it rest in peace.

It's kind of a pity that I didn't end up doing much for those multimedia projects. I did do a online game for Pizza Hut though, which was on the finnish Pizza Hut site for several years.


June 5th, 2009 (permalink)

First of those nuggets I mentioned a couple posts ago - I found some pictures of my time in Israel working for 3Dion, and figured I'd post them. Then figured I'd write some notes about the pictures. Then ended up writing over 30k of my memories along with the pictures. Then searched the old hard drives for more images to go along with the text..

Read the whole thing here.

More Ads Experimentation

May 28th, 2009 (permalink)

I set up project wonderful ads in place of the google ads on the top of the pages; some say they work better than the google ones, so we'll see.

I bought an IDE-to-USB adapter to access some old hard drives of mine, and I managed to fish out a couple of gold nuggets. I'll probably do a few posts on these in the following days.

As a user request, I added timestamp at the end of the pages. They're not too reliable, but at least they're something.

Little This and That

May 14th, 2009 (permalink)

Time flies, yet time moves too slowly. Such is life. Some things we'd like to happen earlier, while others don't last long enough.

Anyway. A few years ago I was hunting for someone to host forums for my tutorials, which never happened before I moved to gfxile. Now, if I'd want to set up forums, I'd probably take the [Free Forum](" title="Free Forum).

I've lately wasted some time playing broken picture telephone, which is simply brilliant, if they'd just figure out how to keep griefers in line.

Speaking of playing, I'm re-playing thief 3 now that "thiaf" has been announced, and I'm delighted at how good the game looks like still now. Only if it would be possible to make the load times faster somehow..

Oh, and decided to plonk down money for spotify premium account. I've basically only listened to spotify for the past month or so. =)


May 5th, 2009 (permalink)

I've long felt that some of my tutorials would really benefit from flash examples, so I finally bit the bullet and learned some actionscript. The interpolation tutorial now features animations done with flash alongside the graphs.

I'm still quite a newbie, but who knows, maybe you'll see more flash examples in my tutorials later on. Or maybe even a flash tutorial. =)

For those you wish to know, I used FlashDevelop IDE and the Flex SDK - so no commercial tools were harmed during the production of those small applets.

Oh, and registered as well. We'll see when I find the time to get back to that.

Recent Search Terms

April 12th, 2009 (permalink)

Here's a selection of some recent search terms. A bit early this time, but there's some good ones:

allocconsole second thread second console only one console

I think a windows process can only have one console. Could be wrong, though.

c program to display a given positive integer number like an lcd screen 3x3

Kind of an interesting school assignment. Does this refer to some graphics mode, or text? Either has its own challenges.

calculate and plot pixel coordinates of line that have two and points (10,5) and (2,2) using bresenham algorthm assuming that the starting point is at the left

I don't know.. could you be a bit more specific?

can you make an mmorpg in html?

Sure. Can you? Of course the back end can't be pure html, and some ajax stuff needs to be applied..

dare survival

To quote Sokal's Ankardo, "bravery is not having imagination at the right time" (or some such)

galaxql refreshes blinks

Probably on a mac. wxwidgets doesn't work exactly the same on all platforms.

getting x and y coordinates from the color hex like "0xffffff"

You're asking for a two-dimensional coordinates in cartesian space from a 3-dimensional color space?

how do i get pyrokinesis to show up on my webcam

Step one: perform an actual pyrokinesis.

how to block off water in a vivarium

We keep the ventilation and temperature high. High temperature keeps the water in mostly gaseous form, and ventilation gets rid of the extra moisture.

how to calculate transformation in 3d game

That's probably one of the most fundamental things while making a 3d game.

how to change levels in a game programming

Depends entirely on the game in question, but the basic idea is to ditch all the data about the old level and load up the new one.

how to convert picture to ascii art 16 colors

More art than science, I've found.

how to find text mode character size

You generally speaking don't. And the user may change fonts on the fly, as well. Some fonts are vector fonts as well..

how to get calculate position using srand

Now, 'srand' initializes the random number generator. It doesn't even return a value..

how to pause loop sdl

SDL_Sleep() yields the thread for N milliseconds, if that's what you're after. To make a 'pause' mode in your game, you need to implement game clock separately, and don't increment that while in pause mode.

i want a mmorpg that's a bit different

That's the problem, isn't it? Everyone wants to make an mmo that's only a bit different.

if we received a radio message from alpha centauri today,how long agp would have it been sent?

About 4.37 years.

in the game,what is the most important tool in the time of survival

Your wits.

latest survival stuff

You're on the wrong site.

my logitech webcam has suddenly gone hazy

Stop smoking.

no suitable graphics card found couldn't find a direct3d device that has a direct3d 0 level dirver and supports pixel shader 1.1 or greater this program requires pixel shader 1.1 and vertex shader

That sounds a lot like an error message from some application. How about searching the net for the application instead?

please play these samples in windows media player before playing them in fake webcam

What's a fake webcam?

secret capture mouse c++ wxwidgets

It's no secret.

setting up game programming environment on windows

Depends a lot. You may want to use pygame, or install visual studio. Maybe you want flash devel tools instead.. or inform.

text mode blocks how many pixels

8x12 is the normal one.

vesanen juho evtek

Yeah, I know, I've been trying to reach him for ages, but he's always busy.

what graphics program should i use to create a game

Adobe Photoshop is my weapon of choise, but there's plenty of free tools out there nowadays that may do the trick, like

what you need to know to start programming your own mmo

If you need to ask, you're not ready.


April 11th, 2009 (permalink)

I got an invitation to Spotify, and it's pretty much blown me away. It's kind of like having an itunes library with.. everything. It simply works. Searching for a song, playing it, seeking etc. - everything feels like you'd be playing with local files. I have no idea how they've managed to make it work this well.

Of course there's plenty of holes in the library, but it's still surprisingly comprehensive. Like, there's some dance nation, but not all.. both versions of the 'chess' musical, and so on. On the other hand, lots of 80's hit bands only seem to exist on best-of or collection albums. A pity, as I'd love to explore the more obscure songs by some of the one-hit miracles. Anyway.

The business model: 10e/month, unlimited music, as long as you use it on a computer and never copy it anywhere. So, they're aiming the market which is always connected to the net and always on their computers: students and office workers. Both markets are probably high users of mp3 warez. Spotify makes the illegality go away, and, like I said, the library is enormous.

The 10e is, for me, on the borderline. If it was 5e, I wouldn't think about it and would subscribe in an instant. At the moment I know I can live without it, so the 10e makes me think. The "ad supported free" model doesn't help either.. I wouldn't have tried it without the "free" model, but moving from "free" to "premium" is a strange step. First, all I'd "get" would be to be rid of the relatively rare "hey, go premium" ads, and.. if I did go premium, but decided at some point that I can't afford it, could I move back to the "free" model? Thus, paying it feels like a risk.

There's a couple of things I'd like to see in Spotify. First, it would make sense to have stronger music exploration tools. There's some, but still, finding even more new music that I like would be a killer feature. Another feature I'd like is "buy now" links. Yes, that sounds odd, but since there's the limitation of not being able to move the music, I'd love to explore music this way and then buy what I like to copy on my ipod or whatnot. That would also give Spotify another revenue stream that they definitely need, and by, let's say, giving free credits to premium customers, would also give a greater incentive to "go premium".

Also, noticed that the front page was starting to be insufferably long, so I archived most of it already (in the past few years I've only archived once per year).

Droject and the Heureka Team Stomp

April 8th, 2009 (permalink)

Back in 1995 I was in the same high school with !Cube, and as a school computing class project we decided to write a demo. Now, because we felt the demo sucked so bad, we didn't release it back then. I've lost the source code and assets at some point, but Tonic happened to have a copy of the binaries, so I figured we might as well release it now. Enjoy:

There's also a pouet page for the demo, and it's got a relatively good response.. so it's a pity we didn't release it Back Then. Anyway, there it is now. For more info and trivia, check the info file.

I visited Heureka recently and managed to record a few minutes of people playing the Team Stomp game. I only have a very small memory card, so after editing, here's about a minute of gameplay:

The crowd in this video is again not exactly typical one, as this was another exhibition launch day - plenty of people in suits, and most of the visitors were in other parts of the museum, ogling at the new exhibits. Which were pretty nice, actually. So, if you haven't visited Heureka for a while, now might be the time =)

A Couple of Baby Pics

March 29th, 2009 (permalink)

Here's a couple more baby pictures. First off, we have Niklas beating the heck out of Max Payne:

Second, some people have wondered how our dogs react to the baby. I think this image describes the situation pretty well..

So far Kiku (the dog in the picture) has eaten a few cloth tissues and a couple pacifiers, has been curious about the baby but nothing horribly alarming.

Finally, here's a video of the vivarium mist/fog maker in action. I think it looks pretty cool. Watch in HQ if possible.

Some More Recent Search Terms

March 21st, 2009 (permalink)

Here's a selection of some recent search terms:

"did she blush

Possibly. Who's asking?

"game programming" "cpu cache"

Largely irrelevant.

"tutorial" method "develop" high graphics "games"

Prefab materials. Use prefab materials to populate content. Use lighting and shading to provide variety.

  1. what pixels will be marked in drawing a circle (100, 90) in graphics
c++ samples guessing number, coordinates size of triangle exit program
create a graphical app java program that displays a checkerboard with 64 squares altering blavk and white

What's this, ask google to do my homework?

atanua remove grid

There's no way, but you can simply select everything and drag it up or left out of the grid.

avr reading mouse movement

Depends on how you're interfacing mouse with your AVR.

bullet hell algorithm

From what I've seen, they're mostly sin/cos things.

glcopyteximage2d is slow

Yes. Use FBOs instead.

how do you code the graphics part of a game

Blood, sweat and tears. And some fun mixed in, too, I guess. There's also lots of reference material, books etc, available, but effort is the key, I think.

how much milliseconds does getmessage(&msg, null, 0, 0) execute

Probably around zero, but it rather depends.

how to power a pc fan vivarium

I used an unused cellphone charger. It was an old one, and conveniently gave me 12V. Your mileage may vary.

how to use boolean logic with effects alcohol has on syndrome babies


make your own mmorpg without programing or writing codes

You know, there's probably a real market here. Set up a turnkey mmorpg solution, and sell tons of copies. Except that these dreamers probably don't have any money.

nibble twiddling

That doesn't sound quite right..

parts of a microsoft keyboard and putting one back together

Oops =)

photos alien wrist implant

It's actually some more or less common disease, doesn't really have anything to do with aliens.. (no, I don't have one, I googled this)

project+microcontroller based baby cradle system+source code

That sounds pretty dangerous to me. Someone's life might be at stake.

site: -"congrats on the boy from druggy :)"

Thanks druggy, and now we retire this "hacking" trick. Can you figure out others?

source code in opengl projects on cracking of egg

Sounds interesting. I'd probably skip the physics and just fake it.

start your own mmorpg server

Follow the installation instructions supplied with your product.

uncfl created by jari komppa

It was actually created by Jetro Lauha. I am the authof of CFL though.

what happens if you dont start your writing sol on the first line?

Based on how the question is formed, probably something awful. I have no idea what you're talking about though.

whats the meaning of the "best swordsman"

It means that by some commonly and independently agreed on standard, there is some person who is the best swordsman.

where can i get documentation for data encryption and decryption in .net for mca fianl year project

I'll just hazard a guess, but.. from microsoft?

who owns terra nova strike force centauri rights

I wish I knew. Although, if I did knew, I probably couldn't do anything about it.

Character Balance Patterns

March 9th, 2009 (permalink)

Here's a couple images for you ascii art theory lovers. Click for full sized (1024x1024) images.

What you're looking at are graphs depicting the balance of pixels in each glyph. First two images contain the whole "IBMSCII" character set, while the second pair only has the normal printable ascii glyphs 32-126.

The difference between the two images is the way the balance is calculated. In the first pair, any pixel on the left side nudges the glyph to the left, regardless of where on the left half of the glyph it resides. For the second of the pair, the further left the pixel resides, the more it moves the glyph left. (And of course the same for right, up and down).

What does this have to do with anything? Beats me, just felt like doing those graphs.

It's a boy!

March 8th, 2009 (permalink)

As some of you already know, I'm on a three-week paternity leave from work as we're trying to learn how to live with our new family member, Niklas Antero:

Niklas was born on the 28th of February at 17:00 exactly, weighting at 3005 grams and 49.5cm tall. All three of us are about as fine as you'd expect one week after =)

Phooh. Not surprisingly little else has happened. Couple thousand people or so have popped by at the Typomagia! page, and there's even some reviews! In general the response has been much more positive (and widespread) than I'd have expected. Please stop sending me the suggestion that a head to head net play would be nice. I know. That's one reason I started writing the game in the first place. When I'll find the time to implement said net play remains to be seen.

Finally, my friends at Secret Exit have finally released Zen Bound, so if you have a iphone or ipod touch, check it out.

Recent Search Terms again

February 22nd, 2009 (permalink)

Here's a selection of some recent search terms:

"what is" + "0xff" + pixel + color

That depends a lot, you know, on the graphics mode.

(1-t) interpolation

You probably meant e1-t instead.

+demo +coding +tutorial

Do some effects. Sync them with music. Figure out a cool name. You're done.

.cfl file opener

There's an uncfl in the cfl source package, that might help.

c++/opengl sample code to implement room with furniture

That's quite specific, don't you think?

can i view sol files

Unless they're hidden, why not?

compile sdl into executable

The answer used to be, you don't, but now you can, if you're willing to pay for it.

funny pictures 80x50

Well, some like them small, I guess.

graphics required for games-explanation

I'd like to hear that explanation too.

how old do you have to be to make a mmorpg

I try not to pick mmorpg queries but I think this one speaks for itself.

how to build a game level

Depends on the game.

how to calculate lighting on height maps

You could do some ray-tracing, or you could convert the height map into a normal map and use that.

how to draw microcontroller in wxwidgets

Microcontroller. You keep using that word. I don't think it means what you think.

i want to make a mmorpg and i have a team what engine

If you have to ask, you don't.

karnaugh map xor trick

It's a kind of a checkerboard pattern if I remember right.

mmorpg in which you create your own character

Doesn't that kind of cover every single one out there?

name of character on keyboard on zero button

Uh, zero?

rob zombie sinister urge copy protection

No, it really does sound like that.

sol of trauma (jari komppa) is a nice guy, he will like this line

I think I'll stop quoting obviously "hacked" results now, unless they're really special.

the golden compass compass w32 stop working

Is that you, Lyra?

what is logic simulation

It's logic, simulated.

Typomagia! v0.7

February 19th, 2009 (permalink)

Here's me unveiling a project I've been working on for a couple of years now. The basic idea is to teach you to type better/faster, which sounds boring, and usually is. But not this time! Typomagia! is a game in which you generate mana and cast spells by typing words. Typing speed itself is not the deciding factor, but what you use it for. In the game you conjure powerups and summon monsters to fight the monsters of your opponent (computer only at the moment).

But that's not all! I've also written an epic 20-chapter storyline for the story mode. Sure, you can probably solve that in under an hour, but it'll be a fun hour, and you'll be practising typing without realizing it.

In other news, some nutcase has ported TextFX7 to Flash. Check it out!

Textmedia 3.5, Reddit and Stuff

February 7th, 2009 (permalink)

Did a refresh of TextMedia, plugging in TextFX7, so the output quality is generally better than with the earlier version(s). TextMedia is a windows media player in NT console, supporting almost all video formats supported by directmedia (some formats, such as paleted ones, don't work). Why, you ask? Why not, ask I. Textmedia can also try to use your webcam, which I used to take the image above. Maybe I should shave..

Someone posted a link to the interpolation tricks tutorial on, causing a slight spike (a few thousand visitors) on my stats. Whee!

The tutorial is, like most that I write, rather basic, and meant as such. Still, I've received comments from several experienced programmers that they've picked bits and pieces there that they had not known before. Thus, I think it's a successful piece, even if it doesn't go too deep into anything.

Official Press Photo

February 2nd, 2009 (permalink)

Here's the official press photo of our Heureka game (click for original, non-cropped and scaled image):

Photo by Jakke Nikkanen / STT Info Kuva.

Freely distributable as long as credited, original is high enough resolution for print.

Recent Search Terms

February 1st, 2009 (permalink)

Here's another short episode of Recent Search Terms from the past two weeks. I've also started a new page collecting all of these so you don't have to go through the whole history hunting for them.

download mca final year project sample in .net

Now I don't know what mca is, but as a query this sounds rather suspect.

guess secret number replayable programing c++

The trick is in calling srand with the current time to get a different random number every time.

how does a cpu use bit shift

The most common way is to use a barrel shifter, I believe.

how to pause a while loop using sdl

Now, it's entirely possible to "pause" a while loop by, for instance, using some kind of longjmp trickery, but I suspect this is a case of a wrong question.

i have used settimer() in windows programing but not sending wm_timer

Are you handling wm_paint messages properly? Windows really, really wants apps to handle painting, so it's possible that your timer messages simply aren't getting through.

lets make mmorpg together

lets not.

light block plastic sheeting for vivariums

Bought ours used. Sorry.

stories ideas - the town where nobody smiles

Try Finland. It aint no story.

use of vesa functions in windows to access video memory

This sounds like a rather weird trickery. However, I'm pretty sure the video drivers won't allow it.. most VESA drivers under windows are broken anyway.

Interpolation Tricks

January 31th, 2009 (permalink)

Wrote a small tutorial on interpolation tricks. Have fun!

Heureka 'Team Stomp'

January 30th, 2009 (permalink)

Phew. I've just come back from Heureka, the finnish science centre (science museum and stuff). I was attending the launch of their latest exhibition, "Move and Play!", to which I built, along with Juho Vesanen (hardware), Mikko Sinisalo (graphics) and some other students (whom I didn't meet) from EVTEK, a game. The game is easiest to describe as "DT Decathlon with dance pads", although it's kind of different.

The exhibition is probably the best one at Heureka that I've seen, although I have to admit I haven't visited there as often as I'd wanted. It's very physical - I tried out some tricky driving on a wheelchair for example, and there's tight rope walking and so on. In one of the early meetings we had with the Heureka folks I asked if they had looked at this new Nintendo Wii thing, and - while I don't know if my question had anything to do with it - Nintendo is the main sponsor of this exhibition.

I forgot my camera home, so you'll have to make do with these horrible mobile phone camera shots:

Note the suits. This was the launch party of the exhibition, so the audience wasn't your typical one. It was kind of fun to watch folk in suits try all sorts of physical activities, though =)

There's three "pads" next to the screen. Each of these has some vibration detectors connected to them. When you stomp on these, your player character runs forward. More than one person can stomp on a single pad to make the character run faster, so it's a three-team running thing.

Technically there's a microcontroller in each of the pads which read the motion detectors, and these talk to another microcontroller wirelessly. The listener microcontroller then acts as a keyboard for a PC, tapping keys when people stomp on the pads. I don't know the details of the hardware, so things may have changed somewhat, but when we get to the PC, it's more my domain.

The game itself is 2d, using OpenGL to render sprites - the code is based on my 2d gl framework, which can be found on this site. I originally thought about just doing it with software rendering for simplicity, but the 1440x900 resolution was way too heavy to process in software with antialiasing etc. There's also three webcams wired to the PC, (yes, using ESCAPI) recording the players. In addition to seeing which player you are, the program also stores the picture where your velocity peaked; this picture is used in high scores.

Code-wise I tried to keep things as configurable as possible, so new animations, layers, sounds, etc. could be added if needed. The input keys can also be configured, as well as the web cam id:s, length of a single race and so on and so forth. This configurability led to the fact that the code was ready a year before the hardware was, and when changes were needed, they could be done to the XML configuration file. I'm actually surprised how few bugs we found. For testing, the game was running at the lobby of our school for several months, so I'm pretty confident it's solid.

The game has both all-time-highscores and today's best scores. The machines are reset each day; the all-time highscores are stored on disk, while today's highs are only kept in memory.

Mikko Sinisalo designed and rendered three cute characters as well as the rest of the beautiful artwork for the game.

As for the audio.. that's another story. In one of our initial meetings, our contact at Heureka said that they had cooperated with this small company in Helsinki with audio before, so they could use it again. We decided on a meeting at this "small company", and when we arrived it was revealed that he had been talking about Generator Post, The high-end post production house. To get some kind of idea what I'm talking about, every single movie done in Finland as well as several foreign ones are processed there.

It's not surprising that the audio turned out great. After doing mobile games for a few years it was somewhat shocking to see one "sound effect" to easily take tens of megabytes of space =).

It was fun to see the game in action. People could easily get into it and seemed to like it.

TMDCXI, Recent Search Terms, and the Vivarium

January 16th, 2009 (permalink)

I made a new page describing the system we've rigged for my wife's vivarium to generate some fog and push it around. There's some pretty pictures there too.

The results for TMDC XI are out, and what do you know, we won. I'll probably try to make a final version of the demo (plugging in TextFX7 among other small changes) at some point.

And now, for the first episode of Recent Search Terms in 2009:

As an explanation for those new to the site, these are search terms that have found their way to this site which I find amusing for some reason. I collect these from google analytics.

8051 programming code for door locking with secret code with touch screen

Sounds complicated, but could be a fun project.

c code to draw dark line using bresenham

Take the Bresenham algorithm, and.. I don't know, plot black pixels?

content driven mmorpg

All of them. Except maybe love. No, wait, that too.

debugger detected please close it down and restart linux

linux? That's a rather familiar dialog from windows, but.. linux?

directx melting snow blend alpha

That could actually be a fun project, in 2d, to do with cellular automata.. cells distributing "coldness", and outmost ones, getting too warm, turning into water and flowing away..

gta 4 ati z-fighting problem

Make sure you set color to 32bit.

how to capture mouse movement in 1 frame buffer by another frame buffer

Who to the what now?

how to count words in a text file .cpp

Google is such a great tool for homework projects, don't you think?

int 13h graphic tutorial

Oo, I know this one. "mov ax,13h; int 10h" to set the mode. Plot pixels in segment 0a000h. To change palette, set color offset by outputting to port 03c8h, and set the colors by outputting to 03c9h (r,g,b,r,g,b..). For retrace sync, read port 03dah and check when the high bit is one. Wasn't life much simpler back then?

interfacing avr microcontroller with webcam


is cloning now possible?

Yes, but not in the way the popular media shows it. You don't walk in a closet, press a button, and see a clone of yourself; it is, however, possible to grow "identical twins" of sorts, and as you should well know, identical twins are separate entities with different whims, memories and whatnot.

light textures

Do you mean lighting textures or textures that don't weight much?

make a sdl application have an icon in windows

I used a program called resource hacker once to put an icon to a ready windows application. Anyway, windows uses the first icon resource as the appicon, so you can add it in visual studio, for instance. Then, you can use a SDL call to set the runtime icon as well.

make your own character that you design

Step one: get some paper. Step two: get a pen. Step three: ???. Step four: profit!

maximum value of 16 bit word 65535 or 65536

The maximum value a 16-bit word can contain is 65535, or 0xffff. Since we start to count from zero, the maximum number of discrete values a 16-bit word can represent is 65536.

opengl flc player

I'd probably render in software and then upload each frame as a texture. This will, however, eat plenty of bandwidth. I doubt it's possible to write a FLI/FLC decoder in a shader language though..

should you sleep extra hours before a contest

Can't hurt. i'm just trying to mess your search results ;)



January 4th, 2009 (permalink)

Another release of TextFX is out, with massive image quality boost due to a bunch of bugfixes.

It's funny how revisiting some old assumptions can yield great results. Oh, and it opens the window in a 80x50 console now as well. That probably broke when computers got too fast.

Happy New Year

January 1st, 2009 (permalink)

Wow, did this page load fast or what? Yes, I archived 2008 on its own page.

In other news, while I've been recovering from flu, I took another punch at the good old rgb to textmode conversion thing. This time actually documenting the process.

Ludum Dare #13 results are out, and I got bronze on 'polish'. Other results are so-so.

Viridian needs work! Hire him!

TextFX6 with the improved filters is also out. download here.