Tuesday, March 17, 2009

my CV

Download Link:


Read More...

Monday, March 16, 2009

A few videos show my Editor functionalities.

1.Load/Save Editor layout:


2.Multi Project working environment:


3.Load/Save scene using .NET XML serializer/deserializer, native running test using TiniXML:


Monday, March 9, 2009

.net serializer/deserializer

Add native application running test functionality;
Layout Save/Load
Here is the structure of scene load/save part.

Why not use TiniXML to do all these jobs?
.net XML Serializer is quite easy to use and i have ready made property classes for property grid, i only have to serialize these property classes into an xml file instead of serialize the whole binary object. It also supports Generic Template List serialization.The lack of supports for Dictionary is a pity though( i have to transport elements of dictionary to a list for this.).

However in deserialization procedure
, TiniXML is much easier to use than .net xml deserializer.

First, i need to prepare an empty constructor for every class i want to deserialize. For this i have to change every referenced member of class to pointer member so i can easily initialize them to NULL in c++/cli for the empty constructor.
Next, in the deserilization procedure it will call every property's set function automatically, so
i have to create certain object after some important property are read at the beginning. Thus i need to fix orders for properties. Add this [XmlElement(Order = ..)] for this step.[XmlIgnore] to ignore the property you don't want to serialize or native member.
The only issue i haven't solved is the situation where you have two classes with inheritance relation. The parent classes' properties are prior to the children classes' properties in the serilized xml file. And there are always situation where the parent class includes an pure virtual object which can't be instantiated first and need to pass children's pointer instead.So deserialize children classes' properties first to instanciate a children class first is the only way to solve this inheritance relation's deserialization.But there is no way to change this parent-children properties order via xml serilizer.( i searched internet and didn't find any one solve this.) I have to change inheritance relation to include relation.

Finally i found i used much more time to solve all these issues but save quite a lot of code lines(I believe) than using TiniXML. Hope serialization of .net can become better in the future.


Read More...

Wednesday, March 4, 2009

Recent project

Didn't update my blog for two weeks. the first week i was working on my editor, adding load/save scene.  It was nearly finished and i will post progress when i finish it completely. And from the second week until now, i was busy making a game with two friends for the Microsoft Image Cup. Ben and me didn't plan to apply for this until we finally find our artist Gao ying who is one of the artist from the Dare2008 winner team.We got 6 days to finish our first demo and submit.


Plus we are obliged to use XNA for this competition. My friend has his own XNA renderer for Axiom engine. From this beginning we found StillDesign physx wrapper for us to connect XNA with physX engine. We worked hard for the whole week, however there was a networking problem at the end that we failed to upload our game to the website. Now i hope they give us another chance to submit our work. Anyway thanks to Benjamin ,Gao ying and me too, that we get our one week product --nano game. Here are screen shoots of shooting virus inside bloodtube.
 

Level Design:

Free exporter OgreMax: can export our scene to xml file, and we made the loader to load the blood tube level and cells as we designed in 3D tool.


Physics View to help us checking physics status of our level elements.