req, style
This commit is contained in:
+45
-16
@@ -27,6 +27,8 @@
|
|||||||
<li><span class=unusual>basic UI - start screen, controls screen, credits screen</span> </li>
|
<li><span class=unusual>basic UI - start screen, controls screen, credits screen</span> </li>
|
||||||
<li><span class=mundane>basic audio - BGM, attack SFX, skill SFX, ambience</span> </li>
|
<li><span class=mundane>basic audio - BGM, attack SFX, skill SFX, ambience</span> </li>
|
||||||
<li><span class=unusual>basic audio adjustments - volume slider, mute button</span> </li>
|
<li><span class=unusual>basic audio adjustments - volume slider, mute button</span> </li>
|
||||||
|
<li><span class=mundane>pause button</span> </li>
|
||||||
|
<li><span class=unusual>activator - button, switch</span> </li>
|
||||||
<li><span class=unusual>item pickup</span> </li>
|
<li><span class=unusual>item pickup</span> </li>
|
||||||
<li><span class=unusual>inventory</span> </li>
|
<li><span class=unusual>inventory</span> </li>
|
||||||
<li><span class=unusual>interact - character, container</span> </li>
|
<li><span class=unusual>interact - character, container</span> </li>
|
||||||
@@ -42,8 +44,10 @@
|
|||||||
<li><span class=mundane>learning skills</span> </li>
|
<li><span class=mundane>learning skills</span> </li>
|
||||||
<li><span class=mundane>room skills</span> </li>
|
<li><span class=mundane>room skills</span> </li>
|
||||||
<li><span class=unusual>life/spirit regen</span> </li>
|
<li><span class=unusual>life/spirit regen</span> </li>
|
||||||
|
<li><span class=mundane>multiple idle animations</span> </li>
|
||||||
|
<li><span class=mundane>idle barks - contextual, story-based, character relationship-based</span> </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>0.2 - AI factions </h2>
|
<h2>0.11 - AI factions </h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class=mundane>feature: factions - disposition towards other factions</span> </li>
|
<li><span class=mundane>feature: factions - disposition towards other factions</span> </li>
|
||||||
<li><span class=unusual>pathfinding</span> </li>
|
<li><span class=unusual>pathfinding</span> </li>
|
||||||
@@ -58,7 +62,7 @@
|
|||||||
<li><span class=unusual>targeting, prioritization</span> </li>
|
<li><span class=unusual>targeting, prioritization</span> </li>
|
||||||
<li><span class=mundane>skill use prioritization</span> </li>
|
<li><span class=mundane>skill use prioritization</span> </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>0.3 - boss fight </h2>
|
<h2>0.12 - boss fight </h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class=mundane>feature: multiphase, dynamic boss</span> </li>
|
<li><span class=mundane>feature: multiphase, dynamic boss</span> </li>
|
||||||
<li><span class=unusual>obstacles - impermeable walls, permeable walls, opaque walls, transparent walls, destructible walls</span> </li>
|
<li><span class=unusual>obstacles - impermeable walls, permeable walls, opaque walls, transparent walls, destructible walls</span> </li>
|
||||||
@@ -70,7 +74,7 @@
|
|||||||
<li><span class=mundane>interrupt</span> </li>
|
<li><span class=mundane>interrupt</span> </li>
|
||||||
<li><span class=mundane>items - use to impart keywords</span> </li>
|
<li><span class=mundane>items - use to impart keywords</span> </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>0.4 - job </h2>
|
<h2>0.13 - job </h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class=mundane>feature: 3 basic jobs</span> </li>
|
<li><span class=mundane>feature: 3 basic jobs</span> </li>
|
||||||
<li><span class=mundane>side jobs</span> </li>
|
<li><span class=mundane>side jobs</span> </li>
|
||||||
@@ -81,7 +85,7 @@
|
|||||||
<li><span class=mundane>weapons - impact outgoing keywords</span> </li>
|
<li><span class=mundane>weapons - impact outgoing keywords</span> </li>
|
||||||
<li><span class=mundane>environmental weaponry</span> </li>
|
<li><span class=mundane>environmental weaponry</span> </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>0.5 - UI </h2>
|
<h2>0.14 - UI </h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class=unusual>feature: phone</span> </li>
|
<li><span class=unusual>feature: phone</span> </li>
|
||||||
<li><span class=mundane>codex app</span> </li>
|
<li><span class=mundane>codex app</span> </li>
|
||||||
@@ -94,6 +98,7 @@
|
|||||||
<li><span class=mundane>store sales, promotions</span> </li>
|
<li><span class=mundane>store sales, promotions</span> </li>
|
||||||
<li><span class=mundane>pop-up notifications, tool tips</span> </li>
|
<li><span class=mundane>pop-up notifications, tool tips</span> </li>
|
||||||
<li><span class=unusual>skill library, skillbar</span> </li>
|
<li><span class=unusual>skill library, skillbar</span> </li>
|
||||||
|
<li><span class=mundane>skill library - sort by job, classifications, alphabetical, order obtained, frequency of use</span> </li>
|
||||||
<li><span class=unusual>containers</span> </li>
|
<li><span class=unusual>containers</span> </li>
|
||||||
<li><span class=unusual>highlight</span> </li>
|
<li><span class=unusual>highlight</span> </li>
|
||||||
<li><span class=unusual>main menu, submenus</span> </li>
|
<li><span class=unusual>main menu, submenus</span> </li>
|
||||||
@@ -106,6 +111,7 @@
|
|||||||
<li><span class=mundane>titles related to KnowledgeBase</span> </li>
|
<li><span class=mundane>titles related to KnowledgeBase</span> </li>
|
||||||
<li><span class=mundane>custom cursors</span> </li>
|
<li><span class=mundane>custom cursors</span> </li>
|
||||||
<li><span class=mundane>custom font</span> </li>
|
<li><span class=mundane>custom font</span> </li>
|
||||||
|
<li><span class=mundane>applied keywords</span> </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>0.25 - foundation </h2>
|
<h2>0.25 - foundation </h2>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -118,7 +124,7 @@
|
|||||||
<li><span class=mundane>zone: Uncle's house</span> </li>
|
<li><span class=mundane>zone: Uncle's house</span> </li>
|
||||||
<li><span class=mundane>quest: Angel sleepover</span> </li>
|
<li><span class=mundane>quest: Angel sleepover</span> </li>
|
||||||
<li><span class=mundane>zone: Tidwell's house</span> </li>
|
<li><span class=mundane>zone: Tidwell's house</span> </li>
|
||||||
<li><span class=mundane>quest: first last day of school</span> </li>
|
<li><span class=mundane>quest: first last day of school, welcome party</span> </li>
|
||||||
<li><span class=mundane>quest: mingle & bingo</span> </li>
|
<li><span class=mundane>quest: mingle & bingo</span> </li>
|
||||||
<li><span class=mundane>quest: do you dare? OR lost and found</span> </li>
|
<li><span class=mundane>quest: do you dare? OR lost and found</span> </li>
|
||||||
<li><span class=mundane>location: school - classroom, hallway, principal's office, supply room, restrooms, playground, courtyard (space used as auditorium)</span> </li>
|
<li><span class=mundane>location: school - classroom, hallway, principal's office, supply room, restrooms, playground, courtyard (space used as auditorium)</span> </li>
|
||||||
@@ -148,9 +154,39 @@
|
|||||||
<li><span class=mundane>character routines, idles</span> </li>
|
<li><span class=mundane>character routines, idles</span> </li>
|
||||||
<li><span class=mundane>Lucrest sidequests</span> </li>
|
<li><span class=mundane>Lucrest sidequests</span> </li>
|
||||||
<li><span class=mundane>quest: keep going! (text from Tessa to suit up and train)</span> </li>
|
<li><span class=mundane>quest: keep going! (text from Tessa to suit up and train)</span> </li>
|
||||||
|
<li><span class=mundane>zone: Eden's threshold</span> </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>1.0 - release </h2>
|
<h2>0.75 - chapter 2 </h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><span class=mundane></span> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>0.9 - chapter 3 </h2>
|
||||||
|
<ul>
|
||||||
|
<li><span class=mundane></span> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>1.97 - full game </h2>
|
||||||
|
<ul>
|
||||||
|
<li><span class=mundane>feature: the completed game</span> </li>
|
||||||
|
<li><span class=mundane>full main story</span> </li>
|
||||||
|
<li><span class=mundane>all major characters</span> </li>
|
||||||
|
<li><span class=mundane>complete soundtrack</span> </li>
|
||||||
|
<li><span class=mundane>all levels</span> </li>
|
||||||
|
<li><span class=mundane>all skills - icons, functionality, FX</span> </li>
|
||||||
|
<li><span class=mundane>sound effects, visual effects, responsive game with feedback </span> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>1.98 - involve other people (obv review after every milestone) </h2>
|
||||||
|
<ul>
|
||||||
|
<li><span class=mundane>feature: improvements based on suggestions</span> </li>
|
||||||
|
<li><span class=mundane>playtesting - diverse playtesters like colorblind, French keyboard users, different res/older computers, etc</span> </li>
|
||||||
|
<li><span class=mundane>maintain my community - forums, Discord, Twitter, any forums tied to store platforms, etc</span> </li>
|
||||||
|
<li><span class=mundane>press - YouTubers, Twitch streamers, bloggers, game journalists, local news, etc. I'll def reach out to Godot's showcase. </span> </li>
|
||||||
|
<li><span class=mundane>festivals/contests - local conventions, Godot con, Indie Games Expo, PAX, GDC. I'll seriously consider a booth/panel at the cons in my town. </span> </li>
|
||||||
|
<li><span class=mundane>booths - computers, keyboards, mouses, decorations, fliers, freebie promo items </span> </li>
|
||||||
|
<li><span class=mundane>funding - kickstarter, etc (no reason not to try. Even if I can finish the game in my freetime, I can set it up to cover fees then set wild stretch goals like getting Trigger to do my animations or hiring my favorite voice actor and composer or something)</span> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>1.99 - release </h2>
|
||||||
|
<ul>
|
||||||
|
<li><span class=mundane>feature: store pages</span> </li>
|
||||||
<li><span class=mundane>store page - tagline</span> </li>
|
<li><span class=mundane>store page - tagline</span> </li>
|
||||||
<li><span class=mundane>store page - paragraph</span> </li>
|
<li><span class=mundane>store page - paragraph</span> </li>
|
||||||
<li><span class=mundane>store page - big writeup</span> </li>
|
<li><span class=mundane>store page - big writeup</span> </li>
|
||||||
@@ -160,12 +196,9 @@
|
|||||||
<li><span class=mundane>small thumbnail cover art thing online platforms do</span> </li>
|
<li><span class=mundane>small thumbnail cover art thing online platforms do</span> </li>
|
||||||
<li><span class=mundane>keyart - boxart-like vertical thing online platforms do</span> </li>
|
<li><span class=mundane>keyart - boxart-like vertical thing online platforms do</span> </li>
|
||||||
<li><span class=mundane>keyart - banner art</span> </li>
|
<li><span class=mundane>keyart - banner art</span> </li>
|
||||||
<li><span class=mundane>platform achievements</span> </li>
|
<li><span class=mundane>platform achievements, cloud saves, overlays, </span> </li>
|
||||||
<li><span class=mundane>downloadable extras - manual, soundtrack, artbook, novel, 4koma, wallpapers (desktop, mobile, probably others), emoticons for messengers, paper dolls, paper fold crafts</span> </li>
|
<li><span class=mundane>downloadable extras - manual, soundtrack, artbook, novel, 4koma, wallpapers (desktop, mobile, probably others), emoticons for messengers, paper dolls, paper fold crafts</span> </li>
|
||||||
<li><span class=mundane>feature: the completed game</span> </li>
|
<li><span class=mundane>merch </span> </li>
|
||||||
<li><span class=mundane>full main story</span> </li>
|
|
||||||
<li><span class=mundane>all levels</span> </li>
|
|
||||||
<li><span class=mundane>all skills</span> </li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<h2>??? - post-release, if ever </h2>
|
<h2>??? - post-release, if ever </h2>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -182,22 +215,18 @@
|
|||||||
<li><span class=mundane>voice acting, even if just for the trailer or intro cutscene or whatever</span> </li>
|
<li><span class=mundane>voice acting, even if just for the trailer or intro cutscene or whatever</span> </li>
|
||||||
<li><span class=mundane>rebindable controls</span> </li>
|
<li><span class=mundane>rebindable controls</span> </li>
|
||||||
<li><span class=mundane>support as many input devices as possible, though this probably isn't an XBOX controller-friendly game. keyboard, mouse, touchscreen, voice commands</span> </li>
|
<li><span class=mundane>support as many input devices as possible, though this probably isn't an XBOX controller-friendly game. keyboard, mouse, touchscreen, voice commands</span> </li>
|
||||||
<li><span class=mundane>get input from colorblind people</span> </li>
|
|
||||||
<li><span class=mundane>emotes</span> </li>
|
<li><span class=mundane>emotes</span> </li>
|
||||||
<li><span class=mundane>skill SFX</span> </li>
|
<li><span class=mundane>skill SFX</span> </li>
|
||||||
<li><span class=mundane>character creation - day/night, sample outfits</span> </li>
|
<li><span class=mundane>character creation - day/night, sample outfits</span> </li>
|
||||||
<li><span class=mundane>emotes for player (screenshot fodder) - sleep in beds, sit on seats, cry, confess, dance</span> </li>
|
<li><span class=mundane>emotes for player (screenshot fodder) - sleep in beds, sit on seats, cry, confess, dance</span> </li>
|
||||||
<li><span class=mundane>pause button</span> </li>
|
|
||||||
<li><span class=mundane>change phone background</span> </li>
|
<li><span class=mundane>change phone background</span> </li>
|
||||||
|
<li><span class=mundane>real web browser on phone</span> </li>
|
||||||
<li><span class=mundane>store screenshots in phone gallery</span> </li>
|
<li><span class=mundane>store screenshots in phone gallery</span> </li>
|
||||||
<li><span class=mundane>gear changes sprite appearance</span> </li>
|
<li><span class=mundane>gear changes sprite appearance</span> </li>
|
||||||
<li><span class=mundane>gear changes companions' sprite appearance</span> </li>
|
<li><span class=mundane>gear changes companions' sprite appearance</span> </li>
|
||||||
<li><span class=mundane>gear changes dialog portaits - paper doll</span> </li>
|
<li><span class=mundane>gear changes dialog portaits - paper doll</span> </li>
|
||||||
<li><span class=unusual>activator - button</span> </li>
|
|
||||||
<li><span class=mundane>destructible terrain that requires specific keywords - slash or burn webs</span> </li>
|
<li><span class=mundane>destructible terrain that requires specific keywords - slash or burn webs</span> </li>
|
||||||
<li><span class=mundane>disposition, affinity system</span> </li>
|
<li><span class=mundane>disposition, affinity system</span> </li>
|
||||||
<li><span class=mundane>multiple idle animations</span> </li>
|
|
||||||
<li><span class=mundane>idle barks - contextual, story-based, character relationship-based</span> </li>
|
|
||||||
<li><span class=mundane>holidays</span> </li>
|
<li><span class=mundane>holidays</span> </li>
|
||||||
<li><span class=mundane>fishing minigame</span> </li>
|
<li><span class=mundane>fishing minigame</span> </li>
|
||||||
<li><span class=mundane>hide UI for screenshots optionally</span> </li>
|
<li><span class=mundane>hide UI for screenshots optionally</span> </li>
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
% rebase('frame.tpl')
|
||||||
|
<div class="content-grid">
|
||||||
|
<div class="">
|
||||||
|
<h1>style guide </h1>
|
||||||
|
<p>Follow this style guide to avoid confusing bugs. Code doesn't always need to
|
||||||
|
follow the style guide, but a comment needs to be left by the offending code
|
||||||
|
explaining why it's necessary. The guide is not set in stone, and can be
|
||||||
|
disputed and altered. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>(many parts written by my husband) <br></p>
|
||||||
|
<br>
|
||||||
|
<h2>node paths </h2>
|
||||||
|
<p>Node paths should be treated as though they have private access. Any node
|
||||||
|
within a scene can be thought of as within scope of that scene. Nodes higher in
|
||||||
|
the tree or inside instanced scenes are out of scope of the current scene.
|
||||||
|
However, the root of an instanced scene is within scope, so a path to that is
|
||||||
|
safe. Using an "out of scope" node path will result in null pointer exceptions
|
||||||
|
at best or confusing bugs at worse if a scene's structure is ever altered. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>Add methods to the root of a scene that does whatever is needed to the nodes
|
||||||
|
inside. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>If a property is needed from a node inside a scene, a getter in the
|
||||||
|
scene's root can return the value its child node's property. (see Setters and
|
||||||
|
Getters) <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li>don't use node paths to nodes higher than the scene's root </li>
|
||||||
|
<li>don't use node paths into instanced scenes </li>
|
||||||
|
<li>do add methods to the root of a scene that manipulates the inner nodes </li>
|
||||||
|
</ul>
|
||||||
|
<h2>child nodes </h2>
|
||||||
|
<p>It's fair for a script to depend on a consistent internal tree structure.
|
||||||
|
Only scripts inside a scene may alter the structure of its own tree. The tree's
|
||||||
|
structre is primarily altered by adding or removing children. Adding or
|
||||||
|
removing child nodes higer than the scene's root, or inside instanced scenes,
|
||||||
|
will cause inconsistent structure. Without this guideline, each scene would
|
||||||
|
need to constantly validate its own structure to be sure it hasn't been altered
|
||||||
|
by another script. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>Add methods to the root of a scene that can add or remove children. These
|
||||||
|
methods can keep track of which nodes have been added or removed, so the
|
||||||
|
script can be aware of any changes to the scene's structure. <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li>don't add child nodes to nodes higher than the scene's root </li>
|
||||||
|
<li>don't add child nodes to instanced scenes </li>
|
||||||
|
<li>do add methods to the root of a scene for adding or removing children </li>
|
||||||
|
</ul>
|
||||||
|
<h2>setters + getters </h2>
|
||||||
|
<p>Often, some action always needs to be taken whenever a variable is changed.
|
||||||
|
Putting these actions in a setter method for that variable ensure that they're
|
||||||
|
always executed. If a setter is not made for a variable, there's some risk
|
||||||
|
that it may be changed without those actions being taken, and the source of
|
||||||
|
the change may be difficult to track. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>Furthermore, a variable may not exist at all, but be derived from some
|
||||||
|
computation. In that case, a getter can create the illusion of a single
|
||||||
|
variable. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>One more benifit, is that a setter can be deferred called or connected to a
|
||||||
|
signal, since its a method. <br></p>
|
||||||
|
<br>
|
||||||
|
<p>Variables can be changed to use getters and setters seamlessly, since they're
|
||||||
|
used no differently from variables that don't have getters and setters. If
|
||||||
|
there is a need to take some action whenever a value is set, a setter can be
|
||||||
|
added to it seamlessly. <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li>setters can execute any action when a property is changed </li>
|
||||||
|
<li>setters can be added seamlessly, without changing how the property is set </li>
|
||||||
|
</ul>
|
||||||
|
<h2>serialization </h2>
|
||||||
|
<p> <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>translations </h2>
|
||||||
|
<p>add a fake language from the start <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>documentation </h2>
|
||||||
|
<p> <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>time </h2>
|
||||||
|
<p>pausing <br></p>
|
||||||
|
<p>time control (every variable affected by time must be modified by time control) <br></p>
|
||||||
|
<p>decouple drawing and logic <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li> </li>
|
||||||
|
</ul>
|
||||||
|
<h2>moddability </h2>
|
||||||
|
<p>Commonly, this means making a base, then loading in the game as a mod. The content is written in a light scripting language, and it's best if I use the same API/tools a modder would. <br></p>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li> </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
Reference in New Issue
Block a user