-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScope.txt
More file actions
201 lines (173 loc) · 4.37 KB
/
Scope.txt
File metadata and controls
201 lines (173 loc) · 4.37 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
197
198
199
200
201
SCOPE:
deadline: invullen voor 20-2-2020
when to quit: when we're done with the project
scope of development: everything
GOALS:
learn to make a game effeciently and futureproofing it (working in a large project)
\> write maintainable code
\> manage progress of project coherently
\> begin with a plan
\> use version control
GAME CONCEPT:
Pitch:
A relaxing resourcegathering game, about building up a village and improving your gathering abilities.
Game loop:
\> Gather resources -> use resources to upgrade -> gather resources more effectively.
\> prestige for gems -> upgrades -> gather more resources faster -> get more gems.
FEATURES/SYSTEMS:
Sound:
\> good sound design for each action, such as swinging a tool and hitting a tree.
\> Simple play sound structure.
Music:
\> Stardew Valley type music. (TBD)
Art/Graphics:
\> Animated sprites for actions that require it.
\> still images for backgrounds things.
\> Top-down, 2,5D
\> own font
\> Shaders
\> Particles
Replayability:
\> multiple gameplay loops
| \> resource gathering
| \> gems
| \> rubies?
| \> god??
\> different saves
Player:
\> moves around
\> has different tools
\> inventory of resources
| \> wood/stone
| \> artifacts
| \> upgrades
NPC:
\> speech bubble dialog
\> scripted movement
\> animation
\> animals
| \> Random movement
| \> Flight reaction
Upgrades:
improves the gameplay in some way.
\> ex: more wood, or keeping some buildings on reset.
\> or even upgrade buildings to have a higher level cap for tools etc.
Items:
\> Player store items in inventory:
| \> List of tools:
| | \> shovel
| | \> pickaxe
| | \> axe
| | \> weapon
| \> list of basic resources:
| | \> wood
| | \> stone
| | \> gold
| | \> gems
| \> infinte list of special items and random drops.
\> Items can drop on the ground and be picked up from the ground by the player.
\> Pop-up showing received items and amount picked up.
Loading/Saving:
\> storing in %appdata%
\> save file loading via a list of saves.
ResourceNodes:
\> Drop item from loot-table on the ground when destroyed.
\> Randomly generated in Forest and Mines.
Zones:
\> Tutorial zone
| \> some fallen trees block the way, so you need to get an axe.
| \> finds axe and destroys the trees -> gets some wood.
| \> see artifact spot, and gets some nails.
| \> builds hut and starts the village.
\> Village
| \> Buildings
| When entering a building the screen goes black and a menu appears
| \> Place to buy items
| \> Base
| \> Place to sell items
| \> Gem handler
| \> Upgrade station(s)
| \> Idle resource gathering building
\> Forest
| \> has trees of different hardness.
| \> has artifact spots that can give items.
| \> has forest animals (and mutated type?)
| \> for leather etc.
\> Mines
| \> has rocks of different hardness.
| \> has Ore-veins of different hardness.
| \> has artifact spots that can give items.
Settings:
\> Sound volume
| \> action volume
| \> music volume
\> Resolution
\> UI scale
CLASSES:
Data Types:
{
FormattedText() //has data related to displaying text
}
LowLevel
{
Timer(time, methodgroup) //Do method after time.
QuadTree() //collision data structure using ICollidable.
InputManager() //handles all the related input things.
AnimationController() //Handle animations from an Ase document.
INTERFACES:
ICollidable (has necessary things for collision)
IDrawable (has necessary things for drawing to the screen)
IAnimatable (has necessary things for animation)
EVENTS:
CollisionEvent fires whenever both parties collide
MouseDownEvent fires whenever the mouse is down on the object
MouseUpEvent fires whenever the mouse is up on the object
}
Medium level
{
Tile
GameEntity
TextObject
UIObject
}
High level
{
}
FOLDER STRUCTURE:
sln
|-|>Program
|-|>Game
|---|> GameObjects
| |> GameEntity
| |> .TextObject
| |> .UIObject
|---|> DataObjects
| |> .FormattedText
|---|> Utilities
| |> .QuadTree
| |> Timer
| |> .InputManager
| |> .Camera
|
|---|> Interfaces
| |> .IClickable
| |> .ICollidable
| |> .IDrawable
| |> .IGameObject
| |> .IManageable
| |> .IObject
| |> .IUIObject
| |> .IUpdateable
| |> .IAnimatable
|
|
|---|> Screens
| |> .MenuScreen
| |> .GameScreen
|---|> Events
| |> Events
| \--|> .CollisionEvent
| \-|> .MouseEvent
|
|
|---|> Content