Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand the buffers implementation. #2326

Open
fundies opened this issue Feb 6, 2023 · 4 comments
Open

Expand the buffers implementation. #2326

fundies opened this issue Feb 6, 2023 · 4 comments
Labels
GSOC Google Summer of Code GSOC-Done

Comments

@fundies
Copy link
Contributor

fundies commented Feb 6, 2023

Better (de)serialization support for objects

The ENIGMA project uses a hierarchy of objects starting with object_basic, and
ending with the object the user creates to be used in-game to represent
entities. These objects have (de)serialization routines implemented for them,
with the compiler automatically generating the routines for the auto-generated objects
as well as user-defined ones. As it stands, the serialization framework
supports the builtin types (like int, bool, long, float) and a few custom
ones (like string, var and variant). However, the method used to implement
support for these is not very clean as it checks at compile time the type of each
argument against an if-else ladder, which is difficult to read and extend.

  • The project would make the serialization framework easier to use and extend by
    changing the way the serialize, serialize_into and deserialize functions
    work to dispatch to supported types implicitly without the need for an if-else
    ladder. This would mean that adding support for types would be as simple as
    implementing the three functions for them which would then be picked up by the
    system automatically.
  • The contributor would then implement support for additional data types like
    generic routines for map, vector and complex numbers. This would enable
    more easily serializing ENIGMA's internal state for use in sending state
    either across a network or into a file.

Mentors: Greg, Robert
Difficulty: Medium
Expected size: 175h
Skills required: C++ fundamentals (especially familiarity with templates and
template metaprogramming)

@fundies fundies added GSOC Google Summer of Code GSOC-Short labels Feb 7, 2023
@ASN011
Copy link

ASN011 commented Feb 13, 2023

@fundies I am interested in it...

@rajeck1234
Copy link

@fundies I am intrested in this one

@GeoffreyLazer
Copy link

@fundies i'm interested in this

@Avi0cancode
Copy link

@fundies I think I can do this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GSOC Google Summer of Code GSOC-Done
Projects
None yet
Development

No branches or pull requests

5 participants