Tuesday, March 17, 2009

my CV

Download Link:



RESUME
Personal Information:
Famlily Name: Xue Given Name: Youchao
Date of Birth: 14/10/1982 Birth Place: China Sex: Male
E-mail: xueyouchao@gmail.com
Mobile: 07980412147
Address: 11 Greg street, Inverness

Education & Working Experience

Sept. 2001 ~ July 2005:Nanjing University of Aeronautics and Astronautics ,Bachelor degree in Information and Computational Science specialized subject.
Courses studied:
Mathematical Analysis, Numerical approximation, Methods of Mathematical Physics, Numerical Methods for Differential Equations, Data Structure, Artificial Intelligence, etc. math, computer science related courses.


Aug. 2005 ~ Nov.2006: worked in Huawei Technologies Co. Ltd., ShenZhen, P.R.China as a software engineer
Joined several telecommunication projects, worked through the full life cycle of software development, including project planning, requirements analysis, design, coding, unit testing, system integration testing, debugging and release.

Nov 2006~ April 2007: English study for IELTS test

July 2007 July~ May 2009 : University of Abertay Dundee
Computer Games Technology Course for MSc/PG Dip

July 2009 ~ Now: Weatherford International, 3D Graphics programmer

Developed projects:
3d AI path finding application demo using vertex shader- accelerated skeleton animation tech.
Directx + Physx + Normal map, vertex animation demo.
Group project : Ant game
PS2 coursework: terrain rendering demo on PS2
World of Champloo: A complete 3D game with split screen and networking two versions, presented in daretobedigital game competition 2008.
Gesture recognition using the Wii remote with neural network approach
1 week's fast-build game using XNA and Physx Engine: Body Cleaner
Ogre3d Editor
Screen shots from some of my previous projects:




Please visit my blog for more details.

Developing Skills
Frequently used programming language: C/C++, c++/cli, c#
Develop Tools: visual studio 2008
Using SDK ,library, Frameworks: .net framework, Ogre engine, Nvidia Ageia Physx engine,Raknet networking lib,directx sdk,XNA etc.
Familiar with HLSL,CG shading language and FXcomposer tool.

English Skills :
Have a good command of both spoken and written English

Hobbies
basketball, traveling, programming, PC/ps2/psp/xbox360 games.




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:


Read More...

Monday, March 9, 2009

.net serializer/deserializer


Load Scene/Save Scene Complete;

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.

Read More...