malphigian

0x10c -- Next little number from Mojang

Recommended Posts

You misunderstood. Just because the Java Runtime doesn't have excellent support for OpenGL/OpenAL/SDL/DirectX/etc. doesn't mean that the JRE addons don't provide that.

What it does mean is that you have to provide platform specific components with your Java application. So, it's no longer "compile once, run everywhere"

FYI, minecraft uses JInput which is a JRE extension for DirectInput. It uses LWJGL for OpenGL and OpenAL support.

"it requires a non-portable JNI extension" doesn't prevent something from being either cross-platform or compile-once-run-anywhere, as long as all of the implementations are binary-compatible, and technologies like Java Web Start let you push the libraries you depend upon just-in-time.

XNA is no more or less cross-platform than Java 3D or JOGL -- its reference implementation targets DirectX on Windows, Xbox 360, and Windows Phone, but there's nothing to stop people from independently reimplementing it.

Share this post


Link to post
Share on other sites
I think it would have performed much better if it was written in FrostByte

Totally :tup:

BTW I'm a bit disappointed that nobody noticed from the code examples that it wasn't necessarily a stack-based language

Share this post


Link to post
Share on other sites

That's nonsense. Java isn't slow

It isn't complete nonsense. I bet server applications written in Java could outperform server applications written in C++ and be safer (given the same amount of man-hours to implement), but when it comes to certain classes of applications like games, Java really does lag a bit. One of the reasons is that every object is managed by the garbage collector (although recently there's been some progress in having non-escaping objects allocated on stack) and the more memory the more it has to work. So the way around this is to either write low-level code which uses primitives instead of objects (and there are limits of how far you can take that) or use object pools of mutable objects or something like that. I personally think this is not a good way to write code.

.NET has value classes which solve this problem mostly (or completely?), but otherwise it is slower than the JVM.

This is actually part of the reason I started working on my own language.

PS. Another problem is the JNI overhead with OpenGL and such. I once tried to use C library sin (or was it sqrt) function from Java and the overhead of that call completely ate up the savings from using the faster C version of the function. (of course I might be dumb and maybe the Java function was actually almost as fast as the C function).

Share this post


Link to post
Share on other sites

I would like to point out:

"The cost of the game is still undecided, but it's likely there will be a monthly fee for joining the Multiverse as we are going to emulate all computers and physics even when players aren't logged in. Single player won't have any recurring fees."

So either he's going for single-server or something similarly cool for this, or he has completely lost his mind.

E: Also a friend of mine said of the backstory;

"Computer error in your favor, go directly to the end of the universe, do not pass Go."

Share this post


Link to post
Share on other sites
Totally :tup:

BTW I'm a bit disappointed that nobody noticed from the code examples that it wasn't necessarily a stack-based language

before Notch decided to go with his own architecture, DCPU-16, it was just a 6502 emulator; it's not surprising that DCPU is still register-based.

also, if 0x10c ends up having Core War elements, where I can hack into your spaceship and inject code to reprogram it and take control, I take back everything I said about this game being unplayable.

Share this post


Link to post
Share on other sites
before Notch decided to go with his own architecture, DCPU-16, it was just a 6502 emulator; it's not surprising that DCPU is still register-based.

oh, I was talking about Frostbyte

Share this post


Link to post
Share on other sites

ah! I missed the joke, then. :P

also this april fool's announcement is wayyyyyyyy too close to realistic for comfort. I'm sure by next month someone will have written an earnest implementation of FrostByte.

Share this post


Link to post
Share on other sites

Really? it's quite obvious that it's a joke. Only the criminal insane would propose a serious language with localized keywords.

Share this post


Link to post
Share on other sites

i think the idea behind the whole thing is fantastic. it seems almost little big planet-ish in that people can share code. it'll be fascinating when some of the goofballs who made actual working computers in minecraft get to tinkering with the ship's computer.

whether the project will work out, or whether it will ever be finished, it's one of the more interesting game ideas i've heard in a while.

Share this post


Link to post
Share on other sites

Reading this thread has helped me realise what exactly it is about Minecraft that I love so much: It wasn't really until I got deeper into redstone circuitry that I found an interest. There are two basic things that make Minecraft great for me.

1. Redstone provides an interesting and fun challenge, basically allowing you to pretend to be an electrical engineer.

2. The constraints Minecraft places on you are half of what makes it challenging, much as electrical engineers work within the constraints of reality (fitting CPUs into progressively smaller chips, for instance) the redstone engineer has to work within the limits of the world's size, the specific workings of redstone and blocks, the game's ability to render your creation and your own imagination.

The craziest example I can give you is the roughly 3 months a friend and I spent building something we dubbed "The Stacker". It started as a simple idea: Can you make film in Minecraft? Much as film is run through a projector we wanted to run blocks through a viewing device of some sort. So we created the first prototype, then we made it bigger, and then bigger again and we realised that it totally worked.

Over the next months we streamlined, optimized and improved both the performance and usability of The Stacker until we were happy with our design. We then went insane. Instead of resting on our laurels we began turning the entire area around the stacker into a 'show'. We created 'landing lights' which flashed in order drawing attention to the stacker, built a second stacker and filled to the brim the entire massive mountain range behind the stacker with TNT. (We later automated the entire 'show'.) I believe the final TNT count was about 30k blocks. Keep in mind we placed every single block manually. We did use creative mode. We'd still be doing it if we didn't.

A few of you saw the stacker in action briefly on the Idle Thumbs server, but for everyone else it works something like this.

[walloftext]

You create frames with gravity affected blocks (sand and gravel) which can contain whatever you want. Each frame is 7x7 (there's no reason you can't make this larger) and has a 1 block high row above it called the buffer frame. The first frame sits upon a layer of extended pistons over a deep pit (we'll get to that later) and lined up with the buffer frame at the top of the first frame is a set of retracted pistons. Above that buffer frame sits another frame, another buffer, another frame, another buffer... until you hit the max world height.

The actual action is very simple. All you need to do is wire the two sets of pistons to work in the opposite way and time them perfectly (easy with repeaters) so that you punch the buffer frame out (away the viewer, behind the frame) and then drop the first frame into the pit in the correct timing. Then all you need to is reset the pistons and the whole film drops down into position to go again, displaying a new frame. Then it's just a rinse and repeat process.

We realised that we could automate the stacker relatively easily. All we had to do was create a 'mini-stacker' underground near the stacker which would drop gravel onto a block between two pieces of redstone allowing signal to pass between them for a set period of time before being dropped into a pit. Adjusting the timing of this mini-stacker and hooking it up to the stacker allowed us to automate the stacker so that pulling one lever did the entire process.

As for where all the blocks go, that's my favourite part. At the stacker aperture there is an extra set of pistons which make up part of the bottom of the view port, while the main frame is dropped straight into the front half of the pit the buffer frame is dropped onto a set of torches behind the frame and those mini blocks are dropped into the back half of the pit. The pit below the stacker is two blocks deep, nine blocks wide and many blocks high, at the bottom is netherrack fire (infinite). Roughly halfway down the pit, on the wall which the frame blocks will touch as they fall is a row of torches and a piston operated ledge which can jut out one block or be flush with the wall. As the frame blocks fall they land on this ledge and are broken into mini-blocks by the torches, they slowly build up here until, at the end of the stacker's operation, the ledge is retracted and all the mini-blocks fall into the fire. The buffer frame mini-blocks simply fall straight into the fire.

[/walloftext]

As for what you put in the stacker, letters and numbers work quite well. We did build a much larger one later on which contained entire words.

I still have the final save. I wonder if it would work in new versions of Minecraft considering it was finalised in October 2011.

Share this post


Link to post
Share on other sites

I'd just like to note that despite my vitriol/animosity towards Notch as a developer, I'm all over this like [thing] on [thing previous thing contains]. If he can pull this off...

Share this post


Link to post
Share on other sites

Notch codes Stupidname on Twitch for several hours!

http://www.twitch.tv/notch/b/314246677

Interesting points

~1:07:40 - 1:10:20 Collision testing

~1:26:40 - 1:30:00 PC variables testing

I'll skim through more of it later.

Early screenshot things.

http://0x10c.com/screenshots/001.png

http://0x10c.com/screenshots/002.png

http://0x10c.com/screenshots/003.png

http://0x10c.com/screenshots/004.png

Edited by Orvidos

Share this post


Link to post
Share on other sites

http://0x10c.com/screenshots/005.png

Interesting. Also damn that's a performance hit, but I guess that's to be expected from sixteen dynamic lights.

Fun Twitter snippit:

The good news: the level editing is surprisingly fun, and it looks with with blocky textures. The bad news: IT'S MINECRAFT AGAIN NOOOOOOOO

Share this post


Link to post
Share on other sites

I saw on reddit that Notch is abandoning the "hard sci-fi" theme. What does he mean by that? Here's what he's stated previously:

I mean I will try to make sure that the science in the game has some kind of plausible

theoretical basis in reality, and that I want to be corrected if I make any mistakes.

If I have to go against any current science, I want it to be an informed decision.

For example, because time needs to run at the same speed for all players in the game,

I am probably going to have to add some way to travel faster than the speed of light.

So basically, as few hand-wavey things as possible, with the rest rigorously explained.

I for one was super interested in just that aspect, space games tend to be arcady, would have liked some real physics limitations involved... I would probably accept a few bad gameplay mechanics if they were grounded in science and physics. The game will probably be interesting though even if it's not what I had hoped.

Share this post


Link to post
Share on other sites
I saw on reddit that Notch is abandoning the "hard sci-fi" theme. (...) The game will probably be interesting though even if it's not what I had hoped.

As much as I like hard SF as a theme, I'm glad he is giving it up. Realism is a fool's errand... especially for a small dev team. Too much work for so little return.

Share this post


Link to post
Share on other sites

As long as it feels thematically more "hard" than usual, then I'm fine with him forgoing realism. I just don't want another space opera.

Share this post


Link to post
Share on other sites
People have already started coding crazy shit on 0x10c's computer system: Crazy Shit!

Wow! (and Oh Shit!). This furthers my fear of being completely unable to enjoy me some Swedish internet spaceships.

Share this post


Link to post
Share on other sites

I know it's a bit of a back seat driver comment, but Notch seems to type out a lot more than necessary while using Eclipse. Now that I spend most of my time in dynamic languages I get really nostalgic about how quick and fluid it was to code in Java in that IDE.

Share this post


Link to post
Share on other sites

I don't care about Minecraft, Notch's programming skills, or most of anything about Notch, but hot damn am I excited about a programming-based video-game.

Share this post


Link to post
Share on other sites
I don't care about Minecraft, Notch's programming skills, or most of anything about Notch, but hot damn am I excited about a programming-based video-game.

if you're hard up for a programming-based game, there are already a bunch out there:

http://en.wikipedia.org/wiki/Core_War [:tup:]

http://en.wikipedia.org/wiki/MindRover [:tup:]

http://en.wikipedia.org/wiki/RoboRally [:tmeh:; find a computerized version or else the setup/learning time might kill your interest]

there's a even a whole wiki that lists them.

http://programminggames.org

Edited by vogon

Share this post


Link to post
Share on other sites

oh, geez, how could I forget?

http://www.zachtronicsindustries.com/

yeah, even though most of them don't straight-up expose their programming bits, all of Zachtronics's games exploit programming skills: in SpaceChem [:tup:], you program robot arms to pick up and manipulate atoms (and in its predecessor, The Codex of Alchemical Engineering [:tmeh:], you do the same with alchemical elements); in Ruckingenur II [:tup:, but it's way too short], you reverse-engineer circuits by deducing the properties of their chips; in The Bureau of Steam Engineering [:tup:], you build steam circuits; and in Kohctpyktop [:tdown:], you lay down pieces of an integrated circuit.

note also that Zachtronics was the developer of Infiniminer, predecessor to Minecraft, and that brings us by a commodius vicus of recirculation back to Howth Castle and environs.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now