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
Comments
@fundies I am interested in it... |
@fundies I am intrested in this one |
@fundies i'm interested in this |
@fundies I think I can do this. |
Abhishek260305
added a commit
to Abhishek260305/enigma-dev
that referenced
this issue
May 20, 2023
25 tasks
Open
26 tasks
27 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Better (de)serialization support for objects
The ENIGMA project uses a hierarchy of objects starting with
object_basic
, andending 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 customones (like
string
,var
andvariant
). However, the method used to implementsupport 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.
changing the way the
serialize
,serialize_into
anddeserialize
functionswork 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.
generic routines for
map
,vector
and complex numbers. This would enablemore 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)
The text was updated successfully, but these errors were encountered: