Welcome to Menu Week - Tower Defense Game Dev 30
1 views
Jun 24, 2025
If you want to support my stream, please subscribe and share! If you want to go above and beyond, you can tip me using the following link. https://streamelements.com/exlted-4717/tip Hi! I'm exlted a vtuber and member of Stygian, Here are a few rules for this chat - 1 - Cussing me or my mods out for ANY (illegitimate) reason is an immediate ban 2 - Spamming (if there are multiple chatters) is not allowed and will be cause for a timeout 3 - No I will not add you as a friend nor can you join unless we specifically say so in the title #gamedev #gamedevelopment #programming
View Video Transcript
0:07
hello hello everybody
0:13
it's been a week it's been a little while i'm back i
0:19
don't know if I'm I don't know how much I'm going to stream this week but I'm back for today we are going to show off
0:26
what I worked on in the last week uh and then we're gonna start work on something
0:32
new [Music]
0:38
so as you can I've cleared out something
0:43
from my player controller uh
0:48
we've gone and done a whole bunch
0:54
of uh
1:00
whole bunch of work on this so I mean let's uh let me let me let me
1:06
let me let me show you what's going on
1:26
[Music]
1:39
so there's probably one of the most interesting things that we've done uh so
1:46
I think you've seen our economy settings we have uh resource types being set by
1:55
uh being set by the end user of our toolkit here in the settings well we
2:00
also have stat settings so health current health move speed defense
2:06
wait but what's this down here hey Mr blurry thanks for stopping by um
2:15
we have the ability for these predefined stat categories that are used inside of
2:24
things well here specifically like our health bar so our health bar is based
2:30
off of uh no our health bar is based off of our
2:35
health stat so we can pop into our blueprints into our test table
2:42
pop this over here uh our builder has a health of 10 let's go ahead and make it
2:48
a health of of 20 and we save and then we can stop and we
2:54
can run and so this is all done d this is done dynamically out of
3:02
our stat sheet uh that's out here in our in our data table
3:09
um it also shows up here for now uh let's
3:18
pop a fighter in place and a turret there's a bug in place right now where
3:24
we are not correctly um
3:29
checking teams here uh so we're doing self damage um which isn't grand but I
3:37
get to show off that this works 16
3:42
15 and it ticks down right there and so these health bars are in world
3:50
space so I can go ahead and put it back put them right here
3:56
no put him a little bit further [Music] and so that health bar is hiding behind
4:03
the uh behind the pillar that stupid nose
4:12
so it's uh we're it's it's cool we're we've done a lot along these lines we
4:18
have this new uh UI that tells us or that we that tells us what we have
4:26
coming up so what's in our coming wave how many lives we have left uh we allows
4:33
us to start our next wave this there there's still a bug here the wave
4:38
started but it says cancel starting next wave i
4:43
a lot of this will be cleaned up in the polish pass uh this is currently broken as well they're not running the uh
4:50
waypoints and I'm not sure why but we're
4:55
making progress and we have all of this um
5:05
we're we're we're we're we're making progress it's it's good i'm really happy with where we're at
5:13
uh so our stats are done the same way as our um
5:20
as our uh economy stuff so
5:26
it's health 10 current health uh m or move speed 20 move speed isn't hooked up
5:32
yet we'll do that when we get our character mover our character movement code in a good place defense is also not
5:39
hooked up yet we'll we'll work on it um
5:46
honestly I probably am going to refactor our uh
5:52
our cost system so that it's done this way as well rather than being uh
5:58
resource and a cost it's it'll be uh a map of resource to cost
6:08
but it it makes me happy because it's just so simple so we have our icon
6:16
hooked up here uh we have the class we have a name in place
6:26
and that's going to be where a lot of our uh code a lot of our design no uh a
6:34
lot of our datadriven nature is going to come from these data tables is my current int is my current expectation
6:44
so
6:50
the next biggest thing that we have to work through is menus uh pause menu
6:58
settings menu a main menu um a
7:03
uh lobby screen all that kind of stuff uh we have
7:10
we have a lot of work to do in terms of that
7:16
uh so that's
7:22
um uh that's the goal for this week
7:29
um but I'm really happy it just
7:43
we've done a lot we've come a long way
7:50
like from week one where we just were getting our camera working you know this is this is week nine of development
7:59
and I've built most of a most of a framework
8:06
It feels crazy it feels crazy so um menu system
8:16
uh Unreal has a lot of this built in
8:21
uh yeah but one of the things that I really want I I
8:33
How do I describe this
8:47
i want things to be as
8:57
I want to be built i want to build good infrastructure for a lot of this so
9:05
let's just say our settings menu i want to have a
9:12
I want to have a settings menu that takes in um
9:24
[Music]
9:30
I want to have a setting like one that takes in a mapping context
9:36
and generates the menu
9:42
uh the settings menu like the controls menu from the mapping contexts that are
9:48
passed into it
9:55
so that's the kind of thing we're going to work on
10:03
but at the same time I am
10:10
I'm not sure why I'm streaming today like this is going to be a really thinky
10:16
day um
10:22
so it's probably going to be a short stream uh today today's probably going to be a short stream um
10:31
[Music] and what we'll end up doing is
10:42
doing a lot of this off stream which is why I'm not sure how much streaming I'm going to do this week um
10:50
I probably could have made this just be a video
10:55
um
11:47
Okay well the first thing first we're going to have a
11:55
um this is going to be a common uh I just going to say simple
12:03
menu system
12:14
so we're going to have a simple menu system our simple menu system is gonna be what we work on today um we don't
12:23
need this
12:29
pose
12:41
[Music] the easiest thing
12:49
[Music]
12:59
[Music]
13:14
I apparently I didn't spend as much time thinking about how to implement this as I thought I did it's uh
13:32
Pain pain pickle
14:03
i've been doing a lot of my UI and blueprints
14:14
so I guess we're going to keep doing a lot of my UI and blueprints
14:21
we'll come back into C++ when we need to hook up C++ land I suppose
14:56
okay so plugins simple menu system content
15:03
we're going to have a widget blueprint
15:16
yeah widget blueprint it's going to be a user widget select and this is going to
15:21
be a BP menu it's going to be BP menu item
15:31
and the next thing we're going to do is we're going to make a blueprint uh blueprint interface this is going to be
15:37
BPI menu item
15:43
so
15:48
our menu item is going to be simple it's going to be a desired size no it's
15:55
going to be desired size it's going to be a
16:07
[Music] button and inside that button is going to be
16:13
text that text is going to be a variable
16:19
um and it's going to be uh item like a menu item
16:31
menu text our text is going to have a binding
16:42
no gonna have uh
16:54
any text content that's going to be text pot
17:06
okay uh next step we're going to pop into here it's going to be set uh
17:14
content and that's going to have an input of uh
17:21
new content
17:26
and that will be text
17:40
[Music] i would like to add a new
18:36
Sorry let me pop this over here
18:41
[Music]
19:33
[Music]
19:39
i'm really [Music]
19:49
grumple crumble
20:21
settings
20:36
there we go simple
20:45
i really feel like I should be able
20:52
to
21:03
[Music] Mm- [Music]
21:22
output but
21:37
this feels wrong i don't
22:18
Here
22:58
[Music]
23:06
[Music]
23:16
blueprint uh interface pass delegate
23:51
[Music]
24:31
[Music] all right
25:32
[Music] don't see how to get this out of here
26:18
okay well there's only one way I can see and this here is going to be
26:24
blueprint interface BPI menu
26:32
[Music] so our BPI menu
26:37
uh is going to have a function it's going to be uh on
26:46
uh menu item clicked
26:53
on menu item clicked is going to have an input of a text type and this here is a
26:59
menu content and that's what we're going to do uh so
27:06
in here we're then going to uh have a function
27:13
that's going to have an input of a
27:19
BPI menu um related
27:27
owning menu file Save
27:35
that should be new function that should be set uh
27:42
owning menu file save
27:49
so we do set owning menu we
27:54
promote this to a variable we store it we then go
28:00
here get
28:10
is valid we branch
28:19
if this is valid we then do
28:27
call function set no
28:32
class BPI menu on menu item clicked do that
28:46
and we do this
28:51
and there we go
28:58
okay relatively simple there then um
29:10
so we set the contents uh we set the owning menu this contents is going to be a default
29:18
value of
29:23
sunset
29:30
okay
29:37
simple
29:42
[Music]
29:52
then we're going to have another user interface widget it's going to be another user widget this is going to be
30:00
BP menu
30:05
this is going to I'm just going to say
30:10
uh
30:17
vertical menu this is going to have
30:24
a vertical box
30:30
and in that vertical box we're going to have our uh menu items
30:36
compile save uh pre preconstruct
30:42
um we have a variable which is going to be menu item class
30:52
this is going to be
30:59
BPI menu item
31:05
no uh [Music]
31:10
user widget class reference
31:22
[Music]
31:29
okay so our menu item class user widget yeah yeah yeah
31:42
okay
32:17
[Music] so in constru truck
32:35
[Music] BPI menu item branch
32:51
so if this is not we then want to
33:01
log string um
33:17
there we go there's that
33:22
uh if it is true if we do implement the that in that interface then
33:30
uh
33:36
we need
33:45
too much i I hate I only do it a 30 minute stream
33:51
but I just I my brain is not here my brain's not here guys
33:59
so we need a strct of some sort
34:05
to store the
34:11
menu information
34:29
so big thing we do want to implement
34:36
API menu no
34:46
bpi menu on menu item clicked uh
35:01
we're going to have a map of menu content to uh
35:12
delegates ah it's [Music]
35:19
okay fine i think I'm going to call it a day i just I I can't think i'm sorry i
35:25
apparently I spoiled myself with a week of doing all this of doing a bunch of work off stream i really really wanted
35:32
to show off what we've done so there you go you've now seen uh what we've done uh
35:37
you have you probably don't have a very good idea of what I'm going to be doing but we're going to be working on a menu
35:43
system i think I'm going to mostly be working on that off stream this week um
35:48
so hopefully I'm back on Monday uh or maybe
35:55
even before then uh but I'll be back when I have a working menu system and we'll show that off we'll show it
36:01
working um I'm probably going to do a lot in the in
36:09
the interim here like a lot a lot
36:14
so sorry sorry if you want to watch me work on
36:20
this and struggle i I just I feel like I'm not making good
36:26
content and that is really hard for me in my in the way my brain is working
36:32
right now so um thank you for watching and I'll see you
36:38
next time bye
#Computer & Video Games
#Games
#Video Game Development