Re: Reflection in game engine (c++)
"Jarkko Lempiainen" <[email protected]> Tue, 19 Mar 2013 15:58:39 -0400
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Message-ID | <[email protected]> |
This is a multipart message in MIME format. --===============0021094543== Content-Type: multipart/alternative; boundary="----=_NextPart_000_001D_01CE24BA.A0544F80" Content-Language: en-us This is a multipart message in MIME format. ------=_NextPart_000_001D_01CE24BA.A0544F80 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit While ago I wrote an introductory article to C++ reflection system I implemented, which may answer some of your questions about reflection in general as well: http://community.spinxengine.com/content/40-introduction--sxp-reflection-sys tem.html Simply put a class reflection exposes class members in run-time and you can build other more complex systems (e.g. networking, editor property grid, versioned save/load, etc.) on top of it without having to write specific code for each class for these systems. Cheers, Jarkko From: [email protected] [mailto:[email protected]] On Behalf Of Massimo Del Zotto Sent: Tuesday, March 19, 2013 3:23 PM To: [email protected] Subject: Re: [Sweng-Gamedev] Reflection in game engine (c++) As a side note, the Bullet physics API serializes everything with its accompanying DNA as far as I know. I'd just throw the link in for documentation. http://bulletphysics.org/mediawiki-1.5.8/index.php/Serialization_DNA_restric tions,_size_and_alignment_rules I have no idea if this qualifies as "reflection" but it seems Jarkko' suggestion is really good habit to me. Massimo ------=_NextPart_000_001D_01CE24BA.A0544F80 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" = xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta = http-equiv=3DContent-Type content=3D"text/html; = charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 = (filtered medium)"><style><!-- /* Font Definitions */ @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman","serif";} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-reply; font-family:"Calibri","sans-serif"; color:#1F497D;} .MsoChpDefault {mso-style-type:export-only; font-family:"Calibri","sans-serif";} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue = vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'>While ago I wrote an introductory article to C++ reflection system I = implemented, which may answer some of your questions about reflection in = general as well: <a = href=3D"http://community.spinxengine.com/content/40-introduction--sxp-ref= lection-system.html">http://community.spinxengine.com/content/40-introduc= tion--sxp-reflection-system.html</a><o:p></o:p></span></p><p = class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'>Simply put a class reflection exposes class members in run-time and = you can build other more complex systems (e.g. networking, editor = property grid, versioned save/load, etc.) on top of it without having to = write specific code for each class for these = systems.<o:p></o:p></span></p><p class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'><o:p> </o:p></span></p><p class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'><o:p> </o:p></span></p><p class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'>Cheers, Jarkko<o:p></o:p></span></p><p class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'><o:p> </o:p></span></p><p class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497= D'><o:p> </o:p></span></p><p class=3DMsoNormal><b><span = style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>= </b><span style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> = [email protected] = [mailto:[email protected]] <b>On Behalf Of = </b>Massimo Del Zotto<br><b>Sent:</b> Tuesday, March 19, 2013 3:23 = PM<br><b>To:</b> [email protected]<br><b>Subject:</b> Re: = [Sweng-Gamedev] Reflection in game engine (c++)<o:p></o:p></span></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>As a side = note, the Bullet physics API serializes everything with its accompanying = DNA as far as I know.<o:p></o:p></p><div><p class=3DMsoNormal>I'd just = throw the link in for documentation.<o:p></o:p></p></div><div><p = class=3DMsoNormal><a = href=3D"http://bulletphysics.org/mediawiki-1.5.8/index.php/Serialization_= DNA_restrictions,_size_and_alignment_rules">http://bulletphysics.org/medi= awiki-1.5.8/index.php/Serialization_DNA_restrictions,_size_and_alignment_= rules</a><o:p></o:p></p></div><div><p = class=3DMsoNormal><o:p> </o:p></p></div><div><p class=3DMsoNormal>I = have no idea if this qualifies as "reflection" but it seems = Jarkko' suggestion is really good habit to = me.<o:p></o:p></p></div><div><p = class=3DMsoNormal><o:p> </o:p></p></div><div><p class=3DMsoNormal = style=3D'margin-bottom:12.0pt'>Massimo<o:p></o:p></p></div></div></body><= /html> ------=_NextPart_000_001D_01CE24BA.A0544F80-- --===============0021094543== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com --===============0021094543==--