-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathindex.html
11 lines (11 loc) · 26.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title>README.md</title>
<link href='styles.css' rel='stylesheet' type='text/css'>
</head>
<body class='typora-export os-windows' >
<div id='write' class = 'is-node'><h1><a name='header-n3' class='md-header-anchor '></a>The Ramen Unity Style Guide</h1><h3><a name='header-n6' class='md-header-anchor '></a>For file structure, naming conventions and other things</h3><p>These are guidelines for keeping your project organized and allow your team to quickly find the assets they need. Games are large projects that span several months, thus having standardized conventions that make sense will avoid headaches in the long run.</p><p>Note that your team and project might have different needs, use different software, etc. Use this guide only as a base to decide on what works for your team. Every project should have its own, easy to find, style guide, so everyone in the team is up to date in the project's conventions.</p><h1><a name='header-n11' class='md-header-anchor '></a>Table of Contents</h1><ul><li><p><a href='#header-n61'>Asset Naming</a></p><ul><li><a href='#header-n64'>Folders</a></li><li><a href='#header-n80'>Source code</a></li><li><a href='#header-n83'>Non-code assets</a></li></ul></li><li><p><a href='#directory-file-structure'>Directory/File structure</a></p><ul><li><a href='#header-n102'>Assets</a></li><li><a href='#header-n222'>Scripts</a></li><li><a href='#header-n112'>Models</a></li></ul></li><li><p><a href='#header-n116'>Workflow</a></p><ul><li><a href='#header-n112'>Models</a></li><li><a href='#header-n124'>Textures</a></li><li><a href='#header-n196'>Configuration files</a></li><li><a href='#header-n205'>Localization</a></li><li><a href='#header-n210'>Audio</a></li></ul></li><li><p><a href='#header-n215'>Be Consistent</a></p></li></ul><h1><a name='header-n61' class='md-header-anchor '></a>Asset Naming</h1><p>First of all, no\ spaces\ on file or directory names.</p><h2><a name='header-n64' class='md-header-anchor '></a>Folders</h2><p><code>PascalCase</code></p><p>Prefer a deep folder structure over having long asset names.</p><p>Directory names should be as concise as possible, prefer one or two words. If a directory name is too long, it probably makes sense to split it into sub directories.</p><p>Try to have only one file type per folder. Use <code>Textures/Trees</code>, <code>Models/Trees</code> and not <code>Trees/Textures</code>, <code>Trees/Models</code>. That way its easy to set up root directories for the different software involved, for example, Substance Painter would always be set to save to the Textures directory.</p><p>If your project contains multiple environments or art sets, use the asset type for the parent directory: <code>Trees/Jungle</code>, <code>Trees/City</code> not <code>Jungle/Trees</code>, <code>City/Trees</code>. Since it makes it easier to compare similar assets from different art sets to ensure continuity across art sets.</p><h3><a name='header-n75' class='md-header-anchor '></a>Debug Folders</h3><p><code>[PascalCase]</code></p><p>This signifies that the folder only contains assets that are not ready for production. For example, having an <code>[Assets]</code> and <code>Assets</code> folder.</p><h2><a name='header-n80' class='md-header-anchor '></a>Source Code</h2><p>Use the naming convention of the programming language. For C# and shader files use <code>PascalCase</code>, as per C# convention.</p><h2><a name='header-n83' class='md-header-anchor '></a>Non-Code Assets</h2><p>Use <code>tree_small</code> not <code>small_tree</code>. While the latter sound better in English, it is much more effective to group all tree objects together instead of all small objects.</p><p><code>camelCase</code> where necessary. Use <code>weapon_miniGun</code> instead of <code>weapon_gun_mini</code>. Avoid this if possible, for example, <code>vehicles_fighterJet</code> should be <code>vehicles_jet_fighter</code> if you plan to have multiple types of jets.</p><p>Prefer using descriptive suffixes instead of iterative: <code>vehicle_truck_damaged</code> not <code>vehicle_truck_01</code>. If using numbers as a suffix, always use 2 digits. And <strong>do not</strong> use it as a versioning system! Use <code>git</code> or something similar.</p><h3><a name='header-n90' class='md-header-anchor '></a>Persistent/Important GameObjects</h3><p><code>_snake_case</code></p><p>Use a leading underscore to make object instances that are not specific to the current scene stand out.</p><h3><a name='header-n95' class='md-header-anchor '></a>Debug Objects</h3><p><code>[SNAKE_CASE]</code></p><p>Enclose objects that are only being used for debugging/testing and are not part of the release with brackets.</p><h1><a name='header-n100' class='md-header-anchor '></a>Directory/File Structure</h1><pre class="md-fences md-end-block" lang=""> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre>x</pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Root</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Assets</span></pre><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Build</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">\---Tools # Programs to aid development: compilers, asset managers etc.</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 104px;"></div><div class="CodeMirror-gutters" style="display: none; height: 134px;"></div></div></div></pre><h2><a name='header-n102' class='md-header-anchor '></a>Assets</h2><pre class="md-fences md-end-block" lang="" style="break-inside: unset;"> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><span><span></span>x</span></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Assets</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Art</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Materials</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Models # FBX and BLEND files</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Textures # PNG files</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Audio</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Music</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| \---Sound # Samples and sound effects</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Code</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Scripts # C# scripts</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| \---Shaders # Shader files and shader graphs</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Docs # Wiki, concept art, marketing material</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Level # Anything related to game design in Unity</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Prefabs</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Scenes</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| \---UI</span></pre><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">\---Resources # Configuration files, localization text and other user files.</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 416px;"></div><div class="CodeMirror-gutters" style="display: none; height: 446px;"></div></div></div></pre><h2><a name='header-n104' class='md-header-anchor '></a>Assets (alternative)</h2><pre class="md-fences md-end-block" lang=""> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre>x</pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Assets</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Art</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Materials</span></pre><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Models # FBX and BLEND files</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Music</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Prefabs</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Sound # Samples and sound effects</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Textures</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---UI</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Levels # Unity scene files</span></pre></div><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Src # C# scripts and shaders</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| +---Framework</span></pre><div class="" style="position: relative;"><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">| \---Shaders</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 320px;"></div><div class="CodeMirror-gutters" style="display: none; height: 350px;"></div></div></div></pre><h2><a name='header-n222' class='md-header-anchor '></a>Scripts</h2><p>Use namespaces that match your directory structure.</p><p>A Framework directory is great for having code that can be reused across projects.</p><p>The Scripts folder varies depending on the project, however, <code>Environment</code>, <code>Framework</code>, <code>Tools</code> and <code>UI</code> should be consistent across projects.</p><pre class="md-fences md-end-block" lang=""> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Scripts</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Environment</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Framework</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---NPC</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Player</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Tools</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">\---UI</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 176px;"></div><div class="CodeMirror-gutters" style="display: none; height: 206px;"></div></div></div></pre><h2><a name='header-n112' class='md-header-anchor '></a>Models</h2><p>Separate files from the modelling program and ready to use, exported models.</p><pre class="md-fences md-end-block" lang=""> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Models</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">+---Blend</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">\---FBX</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 80px;"></div><div class="CodeMirror-gutters" style="display: none; height: 110px;"></div></div></div></pre><h1><a name='header-n116' class='md-header-anchor '></a>Workflow</h1><h2><a name='header-n117' class='md-header-anchor '></a>Models</h2><p>File extension: <code>FBX</code></p><p>Even though Unity supports Blender files by default, it is better to keep what is being worked on and what is a complete, exported model separate. This is also a must when using other software, such as Substance for texturing.</p><p>Use <code>Y up</code>, <code>-Z forward</code> and <code>uniform scale</code> when exporting.</p><h2><a name='header-n124' class='md-header-anchor '></a>Textures</h2><p>File extension: <code>PNG</code>, <code>TIFF</code> or <code>HDR</code></p><p>Choose either a <code>Specularity/Glossiness</code> or <code>Roughness/Metallic</code> workflow. This depends on the software being used and what your artists are more comfortable with. Specularity maps have the advantage of being having the possibility to be RGB maps instead of grayscale (useful for tinted metals), apart from that there is little difference between the result from either workflow.</p><h3><a name='header-n129' class='md-header-anchor '></a>Texture Suffixes</h3><figure><table><thead><tr><th style='text-align:left;' >Suffix</th><th style='text-align:left;' >Texture</th></tr></thead><tbody><tr><td style='text-align:left;' ><code>_AL</code></td><td style='text-align:left;' >Albedo</td></tr><tr><td style='text-align:left;' ><code>_SP</code></td><td style='text-align:left;' >Specular</td></tr><tr><td style='text-align:left;' ><code>_R</code></td><td style='text-align:left;' >Roughness</td></tr><tr><td style='text-align:left;' ><code>_MT</code></td><td style='text-align:left;' >Metallic</td></tr><tr><td style='text-align:left;' ><code>_GL</code></td><td style='text-align:left;' >Glossiness</td></tr><tr><td style='text-align:left;' ><code>_N</code></td><td style='text-align:left;' >Normal</td></tr><tr><td style='text-align:left;' ><code>_H</code></td><td style='text-align:left;' >Height</td></tr><tr><td style='text-align:left;' ><code>_DP</code></td><td style='text-align:left;' >Displacement</td></tr><tr><td style='text-align:left;' ><code>_EM</code></td><td style='text-align:left;' >Emission</td></tr><tr><td style='text-align:left;' ><code>_AO</code></td><td style='text-align:left;' >Ambient Occlusion</td></tr><tr><td style='text-align:left;' ><code>_M</code></td><td style='text-align:left;' >Mask</td></tr></tbody></table></figure><h3><a name='header-n167' class='md-header-anchor '></a>RGB Masks</h3><p>It is good practice to use a single texture to combine black and white masks in a single texture split by each RGB channel. Using this, most textures should have:</p><pre class="md-fences md-end-block" lang=""> <div class="CodeMirror cm-s-inner CodeMirror-wrap"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 4px;"></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 30px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">texture_AL.png # Albedo</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">texture_N.png # Normal Map</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">texture_M.png # Mask</span></pre></div></div></div></div></div><div style="position: absolute; height: 30px; width: 1px; border-bottom: 0px solid transparent; top: 80px;"></div><div class="CodeMirror-gutters" style="display: none; height: 110px;"></div></div></div></pre><figure><table><thead><tr><th style='text-align:left;' >Channel</th><th style='text-align:left;' >Spec/Gloss</th><th style='text-align:left;' >Rough/Metal</th></tr></thead><tbody><tr><td style='text-align:left;' >R</td><td style='text-align:left;' >Specularity</td><td style='text-align:left;' >Roughness</td></tr><tr><td style='text-align:left;' >G</td><td style='text-align:left;' >Glossiness</td><td style='text-align:left;' >Metallic</td></tr><tr><td style='text-align:left;' >B</td><td style='text-align:left;' >Ambient Occlusion</td><td style='text-align:left;' >Ambient Occlusion</td></tr></tbody></table></figure><h4><a name='header-n188' class='md-header-anchor '></a>The blue channel can vary depending on the type of material:</h4><ul><li>For character materials use the <code>B</code> channel for <em>subsurface opacity/strength</em></li><li>For anisotropic materials use the <code>B</code> channel for the <em>anisotropic direction map</em></li></ul><h2><a name='header-n196' class='md-header-anchor '></a>Configuration Files</h2><p>File extension: <code>INI</code></p><p>Fast and easy to parse, clean and easy to tweak.</p><p><code>XML</code>, <code>JSON</code>, and <code>YAML</code> are also good alternatives, pick one and be consistent.</p><p>Use binary file formats for files that should not be changed by the player. For multiplayer games store configuration data on a secure server.</p><h2><a name='header-n205' class='md-header-anchor '></a>Localization</h2><p>File extension: <code>CSV</code></p><p>Widely used by localization software, makes it trivial to edit strings using spreadsheets.</p><h2><a name='header-n210' class='md-header-anchor '></a>Audio</h2><p>File extension: <code>WAV</code> while mixing, <code>OGG</code> in game.</p><p>Preload small sound clips to memory, load on the fly for longer music and less frequent ambient noise files.</p><h1><a name='header-n215' class='md-header-anchor '></a>Be Consistent</h1><blockquote><p>The point of having style guidelines is to have a common vocabulary of coding so people can concentrate on what you're saying rather than on how you're saying it. We present global style rules here so people know the vocabulary, but local style is also important. If code you add to a file looks drastically different from the existing code around it, it throws readers out of their rhythm when they go to read it. Avoid this.</p></blockquote><p>-- <a href='https://google.github.io/styleguide/cppguide.html'>Google C++ Style Guide</a></p><hr /></div>
</body>
</html>