Hi Jonathan, That is very heartening, thank you. Your work was inspirational to me when I first started using pyglet. I was wondering where you had gone to!
I hope this ends up being something that is useful in a variety of applications, but batch transformations and rendering seems like the most obvious if not only good application of it. And then I wonder if anyone worth their salt is just using shaders to do all the rotations and other pre-rendering calculations. I just don't know enough about shaders to know if one could replace my project with them or if one would want to. Still, I'm plugging along. I mostly have entity deletion working. Thanks and good luck with the kiddo, Elliot On Sun, Jan 24, 2016 at 1:29 PM, Jonathan Hartley <[email protected]> wrote: > This is fabulous. I don't have the time to offer to help out, but am > really glad you posted about it here, and look forward to taking it for a > spin at some point. It's exactly the sort of thing I idly thought about > doing years ago, before I became a dad and lost all my free time. :-) > > > On Saturday, January 2, 2016 at 5:18:32 PM UTC-6, elliot wrote: > >> Hi all, >> >> Not a question here. More of an announcement and making sure I'm not >> duplicating efforts or digging a hole with unforeseen serious limitations. >> Any feedback is much appreciated. >> >> I'm interested in making a simple 2D game engine using pyglet. One issue >> that came up was that translating and rotating every object every frame in >> pure python was dominating the execution time (~90%). I tried using numpy, >> but since each object has < 20 vertices it was actually a performance hit >> rather than a gain. This got me interested in a more Data Oriented >> Programming approach. All of the data needed for rotations could be >> batched and operated on in one numpy vectorized operation. >> >> I wrote a simple proof of concept which you can find here: >> https://github.com/Permafacture/data-oriented-pyglet >> >> Of course, using numpy correctly has reduced the heavy maths to 1/10th of >> it's original execution time, increasing the max frame rate for 100 >> spinning objects from ~225 fps to ~625 fps on my little thinkpad. >> >> I have spent some time reading through the graphics module of pyglet. I >> really like the way it is set up. I originally thought I'd use batches, >> and use ctypes to access the attribute buffers directly. But now I'm >> thinking to just implement something very much like a domain (use pyglet's >> allocator and the rest of pyglet graphics's Data Oriented Programming >> style) and have it be a more general data oriented ORM which could render >> it's vertices through glVertexPointer, glColorPointer and glDrawArrays (see >> third.py in the repo). >> >> Thanks for reading and Happy New Year, >> >> Elliot >> > -- > You received this message because you are subscribed to the Google Groups > "pyglet-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/pyglet-users. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
