Since we've been discussing the many uses and functionalities of game engines, this blog I will go over the tools my GDW group plans to create in TwoLoc, in conjunction with the GDW and Capstone. Our group (Gallium Gaming) has been working on a multiplayer game over the summer using HeroEngine; for GDW we have been approved to create tools for our game engine instead of a whole new game. This also ties into our Capstone Project, as creating and marketing the game will make up our project parameters.
The tools we make will be created using OOP and Game Engine concepts. We have planned to make tools which will provide extra functionality our project needs to help streamline the production process. With that in mind, our first tool will be a batch image converter. HeroEngine prefers textures be in .DDS (Direct draw surface) format because it uses DirectX for rendering, and .DDS files can be used in several different ways. .DDS files are also readily useable in OpenGL via the ARB texture compression in GLSL.
We chose this as our first tool because we will need to convert all our texture files to .DDS prior to uploading them in the HeroEngine repository. A batch converter will remove the tedious process of saving files as .DDS in photoshop (only after installing the proper plugin from nVidia). The idea is that because a game engine excels at processing and converting data, we can use this functionality to convert any number of texture file types into .DDS's. Polymorphism will be very useful because we can use a virtual function like Convert(); on each input file and they will all be converted, even if there are several different image formats.
The next tool we are planning to create is a HeroEngine model viewer. There is already an existing one, but it only features the geometry and base texture of the model. HeroEngine uses .HGM mesh files to represent objects instead of the standard .OBJ format. .HGM's are special in that they tell HeroEngine the exact shape of the mesh (whether concave or hollow) for collision purposes. We plan to create our model viewer with additional functionality such as applying shaders and post-processing effects to the models.
Once again polymorphism will help keep this tool efficient, as we can Load(); any model and then manipulate it however we want. This can include characters, objects, and any other 3D art assets. We are building this advanced model viewer so we can preview the look of our assets without going through the whole process of getting a model into the game world. This consists of uploading the model to the repository, importing it into the HeroEngine library, and finally loading it into the game world.
Finally, we are planning to create a couple smaller export tools for Autodesk Mudbox and Google Sketchup. The exporters will convert their respective file formats into .HGM files that the HeroEngine can then use. These tools will have a single purpose each, and thus are smaller and lower priority for the game. Like the first two tools, they are primarily designed to streamline the asset production process. We plan to have a large variety of weapons and objects in our game, thus need to be able to develop them rapidly. Once built, these tools will decrease production times in the long run.