KivEnt 2.1 and Particle Panda 2 Released

Sun 09 August 2015

KivEnt 2.1

KivEnt 2.1 introduces particle effects to kivent again, and provides more efficient classes for representing model data, and new renderers that make use of the new features of the VertexModel class.


kivent_polygen: Handles rendering vertex colored polygons like those seen in this video.

kivent_particles: Easily add 2d particle effects to your game!

VertMesh replaced with VertexModel: This allows assets with non-floating point data to be loaded in and manipulated from python. For more details read this blog.

New ModelManager: Built to take advantage of the new features included in VertexModel. The new ModelManager is now a property of your GameWorld instead of a global object. Access it via instance_of_gameworld.model_manager.

force_update property for Renderers: This will force a redraw of the frame on entity batching and unbatching. This is useful for creating a static renderer, or ensuring that everything is drawn if you are adding and removing the same entity every frame.

ColorSystem made more efficient: ColorSystem now stores its data as 4 unsigned char instead of floats. This takes up 25% of the space of storing floating point colors and is much more efficient for rendering. Values are now 0-255.

RenderComponent automatically rebatches when texture source changes.

Bug Fixes

Automated importing of Kivy headers. You will need the master branch of Kivy now as the changes have not made it to a release version yet.

MemoryBuffer freeing bug fixed, cropped up when entities were created and removed very quickly.

Batching bug fixed, there were several drawing order probablys brought to my attention by github user @mahomahomaho. Huge thanks to him for tracking down the problem.

Upgrading Notes

If you have an existing application you are upgrading from KivEnt 2.0, keep these changes in mind:

  1. The arguments for initializing a RenderComponent used to be 'vert_mesh_key', now it is 'model_key' to reflect the new VertexModel class.

  2. You do not need to manually load models if you are just wanting to display textured sprites, however, every sprite will share the same VertexModel and be the size of the first sprite initialized. This is done simply by providing a 'texture' and 'size' argument for the RenderSystem's initialization dict.

  3. ColorComponent is no longer a floating point between 0 and 1., it is now an unsigned char 0-255.

  4. model_manager is no longer a global. To load models access the GameWorld instance's model_manager attribute.

  5. If you have a static renderer, set the force_update property to True or you will not see any rendering.

  6. The old VertMesh class has been replaced with VertexModel. VertexModel is significantly more flexible, VertMesh only supporting floating point vertex attributes, VertexModel supports all GL types.

Particle Panda 2

This handy little app will help you easily create effects for use with the new kivent_particles.

GitHub Windows Android

I am excited to announce the first release of my Particle Panda remake as well. KivEnt's journey started back in November of 2012 with the creation of the first Particle Panda. I knew we could have much better performance than was capable at the time, and thus KivEnt was conceived. It's been a long time and I've rewritten the particle engine like 5 times, but each time it has made KivEnt much more performant.