HuvaaKoodia #138

Joined 6 months ago



Latest posts


Couldn't quite work as much today, but eventually everything important got in. More polish and tweaking sure could have been a benefit, but right now I don't really care.

Do give it a look if spaceships in space fighting a space war sounds like your kind of thing.


Briefing and debriefing prose are in. Also tweaked the numbers quite a bit.

Music and testing. That's the last two tasks. I don't think I need a menu for this one.
A name is needed though, I'm not that great at coming up with those. Tomorrow will tell the tale of that then.


As the title states progress was made and here's the report.

Music, a bit of tutorializing and some tweaking are needed. Other than that this here deal is pretty much done there already.


Started late. Spent yesterday evening and this morning thinking about the theme and finally, reluctantly at first, settled on an idea. An idea I've had for a while, but never got around to it. Might as well now. See if you can figure it out from the picture.

Unlike in cookie-cutter, streamlined, scifi-strategy competitions and simulations; here light speed in the vacuum, the universal speed limit, plays a big role. You sitting at the iron throne on Tisias will receive information from the other systems after a delay. The same goes for commanding your ships outside of the capitol system. Each order will take years to even get to the fleet!

Now will you excuse me, I have to get the ships actually moving…


Hello you, I’m HuvaaKoodia; we might have exchanged words in the past! Didn’t have time for Kajam last time (and probably not this time either unfortunately) due to putting together my plan for this year. In short, I’m going independent (Exciting times!) making multiple 2 month solo project from scratch. Mostly for fun, maybe for profit?

Here's the devlog at TigSource for the first project.

Just so that this doesn’t become all about self promotion, I’d be interested in hearing your opinions on interactive digital media. I’ve tried to explain it here the best I can, yet the only way to see if it sticks is to throw it at people. Written from a developer angle, keep that in mind.



I made a simple room based level generator for Infested Zone. It is heavily inspired by the generator in Spelunky.
Here's how it ticks.

The generator

1. Create a room database

In the handy dandy CSV format. The first line designates the type of the room, which sides it contain doors (openings) on and if it can be rotated or not.

Room Base 1 1 0 0 r

Extremely easy to setup in LibreOffice Calc with conditional formatting,

Likewise easy to implement in Unity. Just read the file and split lines with comma as the separator.

(I'm not going to bore you with code)

2. Create a 5x5 grid

A multidimentional int array, nothing else is needed.

3. Set one of the corners as the goal

Just pick a random corner. No safeguards here.

4. Find a valid path from the center to the goal using random walk

Random walk: pick a random direction, keep track of positions already visited, back up if surrounded by walls or visited positions, stop if goal reached otherwise repeat. A recursive function works well here.

This results in all sorts of paths. At worst the whole grid is filled, but usually gives a pretty straight forward path. The random walk can be skewed towards the goal position by weighting the direction choosing part (I'm not doing this as you can see in the gif below)

5. Add a valid sequence of rooms to the path

Making sure the doors match. Other than that the rooms are completely random. This is where earmarking each room with its doors comes to great use.

6. Add random rooms to other positions.

The randomization can be weighted or otherwise limited here if the results looks silly. Rooms with less doors seem to work pretty well as they don't mess too much with the path.

Done deal!


The room database is the saving grace here. No need to worry about invalid connections or silly shapes as the rooms are authored by a human designer. Rotating them adds a surprising about of variation too and the FOV system hides the grid like shape of the level pretty well.


Finished early. Sure enough could spend more time on polish, but other projects are awaiting so better cut it here.

Try it out (no WebGL due to unity issues, unfortunately)


Here's the repo for the metaball effect.

Audio is more or less in at the moment; I've only started on graphics. Should be able to hack something passable together this week.


I needed a break from my main projects and there were a few ideas in the back of my head I've been wanting to try out. Here's the result so far (needlessly big gif, after the jump.)

Exploring some cool tech:

  • Procedural generation (a super simple room based deal)
  • Interaction system for chain reactions (explosions for now, more on this later)
  • Completely component based enemy behaviours (makes adding variations easy)
  • Neat field of view system (a quick 2D version of this project).

Coming along. Not put much effort into graphics yet as you can see.


The problem

The jam was good, but the rating system left me cold. I have a total of three issues with it; let's see if you can spot them.


It is obvious right? Ok, I'll give you the first one for free: there are no descriptive words to go with the numbers. Let's fix that.

10 The best ever
9 Amazing
8 Great
7 Good
6 Above average
5 Below average
4 Bad
3 Terrible
2 Abysmal
1 The worst ever

Better. Now everyone has similar expectations of each grade, more so than before. Do keep in mind this is just an example, there are other fitting descriptions and they could even change based on each category.

Second problem? There is no average! In a big jam there are a whole lot of average entries, so-so stuff. With this rating system I'll have to score them slightly better or slightly worse every time. How annoying.

The last problem is more personal than the prior two. In my opinion a scale of 10 has too much granularity. What is the difference between Amazing and Great? How about Terrible and Abysmal? It is not clear and as such we can expect different people to use these grades in fuzzy ways, which muddles the results. In the best case scenario the grade should reflect the (hopefully written) opinions of each reviewer exactly, not close enough.


In light of the prior explanations some propositions are in order. The first one is obvious, simply introduce descriptive words and an average grade to the current system. I'd be fine with that. Next, two more ideas.

7-grade, zero centered model

+3 Amazing
+2 Good
+1 Above average
0 Average
-1 Below average
-2 Bad
-3 Terrible

The old 5-grade model

5 Amazing
4 Good
3 Average
2 Bad
1 Terrible


I rate the rating system 2 out of 5, bad.