YAVE
Yet Another Voxel Engine
6/21/2016: Blocks come in any color you like, as long as you like grey.
About
YAVE is my attempt to introduce more sophisticated real-time rendering techniques into the realm of Minecraft-style games. The goal for now is to produce an impressive tech demo. I am not planning on turning YAVE into a fully featured game or library, but who knows what will happen?
I currently do not have a day job. I am watching HMH and working on YAVE (and the occasional smaller-scale project) in order to hone my skills in graphics and game programming. I will usually dedicate at least 15 hours a week towards this project.
For YAVE, I am focusing on tech features that I believe will make for more engaging presentation in next-gen voxel games. Here are some of my goals (not promises):
- Very large game worlds (> 2000 voxels tall) with very fast movement speeds (> 100 voxels per second)
- Average-case optimizations such as Occlusion Culling and terrain LOD
- An emphasis on optimization for high end machines, especially those with SSDs
- Lights with a large radius of effect (think Stadium lights)
- Fancier lighting in indoor environments
- 3D sound
- Pathfinding
- More handcrafted world generation, at the cost of generating the world all at once.
- One
top secret feature which I have prototyped, but which won't come to YAVE for quite some time
Conversely, there are some features which I certainly will
not be adding to YAVE in the short term:
- Collision detection/physics
- AI
- NPCs/Enemies
- Asset Loading
- UI
- Multiplayer
- Gameplay
- Meshing for sloped blocks (with all due respect to STB)
Finally, I believe that voxel games should have an art style embraces the restricted "canvas" that a voxel game presents, and doesn't try to give a realistic presentation to fundamentally unreal worlds. Therefore, instead of looking like
this, I'm hoping that my demo for YAVE will emulate the look of artistically confident low-poly games from the PS1 and PS2 eras, such as
Mega Man Legends or
Wind Waker.
I believe this set of goals distinguishes YAVE from the other voxel game projects out there. Voxels have a incredibly wide range of gameplay applications, so I believe there's enough room out there for a few more voxel games. Lastly, there's one specific and crucial difference between OBBG and YAVE, and that is that
I am significantly less experienced than Mr. Barrett.
Streams
I'm going to hold a stream this Thursday (5/26) at 4PM PST, in which I'll demonstrate what I currently have. None of it will be surprising to anyone who has been following OBBG or voxel game development in general, but you have to start somewhere. From there, I plan to establish a regular streaming schedule. Because I consider myself a student of game programming, these streams will also serve as code reviews, in which I can discuss problems I'm working on, and viewers can suggest improvements to the code. It would be wonderful if a veteran programmer or two could occasionally attend.
I will archive streams, but I am undecided about putting them online.
Source Code
Since I am not wealthy, and YAVE is a bit more than a hobby project for me, I do
not plan to post the source code in a public repository. However, don't hesitate to email
[email protected] if you want to take a peek at the source code for whatever reason.
How do I support this project?
Come to the streams! I will not accept any money until at least one Killer Feature is complete.
Do you want to make this one of the Handmade Network Projects?
Yes. I just emailed Abner.