Let me know if you have any issues working with it, runs some whoping 3000fps on my desktop - and like 60 on my laptop.
Follow the repo if your interested, upcoming milestones..
* proper normals with simple ambient lighting. * chunk based voxel bitmap provider - trying to come up with a format for arbitrarily large sizes - like MC but with a much higher height ceiling (64k or 'unlimited', still decided on format specifics) * chunk based rendering, heirarchy of display lists * dynamic chunk updates for block removal/addition. * block level lighting * view lighting to mimic the voxel's concept of lighting. (smooth lighting basically) * division into client/server model
On Mon, Sep 17, 2012 at 1:05 PM, David Hagler <prozac...@gmail.com> wrote:
> I was toying with the notion of "yet another one of those voxel games" -
> and created this....
> Let me know if you have any issues working with it, runs some whoping
> 3000fps on my desktop - and like 60 on my laptop.
> Follow the repo if your interested, upcoming milestones..
> * proper normals with simple ambient lighting.
> * chunk based voxel bitmap provider - trying to come up with a format for
> arbitrarily large sizes - like MC but with a much higher height ceiling
> (64k or 'unlimited', still decided on format specifics)
> * chunk based rendering, heirarchy of display lists
> * dynamic chunk updates for block removal/addition.
> * block level lighting
> * view lighting to mimic the voxel's concept of lighting. (smooth lighting
> basically)
> * division into client/server model
> Who wants to implement "powerrocks"? ... haha
Do you have any screenshots handy? I don't have a pyglet-capable machine at
the moment.
> Let me know if you have any issues working with it, runs some whoping > 3000fps on my desktop - and like 60 on my laptop.
> Follow the repo if your interested, upcoming milestones..
> * proper normals with simple ambient lighting. > * chunk based voxel bitmap provider - trying to come up with a format for > arbitrarily large sizes - like MC but with a much higher height ceiling > (64k or 'unlimited', still decided on format specifics) > * chunk based rendering, heirarchy of display lists > * dynamic chunk updates for block removal/addition. > * block level lighting > * view lighting to mimic the voxel's concept of lighting. (smooth lighting > basically) > * division into client/server model
On Mon, Sep 17, 2012 at 11:05 AM, David Hagler <prozac...@gmail.com> wrote:
> I was toying with the notion of "yet another one of those voxel games" -
> and created this....
Awesome! I like it! This serves as a decent demo for how to use pyglet
mouse/keyboard to move around a 3D space, as well.
Let me know if you have any issues working with it, runs some whoping
> 3000fps on my desktop - and like 60 on my laptop.
Vsync is probably on by default on your laptop, but off on your desktop.
The benefits of vsync include not wasting your time updating a frame that
an LCD/LED display won't display anyway (since they generally only can
display 60 fps) and eliminating tearing. If you just want to see your true
fps, turn vsync off.
Follow the repo if your interested, upcoming milestones..
> * proper normals with simple ambient lighting.
> * chunk based voxel bitmap provider - trying to come up with a format for
> arbitrarily large sizes - like MC but with a much higher height ceiling
> (64k or 'unlimited', still decided on format specifics)
> * chunk based rendering, heirarchy of display lists
> * dynamic chunk updates for block removal/addition.
> * block level lighting
> * view lighting to mimic the voxel's concept of lighting. (smooth lighting
> basically)
> * division into client/server model
I'm looking forward to it! Any plans for non-cube-based voxels?
On Mon, Sep 17, 2012 at 4:40 PM, Tristam MacDonald <swiftco...@gmail.com>wrote:
> Do you have any screenshots handy? I don't have a pyglet-capable machine
> at the moment.
If you've ever played minecraft, it just looks like a big room made of
minecraft dirt, stone, and bedrock blocks. Moving around works smoothly,
and some collision detection is working.
I'm so glad people are trying it out :P I've posted it about for a while and garnered little to no attention :P
@Tristam - I do not have any screens handy, but will make a rudimentry project page on my website in the coming days to show it off a bit.
@Nathan - I did try it with and without vsync (from pyglet) it's an integrated driver so I was assuming a forced vsync - but vsync on it drops to 30fps, if I lower the resolution to 320x240 it goes up to ~200 - took me a while to realize that would be a valid test actually ..Derp. But I'm guessing I'm actually producing about 60fps naturally, and when I turn on vsync I get "lowest common denominator" FPS - 60hz refresh with ~ 60hz framerate would mean a beat pattern that would produce the 30fps I was seeing with it on. (that's my guess at least)
Powerrocks was a tongue in cheek reference to a redstone analog. :D
The current implementation was just a "how do I get this to render" so the "character movement/collision detection is very naive (intentionally).
> I'm looking forward to it! Any plans for non-cube-based voxels?
Indeed, this is my first foray into opengl stuff altogether so I need to learn more about rendering, and optimizations, like those non-cube-voxels will need to have special rendering considerations that I don't know of yet :P
I'm thinking of making this into some sort of generic framework for mc-clone voxel engines, but it might move from python/pyglet at that point. (we'll see) my idea was you could mix and match plugins, so - you want animals, get the animal plugin, want skylands get a skylands generator, caves... you get the picture. but trying to figure out an interface to allow them to all cooperate and still maintain some sort of sanity... well thats another story altogether.
So far (not knowing how mc does it, but I suspect I'm onto something here) I'm thinking layers -
*map fill* : layer - just generates on/off states for blocks that are considered "surface". *environment tagging :* (biomes) - just tags information for the xy -2d section of the map (similar to mc) *layer fiil*: dirt/sand for biomes *mineral fill* : adds the good stuff to dig for! *overlay*: trees/castles/mines .. etc...
I'm going to allow advanced attribute tags on the blocks so you could tag overrides on specific blocks at some point, like override this particular block to a rainforest environment, or this block cannot have gravity many in clusters would make zero-g areas :)
so providing this information to the interaction & renderer in real time while rendering mobs/sprites/particles... well - we'll see what happens.
I have an ambitious list of goals, but work always comes first :P
> Let me know if you have any issues working with it, runs some whoping > 3000fps on my desktop - and like 60 on my laptop.
> Follow the repo if your interested, upcoming milestones..
> * proper normals with simple ambient lighting. > * chunk based voxel bitmap provider - trying to come up with a format for > arbitrarily large sizes - like MC but with a much higher height ceiling > (64k or 'unlimited', still decided on format specifics) > * chunk based rendering, heirarchy of display lists > * dynamic chunk updates for block removal/addition. > * block level lighting > * view lighting to mimic the voxel's concept of lighting. (smooth lighting > basically) > * division into client/server model
> The current implementation was just a "how do I get this to render" so the
> "character movement/collision detection is very naive (intentionally).
> > I'm looking forward to it! Any plans for non-cube-based voxels?
> Indeed, this is my first foray into opengl stuff altogether so I need to
> learn more about rendering, and optimizations, like those non-cube-voxels
> will
> need to have special rendering considerations that I don't know of yet :P
> I'm thinking of making this into some sort of generic framework for
> mc-clone voxel engines, but it might move from python/pyglet at that point.
> (we'll see)
> my idea was you could mix and match plugins, so - you want animals, get
> the animal plugin, want skylands get a skylands generator, caves... you get
> the picture.
> but trying to figure out an interface to allow them to all cooperate and
> still maintain some sort of sanity... well thats another story altogether.
> So far (not knowing how mc does it, but I suspect I'm onto something here)
> I'm thinking layers -
> *map fill* : layer - just generates on/off states for blocks that are
> considered "surface".
> *environment tagging :* (biomes) - just tags information for the xy -2d
> section of the map (similar to mc)
> *layer fiil*: dirt/sand for biomes
> *mineral fill* : adds the good stuff to dig for!
> *overlay*: trees/castles/mines .. etc...
> I'm going to allow advanced attribute tags on the blocks so you could tag
> overrides on specific blocks at some point, like override this particular
> block to a rainforest environment, or
> this block cannot have gravity many in clusters would make zero-g areas :)
So, sounds like you're sticking to a mostly-a-minecraft-clone design for
the moment?
> I have an ambitious list of goals, but work always comes first :P
On Tue, Sep 18, 2012 at 6:34 AM, Kalessin <pab...@gmail.com> wrote:
> Nice work, I'm interested in seeing where this goes. 3000fps is quite
> impressive
glblox $ python main.py
Traceback (most recent call last):
File "main.py", line 19, in <module>
from gletools import ShaderProgram
File
"/Users/nathan/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages /gletools-0.1.0-py2.7.egg/gletools/__init__.py",
line 9, in <module>
from .texture import Texture
File
"/Users/nathan/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages /gletools-0.1.0-py2.7.egg/gletools/texture.py",
line 13, in <module>
import Image
ImportError: No module named Image
> On Tue, Sep 18, 2012 at 6:34 AM, Kalessin <pab...@gmail.com> wrote:
> Nice work, I'm interested in seeing where this goes. 3000fps is quite impressive
> glblox $ python main.py > Traceback (most recent call last):
> File "main.py", line 19, in <module>
> from gletools import ShaderProgram
> File "/Users/nathan/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages /gletools-0.1.0-py2.7.egg/gletools/__init__.py", line 9, in <module>
> from .texture import Texture
> File "/Users/nathan/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages /gletools-0.1.0-py2.7.egg/gletools/texture.py", line 13, in <module>
> import Image
> ImportError: No module named Image
> ~ Nathan
> -- > You received this message because you are subscribed to the Google Groups "pyglet-users" group.
> To post to this group, send email to pyglet-users@googlegroups.com.
> To unsubscribe from this group, send email to pyglet-users+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en.
David Hagler wrote:
> I'm thinking of making this into some sort of generic framework for > mc-clone voxel engines
> So far (not knowing how mc does it, but I suspect I'm onto something > here) I'm thinking layers -
If there's anything you want to know about how MC works,
I may be able to help. I've made a few small mods for MC
recently, and learned a fair bit about its internals in
the process.
> *map fill* : layer - just generates on/off states for blocks that are > considered "surface".
> *environment tagging :* (biomes) - just tags information for the xy -2d > section of the map (similar to mc)
> *layer fiil*: dirt/sand for biomes
> *mineral fill* : adds the good stuff to dig for!
> *overlay*: trees/castles/mines .. etc...
I haven't delved much into MC's terrain generation, but I
think it does something broadly similar. I believe it uses
Perlin noise functions for things like terrain height,
caves and ore deposits.
Thanks for the offer! - I've been itching to get a bit more code into this, so in the next week I'm going to look into the basics of the map chunking and rendering mechanisms.
If you had any insight into how those work, and maybe how they interact with the network layer -(so I don't fubar it from the ground up) that would be great.
On other change to the renderer I'm considering is implementing Triangle Strips (http://en.wikipedia.org/wiki/Triangle_strip) Pretty sure MC uses them, and ... well a great number of renderers for a lot of things.
I'll probably come up with a full surface "tesselator" at some point, since an exposed surface like this is only 3 polygons..
OOXOO OXXXO OOXOO
right now it comes back as 15 quads. Not sure if its worth the added hassle or not. I could also just "put a tack into it" since this is an optimization that really doesn't affect the core responsibilities of the program as a whole.
On Sunday, September 23, 2012 5:02:59 AM UTC-5, Greg Ewing wrote:
> Phillip Smith wrote: > > I'm thinking of making this into some sort of generic framework for > > mc-clone voxel engines
> > So far (not knowing how mc does it, but I suspect I'm onto something > > here) I'm thinking layers -
> If there's anything you want to know about how MC works, > I may be able to help. I've made a few small mods for MC > recently, and learned a fair bit about its internals in > the process.
> > *map fill* : layer - just generates on/off states for blocks that are > > considered "surface". > > *environment tagging :* (biomes) - just tags information for the xy -2d > > section of the map (similar to mc) > > *layer fiil*: dirt/sand for biomes > > *mineral fill* : adds the good stuff to dig for! > > *overlay*: trees/castles/mines .. etc...
> I haven't delved much into MC's terrain generation, but I > think it does something broadly similar. I believe it uses > Perlin noise functions for things like terrain height, > caves and ore deposits.