Updates from August, 2016 Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 17:49 on 2016-08-30 Permalink | Reply
    Tags: , , ,   

    Puzzle research for peel.

    In the process of searching a “why” 1, the idea of a messed up structure to reconstruct arose. As the other concepts in the game, it’s easy to understand visually, a bit more hard to describe programmatically. Indeed, once several segments will be connected, rotations will be constrained, and hierarchy tree (3d objects parenting) has to be rebuild.

    In these images, the player starts in the left state, and after rotating and connecting all the parts, he/she ends up in the right state. The images show something looking like a level, but i’m planning to add dynamically the next segments to generate the sensation of an endless puzzle.

    The puzzle starts at the bottom.

    overall-structure-20160930-002

    overall-structure-20160930-001

    Axis of liberty: each start joint (in fuschia) has 1 degree of freedom.

    overall-structure-20160930-liberties-001

    Note: cluster (orange wireframe cubes) must be attached to connector or gap (for the 2 first ). Each cluster knows wich joints are presents in it. If a segment moves, the joints move with it, and potentially reach the next cluster.

    By building a slightly more complex structure and trying out joint rotation with connected segments, collision issues starts to show up!

    overall-structure-20160930-liberties-002-text

    First try could be solved by shortenning a bit the segments:

    overall-structure-20160930-liberties-003

    But these issues can not be quickly fixed:

    overall-structure-20160930-liberties-004

    overall-structure-20160930-liberties-005

    overall-structure-20160930-liberties-006

    Enabling and disabling liberties is a crucial point in game mechanics, and will not be easy to calculate… At least, i don’t have the solution popping out right now.

     
  • frankiezafe 16:45 on 2016-08-26 Permalink | Reply
    Tags: , ,   

    Gamepad addon for Ogre.

    First version of the code is ready:

    • detection of gamepad plugged / unplugged
    • all buttons & axis accessible
    • events on gamepads and on each axis and button
    • precise axis + delta of motion
    • precise axis + delta of motion
    • separated thread for data retrieval

    repo: https://bitbucket.org/frankiezafe/ogregamepad/

    gamepad_parameters_in_ogre3d

     
  • frankiezafe 19:09 on 2016-08-25 Permalink | Reply
    Tags: ,   

    Game controller wrapper.

    Just finished a nice piece of code to manage gamepads (and potentially joysticks) in an efficient and clean way.

    For start, you just ask Input manager to start a game controller

    input::InputManager::openGameController(0);

    To get the information out of the InputManager, you call:

    input::DataFrame input_frame;
    input::InputManager::getInputFrame( &input_frame );

    To detect change events (equivalent to button pressed), you have to declare the DataFrame as a class parameter. Each time you call getInputFrame, the events are rendered.

    To access events and input values, you have to read your input_frame. It contains a vector of GameControllerFrames. Each GameControllerFrame has an id, corresponding to the id you gave in openGameController( ID );

    A GameControllerFrame also contains several maps:

    • axis: a map of vector2d for 3 axis: left & right sticks + trigger.x (~LT) & trigger.y (~RT). Vectors are normalised and stabilised.
    • buttons: a map of boolean, true if the button is pressed
    • axis status: indicate if the axis is active, inactive, has just been activated or deactivated
    • button status: indicate if the button is active, inactive, has just been activated or deactivated

    activated and deactivated are there only for one update. After that the status becomes generally active or inactive.

    It is important to understand that these status depends on the frequency of InputManager::getInputFrame( &input_frame ). The previous data frame is stored in the local DataFrame, NOT in the InputManager. The idea is to make a clean data retrieval when needed, and not risking interruption during the main loop.

    The InputManager runs on its own thread and does not trigger events in the main application.

    The code is available in the example-gamepad.2.0 in bitbucket. See related issue.

    Selection_677

     
  • frankiezafe 12:04 on 2016-08-24 Permalink | Reply
    Tags: , , ,   

    Shadows, at last!

    Due to some tiny errors in the shaders of the ShadowsV2 sample, it has been quite tricky to make PSSM shadows work in the example.

    Not sure yet how this will behave with transparency and skinned meshes + borders require a bit of blur, but cool for now!

    screenshot08242016_125517735

    screenshot08242016_125457418

    screenshot08242016_125541686

     
  • frankiezafe 19:15 on 2016-08-23 Permalink | Reply
    Tags: , ,   

    Bullet first steps.

    After reading the very basic bullet quick start pdf (and therfore really quick, indeed), bullet starts to animate #ogre3d objects.

    A remark: sphere basic prefabs in ogre3d has a default radius of 50!

    screenshot08232016_200741558

    screenshot08232016_200747691

    screenshot08232016_200751290

     
  • frankiezafe 15:19 on 2016-08-23 Permalink | Reply
    Tags: , , ,   

    Puredata in Ogre3d, demo.

    Use example-libpd.2.0 and the OgrePD addon to reproduce the video. Info about how to setup are here.

    demo.pd  - -home-frankiezafe-forge.ogre-polymorph-engine-example-libpd.2.0-app-dist-media-pd_675

     
  • frankiezafe 11:21 on 2016-08-23 Permalink | Reply
    Tags: , ,   

    Puredata addon for Ogre3d.

    The first version of the OgrePD addon is ready in bitbucket. It uses SDL and pulseaudio to send the sound to the sound card. A huge advantage of pulseaudio, compared to the standard alsa in pd, is that the sound card is not kidnapped by the application.

    An example will follow very soon.

     
  • frankiezafe 18:09 on 2016-08-20 Permalink | Reply
    Tags: , , SDL   

    Game Controller access via SDL.

    Thanks to SDL, it has been very easy to access to the Xbox controller, even on linux. The empty example of the engine shows how to do that in ogre.
    https://bitbucket.org/frankiezafe/polymorph-engine/src/ > polymorph-engine / empty.2.0 / app / input /

    The sources also includes a FindSDL2.cmake, who makes integration in ogre’s cmakes much more natural.
    See ogre.0.2-setup.

     
  • frankiezafe 20:51 on 2016-08-19 Permalink | Reply
    Tags: , , ,   

    Open 2 big worksites: #bullet and #pd.

    Both of them are buggy, but for different reasons:

    • bullet: the addon dates from version 1.9, and a lot of things have changed in the way ogre is managing resources. A cleanup is started, but there are important classes declarations that needs to be reviewed.
    • libpd: the library is a marvellous to install, and the example-libpd worked after several minutes. The main issue here is to setup rtAudio in the proper way. The code provided in the library cpp example is not compiling. Require a closer look.
     
  • frankiezafe 17:53 on 2016-08-18 Permalink | Reply
    Tags: , , ,   

    First Ogre addon for OSC.

    Repository: https://bitbucket.org/frankiezafe/ogreosc

    It was a hell with OgreBullet addon. A part of the reason was that I didn’t get the way CMake is dealing with the compilation, installation and so on. The OgreOsc addon was a good way to get it.

    The addon doesn’t do a lot for now: it just contains a simple sender. Other classes will as soon as I need them.

     
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