Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,256 --> 00:00:02,816
Now that our game is in pretty good shape
2
00:00:03,072 --> 00:00:05,120
Visually and gameplay wise
3
00:00:05,632 --> 00:00:09,472
There is one final mechanic that I want to add into the game
4
00:00:09,728 --> 00:00:12,032
And that is meta progression
5
00:00:12,288 --> 00:00:14,336
Most games in this genre
6
00:00:14,592 --> 00:00:15,872
Have some way
7
00:00:16,128 --> 00:00:16,640
Tuchel
8
00:00:16,896 --> 00:00:17,920
Permanent upgrades
9
00:00:18,432 --> 00:00:19,200
Based on
10
00:00:19,456 --> 00:00:22,528
What you're accomplishing in the game in those permanent upgrades
11
00:00:22,784 --> 00:00:23,552
Can
12
00:00:23,808 --> 00:00:24,320
Affect
13
00:00:24,576 --> 00:00:26,112
Every subsequent run
14
00:00:26,368 --> 00:00:31,488
So I'm going to walk you through the process of building out a framework that you can use
15
00:00:32,000 --> 00:00:33,792
To implement however many
16
00:00:34,048 --> 00:00:39,424
Upgrade you want and also how to save and load that data from the disk
17
00:00:39,936 --> 00:00:40,704
So that
18
00:00:40,960 --> 00:00:43,520
Persists in between gameplay sessions
19
00:00:43,776 --> 00:00:46,592
So the first thing that were going to want to do is let's just
20
00:00:46,848 --> 00:00:47,360
Set up
21
00:00:47,616 --> 00:00:48,128
Code
22
00:00:48,384 --> 00:00:49,408
For supporting
23
00:00:49,664 --> 00:00:50,688
Metre upgrade
24
00:00:50,944 --> 00:00:53,504
So the best place to put this is going to be in a
25
00:00:53,760 --> 00:00:54,272
Sing
26
00:00:54,784 --> 00:00:58,112
And that means that weekend reference that data from anywhere
27
00:00:58,368 --> 00:00:58,880
The code
28
00:00:59,136 --> 00:01:02,061
But also it's going to allow us to save and load the files at any point
29
00:01:02,063 --> 00:01:04,411
Subtitled by
online-courses.club
We compress knowledge for you!
30
00:01:04,412 --> 00:01:07,584
During a game weather in the game or in the options menu at the moment
31
00:01:07,840 --> 00:01:09,120
Whenever is necessary
32
00:01:09,376 --> 00:01:10,144
Someone who
33
00:01:10,656 --> 00:01:15,264
Golden place will go through the process of saving the data
34
00:01:15,520 --> 00:01:18,592
And loading it from the disc and then we'll build a UI
35
00:01:18,848 --> 00:01:21,664
So that the player can actually put points into that progress
36
00:01:21,920 --> 00:01:23,712
What's going on in create a new node
37
00:01:24,480 --> 00:01:25,504
And we're going to create
38
00:01:26,272 --> 00:01:27,040
Our route now
39
00:01:27,808 --> 00:01:28,832
Of type no
40
00:01:29,344 --> 00:01:31,904
And then let's call it m
41
00:01:32,416 --> 00:01:33,184
Manager
42
00:01:33,440 --> 00:01:34,976
Or let's can't medipro
43
00:01:35,232 --> 00:01:35,744
Progress
44
00:01:36,256 --> 00:01:36,768
Like
45
00:01:37,536 --> 00:01:39,072
I was describing
46
00:01:39,584 --> 00:01:40,864
Anna let's do scenes
47
00:01:41,120 --> 00:01:42,912
And then I delayed will save it
48
00:01:44,192 --> 00:01:46,240
What's going on at a script of this metal press
49
00:01:46,496 --> 00:01:48,800
What is Our Data going to look like well
50
00:01:49,056 --> 00:01:51,872
I think we're going to pretty much use the same
51
00:01:52,384 --> 00:01:56,480
Strategy as what we have for our ability upgrades
52
00:01:56,992 --> 00:01:58,016
So I'm going to
53
00:01:58,784 --> 00:02:00,576
Create a new folder on a resources
54
00:02:01,856 --> 00:02:03,904
And then I'm going to call this medical grade
55
00:02:04,416 --> 00:02:05,184
Meta underscore
56
00:02:05,440 --> 00:02:06,208
Upgrades
57
00:02:07,744 --> 00:02:10,560
And before we doing the code in the meta progress
58
00:02:11,072 --> 00:02:13,888
Let's create a script under mega upgrade
59
00:02:14,400 --> 00:02:15,424
So Michael
60
00:02:15,680 --> 00:02:16,192
New
61
00:02:16,704 --> 00:02:18,240
Script and call it
62
00:02:18,496 --> 00:02:20,544
Meta underscore upgrade
63
00:02:20,800 --> 00:02:21,824
GD
64
00:02:22,848 --> 00:02:25,920
OK then let's go ahead and open up that matter upgrade
65
00:02:26,176 --> 00:02:30,784
And this needs two extends resource same as what we're doing with our
66
00:02:31,040 --> 00:02:32,320
Ability upgrades here
67
00:02:33,600 --> 00:02:36,672
And that we're gonna do is we're going to add an export variable
68
00:02:37,184 --> 00:02:41,280
I'm going to give this an idea again so this is going to be ID string
69
00:02:42,048 --> 00:02:43,328
Then let's export
70
00:02:43,584 --> 00:02:47,680
Another variable called Max quantity and that will be an Int
71
00:02:47,936 --> 00:02:49,472
21 by The Fall
72
00:02:49,728 --> 00:02:51,008
Anna let's give it a
73
00:02:51,264 --> 00:02:51,776
Tidal
74
00:02:52,288 --> 00:02:53,056
Bar title
75
00:02:53,312 --> 00:02:54,592
String and then
76
00:02:55,104 --> 00:02:57,408
Unless do export underscore multi line
77
00:02:57,920 --> 00:02:58,432
Via
78
00:02:58,688 --> 00:02:59,456
Description
79
00:02:59,968 --> 00:03:00,480
String
80
00:03:01,248 --> 00:03:03,040
Ok so what are some
81
00:03:03,296 --> 00:03:05,856
What is one upgrades that we can add
82
00:03:06,368 --> 00:03:07,136
For the player
83
00:03:08,160 --> 00:03:10,464
Because our game is not full of content
84
00:03:10,976 --> 00:03:13,024
There's not really anything to creative
85
00:03:13,280 --> 00:03:14,304
Can do yet
86
00:03:14,560 --> 00:03:18,656
I think one obvious thing that we can do is increase the drop rate of
87
00:03:19,168 --> 00:03:22,240
Experience rate so that the player can get upgrades fast
88
00:03:23,520 --> 00:03:27,104
I'm not really paying attention to match two balancing this game
89
00:03:27,360 --> 00:03:29,408
Balancing is a hoarder can of worms that
90
00:03:29,664 --> 00:03:30,944
Alarm time to get through
91
00:03:31,200 --> 00:03:37,344
I'm just trying to show you throughout this course how you can approach adding new things that doesn't necessarily mean that they
92
00:03:37,600 --> 00:03:39,904
You think you're going to be balanced or good for the
93
00:03:40,416 --> 00:03:40,928
So
94
00:03:41,440 --> 00:03:45,792
Let's go ahead and create a new resource under the minute upgrades or right-click that folder
95
00:03:46,048 --> 00:03:47,328
New resource
96
00:03:47,584 --> 00:03:50,656
And then let's go ahead and add a base type resource here
97
00:03:51,424 --> 00:03:52,704
And let's call
98
00:03:52,960 --> 00:03:55,264
What's experienced underscore game
99
00:03:56,288 --> 00:03:58,336
Double-click that experience game
100
00:03:58,592 --> 00:04:00,640
And then drag the mirror upgrade into the
101
00:04:00,896 --> 00:04:03,200
And you should see all of the ideas here
102
00:04:03,712 --> 00:04:06,784
Navigate to Wright experience gain in the ID here
103
00:04:07,040 --> 00:04:08,832
Max quantity can stay at
104
00:04:09,344 --> 00:04:09,856
1
105
00:04:10,880 --> 00:04:13,952
Let's call the title increase experience
106
00:04:14,464 --> 00:04:14,976
And then
107
00:04:15,232 --> 00:04:16,768
Let's do increases
108
00:04:17,024 --> 00:04:18,047
Experience
109
00:04:18,303 --> 00:04:18,815
Drop
110
00:04:19,071 --> 00:04:20,095
Chance by
111
00:04:20,351 --> 00:04:21,119
Ten percent
112
00:04:21,631 --> 00:04:23,935
A very basic upgrade that we
113
00:04:24,959 --> 00:04:27,519
So you've got R1 upgrade setup
114
00:04:27,775 --> 00:04:32,895
Let's go back to the meta progression script and let's do a little bit of planning about how our
115
00:04:33,407 --> 00:04:34,687
Save data is going to
116
00:04:34,943 --> 00:04:36,991
I'm going to create a new variable called
117
00:04:37,759 --> 00:04:39,039
M upgrades
118
00:04:39,807 --> 00:04:40,831
Then this is going to
119
00:04:41,599 --> 00:04:43,135
A type of dictionary
120
00:04:43,903 --> 00:04:47,231
And the weather I'm going to set this as I'm going to set it equal to an empty dictionary
121
00:04:47,487 --> 00:04:49,279
But just for demonstration purposes
122
00:04:49,535 --> 00:04:52,095
I think what's going to happen is we're going to have
123
00:04:52,351 --> 00:04:56,703
The ID here so it's going to look like something like experienced game just like that
124
00:04:56,959 --> 00:04:59,263
And then there's going to be a sub dictionary here
125
00:04:59,775 --> 00:05:01,567
And there's going to be a quantity
126
00:05:02,591 --> 00:05:05,151
Which is going to be 1 or something similar
127
00:05:05,663 --> 00:05:11,807
And the reason why I like to do nested dictionaries as because imagine your building this as a fool
128
00:05:12,575 --> 00:05:16,415
And you have some other data that you want to associate with the experience
129
00:05:16,927 --> 00:05:20,767
If you just had what city experienced game said to one right there
130
00:05:21,535 --> 00:05:24,607
You would have a hard time associated more data with
131
00:05:24,863 --> 00:05:25,631
Whereas
132
00:05:25,887 --> 00:05:31,519
If you had just a sub dictionary you can add any number of additional properties under here
133
00:05:32,031 --> 00:05:33,311
So you want Sofia insta
134
00:05:33,567 --> 00:05:35,615
Let's say that I wanted to tell the player
135
00:05:35,871 --> 00:05:36,639
When
136
00:05:36,895 --> 00:05:37,663
They picked up
137
00:05:37,919 --> 00:05:39,199
There's a billy I can say
138
00:05:39,711 --> 00:05:40,479
Acquired
139
00:05:41,247 --> 00:05:41,759
Time step
140
00:05:42,783 --> 00:05:44,831
Right and then this could be some kind of numb
141
00:05:46,111 --> 00:05:52,255
What kind of what I'm going to set it up as so the currency that's going to be used for these upgrades is going to be the total amount
142
00:05:52,511 --> 00:05:53,279
Experience that you
143
00:05:53,535 --> 00:05:58,655
So in addition to experience levelling you up and the game that's going to get added to a number
144
00:05:58,911 --> 00:06:00,191
In the mirror upgrade
145
00:06:00,447 --> 00:06:00,959
So
146
00:06:01,215 --> 00:06:02,495
Actually what we're going to
147
00:06:02,751 --> 00:06:04,287
How to do if something like
148
00:06:04,543 --> 00:06:06,079
What's it called is currency
149
00:06:06,335 --> 00:06:08,127
Upgrade currency
150
00:06:08,383 --> 00:06:08,895
Like so
151
00:06:09,407 --> 00:06:10,943
And this will be something like cereal
152
00:06:11,199 --> 00:06:13,247
And then I'm going to have another key
153
00:06:14,271 --> 00:06:15,039
Underneath the car
154
00:06:15,295 --> 00:06:16,063
Upgrades
155
00:06:16,831 --> 00:06:20,415
And in this upgrades Dictionary that's where you're going to see things
156
00:06:20,671 --> 00:06:21,439
Experience game
157
00:06:22,207 --> 00:06:24,511
So it's really important to plan out
158
00:06:25,023 --> 00:06:26,559
What you want your data
159
00:06:26,815 --> 00:06:27,327
Look like
160
00:06:27,583 --> 00:06:29,887
And so now we've got a top lever
161
00:06:30,143 --> 00:06:31,167
Which can tell us
162
00:06:31,679 --> 00:06:32,959
Things about the play
163
00:06:33,215 --> 00:06:33,727
Progress
164
00:06:33,983 --> 00:06:34,751
And we might be
165
00:06:35,007 --> 00:06:37,823
Even able to store more data in here like we could say
166
00:06:38,335 --> 00:06:39,615
Win count rate
167
00:06:39,871 --> 00:06:41,151
And then last count
168
00:06:42,431 --> 00:06:45,247
And then we can also store the upgrade currency and the current
169
00:06:46,783 --> 00:06:49,599
Let's call this m upgrades and M upgrade
170
00:06:49,855 --> 00:06:51,391
Currency to be very
171
00:06:51,647 --> 00:06:52,415
Southway
172
00:06:52,671 --> 00:06:54,719
Initialise a dictionary like this
173
00:06:54,975 --> 00:07:01,119
Now the data is becoming very clear right we can add more top level on related stats to the
174
00:07:01,631 --> 00:07:02,911
As part of the same file
175
00:07:03,423 --> 00:07:07,519
And then we have a very specific key that keeps track of all of the
176
00:07:07,775 --> 00:07:10,591
Solicit the beauty of dictionaries as that you can store
177
00:07:10,847 --> 00:07:13,663
Arbitrary nested data very sensibly
178
00:07:13,919 --> 00:07:17,759
But I'm going to get rid of this Wincanton last count and just keep it like that
179
00:07:18,271 --> 00:07:21,855
And then I'm probably going to get a let's just remove the experience game here
180
00:07:22,367 --> 00:07:23,903
And so this is my stepdad
181
00:07:24,415 --> 00:07:26,207
Are we actually leave it like this as well
182
00:07:26,463 --> 00:07:26,975
ASDA
183
00:07:27,231 --> 00:07:29,023
Initialised version of the digger
184
00:07:29,279 --> 00:07:31,327
So we got a metre upgrades now
185
00:07:31,583 --> 00:07:34,399
Let's go ahead and increment this metal upgrade currency
186
00:07:34,655 --> 00:07:35,423
Whenever
187
00:07:35,679 --> 00:07:41,823
The experience is increased now fortunately we have in our game events we have
188
00:07:42,079 --> 00:07:42,591
This
189
00:07:43,103 --> 00:07:44,639
Experience vile collect
190
00:07:45,151 --> 00:07:48,479
Right and we can actually listen to that in our Meadow progress
191
00:07:49,247 --> 00:07:51,551
Project project settings auto load
192
00:07:51,807 --> 00:07:55,135
One thing that we need to do before we can do that is we need to
193
00:07:55,391 --> 00:07:56,159
Dad dad
194
00:07:56,415 --> 00:07:58,207
Meta-regression to r
195
00:07:58,463 --> 00:08:00,255
So let's go ahead and click this load button
196
00:08:00,511 --> 00:08:02,303
Go to seems autoload
197
00:08:02,815 --> 00:08:06,655
And go ahead and put in the meta progression tscl
198
00:08:07,167 --> 00:08:07,935
Click
199
00:08:08,703 --> 00:08:09,727
And then close
200
00:08:09,983 --> 00:08:11,007
So now
201
00:08:11,263 --> 00:08:12,799
Dad's Ian the
202
00:08:13,311 --> 00:08:17,407
Fintry this meta progression we can in are ready method so let's too far
203
00:08:18,175 --> 00:08:18,687
Ready
204
00:08:19,455 --> 00:08:20,479
We're going to
205
00:08:20,735 --> 00:08:21,759
Say game events
206
00:08:22,271 --> 00:08:22,783
Dart
207
00:08:23,295 --> 00:08:25,343
Experienced by all collected dad can I
208
00:08:26,111 --> 00:08:27,903
And they're on Xperia
209
00:08:28,415 --> 00:08:29,695
Collected is the
210
00:08:30,207 --> 00:08:30,719
Function
211
00:08:31,487 --> 00:08:32,767
Anna let's go down
212
00:08:33,023 --> 00:08:34,559
Do the same thing so fun
213
00:08:34,815 --> 00:08:36,095
On Experian
214
00:08:36,863 --> 00:08:37,375
Collected
215
00:08:38,655 --> 00:08:39,167
Alright
216
00:08:39,423 --> 00:08:40,191
So in here
217
00:08:40,703 --> 00:08:46,847
What we want to do is we want to first of all the number comes in as an argument here so let
218
00:08:47,103 --> 00:08:47,615
Specify that
219
00:08:48,127 --> 00:08:49,151
And then we can say
220
00:08:49,407 --> 00:08:50,431
Mirror upgrades
221
00:08:50,943 --> 00:08:51,455
And then
222
00:08:51,711 --> 00:08:53,503
The index which is made
223
00:08:55,039 --> 00:08:55,551
Currency
224
00:08:56,575 --> 00:08:58,111
Plus equals
225
00:08:58,879 --> 00:08:59,391
Number
226
00:08:59,647 --> 00:09:03,743
So now you're just constantly keeping track of the experience that was killed
227
00:09:04,255 --> 00:09:06,303
OK now it's about another function
228
00:09:08,607 --> 00:09:10,399
Admiral upgrade
229
00:09:10,911 --> 00:09:15,519
And we're going to pass in the upgrade which is of type in let's go ahead and give
230
00:09:16,031 --> 00:09:20,127
H m upgrade Script so go ahead and open up Meadow upgrades
231
00:09:20,383 --> 00:09:21,151
GD
232
00:09:21,407 --> 00:09:23,967
Give It A Class name of meta up
233
00:09:24,223 --> 00:09:25,247
So class name
234
00:09:25,503 --> 00:09:26,527
Mirror
235
00:09:27,807 --> 00:09:28,575
Excel
236
00:09:29,087 --> 00:09:31,647
CD go back to your meta progression
237
00:09:32,415 --> 00:09:35,231
And let's make this type in here
238
00:09:35,487 --> 00:09:37,023
Type of metre upgrade
239
00:09:39,583 --> 00:09:40,607
So now or going to do
240
00:09:40,863 --> 00:09:42,143
Is we are going to The Fall
241
00:09:42,399 --> 00:09:43,935
We're going to say
242
00:09:44,703 --> 00:09:45,727
Mela upgrades
243
00:09:48,287 --> 00:09:49,055
Metre upgrade
244
00:09:49,567 --> 00:09:55,711
Let's let's change this so this may upgrade radio this variable which change it to save underscore
245
00:09:55,967 --> 00:09:56,479
Potato
246
00:09:56,991 --> 00:10:00,460
Cos that's a little bit more descriptive of what we're doing with this
247
00:10:00,461 --> 00:10:02,760
Subtitled by
online-courses.club
We compress knowledge for you!
248
00:10:02,761 --> 00:10:03,647
And then let's change it here save
249
00:10:04,159 --> 00:10:04,671
Data
250
00:10:05,183 --> 00:10:05,951
Exchange
251
00:10:06,207 --> 00:10:07,999
In his own experience collected as
252
00:10:09,023 --> 00:10:13,119
So if save data met upgrades so that's this key right here
253
00:10:14,911 --> 00:10:15,679
Has
254
00:10:15,935 --> 00:10:17,983
And then in here we want to say
255
00:10:18,239 --> 00:10:20,287
Upgrade
256
00:10:20,543 --> 00:10:22,591
And that's actually invert this also
257
00:10:23,103 --> 00:10:26,943
Not what you can use the word or you can use exclamation mark
258
00:10:27,711 --> 00:10:30,271
If not save data has upgrade ID
259
00:10:30,527 --> 00:10:33,599
Then what we're going to do is we're going to say save data
260
00:10:34,623 --> 00:10:36,671
Index metre upgrades
261
00:10:37,695 --> 00:10:38,975
And then index
262
00:10:39,231 --> 00:10:41,791
Upgrade.ie is equal to
263
00:10:42,559 --> 00:10:45,375
And then let's go ahead and set a default quantity
264
00:10:45,631 --> 00:10:46,399
Of
265
00:10:46,655 --> 00:10:47,423
So what is this
266
00:10:47,679 --> 00:10:52,543
What is the saying is that if we don't yet have an entry for the upgrade that were passing in
267
00:10:53,567 --> 00:10:56,127
Then what we're going to do is we're going to set
268
00:10:56,639 --> 00:10:57,663
That entry
269
00:10:57,919 --> 00:11:00,479
To have a default value of quantities
270
00:11:00,991 --> 00:11:04,575
So that means that essentially after we had the experience upgrade
271
00:11:04,831 --> 00:11:06,367
Or experience gain
272
00:11:06,623 --> 00:11:07,135
Upgrade
273
00:11:07,391 --> 00:11:08,159
It's gonna look like
274
00:11:09,183 --> 00:11:10,207
Experience game
275
00:11:10,975 --> 00:11:11,999
And then it's going to have
276
00:11:12,255 --> 00:11:14,047
An object like cell
277
00:11:14,815 --> 00:11:16,095
That's what we're creating
278
00:11:17,119 --> 00:11:18,143
If it doesn't exist
279
00:11:19,167 --> 00:11:22,495
I never we can do it since we are now guaranteed that this
280
00:11:22,751 --> 00:11:26,335
Save data has that upgrade with in the middle of grid
281
00:11:26,591 --> 00:11:27,871
We can say say
282
00:11:28,127 --> 00:11:28,895
Underscore dealer
283
00:11:29,407 --> 00:11:30,431
Mirror upgrades
284
00:11:31,711 --> 00:11:34,015
And then upgrade on ID
285
00:11:34,783 --> 00:11:36,063
And then quantity
286
00:11:36,319 --> 00:11:37,343
What's equals 1
287
00:11:38,367 --> 00:11:39,391
Did you see what we're doing now
288
00:11:39,647 --> 00:11:41,695
We are now referencing that quantity
289
00:11:41,951 --> 00:11:45,791
And increasing and I might be so why don't we just say it do it here because
290
00:11:46,559 --> 00:11:49,887
This will work every single time it is that conditional
291
00:11:50,143 --> 00:11:51,423
Inherited condition
292
00:11:51,679 --> 00:11:52,447
So if we said
293
00:11:52,703 --> 00:11:55,519
12th day one then we have to return at the function
294
00:11:55,775 --> 00:12:01,151
It just makes more sense to set up the initial empty object the initial object structure
295
00:12:01,407 --> 00:12:04,991
And then always add 1 to it rather than deal with the other conditions
296
00:12:06,271 --> 00:12:08,831
So after we are the upgrade I'm going to go ahead
297
00:12:09,087 --> 00:12:12,159
And I'm going to print that save data just for
298
00:12:12,927 --> 00:12:16,255
Just for debugging purposes and then in the ready method let's go and tell
299
00:12:16,511 --> 00:12:18,303
Let's do admin upgrade
300
00:12:18,815 --> 00:12:20,351
And then we're going to do a
301
00:12:20,607 --> 00:12:21,887
What's a load
302
00:12:22,655 --> 00:12:23,423
Res
303
00:12:24,191 --> 00:12:25,215
Experience game
304
00:12:25,983 --> 00:12:26,495
So
305
00:12:26,751 --> 00:12:28,031
Well loading this pathway
306
00:12:28,287 --> 00:12:28,799
Resource
307
00:12:29,823 --> 00:12:31,359
Meta upgrades experience game
308
00:12:31,871 --> 00:12:33,407
And so soon as we Run the game
309
00:12:33,663 --> 00:12:34,431
What we should see
310
00:12:35,711 --> 00:12:36,735
We should see
311
00:12:37,247 --> 00:12:42,367
H dictionary printed and you can see that's exactly as we expect it right we have no upgrade currency
312
00:12:42,623 --> 00:12:43,647
We have no
313
00:12:43,903 --> 00:12:45,695
We have one metre upgrade with a
314
00:12:45,951 --> 00:12:46,463
The other one
315
00:12:47,231 --> 00:12:50,047
So that's all working so I'm going to remove that code
316
00:12:50,303 --> 00:12:54,143
Because we don't need that now remove the printer as well because we verify that is were
317
00:12:55,167 --> 00:12:56,959
So that's our data set
318
00:12:57,215 --> 00:13:01,311
In the next lesson were going to set up saving and loading that data
319
00:13:01,567 --> 00:13:02,335
From the door
21578
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.