News for hackers. Stuff that matters.

exemd

No. Maybe the server.
Hi.

Some info:

- Client is written in Ć programming language and can be transcompiled to many languages. Yet it's still a C# project that runs in Visual Studio. See https://github.com/marioclone/Mario and http://smb.neocities.org/game.html for example how it works.

- Game is currently being made into a commercial product by a big company. It looks beautiful. There is a whole team working on it, including many artists.

Re:Game Programming Patterns on Monday July 08, 2013 @12:09AM (#6005140)
A pattern: deterministic game state, updated only by player input.

It's used for multiplayer synchronization. Instead of sending thousands of objects, it's enough to send mouse clicks and keystrokes.

"1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond" http://www.gamasutra.com/view/feature/3094/1500_archers_on_a...

It's also used for game replays.

Re:Meshing in a Minecraft Game (2012) on Thursday July 04, 2013 @11:39AM (#5991110)
I mean it reduces number of glDrawElements or glCallList calls.

If you have 256 different block types in 1 chunk, using texture atlas there's only 1 mesh instead of 256 different meshes.

https://docs.google.com/viewer?url=http%3A%2F%2Fnvidia.com%2...

Re:Meshing in a Minecraft Game (2012) on Thursday July 04, 2013 @08:33AM (#5990331)
In practice you need a texture atlas (http://en.wikipedia.org/wiki/Texture_atlas) to reduce number of meshes. But if you use texture atlas you can't combine surfaces like in the article.

The solution is to create 1 dimensional texture atlas like this: http://manicdigger.sourceforge.net/webgl/data/atlas1.png. Then tile in only 1 direction. Minecraft does it and I first read about it in one of Word of Notch posts - http://notch.tumblr.com/post/176620207/i-rewrote-the-tessela....

It's good enough. Manic Digger (http://manicdigger.sourceforge.net) has great framerate at Pentium 4 and Geforce 2 MX.

But there is one problem: in mipmaps there is bleeding between individual textures. The solution is to use:

     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 4);
It's good on desktop, but there is no GL_TEXTURE_MAX_LEVEL on OpenGL ES and WebGL! I guess it must be done with custom mipmaps or with a pixel shader?
Manic Digger (http://manicdigger.sourceforge.net/) used to connect to Minecraft Classic servers. And a client for full Minecraft was planned.

But Notch didn't like seeing alternative clients, so I removed it from the game.

Also, see http://wiki.vg/Client_List

Manic Digger, a C# open source clone of Minecraft and Ace of Spades, is also getting a WebGL version.

http://manicdigger.sourceforge.net/ - click "development news"

I make it with Script# (C# to JS converter), WebGL, and WebSockets. Both desktop OpenTK version and WebGL version can be compiled from common source.

But it's missing 2 weeks of work to finish the port.

We experimented with this kind of scripting in Manic Digger: http://manicdigger.sourceforge.net/forum/viewtopic.php?f=7&#...

It would be better if it had exposed all the commands from the server modding api: http://manicdigger.sourceforge.net/news/wp-content/uploads/2... . (note: old version)

I think JS would be useful for making Adventure game mode where blocks (script-boxes) contain javascript code that spawns NPCs, defines dialog trees, quests, items.

Another example: Spleef arena control room http://mdgallery.strangebutfunny.net/View?id=103