Projects Jams Discord News
Resources
Unwind Fishbowls Forums
About
Manifesto Our values About
Log In

The goal has been achieved

Dominik Madarász April 14, 2018

Hello everyone!

Do you sometimes sit down and think about how things started, what the goals were when you went on a journey to code what you like and you experienced a new lands of knowledge? Well, we did. We went on a journey during which we have learnt to code better, to understand this field a lot more, but more importantly, to get to know each other even better. We often ended up using VoIP and remote screen software, so we could discuss what to work on and how to approach it. It's what I think made the goals fulfilled. Not the fact we finally made a piece of software that works as originally intended, but the fact we worked on something as a team, improving ourselves.

Librg enters a maintenance status, as we've reached the point when we're content with what this library offers. We still provide full support and QoL patches, so that it can be used at any time, improved over time and keep being fresh and aligned to what we think is a good status of the project. Time will tell

Read more

Using HTTP for an MMO game?

Dominik Madarász January 26, 2018

Hello folks!

We hope you are doing well. Today we wanted to make a small update post with the current situation, and what is happening. And the most important news - nothing happens! Or as you say in the development world, everything is stable.

Around a month ago we release minor update 3.1, which fixed a few bugs and added a few minor features, you can check out changelog on our github.

Our next planned minor update is gonna be focused around jitter buffer, or "how to make a world a nice discrete place". We want to give users ability to setup a time, or a buffer size, which will average and distribute update packets as evenly as it can, by requiring minimal changes from their side.

And our next major update will be focued around splitting up currently hardcoded net library backend we are using, into a more modular-ish way. So librg header will just define methods that will be used for network backend, and lets say, librg_enet.h will have them implemented. This way user

Read more

Version 3.0 has been released!

Dominik Madarász December 1, 2017

Hi everyone,

It has been 2 months since we've released the second version of librg. When we've started working on 3.0 however, we've decided to revamp and re-design some parts of the library heavily:

  • We've decided to drop support of our component system in the core and make an extension out of it. This means, users aren't forced to use our component system anymore and they can pass their data using user_data pointer.
  • We've also finally brought library contexts to the codebase, so user can maintain multiple instances of librg in a single process.
  • The library itself is much easier to embed into an existing project as all our dependencies part of the same compilation unit used by librg.
  • World reconstruction is now a thing, while still not being perfect, it's already stable and improves the performance a lot, since we don't need to reconstruct the whole entity scene graph every tick anymore.
  • [li] Built-in (or custom) events can n

    Read more

    librg - November 2017

    inlife November 11, 2017

    Hello guys,

    This update post will be short. Just want to quickly describe what we are currently doing, and what are our plans for the future.

    I think you remember from our last update that we were working on the version-3 update. And we planned to release it at the end of October 2017. However we've decided to slightly(or not) hold the update, and include some major changes to an api.

    Some of these changes we wanted to share with you guys: We are planning to extract and move our EC system to a separate optional module, considering the fact that not many people really need an built-in EC system in librg and/or they are using their own systems already.

    We are still working on some prototype, but here are our thoughts on how we can make a new entity might look like: [code] typedef struct { u32 id; u32 type; u64 flags;

    f32 stream_range;
    zplm_vec3_t position;
    
    librg_peer_t *control_peer;
    librg_peer_t *client_peer;
    
    zpl_array_t(librg
    Read more

    librg - one month update!

    inlife October 10, 2017

    Welcome everybody to our second post.

    First of all we would like to give you guys updates about our current status, and what we have been doing for the past month. And oh boy, that was one hell of a month!

    Lest start with nice list of things that we planned to do:

    • Multi-threaded world reconstruction.
    • Re-visit and revamp all memory allocation strategies.
    • Add support of entity cooling, decreasing the number of updates sent.
    • Add ability to reject all possible built-in events.
    • Add fields: peer and "custom" pointer to the event structure, possibly giving them more potential.
    • Consider single-var context representation and context switching.
    • Add more assertions to possible user inputs.
    • And of course various performance optimizations.

    So, concluding the list above, we had 2 major tasks, refactor the library, to support contexts, or in other words, make it thread-safe. And second one, refactor the component system. The component system refactor was not

    Read more

    Here comes the librg!

    Dominik Madarász September 10, 2017

    Hello everyone! Being a first blog post on this page, I would like to introduce you to our project and tell you about our future goals.

    Essentially, librg is not an network library, as you might think from the first glimpse. It contains entity-component system, bundled with event system which are both connected to network library. All this connected together, and mixed with thought-out event flow, gives you a simple way of creating something. It feels not just like a library, but like an architectural framework.

    This project initially started as a out-of-the-box package suited primarily for games which multi-player addition was usually programmed by fans. Such task requires a lot of reverse engineering and research taken on the game. To simplify the process of multi-player creation, this package would've deal with very common situations. (e.g. world sync, resource/game mode management and scripting support)

    However, our initial version was harder to embed into existing projec

    Read more