Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
0x10c (Notch's new game) (0x10c.com)
160 points by vasco on Oct 13, 2012 | hide | past | favorite | 87 comments


I wrote a simple DCPU assembler and simulator to teach myself CoffeeScript: https://github.com/tjdetwiler/hcf

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


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.


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_...


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


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


He'll need one hell of a vacation to get over that.

Also how many weeks do we reckon till he dates MinecraftChick?


Notch has been releasing quite a few gameplay clips recently. The best place to catch them is http://reddit.com/r/0x10c -- he often frequents the forum.


There is a ton of spec info here:http://0x10cwiki.com/wiki/Main_Page

I especially like this note: Room for 65,536 external hardware devices.


The spec on the website was awfully outdated, and enthusiasts were already following (and participating) its evolution on reddit, so that's not much of a loss.


> 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 :)


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.


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.


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."


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


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.


I would call that the word size. The word would be 2 bytes of 8 bits each.


I wouldn't - x86 does not have 8bit words...


Oh, I see. Thanks!


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.


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.


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... :)


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...


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.


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.


Generally, if you have to automatically survive a broken connection, you may feel an intense sense of duplicating TCP. If you have to make decisions about bandwidth utilization it gets even more redundant.


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?


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.


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


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.


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!


Joking aside, it will be interesting to see how the defacto sharing of source code ends up. Will it be open source in nature with people freely sharing code or will people guard their source to gain a competitive advantage?


And we spend an incredible number of cycles on anti-virus. A 100kHz machine can't afford this. My "how well" comment was about whether the system will break down due to trust issues.


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?


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.


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.)


>(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.


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.


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


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

--

Indeed: https://twitter.com/notch/status/187474819980328962

And I won't stop viruses, the players will have to do that themselves.

--

And https://twitter.com/notch/status/187451555384004610 :

@Kyle_Baran: Is it possible for players to give malicious code that negatively affects their ship? This should be encouraged in multi.

@notch: yes. It's a fully functioning computer.


No more complicated than a car name - RX8, S40 etc.

Also if you spell out the numbers as words, Google will still find those cars.


I'm sure once it gets popular, people will come up with an abbreviation. I bet this one will be 0x, pronounced "Zero X".


It's being referred to as "Oh-X" here.


Trillek was confirmed though.


0x10c = Zero extancy = No survival


Even among 'normal people' (non-programmers, etc.) a lot of sharing is done via the Internet, where most people are already quite adept at sharing URLs via copy-paste.

Besides, giving the game a name that really is kinda technical (if only in a shallow sense) gives it a certain cachet it wouldn't otherwise have.


For those curious about the name:

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


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.


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.


>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?


Given what your typical MAD SCIENTIST can do with a handful of gears and a steam boiler, I usually tag it as a subgenre of fantasy, not of SF. Just like Tolkien's medievalism, it's set in a romanticized version of the world before the technological revolution in progress as its being written. With magic.

I predict that once the Information Revolution is over, and the next one has begun, there will be people writing fiction set in an exaggerated, magical caricature of the early 2000s.


I predict that the ability to exaggerate and caricature an era will be inversely proportional to that era's ability to store information and make it accessible to future eras.


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?


There are quasi-modern-day sci-fi stories like the TV show Eureka or Fringe.

Going backwards just a little in time... Dieselpunk is often set between the two world wars. I loved the style of The Rocketeer, Skycaptain and The World of Tomorrow along with other post-aviation, pre WWII sci-fi/fantasies (even if the non-stylistic aspects of Skycaptain were deeply disappointing).


Cyberpunk would be an example of that.


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



Same for the "Clockpunk" subgenre - It's Sci-Fi in the time or form of Leonardo Da'Vinci.

There's definetly a point, though - Have you read Sci-Fi set in the time of the Pyramids? In the time of the Roman Empire? Would you? What would change?

It's worth looking up "Rome Sweet Rome", a short story that got some acclaim a few months back when it was written on Reddit and then optioned by Warner Bros. It's modern military sci-fi, essentially, but the setting and the detail that's put into "What would happen if a modern platoon were set down in the time of the roman empire?" is pretty good.


John Barnes wrote a whole series of this kind of alt-history (e.g. "Caesar's Bicycle", "Washington's Dirigible", etc.). Which reminds me that there is, of course, a entire genre called "alt-history", starting presumably with Twain's "A Connecticut Yankee in King Arthur's Court", and notably including L. Sprague deCamp's "Lest Darkness Fall" (1941, and online in its entirety at scribd by arrangement with the author), and branching out a lot over the past decade or so.


I'd totally read Hellenistic steampunk. That's the culture that invented steam power (and fancy clockwork, see the Antikythera mechanism); it's pretty disappointing there's all this Victorian steampunk instead.

In the meantime: http://www.ams.org/notices/199805/review-graffi.pdf


Atomic Robo has some of these themes, and is generally awesome.


Star Wars happened "a long time ago."


Terry Pratchett (wildly successful author of the Discworld series) once quipped that fantasy is just scifi without the nuts and bolts. I take that as indicating that fantansy and scifi are related in that they both create narratives around fictional mechanics. The tropes differ, but they are exploring the similar space of what might happen in a world with mechanics (e.g. magic, 'quantum') allowing completely different set of experiences than the real world.


Orson Scott Card submitted a short story based in a forest to a scifi magazine and was told 'scifi has rivets in it'.


Could you please post a link of where you heard of this story? I would love to learn what became of it.


Just google his name and "rivets". Looks like it's actually a joking remark Card makes himself to express what it's like to dabble in both sci-fi and fantasy (Card is successful with both).

    Card maintains that switching genres wasn't a difficult 
    thing for him. He believes that, ultimately, the 
    difference between the two genres is largely on the 
    surface. "Half joking, I was writing to Ben (Bova) about  
    this very subject, and I said, look, fantasy has trees, 
    and science fiction has rivets. That's it, that's all  
    the difference there is, the difference of feel,
    perception.


There are quite a few stories about people being sent back into the past.

Just off the top of my head I can think of: Conrad Stalingrad, Jainsiaries, and 1635 (Eric Flint).

And there are ofcourse the alternate history stories like the Drakar chronicles (wherein there was a African slave-state empire rather than traditional colonialism).


Neal Stephenson's Cryptonomicon, Baroque Cycle, and Anathem?

Michener's novels? (How does "past sci-fi" differ from "historical fiction")

Alternate history novels like Fatherland?


I believe Stephenson himself commented that the Enoch Root's long life and the ability to bring dead people back to life, both presumably due to alchemy, makes Cryptonomicon and the Baroque Cycle 'past sci-fi'. Otherwise, yes, it's almost the same as historical fiction. A perhaps better example of the blurriness between the two is "Gravity's Rainbow."

Anathem takes place on another planet, and in our future (in that characters in the book have our present as their past).


Like... a long time ago in a galaxy far far away?


Back to the future


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!


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


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.


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.


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.


Even John Carmack writes C++ now!


It would have disadvantages from the point of view of rapid development though, especially considering his team are going to be much more experienced in Java now.

Would be interesting to know if he is using Scala for any parts of it though.


Except he is already a beast at java.


I'm not plugged into the gamedev world, but how about Lua + C? I've been impressed by LuaJIT.

Of course if you like Java, use Java.


It makes sense, but it means when they went to make Minecraft Pocket for iOS they had to re-write. Must have been a tough decision to force themselves into another re-write when they inevitably want to bring 0x10c to iOS.


Well, Android runs a javaesque language, and still they had to rewrite... because Mobile isn't Desktop. So not matter what language they choose... they'll have to rewrite for mobile.


That's not right at all. If you write a game in C++/OpenGL you can share >95% code across Win7, OSX, Linux, Android, and iOS. Even if you use DirectX it's not hard to write an OpenGL wrapper.

More impressively if you use C# you can release cross platform using mono.


The rewrite maybe isn't such a big deal. Just find a good freelance iOS developer and throw some money and the Java codebase at them.

With the depth of this game and the FPS type elements though I'm skeptical whether it will make a good iPhone game or not though.


https://code.google.com/p/j2objc/ or something similar could help them avoid a (manual) rewrite.


His reference DCPU implementation was a Java Applet, so most likely.


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?


Pure genius!




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

Search: