-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
120 lines (103 loc) · 5.57 KB
/
index.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
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dino Platformer</title>
<link rel="stylesheet" href="styles.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Baloo+Tammudu+2&family=Bungee&family=DotGothic16&display=swap"
rel="stylesheet">
</head>
<body>
<nav>Dino Platformer</nav>
<div ALIGN=CENTER>
<h2>Playthrough Trailer</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/OtKWK3xuMlM" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>
</div>
<div ALIGN=CENTER>
<h2> Images </h2>
</div>
<div ALIGN=CENTER>
<section><img src="photos/StartScreen.png"><img src="photos/dino2.png"><img src="photos/WinScreen.png">
</section>
<section><img src="photos/dino1.png"><img src="photos/GameOverScreen.png"><img src="photos/dino3.png">
</section>
</div>
<div ALIGN=CENTER>
<h2> Tech & Tools </h2>
</div>
<p>
<li><a href="https://en.cppreference.com/w/cpp/17">C++ 17</a> for building the Game Engine</li>
<li><a href="https://www.libsdl.org/">SDL2</a> for abstracting game input and rendering</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/javascript"> Javascript</a> for building the <a href="https://jugalj05hi.github.io/GameLevelEditor/">Game Level Editor</a></li>
</p>
<div ALIGN=CENTER>
<h2> Gameplay </h2>
</div>
<p>
The goal of the game is to collect as many coins as you can and reach the red flag! However, you must do this
while avoiding enemy characters. If you get hit by an enemy you will lose one life. Be careful you only have 3
lives! To move your character you can use WASD or the arrow keys, with w, up, and space bar being used to jump.
To move forward while you jump hit the left/right arrow or A/D as you press spacebar. You can also kill an enemy
character by jumping on top of it, however we do not condone violence.
</p>
<div ALIGN=CENTER>
<h2> Special Feautre </h2>
</div>
<p>
The special feature in our game is a reverse-parallax! Reverse-Parallax is a scrolling technique in which the background image
moves slowly in comparision to the foreground images. This creates an illusion of the game level floating above the background
scene.
</p>
<div ALIGN=CENTER>
<h2> Code Architecture </h2>
</div>
<p>
The following docs below are generated through ‘Doxygen’ and gives you an overview of the game code base and
architecture of the Game Engine. <a href="./docs/html/inherits.html"> Architecture Docs </a>
</p>
<div ALIGN=CENTER>
<h2> Post Mortem </h2>
</div>
<p>Making this game has been a learning process for everyone, if we had more time we could have done a lot more.
</p>
<p>One of our biggest struggles was refactoring the code to use the Component Pattern. We underestimated how long
and tedious it would be, and that delayed the process of everything else that needed to be done, which left us
short on time. If we could we would have liked to spend more time fine tuning the physics component. We also
could have made child classes from game entity like main player, NPCs, collectable item, just to have more
separation of data types because at the moment we have game entity containing a lot of attributes that may not
be neccessary for all game entities.
</p>
<p> Besides that it would have been nice if we could have implemented more features. For example having a 2 player
option or making the character experience different effects from consuming different items like being able to
temporarily fly after consuming a feather or moving faster after consuming a potion. Another fun idea would have
been adding a character creator portion of the game where the user can choose different outfits or
colors for the dino.</p>
<div ALIGN=CENTER>
<h2> Installing and Running the Game </h2>
</div>
<p><b>Installing the game</b></p>
<p>
Install the following frameworks
<li><a href="https://lazyfoo.net/tutorials/SDL/01_hello_SDL/mac/index.php">SDL2</a></li>
<li> <a href="https://www.libsdl.org/projects/SDL_ttf/"> SDL_ttf </a></li>
<li> <a href="https://www.libsdl.org/projects/SDL_mixer/">SDL_mixer</a></li>
<li><a href= "https://www.libsdl.org/projects/SDL_image/">SDL_image</a></li>
<li>Download and Extract the following ZIP file to a folder. <a href="Game.zip">Game.zip</a></p>
<li>After Extracting open the terminal and run the following command inside of the Game folder
<code> python build.py </code></li>
<li>The above steps would result in binary file being created in the name of <code>Game</code> in the bin folder</li>
</p>
<p><b>Running the game</b></p>
<p>
<li>From the root directory type the following command <code>./bin/game</code></li>
</p>
<p>Entire Project including Documentation: <a href="Game.zip">download project files</a></p>
<p>Binary for Mac OS: <a href="bin/game">download binary file</a> </p>
</body>
</html>