Hacker News new | past | comments | ask | show | jobs | submit login
The first version of Voxel Quest (with source) has been released (voxelquest.com)
310 points by edroche on Aug 3, 2016 | hide | past | favorite | 31 comments



Thanks Gavan! This is exciting, I've been waiting for this for a while. The code looks super hacky, but that's to be expected :)

Hopefully it gets ported to Mac and GNU/Linux soon. If not, I'd definitely like to try and port it over when I get some spare time. Cheers!


Your welcome. :) The porting process should not be all that difficult - mainly a few things have to be done:

  1) Create a bash script to replace the batch scripts
  2) Rebuild dependencies for the right platform
  3) Ideally have some sort of cross-platform build generation like cmake
  4) Pray to your gods


I've started the process of writing a Linux port. I already have a few shell scripts I can push back into your git repo, but still having a few issues compiling:

    $ g++ -Wall  -I./SFML-2.1/include compiled/main.cpp -I./glew/include -I./freeglut/include -o voxelquest
    compiled/main.cpp:124:19: fatal error: gl/gl.h: No such file or directory
     #include <gl/gl.h>
                       ^
    compilation terminated.
I can't seem to find gl.h anywhere in your project sources. Any ideas where I can find it?

edit: nevermind. It was already installed on my system. Seems to be a few cases where you've used lowercase gl paths in your includes which is breaking on Linux because the paths are in uppercase. Easily fixed with a `sed` script though.


As you seem to use shell scripts to build the game, I suggest to use redo, which provides dependency management for shell scripts: http://news.dieweltistgarnichtso.net/bin/redo-sh.html

Where can I find your code?



Thanks. I thought your web site was permanently offline!


Cool! I am going to work on porting to OSX today


I was looking into how to run lzz using gnu make on osx and while https://stackoverflow.com/questions/11186528/makefile-rule-f... gives some nice hints, I agree that cmake might make more sense in the long run, even if it is less "standard" than gnu make.

Also, drop by on Freenode #VoxelQuest sometime. We're still hanging around in there.


I've seen your name in the chat, and I apologize for rarely going in there! User "Talvieno" tells me it is often active in there. I need to automatically log in as I rarely manually fire up most of my chat applications. (PS I am in the chat now http://www.voxelquest.com/chat.html)


Cmake is probably overkill. DJB redo can handle multiple dependencies easily. My implementation only depends on Unix standard utilities like stat and md5sum: http://news.dieweltistgarnichtso.net/bin/redo-sh.html


Please do not use Bash, but Bourne Shell (sh). Bash-specific shell scrips are more complex and slower than sh and not portable. Bourne Shell scripts run unmodified in Bash.


will do :)


Great to see this finally get a release, I've been following the story since the first post. Curious why you aren't looking to generate income from VQ though. Also, the initial world construction process seems to take a very long time on a pretty fast machine. Perhaps a progress bar of some kind that lets the user know approximately how much longer it will take would be helpful. Keep up the great work!


Progress bar would be good, just a level above the polish I ever reached.

I do not want income from it because I feel this makes me more obligated, and I do not know how much time I can spend down the road (I will still spend time, I just don't want additional obligations hovering over my head) :)

World construction takes a few seconds on my computer, although IIRC some of it is tied to the GPU, but mostly it uses the CPU.


I contributed to your Kickstarter and am perfectly happy with this outcome. I'm excited to see what what you do next! Don't feel obligated to put any more of your most valuable resource (time) into this project!


Looking good! For those of us that can't actually run it yet, here's the latest video:

https://www.youtube.com/watch?v=tyuRNC8Edds


That was a montage of old videos meant to be used for this site: http://www.sixdf.com but I ended up just making another custom video that was less chaotic. Here is a video of the latest iteration of the engine: https://twitter.com/gavanw/status/728244177952071680


Error loading shader 129. Water loaded at first execution, not at the second one. I deleted and re-extracted, still no water, only bridges and slow-loading trees without leafs.

I guess the hardware requirement for this are quite unusual, I have an ATI 6870.


Another user hit the same error, I will look into it. I built it mostly on nvidia hardware so there are some things to work out for amd


Good luck with that, I wish you will try, but I would not spend too much time trying to fix it.

I can remember a recurring bug I had on a blizzard game which happens on the same level all the time, and they refused to fix it because they said it was caused by the AMD driver. That's a bad sign for AMD.


Congratulations on your release!

What's the reason behind weird prefixes in source files (like f00300_singleton.hpp)?


All files get concatenated in alphabetical order. Its a strange technique but it escapes what is known as "header hell" where you have hundred of headers cross-referencing each other. Supposedly it also speeds up compile time. See: http://stackoverflow.com/a/373179


I doubt it speeds up compile time on subsequent builds, as any change in one part of the project means that everything has to be recompiled.


Not quite. It presumably only concatenates the headers, which are read any time a dependant file is complied. The advantage is that the compiler doesn't have to open and read a header every time it encounters an include at the top of a dependent file. Instead, the dependency tree is given once, and each header is opened once.

This is apparently the same approach taken in the Plan9 source code to reduce compile times, and by basically any language with a module system (except module systems allow you to give the dependencies in each file).


Doesn't seem to work on macOS under Wine:

    $ wine VoxelQuest.exe
    err:process:create_process L"Z:\\Users\\username\\Downloads\\vqprecomp\\bin\\VoxelQuest.exe" not supported on this installation (x86_64 binary)
    wine: Bad EXE format for Z:\Users\username\Downloads\vqprecomp\bin\VoxelQuest.exe.
    $ wine.bin(52265,0x407fc000) malloc: *** error for object 0x401c2f08: pointer being freed was not allocated
    *** set a breakpoint in malloc_error_break to debug


Looks beautiful! I can't figure out how to use the "edit buildings" mode or the green box cutaway.


Thanks :) For the edit buildings mode:

Assuming you just started up, press "g" twice. Move your cursor over a building, it should display a white box around it.

Click on the building. Press "v" to toggle it on and off. Anything more complicated than that you have to get into the code, but you can do some neat things just by editing the shader (GenerateVolume.c"), saving it, then pressing "r" (refresh shaders) in the program (and then press "c" to clear the chunks and refresh them).

Future iterations have much more complex methods for adding arbitrary geometry, as demoed in the videos.

The green box cutaway:

Hold down ctrl (and keep it held), Move it while holding the left right mouse button to get it at the appropriate z level (up/down) You will likely ALSO need to move it on the XY axis holding the left mouse button just to keep it in view. That probably sounds confusing, but in isometric mode keep in mind that xyz in worldspace all project to another xy axis in screenspace. You can see in some videos how I move the cutaway cube down along the z axis while keeping it in the screen by moving it back up along the ground plane (xy).

At 6m44s in this video you can see how it should function when you move the green cube if it is at the right z level: https://youtu.be/R0ul1674F1k?t=6m44s


Gavan - one idea for you is to do a mini tutora on the source code on Udemy or one of those sites. It would not have the obligations you allude to yet still provide you with some income for your work. Of course doing the tutorial would require some efforts but you can keep it raw and not put too much effort into it. Almost like a walkthru that handmade quake or handmade hero are doing. Just my two cents. Thanks for your work!


voxels! this reminds me so much of that old outcast game. good times.


Congrats, nice milestone!


Thanks! One down...three or four more iterations to go :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: