Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Block engiine -> Make your own minecraft. Would you buy?

Discussion in 'Assets and Asset Store' started by goldbug, Feb 15, 2012.

?

Would you buy this?

  1. No. Free alternatives are good enough

    36.6%
  2. Interesting, I would be willing to pay $100

    50.9%
  3. Nice. I would be willing to pay $300

    3.6%
  4. OMG, this is awesome. I would pay $500 or more

    7.1%
  5. Other, leave comment

    1.8%
  1. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    I have had a few offers to license my block engine. So far I have turned them down because I don't think I can make much with licensing.

    See a live demo or download a mobile version

    or check out this video:


    The features include:
    • Infinite world with infinite height and depth
    • Colored smooth lights
    • Specular normal mapped shader (find some gold and see)
    • Optimized to hell and back
    • Nice looking water
    • Awesome landscape features like caves, cliffs, overhangs, and floating islands

    I am making this post to ask you if there is real interest on this or if this is just a niche group. Let me know if you would be interested on licensing it on the asset store, and if you can, let me know how much you would be willing to pay for it. Also, if there is any feature that would convince you to buy.

    Update I

    This thing now works in mobile you can download a demo here

    Update II

    I have decided to place it in the asset store. I am in the process of cleaning it up and packaging it for ease of use. Will release in 1 week or so.
     
    Last edited: Feb 29, 2012
  2. TouchSoft

    TouchSoft

    Joined:
    Oct 18, 2008
    Posts:
    218
    Your demo doesn't work on my PC... says error downloading.
     
  3. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,203
    Same for me on my Mac.
     
  4. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Sorry about that guys, I apparently deleted the thing accidentally. I will recompile and upload a demo soon.
     
  5. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    The demo is fixed now. I also added a video so you can quickly get an idea of what it is.
     
  6. TouchSoft

    TouchSoft

    Joined:
    Oct 18, 2008
    Posts:
    218
    Looks amazing! If this is optimized for mobile too... I'd gladly pay $100.
     
  7. Rod-Galvao

    Rod-Galvao

    Joined:
    Dec 12, 2008
    Posts:
    210
    The problem with free alternatives is that they are too crude. I made a survey of the available solutions out there and none is ready for you to create your own gameplay. For those who are looking for creating a game with a block world and don't have the time or skills to make such (optimized) scripts, this is a must.
     
  8. Behelit

    Behelit

    Joined:
    Mar 7, 2011
    Posts:
    19
    I really like this... This would save me insanely large amounts of time on my project.

    Depending on how things are documented, I'd pay $100 ~ $300 for the listed features. $500 seems a little steep to me... But if you added multiplayer connectivity and semi-realistic water simulation, I'd pay it.

    EDIT: Oh and, love the day and night system. :)
     
    Last edited: Feb 16, 2012
  9. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    I like this to)
    I dont need a day and night system becouse i can make it miself) But block engine is amazing)
    I will pay for it 200$.
    And one thig, all bloks are pink now( Yestarday all working fine. I think you change shdader to old one)
     
    Last edited: Feb 16, 2012
  10. PR[E]D@TOR

    PR[E]D@TOR

    Joined:
    Feb 16, 2012
    Posts:
    1
    It is very good job, and I really ready to pay $200 for it.
    Continue working!
     
  11. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    I was planning on having the day/night system as a separate package in the Asset Store, as it is completely independent of the block engine. That is why I didn't list it as a feature of the block engine.
     
  12. lfoksw11

    lfoksw11

    Joined:
    Feb 16, 2012
    Posts:
    1
    I ready to pay $200 ! Good job!
     
  13. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    We dont need day or night cicle) We want to see your AWASOME block engine in AssetStore
     
  14. serovjim

    serovjim

    Joined:
    Feb 16, 2012
    Posts:
    1
    Good job))) I ready to pay 150$
     
  15. TouchSoft

    TouchSoft

    Joined:
    Oct 18, 2008
    Posts:
    218
  16. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Thanks everybody for your honest feedback.

    I did not think there was much money in selling this in the asset store, but your feedback is convincing me otherwise.

    BTW, I just though of 2 other optimization that will make it even faster!!!

    There will be some work I have to do to package in a way that is easy to use.
    I also need to work a little on making it easy to extend, to let you do things like your own block types and custom terrain generation algorithm.
    I am not 100% happy with the trees either, their shape is too funky.

    I do not have unity for mobile, so I can not test it myself, currently it takes about 500MB of ram to run (the demo is older and consumes significantly more memory). For the people doing mobile, is this a realistic resource requirement? otherwise, I might have to consider doing a mobile edition where I drop some of the features.
     
  17. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    @TouchSoft

    LOL
     
  18. Colis

    Colis

    Joined:
    Feb 16, 2012
    Posts:
    1
    I ready to pay 100$-$200 !
     
  19. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    If you deside to poosh package to AssetStore it would be the real big thing to developers)
    What about mobile package, i think to launch it peaple need to disable bumped texture and maybe decrease visible chank amount, and make it work with OpenGl ES1.x and there it will work fast enought.
    Cant wait to play around with your package))
     
  20. b3y0nd3r

    b3y0nd3r

    Joined:
    Oct 5, 2010
    Posts:
    27
    I wouldn't mind at all to pay an average of 100$ for a Minecraft-like Engine, provided that it had clean code, reusable, and on top of that, very well commented code so it is easy to understand the inner workings, with the aim of customizing it for a given project.

    I'm looking forward to seeing it ;)
     
  21. akkelman

    akkelman

    Joined:
    Feb 16, 2012
    Posts:
    1
    I do not feel sorry for that 100 bucks
     
  22. DavidB

    DavidB

    Joined:
    Dec 13, 2009
    Posts:
    530
    This looks like really great work and I could easily see it going for 100 (or more) bucks. That being said, be careful with the feedback in this thread because it looks like someone created several 1 post accounts to give you feedback. Maybe a compliment? maybe a troll?, hard to say :p

    Regardless, figured I`d throw my 2 cents in as well. I`m not personally in need of something like this, but the quality is definitely there. If I ever did need a block engine, I`d consider this one right away. Would be nice to see some workflow videos if you have any.
     
  23. Inovora

    Inovora

    Joined:
    Oct 29, 2009
    Posts:
    33
    Some documentation would be great.
    About making it easy to extend, you could do the code for custom terrain generation so that we could load a whole 3D matrix of block
    types (like one downloaded from network).

    For mobile, memory usage should be 5-10x smaller. Maybe you don't need to create a mobile edition. If you put parameters like "size of visible/rendered area" you could drop memory usage significantly.
    Also, for performance reasons, the number of draw call should be lower than 30. So fancy shaders doesn't help. The more you use 'unlit' shaders, the better. In fact, the less materials you have, the better. Maybe you already did that but combining textures on an atlas to use one material does help on mobile devices.
     
  24. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    Five peaple with 1 post)) But who now, maybe they wait for this generator, or may be not.
     
  25. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    There are a couple of optimizations that I want to make that will improve speed and memory usage:
    • Currently the visible area is rectangular. This is one of the optimizations I want to make even for the full version, where the visible area is circular. This would reduce the amount of chunks loaded that are far away, and increase the minimum distance for the visible area. This I plan on doing anyway.
    • software back face culling for chunks that are far.

    But even with those optimizations, with such hard memory constraints, I am afraid some sacrifices will have to be made. I am thinking:

    • Probably the first thing that could be sacrificed is infinite height. If the world is just 128 blocks tall like minecraft's, it would be a significant memory reduction, and most people can probably live with that.
    • Currently, my blocks take 8 bytes each. I can drop them to 4 at the sacrifice of some speed, I could drop them to 2 if I forego colored lights, though they look so pretty :)
    • Texture quality could be sacrificed .
     
  26. Behelit

    Behelit

    Joined:
    Mar 7, 2011
    Posts:
    19
    Awww, I really liked the day and night system! I'd still pay $100~$300, depending on documentation. Clearly commented and sectioned code is probably the biggest selling point for me. I would be buying it for optimization and the ability to quickly identify the functions of each section of code. This is great work. :)
     
    Last edited: Feb 16, 2012
  27. sawfish

    sawfish

    Joined:
    Feb 12, 2011
    Posts:
    314
    These would be a good start.

    For sure, many phones only have 256 or 512 mb of RAM.

    HOWEVER, new phones coming out have 1GB of RAM and will probably handle a system like this with little modification.

    So, you could just consider it a Dual-core and Quad-core optimized package.
     
  28. Zhosay

    Zhosay

    Joined:
    Dec 12, 2011
    Posts:
    98
    If you release it, you release the source or as dll? So is it customize able like changing size of cubes etc?
     
  29. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    It will be the full package ;)

    What texture resolution you use now? I think texture can be 32x32 it save some fps.
     
    Last edited: Feb 16, 2012
  30. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Part of it would be a dll, like the algorithms to translate from chunks to mesh, light, math library, chunk and thread management.

    But it would have extension points for you to create your own block types, or provide custom world generation algorithms. I don't know why you would want to change the size of the cubes, if you give me a use case, I will think about it.

    if there really is a need for the source code, then maybe I could have 2 price points, one for binary only, and one for the full thing.
     
  31. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Currently it is 128x128. Looks great IMO, but I think this is one of the things that can be sacrificed in order to go to mobile. After all, minecraft's resolution is much lower than mine, and people don't seem to mind.

    The good part is that the engine does not care what resolutions the images have, all it requires is that all the textures are the same size.

    Currently I am getting about 400 fps as reported by unity statistics window, so that is not an issue for me on my integrated intel video card on my laptop. (not a gamer's laptop). Maybe mobile is different. Is it choppy for you?
     
  32. Zhosay

    Zhosay

    Joined:
    Dec 12, 2011
    Posts:
    98
    That would be a good idea. Block size, just for style quesions I mean for some games like digging with a big machine wholes into ground small blocks would suck. Other games may look better when smaller.
     
  33. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    Can you please explain how it will be useful like dll? And some part of code like input and other part need to be in code if some one want to change control (and block plasing method). And how about chunk amount and amount of blocks in chunk? I think if all code would be in dll all games would be to similar.

    I dont have a gamer PC to, and games on my HD2 runs with speed similar to my PC))) And your engine is really fast on my PC (others whot i try to use laggy even on my PC)
    What about texture, on mobile texture 32x32 looks pretty good)
    Here screenshot how it looks with 32x32:
     
    Last edited: Feb 16, 2012
  34. Inovora

    Inovora

    Joined:
    Oct 29, 2009
    Posts:
    33
    That would be great. If you release it without those optimizations I would buy it anyway. And you could start making some money to fund yourself and keep the work going. For me those optimizations could be added on a posterior version.

    Is it easy to use your engine to work with a fixed terrain size?
    What if I want to work with a 1024x128x1024 world? Is it possible?
    Maybe you could have a parameter to constraint the infiniteness of an axis.

    I don't think reducing the block representation memory is a good idea. Let's suppose for a moment you developed a web game. Now you want to port it to mobile. Your game won't work 100% since you won't have all original blocks available. I think limiting world size is a better idea to deal with mobile memory.

    You can safely use a 1024^2 texture atlas of 32x32 pixels textures. There is a lot of room for expansion and that's mobile ready. But if you use a byte to represent each block type you could use a texture resolution of 64x64 pixels
    (64pixels x 16 textures = 1024; 16x16 textures = 256 textures types, one for each block type).
     
  35. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Day and night system will be available on the asset store separately, so you will still be able to get it.

    The code is very readable, except for the part that translates from chunk to mesh. This is not because I write ugly code, but because some of the optimization black magic is simply inherently difficult to follow. I am actually documenting the optimizations in my blog on that site. You will see how complicated things start to get after my 4th or 5th entry.
     
  36. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I'm afraid that a realistic amount of memory would be 50, not 500 meg for mobile. This is because 3GS will quit if you get up to around half the device's ram - ie 128mb. So 50mb for the app itself - including unity - is realistic. Since you'll want to include sound, and obviously a lot of textures.

    500MB is just completely wild and undoable on mobile. Does it have to be "unlimited" ? I'm guessing a lot of people will be happy with a limited amount of configurable space. Don't forget booleans and bytes could really chop the amount of ram you use.

    Currently, it will not run on any iOS device in the world. But it could run on some gb android of some sort (but not on the majority of them).
     
    Last edited: Feb 16, 2012
  37. Behelit

    Behelit

    Joined:
    Mar 7, 2011
    Posts:
    19
    Hmm. Hmmmmm. When you say math library, do you mean the noise generation? Because I would want to modify that. Also, I'm only interested in a horizontally infinite world, so I would want to modify that aspect as well. I would ALSO be interested in experimenting with the way the mesh looks. I'm sure I would think of other things I would want to modify as well, as time went on. By restricting the source code, I have to say my interest has dropped quite a bit. I would only be interested in the "full thing".
     
  38. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    It would certainly be easy to do. However, if you do 128 height, then there are new optimizations that become available, particularly related to light. So I would not just want to restrict the current engine to 128, but actually change a couple of things to take advantage of it.

    Block types are currently 1 byte, reducing from 8 to 4 would have absolutely no impact in features or amount of blocks available. It is just a clean tradeoff between speed and memory.
    A block consists of: 1 byte for type, 1 byte for data, 4 bytes for light. This adds up to 6 bytes, which c# rounds up to 8 bytes for performance reasons. Right now, there are 4 light channels (red, green, blue, sun), with 16 levels each. I could fit them in 2 bytes which would leave me with 4 bytes per block. The tradeoff is that squeezing 2 channels per byte implies extra bitwise operations to deal with the channels independently.

    This is actually very significant memory wise because we are talking millions of blocks at any given time.


    It is more complicated than that, A block has 6 faces, and each one of them can have different textures; grass has 3 textures. Also, some blocks don't have textures at all like air. So it does not always match 1 block type = 1 texture though I will admit it is close to true. Moreover, there is a huge limitation in unity: texture atlases and mipmaps don't mix well, so I have to pad the atlas to leave space between textures or the textures start spilling on each other in the distance. Your math is very reasonable, but the mipmap issue forces me to waste some space and use lower resolution textures than I would otherwise use.

    The good thing is that this complication would be abstracted away inside the engine.

    The math library is a basic simplex noise implementation along with a randomizer function, and 3d integer vector math. How you combine the noise function to generate the world would be completely up to you. Want 8 octaves and 3d noise for caves? go right ahead, just create a class that receives a 3d coord, call the noise function 8 times, combine it any way you want and return a block (Actual implementation will be somewhat more complicated than that for performance reasons, but you get the idea).

    If you wish to tweak how meshes look or other things, you would buy the "full version".
     
    Last edited: Feb 16, 2012
  39. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Modifying the world will be possible with the API. you will be able to place blocks using any input control you desire. The api will allow you to do something like:
    Code (csharp):
    1.  
    2.       world[x,y,z] = new Block(BlockType.Dirt);
    3.       world.refresh();
    4.  
    As far as chunk size goes, that would be a little more difficult. In that case you would want the "full version".

    Indeed that looks pretty good.
     
  40. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    Ok)
    What is the difference in price in Standart version and Pro will be?
    And can you tell plase approximate date of relise?
     
  41. Inovora

    Inovora

    Joined:
    Oct 29, 2009
    Posts:
    33
    Oh. I thought you was talking about reducing from 8 bits to 4 bits. :)
    I think most of us would prefer just the sun light channel so to have a smaller memory footprint.
    You could probably squeeze that to 2 bytes, one for block type and the other one for light and block data.

    Just disable mipmaps and use point filter mode. You will get a great effect, specially for unlit shaders, without padding textures.
     
    Last edited: Feb 16, 2012
  42. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Just so you know, minecraft has 2 channels: sun and block light. Sun changes intensity with the day night cycle (just like mine), block light is always white, and allows you to have torches that shine even at night. You could do just 1 channel, but you would either give up day/night, or you would have to relight and redraw all chunks several times at dawn and dusk.


    Look fine up close, but far away blocks look terrible. I get sparklies
     
  43. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    Thanks for the link) I find it very useful)
     
    Last edited: Feb 18, 2012
  44. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    I have been cleaning up the engine and documenting it thoroughly. I will put it in the asset store in the next week or so.

    Meanwhile, I made a new release. Beside the cleanup, the changes include:
    • Terrain now loads twice as fast.
    • Worst case FPS is significantly improved.
    • I added a FPS display on the top left corner.
    • Memory consumption was reduced to 400 MB. Still far from mobile material, but a step in the right direction.
     
  45. ArenMook

    ArenMook

    Joined:
    Oct 20, 2010
    Posts:
    1,902
    Nice... it even freezes my browser... just like Minecraft! :D

    Not sure why, but after playing for a minute it just froze and I had to kill the app container in Firefox / Win7.
     
  46. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Does that only happen with my game or other unity games as well?
    Does it happen if you use IE?
    Does it freeze your browser when you exit the game or while you are playing?
    What version of the player are you using? I compiled with Unity 3.4.2.
     
  47. ArenMook

    ArenMook

    Joined:
    Oct 20, 2010
    Posts:
    1,902
    Yours would be the first.

    Player is probably 3.5.0 as it's updated by Unity.

    Froze while playing, and no I haven't tried IE.
     
  48. HeadHunter

    HeadHunter

    Joined:
    Dec 17, 2011
    Posts:
    53
    I test in in GoogleChrome and i have Unity player 3.4.2.
    Terrain loads really fast) And nothing froze, all fine.
     
  49. Zhosay

    Zhosay

    Joined:
    Dec 12, 2011
    Posts:
    98
    I had once a freeze but I have it randomly in every web player I guess its the same for the other sometimes it works for days another time it crashes 3 times.

    Works pretty nice now :) looking forward to the engine.
     
  50. 1Men

    1Men

    Joined:
    Feb 19, 2012
    Posts:
    1
    I ready to pay $100. Good work!!!