top of page

Game Engine Engineering Assignment - 7

  • Writer: Vikram Venkatesh
    Vikram Venkatesh
  • Oct 15, 2020
  • 2 min read

Updated: Sep 25, 2023

This was an exciting assignment, as we pivoted for the first time, to explore a third party software - 'Autodesk Maya'. Maya is a popular 3D modelling software, primarily used for asset creation. It is now our job to create, kind of an asset pipeline, to export assets from Maya to our engine. We basically do this by writing a plugin so as to export the asset from Maya to a format which is more suitable for us (Spoilers: It's JSON from the last assignment)

I added two cylinders and a disc in this scene, exported fresh from Maya. While I couldn't wrap my head on what reference exactly would be needed for this mesh exporter project as it's pretty much independent as a tool, I have added a reference to Windows(I don't think even this is required). Also this being a tool to be used by a third party, no projects in our solution depend on this exporter project.


There is a ton of information, especially on vertices, which Maya provides us. For eg. Normals, Position, Tangents, UV texcoords etc. which we might use as we proceed ahead. Currently, we just use the position as we haven't set up our .mesh format to accommodate all that. But I have implemented the interface in a way that, it wouldn't be to hard to do so at some later point.


Since we have created this project as a dll, renamed as mll for Maya, we copy it to Maya's plugin folder through our build step and voila! We can now access our plugin through Maya. We enable it through the plugin manager, and when exporting we can see that our custom file format is available as one of the options.


Also we can easily debug the plugin by attaching a debugger to Maya through Visual Studio. Here's a snippet of hitting a breakpoint, when trying to export from Maya with our plugin.

Currently, there is no hard limit on number of vertices as such because, I'm using std::vectors. I wanted to experiment a bit on this aspect so I changed one of the models being loaded to a high-poly gun. While the program doesn't crash, it certainly does freeze on the loading part. I'll try to find how to mitigate that in the near future.


Also the OpenGL problem has carry forwarded and I'm yet to find a solution. So no OpenGL build this time either folks :(


Controls:

ESC – exit.

Up/Down/Left/Right - Move the Cylinder

W/A/S/D - Move Camera Forward/Left/Backward/Right


Comments


bottom of page