forked from markfloryan/gamedesign
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gameloop.html
77 lines (77 loc) · 4.77 KB
/
gameloop.html
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
<h1 id="cs4730---hw-1-game-loop">CS4730 - HW 1: Game Loop</h1>
<h2 id="github-assignment-link"><a name="background"></a>Github Assignment Link</h2>
<p>Every assignment has a <strong>Github Classroom Link</strong> you must follow to get the starter code (if applicable) and to create your repository for the assignment. If you haven’t yet done so, follow the instructions at the <a href="./githubclassroom.html">Github Classroom Tutorial</a>.</p>
<p><strong>Assignment Invite Link</strong>: <a href="https://classroom.github.com/a/jI8iTx_6">Homework 1 Invite</a></p>
<p>Once your repository is configured, push your code to it in order to submit your work.</p>
<h2 id="background"><a name="background"></a>Background</h2>
<p>The purpose of this assignment is to warm-up both your game development and game design skills in a low-stress environment. You will be developing a short text-based adventure in <a href="https://docs.python.org/3/">Python</a>.</p>
<p>To get started, take a look at the very simple example <a href="https://trinket.io/python/e5a03e7cbc">here</a>. Your game will ultimately be more complicated than this one, but it gives you an example of where to start. If you’d like to test out a more complicated text-based game, you can try playing <a href="http://textadventures.co.uk/games/play/5zyoqrsugeopel3ffhz_vq">Zork</a>, or search for other text-based games online.</p>
<p>Your game is required to be a short, fully playable game that has some interesting game mechanics and some kind of narrative. See below for the formal requirements.</p>
<h2 id="required-features-5-features-55-required-to-pass"><a name="required"></a>Required Features (5 features; 5/5 required to pass)</h2>
<p>Your adventure will pass if you have each of the following five features implemented in working.</p>
<ol type="1">
<li><strong>Working executable</strong>
<ul>
<li>The game can be started by running a single .py file.</li>
<li>The game does not crash or freeze (or become unbeatable) during play.</li>
</ul></li>
<li><strong>Halting for player input</strong>
<ul>
<li>Your game halts and awaits players to type input. This input alters the path of the game.</li>
<li>The game makes clear to players what actions can be typed and how to construct commands correctly.</li>
</ul></li>
<li><strong>Branching paths</strong>
<ul>
<li>Your game must have at least <strong>five</strong> meaningful decision points that alter the outcome of the game.</li>
<li>There must be at least <strong>two</strong> different endings to your game.</li>
</ul></li>
<li><strong>Compelling story</strong>
<ul>
<li>The story must be well thought out and take an average player at least a minute to complete.</li>
<li>Must show some degree of creativity and thought.</li>
</ul></li>
<li><strong>Clean code</strong>
<ul>
<li>Robust logic that cannot be manipulated by the player.</li>
<li>Modularization of functionality into small easily digestible functions / method.</li>
<li>Easy to read and documented.</li>
</ul></li>
</ol>
<h2 id="optional-features-10-points"><a name="optional"></a>Optional Features (10 points)</h2>
<p>If you’d like to use this assignment to make progress on the optional points portion of your grade, you may implement the following features:</p>
<ol type="1">
<li><strong>Encounter/combat system (2 points)</strong>
<ul>
<li>Add at least 2 battles.</li>
<li>Keep track of player and enemy health and damage.</li>
<li>Player and enemy must have at least 2 actions that can be taken to strategize combat.</li>
</ul></li>
<li><strong>Persistent stats (2 points)</strong>
<ul>
<li>Requires completion of the encounter/combat system.</li>
<li>Have stats/resources remembered, even between battles.</li>
<li>Include some kind of leveling system that strengthens the character.</li>
<li>Add at least 2 more battles.</li>
</ul></li>
<li><strong>Quick time events (1 points)</strong>
<ul>
<li>Have certain events require a certain amount of time to complete.</li>
<li>If the player doesn’t react fast enough, they are penalized but the game remains winnable.</li>
</ul></li>
<li><strong>Procedural events (2 points)</strong>
<ul>
<li>Have some aspect of your game procedurally generated at the start of a new game.</li>
<li>Could be room configurations, encounters, item locations, win condition, etc.</li>
</ul></li>
<li><strong>Saving and loading (2 points)</strong>
<ul>
<li>Requires completion of persistent stats.</li>
<li><code>python game.py</code> should create a new game.</li>
<li><code>python game.py <file_name></code> should load an existing game saved at that file.</li>
<li>Typing <code>save <file_name></code> at any point of your game should save your stats and any progress you have made to that file.</li>
</ul></li>
<li><strong>Graphics (1 points)</strong>
<ul>
<li>Have at least 5 ASCII graphics (one must be the title screen).</li>
</ul></li>
</ol>