home > sandblox

News   Sneak Peek   Services   Music   Games   Software  

Sandblox

Introduction

In early 2011 I (johno) finally played Minecraft Classic, and as a result became so provoked by the technology that I was compelled to write something similar of my own.

Since then I have (of course) bought and played TONS of hours of Minecraft, really more than I care to recall, and had lots of fun. My development of "something similar" continues and is documented here...

Development Log

2012-10-09

2012-09-05

I've been away from Sandblox for a long time now, mostly due to the job that pays the rent i.e. being a part time high-school teacher. This semester that job is down to 40%, so hopefully there will be much more nornware stuff going on in the coming months. I also got frustrated early this year with the performance issues of constructing Chunks; it just wasn't real time anymore, and that stumped me for a long time.

After a while I stumbled across the concept that Minecraft has of "sub-chunks", and for a long time that was priority one on my list of things to try out. I finally got around to it just this week; I don't have sub-chunks per-se, but now Chunks are 16 x 16 x 16 instead of 16 x 128 x 16. This is obviously 1/8th of the work previously required to build an individual Chunk, but the tradeoff is more objects in memory and above all more draw calls, as each visible Chunk is built and rendered as a separate mesh. I am however confident that better culling (my implementation is very arbitrary right now) will allow me to manage this.

Interestingly enough this has me back to my original Chunk size, which I had in version 1 of this codebase (the current version is 2). The big difference is that the current lighting is a whole different paradigm, and things in general are more optimized. Also this change has made the whole implementation generalized in all axes, so the world could (granted we can draw enough visible Chunks, which of course depends on view distances) theoretically extend in all directions, even up or down. I am however limiting "valid Chunks" to only be from 0-7 in y, but this is just arbitrary.

Switching to several Chunks in the y-axis did however break the way that the sky/sun light worked and made the problem itself more complex, so that is the next major hurdle. After that I also still need to figure out a way to have light bleed across Chunk edges. After that I will finally have a relevantly stable base to start working on world functions and gameplay elements, and thereafter getting some kind of build out there for people to play with.

2011-12-31

2011-12-29

2011-12-28

2011-12-27

2011-12-26

2011-12-13

2011-11-26

Here's a summary of my current thoughts about this project.

Lighting Models

Work has been done since the last screenshots on alternative (mainly faster) lighting models that can handle ambient occlusion, a sunlight from above, as well as point lights in some form. This has proved to be one of the main stumbling blocks, as the requirement of pseudo-realtime Chunk mesh generation is central to all of this.

Sandblox as a level editor

I think in general that the granularity of using blocks in this way to build levels is very productive and a good trade off. Indeed Minecraft itself is really a glorified level editor. The techniques used are also similar to Quake-style games, in that texture mapping is automatically associated with Materials, as well as lighting.

Several more Mesh types (per Material) could be implemented to further embellish the look and types of geometry in the world.

Where to go from here?

The project has been SEVERELY hampered by a lack of vision. The technology has arrived at the point where further work needs to reflect the needs of a specific game idea, and such an idea does not exist.

I also firmly believe that my tendency to want to make the world look "cooler" and / or "more high tech" has led to a lot of technical issues that in themselves are sufficiently complex to upset the development of the technology into any specific game. This is a trend that I have observed in very many of my projects.

2011-08-26

2011-08-21

2011-08-06

2011-07-27

2011-07-03

2011-06-17

2011-05-12

2011-04-23

2011-04-12

2011-04-11

2011-04-10

2011-04-09

2011-03-08

2011-02-28

2011-02-25

2011-02-24

2011-02-16

2011-02-02

2011-01-30

2011-01-28

 home > sandblox
 contact: johno(at)johno(dot)se