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.
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.
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.
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.
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."
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.
"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."
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.
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.
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.
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.
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.
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.
>(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.
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.
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.
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).
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.
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.
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).
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).
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!
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.
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.
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.
Demo here: http://tjdetwiler.github.com/hcf/