
0x10c (Notch's new game) - vasco
http://0x10c.com/story/
======
tjdetwiler
I wrote a simple DCPU assembler and simulator to teach myself CoffeeScript:
<https://github.com/tjdetwiler/hcf>

Demo here: <http://tjdetwiler.github.com/hcf/>

------
archgoon
The new website now contains less content; noticeably the DCPU-16 spec is
missing. Looks like he's in the middle of retooling. There is a video demo
though.

~~~
kevinnk
I think Notch has been going through a divorce so understandably development
has been a little slow.

[http://www.reddit.com/r/0x10c/comments/yb94y/the_reason_for_...](http://www.reddit.com/r/0x10c/comments/yb94y/the_reason_for_slow/)

~~~
cheez
Man, isn't that just how it goes...

~~~
tomrod
Wow. I thought he got married less than a year ago? That's roughtimes :(

------
mendocino
> Unfortunately, it used big endian, whereas the DCPU-16 specifications called
> for little endian. This led to a severe bug in the included drivers, causing
> a requested sleep of 0x0000 0000 0000 0001 years to last for 0x0001 0000
> 0000 0000 years.

Mh, looks like he is off by a factor of 256 :)

~~~
LeafStorm
The DCPU isn't byte-addressable - all memory addresses refer to 16-bit words.
Endianness mixups would result in swapping 16-bit words, not 8-bit bytes.

~~~
HazzyPls
I was under the impression that a byte is defined as the smallest unit of
addressable memory; in the case of DCPU that would be a 16-bit byte.

~~~
edanm
That is an old meaning, which is slowly falling out of favor - it's very
common to mean "8 bits" when you say byte.

Per Wikipedia - "The size of the byte has historically been hardware dependent
and no definitive standards existed that mandated the size. The de facto
standard of eight bits is a convenient power of two permitting the values 0
through 255 for one byte. With ISO/IEC 80000-13, this common meaning was
codified in a formal standard. Many types of applications use variables
representable in eight or fewer bits, and processor designers optimize for
this common usage. The popularity of major commercial computing architectures
have aided in the ubiquitous acceptance of the 8-bit size.[3]

The term octet was defined to explicitly denote a sequence of 8 bits because
of the ambiguity associated at the time with the term byte."

~~~
cygx
If byte and octet become synonymous, what do we call the smallest addressable
unit of memory?

~~~
edanm
Probably, the places that actually care about the difference will continue to
use "byte", even though no one else will understand.

When I worked in embedded, whenever people were working on non-8-bit
processors, they used the words "byte", "word", and "double word" in this way.

------
jiggy2011
The video reminds me of System shock 2 somehow. I guess an eerie empty
spaceship with what look now like quite dated graphics.

Looks like there is some sort of FPS aspect to this, hopefully you can catch
ships in tractor beams and then board them, merging both ships together into
some kind of CTF map. That could be fun.

The Singleplayer/Multiplayer/Hyperplayer looks interesting too, it could be a
totally different game playing a few people on a LAN vs the MMO version.

------
zalzane
It's going to be interesting seeing how this plays out. Much of Minecraft's
success can be attributed to serendipity, so it'll be interesting to see how
this new game measures up, especially considering the scope of the project.

------
Aardwolf
From the website:

"Of course, I’m ending up reimplementing a lot of TCP, with packet resending
and ordering for most things, so I’m not totally sure all this work is
actually worth it, heh."

Then, maybe, don't, and just use it... :)

~~~
jiggy2011
The problem will be latency, maybe there are some situations when you need to
make sure you get all the packets in order but others where you don't.

For example , if you send an in-game message then this needs to be in the
correct order. On the other hand if you have a spaceship turning quickly then
as it's angle and velocity changes old information becomes useless so you will
just introduce lag if you hang around waiting for old packets before doing
anything with the new ones.

[http://gafferongames.com/networking-for-game-
programmers/udp...](http://gafferongames.com/networking-for-game-
programmers/udp-vs-tcp/)

~~~
davidp
That's when you turn to using multiple data streams/connections/endpoints.
Funnelling multiple data streams with different needs over a single mechanism
(TCP, or UDP, or smoke signals) only yields misery, sadness, and death.

~~~
jiggy2011
Using UDP and TCP at the same time can cause increased packet loss in UDP
according to a paper linked from the article above.

<http://www.isoc.org/INET97/proceedings/F3/F3_1.HTM>

I haven't read the whole thing, but the TL;DR appears to be:

If the connection is good then TCP will keep increasing it's Window size until
packet loss occurs. This will cause the sender to keep sending more packets.
The result of this is that the TCP connection will start to consume most of
the available bandwidth effectively drowning out more of the UDP packets (e.g
if a buffer in a router starts to become full). TCP is designed to play nice
with other TCP connections.

This is probably precisely what you don't want in a game where the UDP packets
contain the most important information.

------
AshleysBrain
Does anyone think this name might be a bit of a problem? Being a programmer
obviously I get it, but I can imagine it being a problem for average-joe:
"Hey, I saw this really cool game the other day, it was called, erm... zero
one, c, x? One zero? Uh, something like that. Anyway..." - will the person
they were talking to be able to find it?

~~~
ANTSANTS
The game is about programming a spaceship in a fictional CPU's assembly
language. I don't think they have to worry about what non-programmers think of
the name.

~~~
jiggy2011
AFAIK programming is only one aspect of the game, hopefully it will have a
more mainstream audience too.

~~~
thedufer
He's talked about systems for sharing code so that non-programmers can find
code that does what they want without actually needing to dive in. Not sure
how well this will work out.

~~~
eupharis
There have been a few companies that have tried this with computers in the
past:

<http://www.apple.com/>

<http://www.microsoft.com/>

I think it just may work out!

~~~
eupharis
Reply to jiggy:

A great point. I can't wait for the first trojan that takes control of your
ship and transfers control to a different player.

Will people be able to share binaries or just source?

~~~
jiggy2011
IIRC the game emulates a CPU (either 8 or 16 bit can't remember), which means
that at a basic level the binaries and source will be the same thing since the
only language supplied with the game will be a form of assembler.

Of course we can expect people will create compilers (I believe some already
have) to compile other languages down to the assembly used in the game.

The viruses/trojans will be an interesting thing, I believe notch said that it
will be up to players to protect themselves from these.

There's a risk here though for essentially turing complete griefing, so
hopefully there will be something to help protect newbies from accidentally
running some horrible code.

~~~
eupharis
Well, I'm sure Norton will put out something. Of course, when running it, your
ship's hyperdrive will become 50% slower.

(Sidenote: Ah ok. So that's how to reply on HN once a comment thread has
reached a certain depth: click link then reply.)

~~~
lmm
>(Sidenote: Ah ok. So that's how to reply on HN once a comment thread has
reached a certain depth: click link then reply.)

I don't think it's about depth; you can't reply to very new comments
(presumably to give people a chance to delete mistakes?) but if you refresh
the page a minute or two later the reply link will be there as normal.

~~~
icebraining
The reply link takes more time to appear as the thread becomes deeper. The
purpose is to create a 'cool off' period to avoid very heated discussions.

~~~
eupharis
Ah, good to know. Still, seems silly when you can just click link then type in
a reply.

------
reustle
For those curious about the name:

0x10c = zero x ten c = zero extancy = no survival

~~~
dazmax
Is that really where the name comes from? I thought Notch said it was "10 to
the c", referring to the "0x0001 0000 0000 0000 years" from the story.

------
listic
I wonder why there aren't more science fiction stories about the past. For
some reason, it's always assumed that science fiction is about the future. I
say it's about the new and exciting science, but some of this new and exciting
science (physics breakthrough, artificial intelligence, etc.) just might have
happened today or in the recent past, and we might not be able to notice it
yet (or it have backfired back then and will only come to fruition later).
Given that recent past is the time all of us have lived in, and some have
nostalgic feelings for, it looks like such an oversight to me. In sci-fi
games, I can only see 0x10 and Darwinia do this to a degree.

~~~
idle_processor
>For some reason, it's always assumed that science fiction is about the
future.

Isn't steampunk essentially science fiction that's set in the past, near the
industrial revolution?

~~~
listic
I should have said "recent past". I am not familiar with steampunk. I read
Wikipedia article, but that's it.

But what about the present day? The technology that we might think of today as
thing of the future might just be developed in some obscure lab today, or 5-15
years ago. Wouldn't it be fun to speculate in that direction?

~~~
wlievens
Cyberpunk would be an example of that.

~~~
lutze
Heh. Cyberpunk has always been about the future... It's just that we caught
up.

------
CodeCube
I am so super excited about this game. Really interested to see what comes of
the whole 'shared multiverse' ideas that he was talking about ... especially
when joined with the programmable computers, I can't wait!

------
sunwooz
Does anyone know if he's still using Java for this game?

~~~
TillE
Notch does everything in Java. Realistically, for developing a heavily
simulated real-time 3D game like this or Minecraft, how many options does he
have? Maybe C++, maybe C#, but that's about it.

Everything else is either too slow or doesn't have the up-to-date gamedev
ecosystem.

~~~
SeoxyS
Pure C is a fine choice, too. As is Objective-C. I'm pretty sure Objective-C
will outperform Java and C# both. And there's no question that the best choice
would be C, for its efficiency and its versatility.

~~~
rayiner
If you use Objective-C just like C, then maybe. Otherwise, no.

And you'd have to be insane to write a game these days in C. It's just not a
productive enough language for that. Whatever little speed you give up for
Java pays off many times over in speed of development, debuggability, etc.

~~~
jiggy2011
Even John Carmack writes C++ now!

------
89a
Lets see if he actually manages to finish this one.

Also should he really be using TF2 models when he has his own team now?

------
danieldrehmer
Pure genius!

