Core War is a game played in a memory arena of a virtual machine supporting a simple simulated assembly language. I first saw it described in a 1984 issue of Scientific American[1]. I had already been programming for 15 years by then and recognized Core War as being inspired by Darwin, an even earlier game developed at Bell Labs.
Darwin was created in 1961 and ran on an IBM 7090. In Darwin, programs competed for resources and the winner was the program that reproduced and took over all of the allocated space. It didn't last long because an unbeatable program was developed by Robert Morris Sr. See [2].
Software Practice and Experience was one of my favorite CS journals in the mid-70s and it had a frequent column call Computer Recreations written under the pseudonym Aleph-Null. I enjoyed implementing a number of the games described in that column while in grad school. Unfortunately, Software Practice and Experience is an expensive journal, but university students can likely find it like I did in the university libraries. The issues in the 1970s were easy to read and fun, having articles on subjects like pascal compilers, Algol 68, and concurrent programming. That is where I learned about Module[3,4] and later Oberon[5] in articles by N. Wirth.
[1] https://en.wikipedia.org/wiki/Core_War
[2] https://en.wikipedia.org/wiki/Darwin_(programming_game)
[3] https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.43800701...
[4] https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.43800701...
[5] https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.43801909...
I had a friend who loved games but claimed he didn't have the mind for coding and yet he was tricked into doing it via the game Human Resource Machine and some of his solutions were better than my own with years of experience!
Very interesting.
I have always felt that short mnemonics are a poor engineering choice for today's computer memory sizes.
Like, the first thing you have to do here is to learn and recall what the instructions do. If you replace the names with more spelled out versions, it makes it much easier to pick them up and then remember them and read code.
The fact that people often don't do that makes me suspicious.
I also think that the fact that these types of exploits are possible points to overall system design failures.
I'm not saying that it's not a fun game or a good way to learn. But I feel that there is too much general acceptance of structural problems in engineering. To the degree that most people don't even see those structural flaws.
Dude, this is awesome! I want to play it at work
This looks like a lot of fun. What ages do you think it's appropriate for?
What I find interesting is how we tend to view the world as a mirror of ourselves.
If I'm interested in buffer overflows and programming than my daughter must be highly interested in it too! How likely is that?
First she's a kid, second she's a girl. The odds are stacked but I see a good number of dads charge forward anyway.
To the Dads out there... when you did a project like this was at least some part of you aware that it was more of a vanity project?
Anyway. I'm interested in this stuff so I'm happy you released it.
Once a 64bits risc-v code path is stable, does a good enough job, is rid of its "buffer overflows"... how they are going to do planned obsolesence without C/c++ always changing syntaxes?? Poor souls...
Wait a second. .. .. A table top board game... which involves assembly coding?
Why I never think about this before? :D
PL/I did some things right: string/array bounds checking, stack that grows up rather than down.
Well I am going to introduce this at my work.
I'm surprised no one has mentioned that this is very similar to Core War.[0]
Not more rules than a typical german table game of the year has
My favorite HN comment of all time was by cperciva 16 years ago:
cperciva on July 18, 2007
"Did you win the Putnam?"
Yes, I did.
But my new favorite announcement is this post: I made this game to teach
my daughter how buffer
overflows work.
It just doesn’t get more HN than that. Mad props!"how we look when we play the game"
Are you the pupper or is your daughter the pupper?
Very impressive. Maybe most impressive is that you got your 12 year old daughter to play this!
When can I expect the CHERI version? :-D