Mod. 5
Roblox RogueLite
By Thomas Polito & Ian Behn
1
➜
Background
01
➜
What is LuaU?
LuaU is not Static… or Dynamic, but rather both! This is possible because it is a Gradually Typed language.
This means it can be both weakly typed and strongly typed… how?
This also means that some code is checked at Compile Time, and other code is checked at Runtime.
LuaU was made by Roblox in 2019
https://luau.org/2022/11/04/luau-origins-and-evolution.html
What is a RogueLite?
RogueLites are derived from RogueLikes, a genre of game characterized by having randomly generated levels you go through and upgrade your character along the way. Some examples include: Hades, The Binding of Isaac, Risk of Rain, Dead Cells, etc.
RogueLites in particular typically have permanent upgrades the player can obtain outside of runs, and also deviate from conventional RogueLikes.
Goals
What were our goals?
Ghouls
Animation
02
➜
Keyframes
Keyframes are an essential part of animation. They serve as little snapshots in time that store the properties of their respective bone (In this case parts). When moving from one keyframe to another, the computer will interpolate between them. This means that the computer will change the properties of the part currently to match the properties it has stored in the next keyframe in the given time.
The unit of time used on the Timeline has 3 options, frames/second, frames, or seconds.
Scripting
03
➜
Server-Client Boundary
The Clients see what the server does, but can’t access the server directly.
While the server can’t see what the Client does, and can’t access the client directly!
This is the Server-Client boundary. It prevents the client from injecting code into the server. However, there are ways to bypass the barrier. These are called RemoteEvents, and can be fired from a local script into a server script, or the other way around.
The Scripts
There are 3 types of scripts in RBX Studio.
NPC AI
Basic AI
GUI
04
➜
The GUI Headache
GUI was easily our biggest problem. We ended up remaking the GUI multiple times before finally settling, and after running into MANY problems.
The most prolific problem was how the GUI would change and distort when run on different screen sizes. After some research, we discovered that we had to use scale instead of offset. Scale makes it so the size of GUI scales off of its parent, which, if the parent is game, will cause it to scale off of the client’s screen size, which solved the issue.
What was our GUI?
Our GUI showed:
Radial Progress Bar GUI Code
Upgrade GUI
Appears after the player clears a room
Upgrade GUI Code
Modeling
05
➜
Back to Blender
Using prior modeling experience, we decided to, yet again, employ the use of Blender
We used Blender to create assets that we otherwise wouldn’t be able to make in RBX studio and then imported them into RBX studio.
Some Models
06
The Game
➜
Controls
Objective
The Enemies
➜
Skeleton Warrior
Skeleton wielding a sword
➜
Skeleton Archer
Skeleton with a bow and arrow
➜
Skeleton Bulwark
Large skeleton with a tower shield
➜
Husk
Slow, ranged & melee zombie
➜
Skeleton Lord
Large, formidable skeleton with an array of attacks
➜
The Player
The player!
➜
Demo
07
➜
Breakdown
In the 3 waves, it will be as follows:
Thank You!
➜
CREDITS: This presentation template was created by Slidesgo, and includes icons by Flaticon and infographics & images by Freepik
Music Credits