dev

A lot of work has been done on…

A lot of work has been done on the OSC addon for godot this week: 2 new classes for reception and emission fully integrated in the engine (with icon and UI configuration) and an OSCmessage class available in gdscript to read the received message. The repositiories are here: https://github.com/djiamnot/gdosc, official one https://github.com/frankiezafe/gdosc, a fork of

Visual environment of a C++ developper working on…

Visual environment of a C++ developper working on a server/client application: Oracle developper studio, terminator and clementine, for the upper-layer. Below: tortoise-hg (versioning, also available in oracle), firefox (stackoverflow, cpprefrence & time tracking system), riot desktop client in background and one or two file browser windows…

Testing different profiling tools on the engine Even…

Testing different profiling tools on the engine. Even if the performance analyzer seems very nice, plenty of graphics and tabs, i will keep on with valgrind for the moment, as it does what i need (memory leaks detection), and also because i get what it does much more easily than the tool of oracle! Valgrind,

It has been an hardcore saturday evening i’ve…

It has been an hardcore saturday evening: i’ve struggled with Bullet for 3 hours, and, finally, i’m able to get all bullet events in my code, without having to “manually” asking to each object “are you touching somebody?”. It’s a bit weird, but to achieve this you have to plug a static method on the

Working an important refactoring of the classes for…

Working an important refactoring of the classes for the next release of the engine (v0.2). The works will starts beginning of 2018. There is a complete description of the new classes here: https://bitbucket.org/polymorphteam/pe.2.0/wiki/pobject

PLine a class to draw lines It might…

PLine, a class to draw … lines! It might seems stupid, but drawing lines is no the default purpose of a game engine. Drawing a line that connect 2 objects for instance is painfull to do with a parallelepiped, especially when you need its thickness to stay constant! The class PLine is there to help.

1K spheres 7 static boxes It has been…

1K spheres, 7 static boxes. It has been a hard day: the communication between Bullet and Ogre has been completely reviewed: update of the physical world is now linked to the Ogre rendering cycle through Ogre::RenderQueueListener, meaning a more consistent frame cycle; PObjects (any renderable object in the scene) are smart enough to update the

Not very sexy but very useful there are…

Not very sexy, but very useful: there are 2 new methods in the bullet wrapper that enables retrieval of an ordered list of the collisions along a ray. The job was super easy, thanks to the bullet lib consistency and documentation. The object to use is AllHitsRayResultCallback. Once processed, it returns a list of bodies

Straight skeleton C++ implementation

Long time no seen! Lot of things happens in may and june, that’s one of the reason of this long silence. The other is the library i’m working on to generate the maps of Disrupted Cities. Implementing a complex process in an efficient way is harsh. But it starts to works nicely. A small openframeworks

To prepare the work session between Tomas Turine…

To prepare the work session between Tomas Turine and Lisa Nelson, I prepared a OSC serialisation of all the objects available in the 3D world, including mouse and cameras, and built an interface in pd to visualise and use the data.

Reviewing the road generation system generation of normal…

Reviewing the road generation system. generation of normal and tangent for each segment (cyan & purple vectors): they can be used easily to generate a new road starting from any point; a million better random selection, based on the formula: X1 = a*X0 + b % m; This random generation merits a bit of attention.

flat network no Z slight Z curvature strong…

flat network (no Z) slight Z curvature strong Z curvature strong Z curvature strong Z curvature After a bit of struggle with the management of a 3d grid, the advantage is there: it’s now easy to generate a road network in 3D, with automatic connection of the streets while generating them. It’s a simple brute

Several hours of work later the class PMaterial…

Several hours of work later, the class PMaterial is fully integrated to PNode. This part has been tricky: materials and textures are shared objects, managed by managers below the objects. The approach is to create PMaterial on demand, when you call pnode.getMaterial, for instance. Once created, it stays in the pnode until you destroy it

new class in package PMaterial This class is…

new class in package: PMaterial. This class is an helper that simplify the access to the multiple layers of Ogre’s materials. There are 3 levels in a material: technique pass texture units The usual Ogre way to access to modify a pass diffuse is looking like this: Ogre::MaterialPtr ptr = Ogre::MaterialManager::getSingleton( ).load( “mat”, “group” );

I’ve learned something really important today an OpenGL…

I’ve learned something really important today: an OpenGL context can be accessed by one and ONLY one thread! See Under what circumstances would glGenBuffers/glGenBuffersARB fail?. And this is the first time I feel annoyed by the singleton approach of Ogre3D. In my asset converter util, I use Ogre object, the MeshManager mainly, to convert xml