Friday 22 November 2013

GED Blog #6 - GDW Progress

While the second last milestone was approaching, we started to try putting things together to make our prototype. My role is 2D artist in the team, but I also responsible for the level design, 3D models, and animation. So I created the game world and all the assets in Maya like we designed earlier.


The above image is the overview of the world we had for the GDW milestone. It was not completed but we had a few blocks done to demonstrate how the environment was going to look like in the final product.



The camera is zoomed in onto the character in this example to demonstrate a better view of the environment.


At this point, we had a rough level design environment, but we were not sure how to implement it into Phyre engine. We decided we might use the Phyre engine level editor to build the level at the beginning, but due to the limited time we had before the milestone, we had done it differently.

Instead of loading each individual models to the engine, we loaded the entire scene instead. Basically, we wanted to send Phyre engine the location of each object in Maya and let it places each object individually.


To begin with, we kept the transformation data of each of object instead of freeze it. For example, the police station had transformation on x and z axis from the world origin and we want to export that to the engine. Therefore, instead of loading very object and place them all over again, we can use a script in Maya to export the scene, and use the data to recreate the scene in the program.


The naming of the object is a very important. We wanted to have all the information about the object in the name so it will be easier to organize in the program. (type of object)_(model name)_(model's material name)_(type)_(script name if there is any) was the template we followed when we named our objects. For example, police station was an object that had a specified police station material and it was static, so we named it o_policestation_matpolicestation_s. The program looked for the model file named policestation, look for the material file named matpolicestation and identified it as an static object. If we did not put any material down in the name, the material was set as default and the program used the material in the model file instead. Besides object and static, there were also trigger, light, and dynamic type.

We had set up the scene to be ready to export, then we set up each object to import to the program.


Using an fire hydrant for example, it was named according to the name in the scene and same as the texture. Instead of using Maya shader, we had to apply collada shader instead. It was because Phyre engine did not have much room for data, hence everything had to be very optimized. Collada shader was to simplify or compress the material information in a way so the engine could read it easily. Moreover, the object had to be set in the world origin at 0, 0, 0. So there would not be any double transformation when the program placed the object.

Finally, it worked like we planned. This is how we implemented our asset into the game and I will upload a screenshot in one the upcoming blogs.

No comments:

Post a Comment