
Dcpu-lisp: a static Lisp that compiles to DCPU-16 - jlongster
https://github.com/jlongster/dcpu-lisp
======
praptak
It is a little brother of GOAL/GOOL. Both are LISPs used in making real PS2
games. More on GOAL:
<http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp> and GOOL:
[http://all-things-andy-gavin.com/2011/03/12/making-crash-ban...](http://all-
things-andy-gavin.com/2011/03/12/making-crash-bandicoot-gool-part-9/)

~~~
jlongster
I had forgotten about those! Thanks for the links. I'll research how they do
things.

------
grannyg00se
I've heard people deriding notch's coding style, skill, or flair, but the
power of fame is really amazing and he has used it very well here. He has put
the word out and there is significant adoption before the game is even close
to being finished (I'm guessing). And similar to Minecraft, he has found a way
to brilliantly leverage other people's creativity and use that to amplify the
popularity of the system.

~~~
hej
That’s what I have been thinking about as well. At first I thought that 0x10c
will be a game for an extremely small niche, enough to not really be a failure
(at least if you don’t compare it to Minecraft) but not enough to be a true
success.

That is still very possible (I think it’s also possible that Notch doesn’t
really have a well-thought out plan, that all this wasn’t planned and that he
just did what he can do best, playing around with a game concept and having
fun, all alone. I’m not arguing that’s a bad thing.) but the game has certain
properties that could make it a success, even if it seems incredibly nerdy.

Only a handful people had to re-build the Enterprise in Minecraft and make a
video of it. Only a handful people had to build ALUs and CPUs in Minecraft and
make a video of them. Only a handful people had to design practical redstone
and rail contraptions and make video tutorials. Only a handful people had to
build tools, make texture packs and code mods. Only a handful people had to
make adventure maps.

0x10c could be similar: Only a handful of people have to write software (and
judging from the initial response, that handful will be quite the handful).
And someone writes really cool software and shows it off in an YouTube video
others who have no intention of ever really understanding the DCPU-16
nevertheless have a reason to check out the game and run that software.

There is obviously more to a game than that, but I do think that 0x10c has at
least the potential to be quite popular even for those who don’t know how to
write assembler.

~~~
skore
Agreed - the big difference to the nerdier bits of minecraft here is that it
seems, in comparison, absolutely trivial to copy complex concepts in 0x10c.

In minecraft, you might be able to load the map for yourself or, if you're
already very knowledgeable, copy parts of it into your own map. But building
your own x-bit-CPU in minecraft is a herculean task where even the block-by-
block copying takes a lot of skill, while in 0x10c, you basically only need to
know Ctrl+C, Ctrl+V.

I guess the biggest change will be when Notch introduces interface to those
DCPU-16's. Because that's when you have to start adapting code _to your own
situation in the galaxy_. Still, however, that will provide for a reasonably
soft learning curve.

What will drive adoption and innovation is the competition of "I can do X" and
"I want to do X" in the marketplace of ideas. It's very solid in minecraft,
but if Notch sets the right incentives in 0x10c, I could see this getting a
surprisingly broad userbase as well.

------
radarsat1
Alright this is getting ridiculous. First person to implement a real DCPU-16
on an FPGA wins 50 internet points.

~~~
lawn
I could even say that writing vhdl code for it would be very straightforward,
maybe even more so than some of the stuff already made.

~~~
Natsu
There's already a pipelined DCPU-16 Verilog implementation:

<http://sybreon.github.com/dcpu16/>

~~~
lawn
Awesome.

------
angerman
So this is a Lisp subset compiler to DCPU-16 written in a lisp that compiles
to javascript. Is javascript really becoming the IL now?

~~~
jlongster
It is a very attractive intermediate layer because we can run everything in
the browser.

I read "IL" as intermediate language, and I wouldn't say it's the IL here, the
compiler just happened to be running as javascript.

------
fennecfoxen
"It is a very restricted subset of Lisp. There is no GC, and thus no data
structures or run-time closures."

Ah, disappointment. :)

~~~
janecoder
But it does have Macros. Being able to write a macro that changes the AST is
pretty awesome. Definitely a LISP.

------
pjmlp
Cool!

