Skip to content

Commit

Permalink
Updat documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
srikavin committed Feb 13, 2020
1 parent d4afea5 commit f1dace9
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 68 deletions.
107 changes: 55 additions & 52 deletions README.html
Original file line number Diff line number Diff line change
Expand Up @@ -1611,6 +1611,11 @@
max-width: 100%
}

dt {
font-style: italic;
font-weight: 600
}

.g {
display: block
}
Expand Down Expand Up @@ -2970,10 +2975,10 @@
}

#_default_ .default-title:after {
content: " — "
content: ""
}

#_default_ .default-title, #_default_ .default-description {
#_default_ .default-title, #_default_ .default-text, #_default_ .default-description {
display: inline
}

Expand Down Expand Up @@ -4724,37 +4729,36 @@
<body id="preview">
<h1 class="code-line" data-line-end=1 data-line-start=0><a id="The_Quest_for_Success_0"></a>The Quest for Success</h1>
<h2 class="code-line" data-line-end=4 data-line-start=3><a id="Gameplay_3"></a>Gameplay</h2>
<p class="has-line-data" data-line-end="6" data-line-start="5"><em>The Quest for Success</em> was designed from the
ground up to be an intuitive and fun experience.</p>
<h2 class="code-line" data-line-end=8 data-line-start=7><a id="Topic_Correlation_7"></a>Topic Correlation</h2>
<p class="has-line-data" data-line-end="12" data-line-start="9">This game is based around the adventure of an FBLA
<p class="has-line-data" data-line-end="7" data-line-start="5"><em>The Quest for Success</em> was designed from the
ground up to be an intuitive and fun experience. It features<br>
multiple puzzles and takes the player on a journey from the perspective of an FBLA member.</p>
<h2 class="code-line" data-line-end=9 data-line-start=8><a id="Topic_Correlation_8"></a>Topic Correlation</h2>
<p class="has-line-data" data-line-end="13" data-line-start="10">This game is based around the adventure of an FBLA
member on his journey to complete all the requirements of the business<br>
achievement award. Splitting education, progress, and service into each of their own mini-games for each tier of the
award.<br>
This allows the player to understand the basic requirements of each tier by interacting directly with the
objectives.</p>
<p class="has-line-data" data-line-end="15" data-line-start="13">A scoreboard is available, and the score is visible at
<p class="has-line-data" data-line-end="16" data-line-start="14">A scoreboard is available, and the score is visible at
all times during the game. Interactive hotkeys will be shown on<br>
the screen when needed. The game can be played multiple times to discover multiple endings.</p>
<h2 class="code-line" data-line-end=18 data-line-start=17><a id="Features_17"></a>Features</h2>
<h2 class="code-line" data-line-end=19 data-line-start=18><a id="Features_18"></a>Features</h2>
<ul>
<li class="has-line-data" data-line-end="19" data-line-start="18">Keyboard and mouse compatibility</li>
<li class="has-line-data" data-line-end="20" data-line-start="19">Original art</li>
<li class="has-line-data" data-line-end="21" data-line-start="20">4 separate stages, each with three levels with
<li class="has-line-data" data-line-end="20" data-line-start="19">Keyboard and mouse compatibility</li>
<li class="has-line-data" data-line-end="21" data-line-start="20">A variety of original art</li>
<li class="has-line-data" data-line-end="22" data-line-start="21">4 separate stages, each with three levels with
increasing difficulty
</li>
<li class="has-line-data" data-line-end="22" data-line-start="21">A variety of separate mini-games.</li>
<li class="has-line-data" data-line-end="23" data-line-start="22">Interactive dialogue</li>
<li class="has-line-data" data-line-end="24" data-line-start="23">Enemies, lives, coins, and an overall score
<li class="has-line-data" data-line-end="23" data-line-start="22">Awards with power-ups for the player</li>
<li class="has-line-data" data-line-end="24" data-line-start="23">A variety of separate mini-games.</li>
<li class="has-line-data" data-line-end="25" data-line-start="24">Interactive dialogue</li>
<li class="has-line-data" data-line-end="26" data-line-start="25">Enemies, lives, coins, and an overall score
system.
</li>
<li class="has-line-data" data-line-end="25" data-line-start="24">An advanced platformer with the inclusion of
puzzles to solve
</li>
<li class="has-line-data" data-line-end="26" data-line-start="25">Instructions page included on a menu page.</li>
<li class="has-line-data" data-line-end="28" data-line-start="26">Multiplayer</li>
<li class="has-line-data" data-line-end="27" data-line-start="26">An advanced puzzle platformer</li>
<li class="has-line-data" data-line-end="29" data-line-start="27">Instructions page included on a menu page.</li>
</ul>
<h3 class="code-line" data-line-end=29 data-line-start=28><a id="Controls_28"></a>Controls</h3>
<h3 class="code-line" data-line-end=30 data-line-start=29><a id="Controls_29"></a>Controls</h3>
<table class="table table-striped table-bordered">
<thead>
<tr>
Expand Down Expand Up @@ -4789,82 +4793,81 @@ <h3 class="code-line" data-line-end=29 data-line-start=28><a id="Controls_28"></
</tr>
</tbody>
</table>
<h2 class="code-line" data-line-end=40 data-line-start=39><a id="Run_Instructions_39"></a>Run Instructions</h2>
<p class="has-line-data" data-line-end="42" data-line-start="41">Launch <code>quest.exe</code> in the <a
<h2 class="code-line" data-line-end=41 data-line-start=40><a id="Run_Instructions_40"></a>Run Instructions</h2>
<p class="has-line-data" data-line-end="43" data-line-start="42">Launch <code>quest.exe</code> in the <a
href="game"><code>game</code></a> directory.</p>
<h2 class="code-line" data-line-end=44 data-line-start=43><a id="Development_Instructions_43"></a>Development
<h2 class="code-line" data-line-end=45 data-line-start=44><a id="Development_Instructions_44"></a>Development
Instructions</h2>
<p class="has-line-data" data-line-end="47" data-line-start="44">For more technical information, read <code>technical_readme.html</code>.
<p class="has-line-data" data-line-end="48" data-line-start="45">For more technical information, read <code>technical_readme.md</code>.
Also view <a href="javadoc/index.html">javadocs (kDocs)</a> in the<br>
<code>javadoc</code> folder. Code is commented and should be fairly easy to understand. Advanced game rules are also
featured<br>
within the source code.</p>
<h3 class="code-line" data-line-end=49 data-line-start=48><a id="Running_a_Development_Copy_48"></a>Running a
<h3 class="code-line" data-line-end=50 data-line-start=49><a id="Running_a_Development_Copy_49"></a>Running a
Development Copy</h3>
<ol>
<li class="has-line-data" data-line-end="50" data-line-start="49">Open the <code>src</code> directory with an editor
<li class="has-line-data" data-line-end="51" data-line-start="50">Open the <code>src</code> directory with an editor
of your choice
</li>
<li class="has-line-data" data-line-end="51" data-line-start="50">Make changes</li>
<li class="has-line-data" data-line-end="52" data-line-start="51">Run <code>gradle desktop:run</code> to compile and
<li class="has-line-data" data-line-end="52" data-line-start="51">Make changes</li>
<li class="has-line-data" data-line-end="53" data-line-start="52">Run <code>gradle desktop:run</code> to compile and
run the updated game
</li>
<li class="has-line-data" data-line-end="54" data-line-start="52">View the <a href="./LICENSE.txt">license</a></li>
<li class="has-line-data" data-line-end="55" data-line-start="53">View the <a href="./LICENSE.txt">license</a></li>
</ol>
<h3 class="code-line" data-line-end=55 data-line-start=54><a id="Editing_Maps_54"></a>Editing Maps</h3>
<h3 class="code-line" data-line-end=56 data-line-start=55><a id="Editing_Maps_55"></a>Editing Maps</h3>
<ol>
<li class="has-line-data" data-line-end="56" data-line-start="55">Install <a
<li class="has-line-data" data-line-end="57" data-line-start="56">Install <a
href="https://www.mapeditor.org/">Tiled</a></li>
<li class="has-line-data" data-line-end="57" data-line-start="56">Open a map in <code>core/assets/assets/maps</code>
<li class="has-line-data" data-line-end="58" data-line-start="57">Open a map in <code>core/assets/assets/maps</code>
with Tiled
</li>
<li class="has-line-data" data-line-end="58" data-line-start="57">Make changes to the map</li>
<li class="has-line-data" data-line-end="59" data-line-start="58">Save the map</li>
<li class="has-line-data" data-line-end="61" data-line-start="59">Run it following the instructions above</li>
<li class="has-line-data" data-line-end="59" data-line-start="58">Make changes to the map</li>
<li class="has-line-data" data-line-end="60" data-line-start="59">Save the map</li>
<li class="has-line-data" data-line-end="62" data-line-start="60">Run it following the instructions above</li>
</ol>
<h3 class="code-line" data-line-end=62 data-line-start=61><a id="Technologies_Used_61"></a>Technologies Used</h3>
<h3 class="code-line" data-line-end=63 data-line-start=62><a id="Technologies_Used_62"></a>Technologies Used</h3>
<ul>
<li class="has-line-data" data-line-end="63" data-line-start="62"><a href="https://www.jetbrains.com/idea/">IntelliJ
<li class="has-line-data" data-line-end="64" data-line-start="63"><a href="https://www.jetbrains.com/idea/">IntelliJ
IDEA</a> - used to efficiently write code
</li>
<li class="has-line-data" data-line-end="64" data-line-start="63"><a
<li class="has-line-data" data-line-end="65" data-line-start="64"><a
href="https://www.adobe.com/products/illustrator.html">Adobe Illustrator</a> - used to create icons and
images
</li>
<li class="has-line-data" data-line-end="65" data-line-start="64"><a href="https://gradle.org/">Gradle</a> - used to
<li class="has-line-data" data-line-end="66" data-line-start="65"><a href="https://gradle.org/">Gradle</a> - used to
automate builds and manage dependencies
</li>
<li class="has-line-data" data-line-end="66" data-line-start="65"><a href="https://git-scm.org">Git SCM</a> - used
<li class="has-line-data" data-line-end="67" data-line-start="66"><a href="https://git-scm.org">Git SCM</a> - used
for version control
</li>
<li class="has-line-data" data-line-end="67" data-line-start="66"><a href="http://kotlinlang.org/">Kotlin</a> - used
<li class="has-line-data" data-line-end="68" data-line-start="67"><a href="http://kotlinlang.org/">Kotlin</a> - used
to write readable and ergonomic code
</li>
<li class="has-line-data" data-line-end="68" data-line-start="67"><a href="https://www.mapeditor.org/">Tiled</a> -
<li class="has-line-data" data-line-end="69" data-line-start="68"><a href="https://www.mapeditor.org/">Tiled</a> -
used to create flexible and reusable levels
</li>
<li class="has-line-data" data-line-end="70" data-line-start="68"><a href="https://www.aseprite.org/">Aseprite</a> -
<li class="has-line-data" data-line-end="71" data-line-start="69"><a href="https://www.aseprite.org/">Aseprite</a> -
used to design art in a retro pixelart style
</li>
</ul>
<h3 class="code-line" data-line-end=71 data-line-start=70><a id="Dependencies_Used_70"></a>Dependencies Used</h3>
<h3 class="code-line" data-line-end=72 data-line-start=71><a id="Dependencies_Used_71"></a>Dependencies Used</h3>
<ul>
<li class="has-line-data" data-line-end="72" data-line-start="71"><a href="http://kotlinlang.org/">Kotlin</a> - used
<li class="has-line-data" data-line-end="73" data-line-start="72"><a href="http://kotlinlang.org/">Kotlin</a> - used
for null-safety and language features
</li>
<li class="has-line-data" data-line-end="73" data-line-start="72"><a
<li class="has-line-data" data-line-end="74" data-line-start="73"><a
href="https://libgdx.badlogicgames.com/">libgdx</a> - used as a game programming and graphics framework
</li>
<li class="has-line-data" data-line-end="75" data-line-start="73"><a href="https://github.com/junkdog/artemis-odb/">Artemis-ODB</a>
<li class="has-line-data" data-line-end="76" data-line-start="74"><a href="https://github.com/junkdog/artemis-odb/">Artemis-ODB</a>
- used as a entity-component-system for organizing and managing entities
</li>
</ul>
<h2 class="code-line" data-line-end=76 data-line-start=75><a id="Screenshots_75"></a>Screenshots</h2>
<p class="has-line-data" data-line-end="84" data-line-start="77"><img alt="" src="readme_assets/tiled_1.png"><br>
<h2 class="code-line" data-line-end=77 data-line-start=76><a id="Screenshots_76"></a>Screenshots</h2>
<p class="has-line-data" data-line-end="84" data-line-start="78"><img alt="" src="readme_assets/tiled_1.png"><br>
<img alt="" src="readme_assets/tiled_2.png"><br>
<img alt="" src="readme_assets/game1.png"><br>
<img alt="" src="readme_assets/game2.png"><br>
<img alt="" src="readme_assets/game3.png"><br>
<img alt="" src="readme_assets/game-menu.png"><br>
<img alt="" src="readme_assets/game-dropcatch-1.png"><br>
<img alt="" src="readme_assets/tiled_1.png"><br>
<img alt="" src="readme_assets/tiled_2.png"></p>

Expand Down
Binary file added readme_assets/game-dropcatch-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added readme_assets/game-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed readme_assets/game1.png
Binary file not shown.
Binary file removed readme_assets/game2.png
Binary file not shown.
Binary file removed readme_assets/game3.png
Binary file not shown.
30 changes: 18 additions & 12 deletions technical_readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -1611,6 +1611,11 @@
max-width: 100%
}

dt {
font-style: italic;
font-weight: 600
}

.g {
display: block
}
Expand Down Expand Up @@ -2970,10 +2975,10 @@
}

#_default_ .default-title:after {
content: " — "
content: ""
}

#_default_ .default-title, #_default_ .default-description {
#_default_ .default-title, #_default_ .default-text, #_default_ .default-description {
display: inline
}

Expand Down Expand Up @@ -4760,22 +4765,23 @@ <h2 class="code-line" data-line-end=16 data-line-start=15><a id="Map_System_15">
</li>
</ul>
<h2 class="code-line" data-line-end=26 data-line-start=25><a id="UI_System_25"></a>UI System</h2>
<p class="has-line-data" data-line-end="29" data-line-start="27">The user interface of the game utilizes Scene2D. All
<p class="has-line-data" data-line-end="30" data-line-start="27">The user interface of the game utilizes Scene2D. All
interfaces are defined in code. Styling (called skins) are loaded<br>
from the assets folder during start up.</p>
<h2 class="code-line" data-line-end=31 data-line-start=30><a id="Animations_30"></a>Animations</h2>
<p class="has-line-data" data-line-end="34" data-line-start="32">Animations are made within Asesprite, and are exported
from the assets folder during start up. Multiple systems have different Stages that they render to, allowing<br>
for decoupled UI.</p>
<h2 class="code-line" data-line-end=32 data-line-start=31><a id="Animations_31"></a>Animations</h2>
<p class="has-line-data" data-line-end="35" data-line-start="33">Animations are made within Asesprite, and are exported
into a JSON format, which is then parsed to load animations from<br>
a spritesheet. This along with Asesprite automation allowed for faster prototyping.</p>
<h2 class="code-line" data-line-end=36 data-line-start=35><a id="Minigame_System_35"></a>Minigame System</h2>
<p class="has-line-data" data-line-end="39" data-line-start="37">The minigame system was designed to be extensible. New
a spritesheet. This along with Asesprite automation allows for faster prototyping when developing new features.</p>
<h2 class="code-line" data-line-end=37 data-line-start=36><a id="Minigame_System_36"></a>Minigame System</h2>
<p class="has-line-data" data-line-end="40" data-line-start="38">The minigame system was designed to be extensible. New
minigames are just a matter of extending the Minigame abstract<br>
class and implementing the required methods.</p>
<p class="has-line-data" data-line-end="43" data-line-start="40">Dialogue minigames are entirely scripted. They were
implemented entirely separate of the game before being included. This<br>
<p class="has-line-data" data-line-end="44" data-line-start="41">Dialogue minigames are entirely scripted. They were
implemented separately of the game before being included. This<br>
was possible due to the use of Kotlin blocking coroutines to create an seamless API surface to use. Dialogue
coroutines<br>
are run in a coroutine and communicate through a series of Packets with the main thread.</p>
are run in a coroutine and communicate through a series of Packets with the main thread using a Channel.</p>

</body>
</html>
9 changes: 5 additions & 4 deletions technical_readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,19 @@ of the following layers:
## UI System

The user interface of the game utilizes Scene2D. All interfaces are defined in code. Styling (called skins) are loaded
from the assets folder during start up.
from the assets folder during start up. Multiple systems have different Stages that they render to, allowing
for decoupled UI.

## Animations

Animations are made within Asesprite, and are exported into a JSON format, which is then parsed to load animations from
a spritesheet. This along with Asesprite automation allowed for faster prototyping.
a spritesheet. This along with Asesprite automation allows for faster prototyping when developing new features.

## Minigame System

The minigame system was designed to be extensible. New minigames are just a matter of extending the Minigame abstract
class and implementing the required methods.

Dialogue minigames are entirely scripted. They were implemented entirely separate of the game before being included. This
Dialogue minigames are entirely scripted. They were implemented separately of the game before being included. This
was possible due to the use of Kotlin blocking coroutines to create an seamless API surface to use. Dialogue coroutines
are run in a coroutine and communicate through a series of Packets with the main thread.
are run in a coroutine and communicate through a series of Packets with the main thread using a Channel.

0 comments on commit f1dace9

Please sign in to comment.