Tagged: game dev Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 19:45 on 2017-04-24 Permalink | Reply
    Tags: game dev, , , ,   

    Long time no see, but polymorph engine development is back on track!

    The XML describing a polymorph’s project is now able to configure the Ogre’s compositor, understand the post-processing module.

    The first screenshot is using a custom compositor with this configuration:

    <workspace name="TuningScoreWS">
      <script group="General" workspace="CustomCompositor" />
      <colors>
        <color name="background_center" value="0,1,0" node="0" pass="1" index="4"/>
        <color name="background_border" value="1,0,0" node="0" pass="1" index="8"/>
      </colors>
      <variables>
        <variable name="centerx" value="0.5" node="0" pass="1" index="0"/>
        <variable name="centery" value="0.5" node="0" pass="1" index="1"/>
        <variable name="radius" value="0.9" node="0" pass="1" index="2"/>
        <variable name="ratio" value="1.777777778" node="0" pass="1" index="3"/>
      </variables>
    </workspace>
    

    The required files for this compositor (shaders & nodes) can be found in the samples example.compositor.

    The second screenshot is using a default compositor, where only the background color can be modified.

    <workspace name="Default">
      <colors>
        <color name="background" value="1,0,0"/>
      </colors>
    </workspace>
    

    The documentation about the XML is here: https://bitbucket.org/polymorphteam/pe.2.0/wiki/xml-specifications

     
  • frankiezafe 16:15 on 2017-02-28 Permalink | Reply
    Tags: , , game dev, ,   

    It’s holidays in schools this week in belgium, a good occasion for me to pull out of the grave an old project: disrupted cities.

    4 years ago, the scenes have been generated within blender: city maps, meshes and uvs. I was certain it wouldn’t be too hard to port in real-time, and that’s what i’ve started this morning! The planes are generated at runtime inside the engine, the uvs also, and after a rather long loading, everything runs nice and smooth (see the 2 screenshots above). A huge batch of highres textures, scans of a monotype, are necessary for the visual quality of the rendering.

    The background is not full white, leaving some room for bright events.

    The whole project is about wandering in an abstract city.

    As it is holidays for students, i’ll spend mine working on this, thanks to the devs made since the beginning of the year.

     
    • xuv 17:54 on 2017-02-28 Permalink | Reply

      Nice. Though RT? WTF? Isn’t it PE? Maybe TMA.

    • frankiezafe 19:11 on 2017-02-28 Permalink | Reply

      Video is rendered with blender, but it will be done in real-time with polymorph engine in several days!!! 🙂 – currently generating the levels of the towers.

  • frankiezafe 18:46 on 2017-02-08 Permalink | Reply
    Tags: game dev, , ,   

    I’m currently working on a more user friendly mesh, skeleton & materials converter.

    For the little story, when you export a model from blender, the blender addon outputs xml files. These files have to be parsed by the OgreXMLConverter to produce the final files. *.mesh & *.skeleton files are binaries.

    It’s a tedious process, especially when you want to organise your files in the folder structure of the application.

    The polymorph xml converter wlll make this a bit more handy (when ready):

    • hotfolder: define the folder where the blender exports lands after export;
    • output models: define the folder where the .mesh files will be exported after conversion;
    • output skeleton: define the folder where the .skeleton files will be exported after conversion;
    • output material: define the folder where the .material files will be moved;
    • output textures: define the folder where images will be moved;

    These paths will be saved in a preference file next to the application, to avoid having to reset them each time you open the application.

    A demo will come once it will starts to work. For the moment, only the GTK filechooser is plugged in.

     
  • frankiezafe 23:05 on 2017-01-31 Permalink | Reply
    Tags: , game dev, ,   

    3D – puredata communication

    Starting to work on the first external to enable an easy integration of puredata in the polymorph engine.

    The idea is simple: you place a pobject_in object in your patch to receive position (translation), rotation and scale of the 3D objects.

    In edit mode, meaning you have pd with ui and the game running aside, info will go through OSC, allowing a RT modification of the patch.

    In release mode, the patch will be loaded by the application thanks to libpd.

    The pobject_in will work seamlessly in the 2 modes: in edition, you just add an udpreceive object and link it to pobject_in. Once edition is done, if you want to be clean, you just remove the udpreceive. In release, the info will come through a special receive object, polymorph_pobject_in_RT, already included in the pobject_in.

    LibPD being integrated since several month it shouldn’t be too hard to adapt the required methods on the C++ side. I’ll work on this tomorrow, I hope to have a cool demo for sunday!

     
  • frankiezafe 22:03 on 2017-01-22 Permalink | Reply
    Tags: , game dev, , , RTT   

    Currently working on PCamera class (a class to manage … camera!). The new samples/0.1/example.cam shows how to create one and render it onto a texture.

    In these images, the pink texture on the cube is the rendering of the camera rotating in the center of the scene, the tall pink cone. It is very ogry to send the camera to the texture:


    RenderTexture * rt = texture->getBuffer( )->getRenderTarget( );
    custom_wp = compositorMgr->addWorkspace( sceneMgr, rt, custom_cam.getOgreCam( ), cwName, true );
    custom_mat->getTechnique( 0 )->getPass( 0 )->createTextureUnitState( )->setTexture( texture );

    There should be a way to make this a bit more handy, I’ll look into it sooner.

     
  • frankiezafe 13:08 on 2017-01-17 Permalink | Reply
    Tags: , , game dev, , , ,   

    screenshot01172017_125756932

    New example ready for skeletons manipulation.

    In the example, the skeleton debugging is enabled by default. It shows the bones hierarchy and the local orientation of each bone.

    There is 3 transformation spaces for bones, inherited from Ogre3D:

    • LOCAL
    • PARENT
    • WORLD

    All methods to get or set orientation, scale and position are sensitive to this value, except the moveBone methods, not yet finished.

    The example shows also the different ways to retrieve information about the skeleton: list of bone’s name, list of bone objects, access via name, id or pointer, etc.

    The beautiful model i destroy if from Sophie Khan and distributed by #additivism.

     
  • eurydice 11:23 on 2017-01-17 Permalink | Reply
    Tags: , game dev,   

    AMazingGameSS0

    AMazingGameSS1

    First little game without pretention done while learning Openframeworks and C++ during my traineeship !

     
  • frankiezafe 22:28 on 2016-12-07 Permalink | Reply
    Tags: , game dev, ,   

    selection_717

    Triggering sounds when there is a collision between 2 objects is now feasible with the code. A message is sent to pd with the name of the objet and a “contact” flag (left of the image).

    It has been a hell of a fight to get extract “useable” collisions information out the physical engine. There are 3 or 4 ways to listen to them and for each collision you get a LOT of data:

    • number of points
    • localisation of these points on each objet, in local and world cooridnates
    • impulse, frictions, etc

    And, obviously, all this happens for all objects currently colliding…

    The first version of the code will runs on friday evening. It is certainly not the final version. A more serious approach is on its way, but it was too complex (impossible) to finish for tonight.

    And, the sound design is close from 0 🙂

    Stay tune for more!

     
  • frankiezafe 18:40 on 2016-11-25 Permalink | Reply
    Tags: , game dev, ,   

    scene-loading

    Dynamic scenes loading.

    Based on an #XML description of the project, that looks like this:

    • <polymorph version=”0.1″ date=”20161124″>
      • <scenes>
        • <scene id=”3″>
          • <pobjects>
            • <plight name=”main_sun” visible=”1″ debug=”1″>
            • <pnode name=”floor” visible=”1″ debug=”0″>

    and so on, it is easy to load a new scene. The deletion and creation job is managed by a cool object call “PObjectManager” see: http://polymorph.cool/doxygen/classpolymorph_1_1_p_object_manager.html (thanks, doxygen!)

    In the example.1.xml, the key ‘n’ is binded to the method PObjectManager.nextScene().

    A little note: in the scene 1 (the middle one), the pile of plates has been done via a special tag:

    <repeat count=”20″ offset_pos=”0,10,0″ offset_dir=”0,5,0″ offset_scale=”-2,0,-2″ />

    When placed in a pnode, it will generate copies of the object automatically. Similar to array modifier of blender.

     
  • frankiezafe 17:05 on 2016-11-19 Permalink | Reply
    Tags: , game dev, ,   

    Polymorph package is on its way!

    Until today, polymorph was a collection of Ogre addons, independent from each other. The approach has changed a lot during the development of Tuning score. All extra libraries are now linked into one big package:

    • Bullet – physical engine;
    • libPD – sound engine;
    • OSC – Open Sound Control messages, based on udp;
    • tinyXML – for project loading;
    • SDL – for gamepad and joysticks.

    The package uses a project file format, in XML + provides high-level objects and a base class containing all mandatory methods to manage a game:

    • scene & resources loading;
    • window management and events;
    • keyboard and mouse events.

    A large documentation has to be written, but programming architecture is now fixed.

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel