dimension314's picture

Voxel Engine built with OpenTK / C#

Hi everyone, I made a blog entry on this site as well, but figured I'd post in here also as I had never even noticed the blogs before today.

I've been reading the OpenTK forum and working with OpenTK for about a year now. Want to thank everyone that has contributed to OpenTK, its so nice being able to develop for OpenGL in Visual Studio/C# where I'm already very comfortable and use everyday at my "day jobs" and not having to learn another language / IDE. Wouldnt have made near as much progress without OpenTK.

Wanted to post a link to the main project I've been working on, which is a voxel engine built in C# and OpenGL utilizing OpenTK. I've seen a lot of voxel engines out there on the web but none very far along using OpenTK.

Please have a look at http://www.voxelgame.com

There you can see screenshots / videos and download a copy of the engine and give it a try. Currently the engine supports the creation of randomly generated worlds, building blocks, breaking blocks, sounds, multiplayer and more. Once in the game, press F1 for a list of commands. You can even try connecting to my server at hornet.voxelgame.com

Down the road we have several game play ideas we plan to build on top of the engine. But for now looking for feedback on performance, issues, bugs and just general comments on the engine so far. Also any technical questions I'm happy to answer here or on our forums. Thanks.

Inline Images


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
migueltk's picture

I like it. Do you plan to provide the source code?

dimension314's picture

Planning on making some games on top of it, some of which will have some competitive pvp aspects, and have put a lot of time into it so dont want to release it just yet. I am willing to release some snippets of it though if there's areas people are particularly interested in.

lid6j86's picture

Looks great! I can only hope to get there at some point. Still working on the basics. I'm onto GLSL now. long way to go before I can build anything worth building, but the trip is half the journey

dimension314's picture

Sounds a bit like my journey, I spent quite a while learning GLSL and writing shaders, but in the end found I could get plenty good enough performance just using VBO's and thus target more gpu's like older laptops etc. I'll prob go back to GLSL eventually, but would be nice when there's good enough gpu support out there to just skip over the first few GLSL versions as so much stuff in the early versions is already deprecated.

flopoloco's picture

It's awesome and runs great also! Good job :)

lid6j86's picture

that's an interesting thought... maybe I'll look at just using that sort of functionality for now. especially until i get things down more solidly. I'm a little curious about collision detection, are there any good places to learn about making bounding spheres and boxes?

particularly the sphere, since there is no sphere primitive or class to create one

dimension314's picture

One of the nice things about a voxel engine is that you don't need to get too complex with collision. You dont need to worry bounding spheres unless you want very accurate collision. In fact at the moment we dont even use bounding boxes, although it is on the todo list as there are a few collision issues otherwise. But if you try out our engine you can see it doesnt work too bad at the moment, and all its actually doing is checking 2-3 points for the player depending on if they are jumping or not. Because a player is 2 blocks tall, you can get away with just checking points in the middle of the feet and head for whether they are going to be moving onto a block that is solid.

mOfl's picture

Too bad the term "voxel engine" has been abused so much since Minecraft :( I really hoped to see a voxel renderer like the announced id Tech 6 or "Unlimited Detail", not a block engine. Do you at least do ray tracing in a (sparse) octree?

puklaus's picture

Wow, this looks beautiful. And works great, and I always like small size of apps, like this really is small.
Keep up the good work :)

dimension314's picture

Yes I've always liked to keep apps as small as possible. In fact the biggest thing by far in the download .zip is the OpenTK.dll, however the game has an auto patcher built in, so when we start to release updates it will automatically patch itself without needing to download the OpenTK or OpenAL dlls again. Even in the .exe most of the space is used by the textures and sounds.

And, no, we dont do any ray tracing. It would be overkill for the type of games we want to create and from my understanding would require a ton of cpu. Its good for doing complex lighting or occluding parts of terrain when the terrain is very complex, however we dont have these requirements. I've found the performance as is to be quite good, even on really old laptops, just from occluding chunks based on frustum checking. Always looking for feedback though.