Thursday, May 31, 2007

Why EVE is worth playing

I love spreading links. But in general, I'm going to resist, because it's too easy to turn into Metafilter. However, this is an old story which somehow I missed at the time.

The reason, btw, is that it allows you to truly, totally, soul-crushingly DESTROY another player, to an extent which would be considered a critical design flaw in another game. EVE is for the truly hardcore and GHSC should be snapped up by the intelligence service.

Wednesday, May 30, 2007

Big numbers

what's the biggest number you can write in 15 seconds?

9 > 1
99 > 9
99+99 > 99
99*99 > 99+99
9999 > 99*99
999999 > 9999

this is where it gets more interesting.

2 ↑ 2 = 22 = 4
3 ↑ 3 = 333 = 19683
3 ↑ 4 = 3333 = lots

3 (↑2) 3 = (3↑3) ↑ (3↑3) = 19683 ↑ 19683

so where: f(n) = n ↑n n
and f3(n) = f(f(f(n)))

my big number is: fn(n) where n = 9

mr. xkcd would have beaten me though with BB(9). he could have had BB9(9 ↑9 9) but it would, frankly, have been unnecessary wear and tear on his pencil. in other words, it would have reduced the computational density.

actually he goes bigger. he also restates the problem in a more exact form, 32 characters instead of 15 seconds. and btw, yes this entire discussion was sparked/ripped by/from his post and my vague recollections of a conversation with josh.

Collision and movement in RTS games

Collision detection is a fundamentally hard problem. Spheres are easy enough (y2 = x2 + r2, iirc) but generally objects are knobbly.
A related issue is movement and pathfinding. Each step along the path involves collision detection and either halt or reroute.

Probably the oldest solution is to use a square board, a la chess. That isn't very good though, because a diagonal move is longer than an orthogonal. Pentagons don't tesselate well, so hexagons are the next step up. Hexagons offer 6-way movement with a pure grid, the famous isometric grid. This is good enough for most games and people have made east+west movement possible.

Octogons don't tesselate perfectly; they need squares along the diagonals. You get all 8 compass points though and the squares give you a little flexibility. You can choose to put units in them or not, you can choose whether a given item collides on squares as well as octogons (to make a slightly bigger tank). You could allow small units, like single Marines, to occupy a square.

Going back to hexagons, seven hexagons make a superhexagon (my name). They have supersides composed of 3 hexagon edges - happily, they have 6 of these. So by making each tank take up a superhexagon, you gain some freedom for irregular shaped units. That gives me a cool idea for super-units which are assembled from smaller units - like in cheesy anime.

By adding surrounding blocks, you can allow pixel-precise unit placement. A single square sized unit cannot overlap more than a four-square, wherever it's centred within that four-square. A foursquare sized unit needs a ninesquare. A hexagon needs a superhexagon. By doing collision detection on the containing area first, using coarse blocks, you save a lot of CPU compared to trying to make pixel-perfect collision detection between everything at once.

There is a tradeoff involved in how many blocks you use. Too many blocks and the memory requirement goes through the roof. The containing-block lists also get large and less useful. Too few blocks, and you get large blank spaces between units.

Incidentally, the blank-space effect can be substantially mitigated by combining buildings. This is often done for walls in RTS' but not bunkers. I've never seen production buildings built like this - maybe in Rollercoaster Tycoon? - it might be interesting to introduce vertical scaling to RTS'. (traditionally horizontal scaling is used, ie more factories not bigger ones)

Paradoxes of games

Ha. I thought I lost this. Thank gosh for autosave. It's unfinished though, maybe I'll come back to it.


In economics, people pay to make life less challenging.
In games, people pay to make life more challenging.

Life is 'fair' when success is rewarded, eg by the environment becoming more to your liking.

Hypothesis: games are fun when success is 'rewarded' by an increase in challenge, like rubber-banding in race games.

Man-law is very strict on boasting, dares, gambles etc. Public achievement is a key motivator.

Hypothesis: online gamers will fight to succeed with the greatest handicap.
Hypothesis: there are breadth-oriented (completist) gamers and depth-oriented (time attack) gamers


I've been thinking about an afterschool class/club I could run (with help) at Cantell. I helped on a maths masterclass, which was fairly simple but the contact with the kids was amazing. Recently I found HackityHack which is cool, but it's still beta imo. It also involves writing code, with all the attendant complexity.

The best find was Scratch. I almost couldn't stop playing with this yesterday. There's a Wiki textbook project. I found a Snake game, but sadly it seemed a bit too complex to work towards over a short class (say 6 lessons).

No healing

MMO without a healer class

Bullet-time, active block/dodge/parry mechanics

Full heal/mana restore outside combat

Chess RTS

King - flag
Queen - commander, kickass + makes production buildings
Bishop - flyer
Rook - force cannon, makes walls or medium range attacks
Knight - stationary artillery, constructs portal underneath and fires construction kit to endpoint
Pawn - 4-man bunker construction team / marines

Branch/morph units for diversity
3 playable 'races'/styles

Bishops - offensive vs rooks + knights
Rooks - defensive vs pawns + knights
Knight - offensive vs rooks + pawns
Pawn - short range, balanced, anti-bishop
- also farmers?

Direction of movement
independent of direction of offense
independent of direction of defense

Economic targeting by armor + value

Groups are armies, select unit classes by order prefix (eg G1, FLYER, ATTACK)

All special abilities on army page, specify class to reduce


Welcome to my new blog. A lot of it probably won't make sense. That's ok by me.

I edit posts a lot.