Pipeline Checklist For Game Development

This is a blog I wrote on my linkedin account.

When I was working on a team to develop a game called Apex Dawn I wanted everybody to be on the same page for asset management. So I made several documents that team members could refer to. This particular document was a checklist to follow before things were imported into the engine. Hopefully this will be helpful in your own game development process.

For Naming Conventions refer to: Name convention Document

Center Pivot Point

Set Pivot point to Origin

Z Axis of Mesh is pointing forward

Reset Xforms

No holes in Mesh

No flipped Normals

Create LOD’s (if needed)

Create Collision if needed

Static Mesh Unwrapped or Box Mapped

Scale Static Mesh to Game Character (Mannequin FBX in the team folder)

Avoid N-gons unless surface is flat. Re-triangulate mesh if needed

Remove Turbosmooth

Standard Textures Authored at 1024px. Lower Rez Textures Authored at 512px

FBX’s need to be in a properly named folder for FBX’s

Standards of Project Management need to be followed

Bitmaps saved as Targas

FBX’s named

3ds max with associated targa’s in a 3ds max folder

Export with Smoothing Groups

If the static Mesh has several elements combine it together using the attach mode or collapse utility

Name FBX

Name Materials

Name Bitmaps

3ds max filed named properly

3ds max have named layers

3ds max have selection sets

Authored Photoshop textures in a named Zbrush folder

Zbrush and Ztools files in named Folder

Lessons Learned in Substance Designer (Part 1)

Introduction

This post will be more of a tutorial within a tutorial. I plan to make this a series as I share the things I learn when while following a tutorial. I have a good knowledge about substance designer but I followed a pluralsight tutorial to see if there was more I could learn.

Performance Is Key

The tutorial uses a tile generator node but doesn’t utilize much of the functionality. In the tile generator you can input several different bitmaps to give you better control over the process but in the tutorial it only says to use one. Although very useful I have a habit of staying away from the different tile generator nodes designer has to offer. The nodes are generally heavy on performance and my poor computer really slows down if you ask to much of it. I wanted to try to optimize the tile generator node because waste not want not.

Learning To Optimize

I made a copy of the tile generator node then renamed it to customTileGenerator because substance designer graphs that ship with the software are not editable. Next in customTileGenerator I deleted all the inputs I wasn’t going to use. I reduced the graph from 9 inputs down to 2 inputs. I changed the default parameters within customTileGenerator so anything you input will be the the pattern that will be used in the graph.

After on the Left. Before on the Right
Be Wary of Deleting Variables

Next I deleted any exposed parameters that were related with inputs that no longer existed to keep the customTileGenerator organized. But when you delete things without a care in the world problems are sure to arise. I began to see errors in the customTileGenerator’s Fx-map node. The Fx-map used the parameters I deleted to calculate values on how it should generate tiles in the graph because I need it to generate tiles.

Fx-Maps in Substance Designer
A Little TROUBLESHOOTING Is worth Performance

I’m not familiar with Substance Designer’s coding within Fx-maps. I had to tinker a bit to find a solution. All the parameters I deleted were tied to a float or integer variable. So I went through the unfamiliar code while looking for places with missing variable errors and replaced them with zeros. Many of the variables were used with other values so I figured if I multiplied by zero it would be similar to the value not being there. I chose this solution because it was the only solution I could think of without learning the coding in Fx-Maps. Then I realized I can reset parameters in the Fx-maps so I didn’t have to replace values with zeros.

Coding within Substance Designer.
Plans For the Future

Maybe in the future I will learn how coding works in substance designer but in this instance I only wanted to optimize the code.