It's going pretty well (better than I expected actually). I should finish the first draft next time I'm able to sit down with it for a few hours. There will be much more to do still, and collaborating sounds good.
Thanks! Elliot On Mon, Jan 4, 2016 at 10:24 AM, Tristam MacDonald <[email protected]> wrote: > I'd be interested in collaborating on this, if you want any assistance. > > I've largely switched back to developing in native due to performance > issues with Pyglet and Python, but following a more data-oriented approach > could be the missing ingredient there. > > - Tristam > > On Sun, Jan 3, 2016 at 8:31 AM Leif Theden <[email protected]> wrote: > >> Your approach to the math plays on the strengths of numpy and shows great >> performance benefits. Keep us posted...who knows maybe some of your work >> could make it back into the pyglet project in the sprite module...we are >> often talking about ways to improve it. >> >> >> 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. > -- 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.
