Minecraft / Maps

New C++ driven Minecraft client

  • 84
  • 32
  • comment284
  • playlist_add
  • share
  • more_horiz
avatar RevolutionalRedStone
Level 51 : Grandmaster Princess
246
Hey guys,

I've written a new version of Minecraft

The game is open-source.
- Included with each game client is un-obfuscated source-code along with an intelligent Integrated game editor.

Game Download
Ver 1.2.3 | 12.5 megs

Comments Questions Bug-reports Ideas and Help are very welcome !

Thanks alot guys, Enjoy!

Additional Notes

About the games engine
Using C++ to handle rendering for performance, This engine assembled from scratch in Multimedi Fusion 2; a visual programming IDE.

A highly efficiant Just-In-Time embedded Lua
script engine handles game-logic and also provides light-weight short cycle extensibility.

About my motivations
As an 3D games programmer I was immediately tempted to write my own game client for Minecraft !

As an Redstone engineer I'm always driven to find new ways to tighten my grasp on the subtleties of Redstone.


Thanks again guys
Progress100% complete
Tags

2 Update Logs

Version 1.2.1 change log : 07/27/2012 2:28:50 pmJul 27th, 2012

Version 1.2.1 The community update - change log -
Changes include:
  • External dynamically compiled source code ! ( equivalent to JEB's much promised modding API )

  • Further Improved texture filling performance

  • Hide-able HUD mode ( F1 )

  • Third-person view mode ( F5 )

  • Improved Redstone dust signal handling performance

  • Redstone interaction now more like Minecraft ( Torches power block above & Indirect repeater powering )

  • Redstone wire animation connectivity !
  • Particles are now created on block removal !
LOAD MORE LOGS

284 replies

1
08/17/2015 12:44 pm
Level 10 : Journeyman Engineer
RowanFN
You mentioned a Mac version previously, or a .swf setup for mac to be opened and used on the web.


Is there a similar feature here? can this be implimented as I use a Mac and pc, and if i can get both working with the old sorta web .swf that would be amazing!
1
04/05/2015 4:00 pm
Level 2 : Apprentice Explorer
Crow_T
Where is the download and is it for mac or will you be making it for mac
1
04/03/2015 9:42 am
Level 2 : Apprentice Network
niels762
So, what did you think of my code? :D Or were you busy? I didn't saw you online allot.
1
04/04/2015 7:47 am
Level 1 : New Explorer
Thomas281204
i want to see it :(
1
02/15/2015 5:30 am
Level 2 : Apprentice Network
niels762
MCServer just implemented a network API. Any chance you could add something simular? I'd like to try to make a plugin that allows this client to connect to an MCServer so that it can play together with vanilla :)
1
01/10/2015 4:38 pm
Level 2 : Apprentice Network
niels762
Do you think it's possible to implement LuaMultiThreaded by madmaxoft in LuaJit? His multithreading is in one LuaState, so you can access variables much easier. That way we could separate chunk generation and chunk rendering from the rest.
1
01/25/2015 7:11 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
You are a smart guy!, generating chunks and sending them to the graphics card is always the main bottle neck in voxel games like this and anything you can do to mitigate that process helps performance tremendously.

I understand exactly what you suggest and yes you are absolutely correct, multi-threading is a great approach !

There are also other techniques which work within a single thread like working out all of a chunks geometry on the CPU BEFORE starting a new upload to the graphics card to minimize the time the GPU stalls while it listens to the CPU and also limiting the number of chunks you try to regenerate per second things like that can have fairly good success ( maintain a FPS above 50  while reloading ) but ofcoarse; multi threading is optimal.

From working at euclideon these last 6 months i've learned that there is little reason to use graphics cards to render voxel games at all - the software we use here is able to render the entire exploreable area of a minecraft map ( 2x10^6 by 2x10^6) just as fast as it renders one block.

I'm busily programming for the defense force at the moment ( which is fun ), but as soon as that's done i'm back to programming minecraft (voxel games) : )
1
01/26/2015 4:23 pm
Level 2 : Apprentice Network
niels762
I've always known that generating and rendering stuff is the most expensive thing to do, so I thought it could be smart to separate them ;)

Would you maybe like to see my source code? You can probably find allot of things that could be improved, especially in the rendering code. ;)
1
01/26/2015 10:51 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
I'de love too : )
Send me a link when you get the chance!
1
01/27/2015 6:34 am
Level 2 : Apprentice Network
niels762
1
01/27/2015 6:47 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
Wow excellent work niels!

You have clearly learned a whole lot of Lua!

I will need to keep reading the code for a while but with your blessing i'de love to make some of my own additions to the code and send it back to you ( along with a newer code editor )

Very impressed niels!
1
12/31/2014 3:46 pm
Level 2 : Apprentice Network
niels762
If I remember correctly you live in Australia, so I'm a little too late, but Happy New Year! :)
1
04/04/2015 7:52 am
Level 1 : New Explorer
Thomas281204
I live in australia 
i just had to post it to a 3 month old comment
1
12/22/2014 2:09 pm
Level 2 : Apprentice Network
niels762
I looked more into the code and I've decided to try working on it myself. I'm really excited to give it another try. The only problem I'm currently dealing with is that the console is a little small. Is there a way I can make it bigger or separate it from the client?
EDIT:
Ok I got some kind of World/Chunk interface going, but due to lack of documentation of what a function does, when it's called, the needed parameters and return values I can't really continue. Do you have some documentation? Also is there a way to find out in what world the player is in?
1
12/23/2014 1:36 pm
Level 2 : Apprentice Network
niels762
Rendering stuff is hard. I managed to do the world generation and stuff, but if I try to render not only the surface area but also the stuff underneath it then it gets complicated and slow ;(
1
01/25/2015 7:33 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
yes the underground areas are a huge rendering problem for gpu's rendering voxel worlds using a skinning approach ( the speed limit comes from the vertex transform stage which is very difficult to alleviate without advanced techniques )

One simple approach is to flood-fill an area to see whether it is even hypothetically visable to the player ( eg it is open to the sky or it contains the player )

more advanced approaches can all but completely combat this problem but they require extreme graphics programming prowess - one very effective approach is to stitch faces together which are both connected and coplanar this drastically reduces the number of vertex's which must be rendered ( in a beta 1.8 minecraft map i reduced a 4kilometre square area from an utterly untenable 36 million polygons down to the easily displayed number of 180 thousand ) - this approach can be ever further improved by stitching non-connected coplanar faces such that the number of verticies becomes ABSOLUTELY tiny ( 900 polys while perfectly displaying the "normal view distance" in minecraft ) and indipendent of the complexity or number of blocks in the world - however if you push it that far the textures which must be generated for those connected polys become extremely bad for the graphics pipeline during the fragment shading stage and you become bottlenecked there instead - a happy mix of the connected and non-connected approaches can be used to acheive massive view distances on extremely out-dated computers... but it's very complex to use that technique ( from a programming/math perspective ).

ultimately graphics cards are relics of the past which just havn't yet died out - techniques similar to backwards-raytracing are currently limited by the resolution of the screen but are not limited by the size of or number of objects in a virtual world, as long as the number of things in our virtual worlds continues to increase and as long as the resolutions of our screeens continues to crawl or stand-still ( which seems inevitable given that our eyes arn't evolving improved fidelity at any noticable rate ) a tipping point is impending and people are not going to look back.

Interesting question you raised thanks again niels!
1
08/15/2014 4:37 pm
Level 67 : High Grandmaster Programmer
EnderMiner77
Are you still working on this? If not, I would really like to take over on developing. Have some c++ experience and a lot of c experience.
1
08/20/2014 2:16 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
Thanks i appreciate it, a basic editor is included and i'de love to see what you guys put together.
I am still working on it.
1
08/24/2014 11:20 am
Level 2 : Apprentice Network
niels762
Are you able to change everything using Lua? You said (a while back) that you have unlimited worlds working, but I expected that that could only be done in C++.
1
08/24/2014 12:07 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
Allways a pleassure to hear from you !
1
08/24/2014 12:09 pm
Level 2 : Apprentice Network
niels762
likewise :)
1
08/24/2014 12:05 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
That's correct : ) becase the Lua scripting has direct access to OpenGL it can pretty much be used to change everything. the engine is C++ but implementing unlimited worlds only required a few small changes to the Lua.

The Lua functions which handled chunks looked like the following.
Chunk_Load(id,que,x,z)
Chunk_Unload(id)
Chunk_Update(id,force)
Chunk_Modify(id,x,y,z,newblock)
1
08/24/2014 12:11 pm
Level 2 : Apprentice Network
niels762
Then I should look more into the source code :P I'm afraid that it's going to be too complicated for me but I could always try :)
1
08/24/2014 12:17 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
best of luck, don't be affraid of Lua its a kind and forgiving old-friend of mine ; )
1
06/02/2014 7:16 am
Level 2 : Apprentice Network
niels762
I see you're still active :) From time to time I'm still checking out if something has changed.

If you're still working on the world generator then you might want to look at some documentation about the MCServer generator. Our developer just started an article where he explains how the generator from MCServer works(although it's currently only the biome generators :)) If you're interested then you can find the documentation here: link

Anyway it's great to see that you're still active. Keep up the good work. :)
1
06/02/2014 8:17 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
Thanks niels, looks like a good read...
Its nice to see you around here too : )
1
05/15/2014 7:33 pm
Level 1 : New Crafter
empirebuilder1
Not bad... Not bad at all. I might put this on my youtube channel just for some variety xD

But one problem I'm having is that I can't break blocks generated by the terrain (i.e logs, leaves and grassblock). It's really annoying, as to really build anything I have to set it without any natural terrain, and that looks too artificial.
1
05/15/2014 10:22 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
Hey!, Yeah sorry about that, i have a version of this project which does allow for infinite worlds with interaction but it's currently too messy for release. Thanks!
1
01/21/2014 4:45 pm
Level 1 : New Miner
RianmontyHD
For future reference, how exactly does one make a game engine in Multimedia Fusion 2, I understand how one makes an engine in C++, but not MMF2, thank you in advance
1
01/21/2014 6:38 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
Clickteams tools are extremely powerful; any type of application can be produced using them. Just like in other languages constructing a game engine with MMF2 involves combining APIs, Programming constructs and scripting language interpreters into a coherent interface of tools. This engine uses the OpenGL(3D), Lacewing(Networking), ONU(Audio) and XLua(Scripting) APIs. The engines two largest code groups are 'controls' and 'debugger'. Most of the game ( blocks, mobs, items, Redstone ) is in the scripts which can be read and modified using the 'Editor' button on the games title screen. The games script editor is also an MMF application and is surprisingly quite a bit more complex than the game engine itself. ( in terms of implementation with MMF ) Thanks for directing your very first and very interesting question towards me.
1
01/22/2014 10:47 am
Level 1 : New Miner
RianmontyHD
Thank you for the quick reply! I am fairly experienced in C++/SDL, your information was extremely valuable! As I am new to Clickteams tools, I would like to ask a question, is it possible to make a console of some sort (something to accept and read user input, such as words/ numbers) in MMF2, it is required for a small project of mine. Thanks in advance!
1
01/22/2014 8:17 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
Jamie put together an extension for MMF2 called the Console Object which provides the classic command interface window just like the one you COUT to by default in C++. However you might have more control if you put together your own GUI using input object such as the editable text box. By the way; you mentioned you're familiar with SDL - ive been wondering about its pixel access / refresh speed... Would you possibly be able to answer the following question for me ? 'how many times a second can a simple SDL application redraw a screen of say 1,000,000 pixels' Thanks again,
1
01/23/2014 7:55 pm
Level 1 : New Miner
RianmontyHD
Well, using certain code in SDL you can choose the redraw rate, I'm not sure about OpenGL, I have not got into that library yet, but I think OpenGL redraws a few dozen times a second? For instance, if I made an extremely simple program that displays a background and a sprite(in SDL) then using that line of code I could choose the redraw rate for that simple program. I hope I answered your question. By the way; can OpenGL import models? Such as blender/maya files, or do you have to write the models in code like Notch did?
1
12/27/2013 5:05 am
Level 43 : Master Modder
akvarista11
Hey mate why you stopped it need help?
1
01/04/2014 2:57 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
Hey, actually I've been working hard on the underlying technology of this project for over a year now however it's not all stuff about which Minecraft fans are explicitly interested so I've been keeping it pretty quiet. The largest underlying systems upgrade is that we've dropped hardware accelerated OpenGL instead opting to write our own custom software based real-time raytracer which is showing incredible performance and full quality visuals even on well-obsolete computers. This Project has become very large and it's a while off another upload but I won't forget you guys : )
1
01/15/2014 3:46 pm
Level 2 : Apprentice Network
niels762
I can't wait to try all the changes. Keep up the good work :D
1
01/04/2014 8:52 am
Level 6 : Apprentice Dragonborn
HaylingZar
Yay I was getting worried :D
1
01/04/2014 4:26 am
Level 43 : Master Modder
akvarista11
Oh, im glad to hear it Im also working on a new mod with a few people. +1 sub
1
01/04/2014 5:54 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
Ill be sure to check it out : )
1
07/26/2013 6:11 pm
Level 11 : Journeyman Engineer
Gaming_Greatness
diamond and subbed looking forward to the update ^_^
1
06/22/2013 12:51 pm
Level 35 : Artisan Bunny
CloudPhantom
So, is this dead? I was really hoping it would go farther.
1
06/06/2013 7:55 pm
Level 34 : Artisan Ninja
TheBoss0260
DAMN THATS COOL lol
1
06/06/2013 7:55 pm
Level 34 : Artisan Ninja
TheBoss0260
can i (try) to make a youtube vid about it?
1
06/06/2013 11:41 pm
Level 51 : Grandmaster Princess
RevolutionalRedStone
You may, of-course: )
1
06/06/2013 11:42 pm
Level 34 : Artisan Ninja
TheBoss0260
thx
1
04/10/2013 2:13 pm
Level 2 : Apprentice Network
niels762
Are you still working on this? its 3/4 year since you updated it :(
1
04/08/2013 5:26 pm
Level 1 : New Explorer
thehowtoguy168
What are the system requirements for this program???
1
04/09/2013 4:50 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
Any functional windows machine can successfully execute this program.
The programs support files and library's are embedded within the program.
OpenGL's API comes with the installation so you really don't need anything.
1
01/06/2013 12:13 am
Level 18 : Journeyman Wolf Whisperer
DeleteThisPleaseThan
Atleast your the smart one unlike jeb since they dont just rebuild to c++ for fasterà performance, see if you can hook in OpenCL/Cuda to improve your speeds.

i heard Nvidia has a developer zone with CUDA Tools.

And im going to start learning c++ real soon :3
1
01/06/2013 1:29 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
Actually, unlike most 3D systems; rendering speed in this context is really not a problem.

The memory required to define the blocks which must be drawn to makeup a Minecraft world; represents only a minute fraction of any graphics cards bandwidth.

The number of texels in a Minecraft scene remains bound thanks to mip-mapping. fillrate usage ( the dominant bottle neck on old cards ) has been slashed by replacing buffer clears with partitioned z-buffer offset access. ( which by the way ive learned is an absolutely excellent trade off when your world is made of large non-intersecting cube faces) And finally an early z-pass keeps overdraw to near 0%...

Put another way, Minecraft is not at all expensive to render with the powerful 3D APIs which have today become ubiquitous, what is expensive however is hard-drive access ! Which makes intelligent chunk loading currently the most important bottleneck.
1
01/06/2013 2:00 am
Level 51 : Grandmaster Princess
RevolutionalRedStone
I wrote a really good response elaborating on the use of parallelisation via GPGPU for use in the hierarchical ray tracing of Minecraft worlds, which; was very interesting..

Unfortunately I clicked cancel not submit and then proceeded to bang the desk and say Grrr !

So anyway, there is certainly room for improving the process of rendering which could come with ridiculesly cool side effects ( such as infinite view distance ).

Its awesome your going to learn ++, there is so much more ide like to say about it, but right now I must adjourn at good luck.
1
01/06/2013 12:38 pm
Level 18 : Journeyman Wolf Whisperer
DeleteThisPleaseThan
Your right about the Chunks. that does tend to be the major issue.

I ran some tests also. it appears there is the infinite view distance as you were talking about,(Tested on Large and Small).

It also appeared that you had a few UI bugs.

Other than that, Good luck Improving and hopefully Infinite worlds.
Planet Minecraft Logo

Website

© 2010 - 2020
www.planetminecraft.com

Welcome