Minecraft / Projects

New C++ driven Minecraft client

  • 83
  • 31
  • playlist_add
  • share
  • more_horiz
avatar RevolutionalRedStone
Level 50 : Grandmaster Princess
244
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

Comments : 284

star Login or register to post a comment.

Show Comments

1 - 50 of 284

  • RowanFN
  • Level 23
  • Expert Engineer
  • August 17, 2015, 8:44 am
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!
  • Crow_T
  • Level 2
  • Apprentice Explorer
  • April 5, 2015, 12:00 pm
Where is the download and is it for mac or will you be making it for mac
  • niels762
  • Level 1
  • New Network
  • April 3, 2015, 5:42 am
So, what did you think of my code? :D Or were you busy? I didn't saw you online allot.
i want to see it :(
  • niels762
  • Level 1
  • New Network
  • February 15, 2015, 12:30 am
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 :)
  • niels762
  • Level 1
  • New Network
  • January 10, 2015, 11:38 am
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.
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) : )
  • niels762
  • Level 1
  • New Network
  • January 26, 2015, 11:23 am
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. ;)
I'de love too : )
Send me a link when you get the chance!
  • niels762
  • Level 1
  • New Network
  • January 27, 2015, 1:34 am
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!
  • niels762
  • Level 1
  • New Network
  • January 28, 2015, 1:10 am
Thanks,

Go ahead :) I'd love to see your improvements.
  • niels762
  • Level 1
  • New Network
  • December 31, 2014, 10:46 am
If I remember correctly you live in Australia, so I'm a little too late, but Happy New Year! :)
I live in australia 
i just had to post it to a 3 month old comment
  • niels762
  • Level 1
  • New Network
  • December 22, 2014, 9:09 am
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?
  • niels762
  • Level 1
  • New Network
  • December 23, 2014, 8:36 am
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 ;(
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!
  • minerguy31
  • Level 67
  • High Grandmaster Programmer
  • August 15, 2014, 12:37 pm
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.
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.
  • niels762
  • Level 1
  • New Network
  • August 24, 2014, 7:20 am
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++.
Allways a pleassure to hear from you !
  • niels762
  • Level 1
  • New Network
  • August 24, 2014, 8:09 am
likewise :)
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)
  • niels762
  • Level 1
  • New Network
  • August 24, 2014, 8:11 am
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 :)
best of luck, don't be affraid of Lua its a kind and forgiving old-friend of mine ; )
  • niels762
  • Level 1
  • New Network
  • August 24, 2014, 8:26 am
Oh I know Lua since MCServer plugins are written in it. I've written some of the more complicated plugins for MCServer (:D), but that's a server and this is a client.

And there is of course that I have to figure out what everything does by myself while I can just look up functions for MCServer in the API documentation.
  • niels762
  • Level 1
  • New Network
  • August 31, 2014, 7:33 am
I gave it a try, but working on something that also has to render things just doesn't work for me ;(
  • niels762
  • Level 1
  • New Network
  • June 2, 2014, 3:16 am
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. :)
Thanks niels, looks like a good read...
Its nice to see you around here too : )
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.
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!
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
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.
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!
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,
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?
  • akvarista11
  • Level 43
  • Master Modder
  • December 27, 2013, 12:05 am
Hey mate why you stopped it need help?
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 : )
  • niels762
  • Level 1
  • New Network
  • January 15, 2014, 10:46 am
I can't wait to try all the changes. Keep up the good work :D
  • HaylingZar
  • Level 2
  • Apprentice Dragonborn
  • January 4, 2014, 3:52 am
Yay I was getting worried :D
  • akvarista11
  • Level 43
  • Master Modder
  • January 3, 2014, 11:26 pm
Oh, im glad to hear it Im also working on a new mod with a few people. +1 sub
Ill be sure to check it out : )
diamond and subbed looking forward to the update ^_^
So, is this dead? I was really hoping it would go farther.
DAMN THATS COOL lol
can i (try) to make a youtube vid about it?
You may, of-course: )
thx
  • niels762
  • Level 1
  • New Network
  • April 10, 2013, 10:13 am
Are you still working on this? its 3/4 year since you updated it :(
What are the system requirements for this program???
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.
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
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.
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.
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.
  • niels762
  • Level 1
  • New Network
  • December 21, 2012, 6:01 am
can you release the update? pleeeeaaaasssseeee :)
i'm feeling a bit ignored :(

EDIT:
I think this was rude of me now that I read it.
sorry Niels, certainly no disrespect for you intended.

Just after my last post we moved house and there's no-chance of getting internet there ( 15km from the exchange ) right-now I'm typing this on a laptop at a computer store.

Work is proceeding ( just added inventory ) and i will update you guys as soon as is feasible.
In the mean-time; this is how the computer I'm typing this on renders the new island-biome : )

[img=httpimgimageshackusimgperlinnoisegeneratorpng]img59.imageshack.us/img59/3452/perlinnoisegenerator.png[/img]
  • niels762
  • Level 1
  • New Network
  • December 28, 2012, 2:10 am
but how are you gonna update without internet? anyway good luck with your relocation.
Thanks niels, Dont worry I'll find a way.
  • niels762
  • Level 1
  • New Network
  • December 29, 2012, 1:32 am
Hurray thank you so much :) i love this client :P
  • niels762
  • Level 1
  • New Network
  • December 10, 2012, 9:36 am
do you have a complete changelog for the incomming 1.3 update?
  • niels762
  • Level 1
  • New Network
  • December 8, 2012, 3:59 am
hey i have a new texture for the cobblestone. the texture this client uses now is from the old days of minecraft. http://www.mediafire.com/view/?vv0n3k4n5gm2adc
  • exilepilot
  • Level 15
  • Journeyman Engineer
  • December 5, 2012, 4:59 pm
sir, are you a wizard :)
Are you planning on updating this in the future?
Oh yes, there is a massive update in the works...
  • niels762
  • Level 1
  • New Network
  • December 7, 2012, 9:19 am
realy? YES :D
Really Really.

I wanted to make sure it was possible before i stated too much... But, the infinite worlds / chunk handling worked-out perfectly and the perlin-noise random world generator was also much easier to program then I had expected, so it looks like the 1.3-Survival-Update is definitely becoming a reality !
  • niels762
  • Level 1
  • New Network
  • December 8, 2012, 1:55 am
can't wait :D do you have a release date? :)
  • mcajj
  • Level 2
  • Apprentice Explorer
  • November 21, 2012, 9:18 pm
swe?
Just downloaded it and Norton automatically deleted it because it's a threat!? What's the problem?
  • niels762
  • Level 1
  • New Network
  • November 2, 2012, 9:14 am
Norton just thinks it is a threat. its not. if you want you can use www.virustotal.com/. if you upload a file there 44 virus scanners will scan it and you get to see the results.
WOW! A new version of Minecraft? I'm downloading it now :3 Can't wait to see what's different.
  • niels762
  • Level 1
  • New Network
  • October 24, 2012, 6:15 am
are you still developing? :)
  • DDSloan96
  • Level 1
  • New Engineer
  • October 8, 2012, 4:36 pm
Nvm, Note to self, Read post before comment
  • PeterKramer
  • Level 55
  • Grandmaster Meme
  • October 7, 2012, 11:48 pm
Looks great, but it's sad to see how few views it has compared to other programs/projects.
btw, 50th diamond ;)

Are the saves in the same NBT format as the normal Minecraft Saves?

1 - 50 of 284

Show Comments

Search

Browse

Site

© 2010 - 2018
planetminecraft.com

Welcome