-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSTYLEGUIDE.html
More file actions
196 lines (191 loc) · 8.19 KB
/
STYLEGUIDE.html
File metadata and controls
196 lines (191 loc) · 8.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta content="#FC7C13" name="theme-color">
<title>GMLscripts.com :: Style Guide</title>
<link href="/gmlscripts38.css" rel="stylesheet" type="text/css">
<link href="/favicon.png" rel="icon" type="image/png">
<link href="https://github.com/gmlscripts/scripts/commits/master.atom" rel="alternate" title="GMLscripts.com :: Script Commit History" type="application/rss+xml">
<link href="https://fonts.googleapis.com/css?family=Paytone+One%7CABeeZee%7CSource+Code+Pro" rel="stylesheet">
<script type="text/x-mathjax-config">//<![CDATA[
MathJax.Hub.Config({extensions:["tex2jax.js"],jax:["input/TeX","output/HTML-CSS"],tex2jax:{inlineMath:[["\\(","\\)"],['[tex]','[/tex]']],displayMath:[['$$','$$'],["\\[","\\]"]],processEscapes:true},"HTML-CSS":{availableFonts:["TeX"]},menuSettings:{zoom:"Click"},MathZoom:{styles:{"#MathJax_Zoom":{"background-color":"#222","box-shadow":"0px 0px 15px #AAAAAA","-webkit-box-shadow":"0px 0px 15px #AAAAAA","-moz-box-shadow":"0px 0px 15px #AAAAAA","-khtml-box-shadow":"0px 0px 15px #AAAAAA",}}}});
MathJax.Hub.Queue(function () { showMathJax(); } );//]]></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
<script src="/lunr.js" tpye="text/javascript"></script>
<script src="/search.js" type="text/javascript"></script>
<script src="/gml_string.js" type="text/javascript"></script>
<script src="/gml_highlight.js" type="text/javascript"></script>
<script src="/gmlscripts38.js" type="text/javascript"></script>
</head>
<body onload="start()">
<noscript><div class="noscript">JAVASCRIPT REQUIRED</div></noscript>
<header>
<a href="/" id="home"><img alt="GMLscripts.com" height="40" src="/images/38/gmlscripts-header3d.png" width="500"></a>
<nav id="headnav">
<ul><li>
<a href="/script">Scripts</a></li><li>
<a href="/license">License</a></li><li>
<a href="/news">News</a></li><li>
<a href="/search">Search</a></li><li>
<a href="/submit">Submit</a></li><li>
<a href="/donate">Donate</a></li><li>
<a href="https://bsky.app/profile/gmlscripts.com" rel="noopener noreferrer" target="_blank">Follow</a></li>
</ul>
</nav>
</header>
<div class="wrapper">
<main>
<h1>Script Submission Style Guide</h1>
<p>The recommended style for script functions featured on <a href="#">GMLscripts.com</a>
is in the spirit of <a href="https://en.wikipedia.org/wiki/Indent_style#K.26R_style" rel="noopener noreferrer" target="_blank">K&R</a> and One True Brace.</p>
<ul>
<li>Precede functions with a header in the form of a <code>/// comment block</code>.</li>
<li>Use <a href="https://manual.gamemaker.io/monthly/en/#t=The_Asset_Editors%2FCode_Editor_Properties%2FJSDoc_Script_Comments.htm" rel="noopener noreferrer" target="_blank">JSDoc</a>-style markup in headers, including a function signature,
description, list of parameters, and return values.</li>
<li>Ensure the first sentence of a function is descriptive but as brief as
possible; place usage details and special notes in additional sentences
and paragraphs.</li>
<li>List any function or asset dependencies in the header.</li>
<li>Use short and descriptive names for parameters and variables.</li>
<li>Separate parameters and arguments using a comma followed by a space.</li>
<li>Limit line lengths to 80 characters, if possible.</li>
<li>Terminate statements with a semicolon.</li>
<li>Place an opening brace on the same line as its construct or conditional.</li>
<li>Align a closing brace with its controlling statement.</li>
<li>Place an <code>else</code> or <code>until</code> conditional on the same line as its preceding
brace.</li>
<li>Indent blocks of code consistently using four spaces per level.</li>
<li>Avoid single-line blocks of code.</li>
<li>Always declare local variables with a <code>var</code> statement and static
variables with a <code>static</code> statement.</li>
<li>Never create or modify global or instance variables unless it is a
well-defined feature of the function.</li>
<li>Terminate the execution of a function with a returned value.</li>
</ul>
<p>Always check this style guide for changes before submitting contributions.</p>
<div class="codebox example">
<pre><code class="lang-gml">/// @func my_function(alfa, bravo, charlie)
///
/// @desc Returns or does something briefly described in the
/// first sentence. Full usage details should follow.
///
/// Note: Use multiple paragraphs for clarity or to add
/// any special usage notes.
///
/// @param {datatype} alfa brief parameter description
/// @param {datatype} bravo brief parameter description
/// @param {datatype} charlie brief parameter description
///
/// @return {datatype} description of returned value
///
/// GMLscripts.com/license
function my_function(alfa, bravo, charlie)
{
var delta = 0;
// Useful comments are encouraged.
for (var i=alfa; i<bravo; i+=charlie) {
if (delta mod 3) {
delta += i;
} else {
delta -= i;
}
}
// Break up code sections to improve clarity.
do {
delta += 10;
delta /= 2;
} until (delta > 0);
// Functions should always return some value.
return delta;
}
</code></pre>
</div>
</main>
<nav id="sidenav">
<div>
<span>Scripts</span>
<ul class="accordion" id="Scripts">
<li class="computation" id="computation">
<a href="#computation">Computation</a>
<ul>
<li><a href="/script/Computation/Base_Conversion/">Base Conversion</a></li>
<li><a href="/script/Computation/Bitwise/">Bitwise</a></li>
<li><a href="/script/Computation/Data_Encoding/">Data Encoding</a></li>
<li><a href="/script/Computation/Data_Encryption/">Data Encryption</a></li>
<li><a href="/script/Computation/Data_Hashing/">Data Hashing</a></li>
<li><a href="/script/Computation/Date-Time/">Date-Time</a></li>
<li><a href="/script/Computation/Geometry/">Geometry</a></li>
<li><a href="/script/Computation/Parametric_Functions/">Parametric Functions</a></li>
<li><a href="/script/Computation/Probability/">Probability</a></li>
<li><a href="/script/Computation/Real_Numbers/">Real Numbers</a></li>
<li><a href="/script/Computation/Strings/">Strings</a></li>
</ul>
</li>
<li class="data_structures" id="data_structures">
<a href="#data_structures">Data Structures</a>
<ul>
<li><a href="/script/Data_Structures/Arrays/">Arrays</a></li>
<li><a href="/script/Data_Structures/Grids/">Grids</a></li>
<li><a href="/script/Data_Structures/Lists/">Lists</a></li>
<li><a href="/script/Data_Structures/Maps/">Maps</a></li>
</ul>
</li>
<li class="files" id="files">
<a href="#files">Files</a>
<ul>
<li><a href="/script/Files/Input_and_Output/">Input and Output</a></li>
</ul>
</li>
<li class="game_play" id="game_play">
<a href="#game_play">Game Play</a>
<ul>
<li><a href="/script/Game_Play/Artificial_Intelligence/">Artificial Intelligence</a></li>
<li><a href="/script/Game_Play/Collisions/">Collisions</a></li>
<li><a href="/script/Game_Play/Instances/">Instances</a></li>
<li><a href="/script/Game_Play/Movement/">Movement</a></li>
</ul>
</li>
<li class="graphics" id="graphics">
<a href="#graphics">Graphics</a>
<ul>
<li><a href="/script/Graphics/Color/">Color</a></li>
<li><a href="/script/Graphics/Drawing/">Drawing</a></li>
<li><a href="/script/Graphics/Shaders/">Shaders</a></li>
<li><a href="/script/Graphics/Sprites/">Sprites</a></li>
<li><a href="/script/Graphics/Surfaces/">Surfaces</a></li>
<li><a href="/script/Graphics/Text/">Text</a></li>
</ul>
</li>
<li class="interaction" id="interaction">
<a href="#interaction">Interaction</a>
<ul>
<li><a href="/script/Interaction/Gamepad/">Gamepad</a></li>
<li><a href="/script/Interaction/Mouse/">Mouse</a></li>
</ul>
</li>
<li class="platform" id="platform">
<a href="#platform">Platform</a>
<ul>
<li><a href="/script/Platform/Device/">Device</a></li>
</ul>
</li>
<li class="resources" id="resources">
<a href="#resources">Resources</a>
<ul>
<li><a href="/script/Resources/Management/">Management</a></li>
<li><a href="/script/Resources/Sprites/">Sprites</a></li>
</ul>
</li>
</ul>
<span></span>
</div>
</nav>
</div>
<footer>
copyright © 2007-2026, xot media multimixing
<span><img alt="X" src="/images/38/x.png" title="web by xot"></span>
</footer>
</body>
</html>