Recently I began to optimize voxeling’s usage of WebGL buffers. The goal was to get rid of render performance bottlenecks so I could further increase the draw distance. In real life humans can see about 2+ miles away before the curvature of the earth drops things out of view. The game engine was previously only able to draw out to roughly 700 feet before stuttering, but the latest code can draw to about 1500 feet.
Continue reading
Wanted to show off the BDcraft textures I’ve been using.
Jump in and build something! Demo world is here
Continue reading
Cutouts are a way to render objects that are fully transparent in spots, without actually doing alpha-blending or pre-multiplied alpha stuffs. More on those can be found in this article: GPUs prefer premultiplication.
Here’s a great example of cutouts in Minecraft. Notice that the tree is made up of cubes which have a leaf texture applied to them. The texture is transparent within the space surrounding each leaf. No blending occurs; you can simply see through the transparent bits:
Continue reading
I’ve finally rounded out some more features that I felt were necessary for a somewhat-compelling demo.
Open Google Chrome then click here to explore and build: http://voxeling.greaterscope.com
Recent updates include:
Updated character model to more closely match the one from voxel-engine Added skins from voxel-engine and other projects Refactorings and optimizations Simple water animation (of sorts) Made jumping less jarring (implemented the Skyrim float) Pause physics until user clicks the world for the first time.
Continue reading
The voxeling engine now supports textures with transparent cutouts. Thus, leaves!
Will write about what I’ve learned along the way later. Check the voxeling project on github to see what it took, or to play around with it on your own.
Continue reading
Five months ago I started messing around with voxel-engine and it has thoroughly re-kindled my love for measuring and optimizing code. You can see a demo of my project in my previous video post. However, I’ve taken the three.js-based engine as far as it can go. I want to increase the draw distance, want world chunks to load and draw faster, to make changes to the physics engine and reign-in the garbage collection pauses (caused by excessive memory allocation).
Continue reading
Wanted to show some of the new features I’ve added to the voxel game: maps and streamlined mouse/keyboard input handling!
The revamped input handling also includes support for game controllers, but it’s not complete yet, so don’t tell anyone.
Continue reading
I finally got voxeling to work from my linode server! And just in time for Tuesday night’s Meetup.
The night summed up in a phrase: “Thanks for digging!"
At one point we had four players simultaneously walking around, creating blocks, digging holes under each other. There remains a glitch where some players were invisible to the others, but other than that, things went quite well. Player position updates and world changes were relayed over the internet without any serious issues … until the node.
Continue reading
This week I decided to split the chunkDistance setting into horizontalDistance and verticalDistance. The chunk distance setting affects how far the player can see in the world. Technically, it determines how far from the player the world is drawn. With this change I can draw more of the world along the horizontal plane. This gives the player more visual landmarks and makes traveling long distances easier. If the draw distance is only around 100 meters or so it’s easy to get lost.
Continue reading
I have an older Dell Inspiron laptop that’s been part of my life since 2007. One of my soft goals is for voxeling to run reasonably well on it, though things aren’t looking good at the moment. The simple voxeljs demos tend to run around 30fps but within my world I’m getting between 8 and 20fps. Not good. I blame the many many more voxels present in my world. I’m considering converting the engine to StackGL/WebGL (kinda like voxel-engine-stackgl), but more on that in a future post.
Continue reading