Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ace of Aces: Why you should do maths as a game designer (paxsims.wordpress.com)
223 points by homarp on March 5, 2024 | hide | past | favorite | 42 comments


Books like that are cool and were a big influence on my desire to become a programmer, but I didn’t know it at the time.

One of the bigger revelations I had first learning to program was based around a confusing thing I’d wondered about the very first time I saw a 3D video game, Super Mario 64. Up to that point my young brain could have imagined how a 2D game could be programmed, naively thinking they had just coded up every possible game state. But the sheer number of permutations in the 3D, open world plane immediately made me realize that was impossible to do because of the sheer number of permutations - so I concluded something else must have been afoot, but it was all mystical to me.

Anyway I was struggling bad with programming concepts very early on and tried to make an interactive multiplayer text adventure game in the same exact way as this book, struggled mightily, until one day I realized some of it could be done algorithmically rather than encoding every possible permutation into the game - and it clicked. A very vivid and surreal moment for me that I’ll never forget. As we age and get more senior, we forget little sparks like that sometimes I think. Thanks for posting this


>my young brain could have imagined how a 2D game could be programmed, naively thinking they had just coded up every possible game state. But the sheer number of permutations in the 3D, open world plane immediately made me realize that was impossible to do because of the sheer number of permutations - so I concluded something else must have been afoot, but it was all mystical to me.

This is so nostalgically intimately familiar it is nearly uncanny.


I to remember having the exact same thought with the original Pokemon games. I could never wrap my head around how the battles could handle randomness.


In a similar vein, I remember that when I was learning to program, I would look at applications like Word and get overwhelmed with the idea that you would need to implement everything from scratch.


If you're interested in Ace of Aces, a new deluxe version of the game is on Kickstarter right now, with 7 days left for the campaign[0] (which is funded and well into its stretch-goals).

[0] https://www.kickstarter.com/projects/mrbgames/ace-of-aces-po...


The Kickstarter says you can't pit two planes of the same side against each other... Is there something in the maths that stops that (I can't see why there would be, from the main post) or is it purely because the book doesn't have the right art in it?


it's because of the maths: I do feel like the article overcomplicated things a bit: the basic idea is, each individual book is basically a choose-your-own-adventure of flying around a static opposing aircraft. If you pick page numbers yourself you can happily just fly around your 'opponent', who never moves on their own. But, the page numbers for opposing books correspond to the inverse of the move in the other one: so when you take the page number from your opponent, you are doing the inverse of their move on your book (which may not be an option listed on your page). This basically means there are two opposite maps: if you tried to play with two books from the same side it would seem like you are just wrestling over the controls of one plane.


That's right, but you can pit a rotary axis against a powerhouse allies. You can also have group battles.


That's great. Back in 2014 they kickstarted a Handy Rotary with a different production crew, but the screwed up the page order at the last minute so that the page numbers are on the inside edges of the page. I'm happy to see these started up again.


I grabbed the same version. I didn’t notice the page number thing, I’ll check it out next time I am in storage.


It's always interesting to me how people find bad math bugs in the RNG in old games that have been deconstructed.

You think back to when the game was new, and you remember talking to people who seemed to be superstitious about the game behavior. And it turns out they were right. The random numbers were NOT fair, and sometimes punitively so.

I think I heard there was a bug in UO where users with certain ranges of low user ID numbers always lost certain rolls because of a bug that unfairly sorted them in the case of a tie.


Maybe you are recalling the "Wi Flag" bug in Asheron's Call?

https://asheron.fandom.com/wiki/Wi_Flag

That was caused by using a too small range for the rng call so the players with the lowest IDs present always would be targeted by mobs


Interesting write up but maybe Iissed where the name comes from. Is "Wi" the name of a monster or a location in the game or something?


It's named after one the the affected players, "Wi", who was very vocal about the issue. See these comments from a discussion here last year:

* https://news.ycombinator.com/item?id=34742915

* https://news.ycombinator.com/item?id=34744394


>It's always interesting to me how people find bad math bugs in the RNG in old games that have been deconstructed.

Yes, but so what? The point of videogames is to be fun, not have a true random RNG. Often such small bugs in the code were part of the gameplay and finding and exploiting them was part of the fun/competition.

And since games are usually rushed out the door to meet the November pre-Chrismas sale bonanza, everything that's good enough gets shipped. Making your RNG even better won't increase sales.


To your point, DOOM just used an array of "random" numbers, going to the next one each time a number was needed: https://www.reddit.com/r/ProgrammerHumor/comments/3bhvuj/how...

It wasn't even a complete distribution of the numbers 0-255, as some numbers occur more than once (and some never occur).


Fun! I bought all the versions of this game off of EBay, and showed my kids how to play. My youngest struggled with the abstractions in the game, so I 3D printed a hex board and the airplanes. It took way longer than I thought to figure out all the moves, but I got it down with little template cards he could reference. The fun part is now we can play 2 planes vs. 2 planes, or 3 player!


I’d love to try this - you should write up the project!


The game appears to be getting a reprint: https://www.kickstarter.com/projects/mrbgames/ace-of-aces-po...


Such a cool game.

As an experiment, I tried to create a simple "Rock, Paper, Scissors" version but I was too stupid to figure out how. (How hard could it possibly be, I thought.)

Perhaps when I have time to study the article/patent I can finally figure it out.


The algebra is systematically incorrect throughout the article. In airplane space:

    Aga = Gag   (wrong!)
should be:

   Aga = reciprocal of Gag
since the A and G planes always have inverse perspective of each other. (Imagine both of them starting with a world at A=G=I, where I is facile to face with the opposing plane; but any pair of inverse perspectives works.):

  I = identity 

  x' x = 1 (x' is reciprocal  (inverse)of x)

  A' = G  <=>   AG = A A' = I

  a' = g

  A_2 = Aga = (Gag)' = (G_2)' 

     <=>  (A_2)(G_2) = (Aga)(gaG) = A g a  a' g' A' =  I

I'm page number space, the article's algebra is correct (but that's algebra, not a matrix transformation), because the the opposing books are reciprocals of each other in airplane space. This also explains why an A book can't fight an A book.

Since A=G and Aga=Gag in page number space, this also shows that ga=ag in page number space. ga (and ag, and a, an g) can be seen as transformations (turn n pages, where n can be positive or negative). And to make this a proper algebra (group action), we can say that A and G are also transformations, applied to an arbitrary starting point in the books.

In the end, the page turns are transformation matrixes (because all algebraic groups have a matrix represention), but it's not the 3D airplane transformation matrix.

Homework: create a matrix-multiplication representation for the algebra of adding integers.


Thank you. I've always wondered how this worked. I have Star Wars TIE Fighter vs X-Wing and Battletech versions of this same thing. A friend and I played the hell out of these.


Ha. I thought this was about the DOS game:

https://www.youtube.com/watch?v=CCrcn2SqenU


Immediately thought of the C64 version, which I had on some compilation pack of cassette games back in the day:

https://www.youtube.com/watch?v=dtCDh-S0tEQ


Man, that brings back memories… CGA graphics, PC speaker. Hard to believe that was engaging to me at the time.


I remember playing something like this in the 80s by Joe Dever of Lone Wolf fame... Scarlet Sorcerer and Emerald Emperor I think?


There were a lot of two player "picture book" (as opposed to the usual solo text-based) gamebooks published in the 1980s, ultimately inspired by Ace of Aces (which from 1980 was the first as far as I know). There were the "Lost Worlds" swordfighting ones, there were dragon-rider ones based on the "Dragonriders of Pern" series, ones where you were Old West gunfighters, etc.


The Lost Worlds series was continued in Japan as Queen's Blade as late as the previous decade. Cheesecake art, but the game mechanics are the same and the books are compatible.

https://en.wikipedia.org/wiki/Queen's_Blade


It made me think of Queen's Blade, better known because of the anime adaptations, but originally a series of "visual combat books".


He did two pairs of books, White Warlord/Black Baron and Scarlet Sorcerer/Emerald Enchanter. All were printed 1986.

They were interesting because they contained both a single-player game (one in each book) and two-player game (which required both books).


You’ll notice it’s not entirely symmetric, because the torque of a rotary engine makes it much easier to turn and spin with the propeller, not against it.

You can also tune “allowed” moves to match the capability of a particular aircraft (and that’s why there is a whole series of these books that you can use interchangeably in any Allied-German pair: ...but some planes don’t have access to all the manoeuvres).

I played this and remember the Allies Sopwith Camel had the right-hand J turn the other planes didn't because of the rotary torque.


In school, I liked maths for its own sake. It was only when I became a programmer that I started to see practical applications. Needless to say, my appreciation only grew from there.


The main topic of the article is interesting, but the Not Tetris and Navy Fire Control Computer YT video asides/references were also new to me and fascinating.


*Add two numbers Subtract two numbers

…and from there all mathematics is possible…*

And the same is true using only: NOT (a AND b)

Which of course, is enough for all mathematics, or to build any computer you’ve ever used.

It may work more slowly, especially if it had achieved quantum supremacy, but still that one line of code essentially can do it all.

I don’t mean to repeat the obvious here, but it’s always been fascinating to me and I’m not sure if it’s widely taught outside of first EE classes.*


Nova also did a similar two-book game that was set in the old west. One book is the lawman, one book is the villain. Exploring the old west town, shootouts, etc.


Good write-up of a beautiful idea, though some of the prose is confusing.

It would be great to rewrite as a tutorial for making your own pair of game books on paper or in an IDE.

This is very approachable for "unplugged coding".


In the past I truly wanted to be a good programmer, maybe even make games. Unfortunately my serious dyscalculia made this impossible.

That and some logic processing issues.


I don't find this particular example anywhere near compelling enough to warrant the headline as a general recommendation.


This is a great explanation of how a computation can be embodied in a physical object.


This ia really neat, I always wondered how those books were designed.


Good heavens. Played that game when it was new. It was a clever, fun game.


> Good heavens. Played that game when it was new.

Possibly against me.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: