Open comments for this post
Devlog #3
Small update, but I think good for the game:
I added a badge system to the game. There are currently 5 badges for players to unlock:
- Welcome – Join the game for the first time (also gives you 250 Cash!).
- Winner - Win your first game.
- Menace - Slap 100 players.
- Skill Issue - Ragdoll 100 times.
- Can’t Touch This - Successfully block an incoming slap.
I made a modular system to streamline future addition for badges, IF ANY because they’ll cost me money now to add them (I used up my 5 free).
Open comments for this post
Devlog #2
Between the last devlog and this, I built majority of features + frameworks.
List of things completed in this devlog
-
Shop System (Hyperlink between abilities and one-time-use purchases)
- Created a modular system to manage prices and purchases (Datastore saves abilities such as
Double Jump & Block).
- UI animations:
- Zoom in with background blur when opening the shop.
- Inverse animation on close.
-
Complete Combat System
-
Players can push each other, and they can also purchase the ability to block.
-
Done using DOT product + magnitude detection.
-
Rewards 50 cash.
-
Blocking simply fires a remote communicating to the server that a player is blocking. On attack verification, if the player is in the CURRENT_PROTECTED array, it prevents damage + ragdoll, and instead plays a thud sound effect.
-
Datastore
- Managing money, wins, and how many slaps a player has.
- This is important for many things, eg purchasing, gaining / losing money.
-
UI Elements (Currency, Winning, Kill Feed)
-
Currency
- When a player gains money, it has a shake effect + a green floating
Δ+ which promptly disappears with a sound effect.
- Losing money does the same thing, but in red with
Δ-.
-
Winning
-
Kill Feed
- Created a kill feed with randomly generated text.
- Using RichText, I also made the attacker and victim have different colours.
This works through a RemoteEvent being fired to all players. Example messages:
{{attacker}} just <font color='rgb(122, 200, 255)'>REKT</font> {{victim}}
{{victim}} bit the <font color='rgb(122, 200, 255)'>DUST</font>
-
Abilities & One-Time Purchases
- Abilities work through datastore management.
- Purchased abilities are saved, and on
CharacterAdded, their LocalScript gets inserted into the player’s character.
- One-time purchases simply fire a RemoteEvent (with sanity checks to verify the purchase) which then completes the action.
Current abilities
Current one-time purchases
- Kill All
- Ragdoll All
- Low Gravity
-
Animations
- Spent time making animations for:
- Push
- Block
- Double Jump (flip animation)
-
Tower Generation
-
There is a folder in ReplicatedStorage containing every possible stage.
-
Using Lua’s % 2 operator, I check remainder for stage alignment (logic below).
isRotated = index % 2 == 0
rotate(stage, isRotated and 180 or 0)
-
Then, I simply calculate the current tower height and place the new stage directly on top.
-
Shuffling stages is also straightforward, I use math.random on table index.
-
Winning
- The server fires a RemoteEvent telling every client that somebody has won, rewards the winner, reshuffles the tower, and respawns every player.
- The tower also automatically reshuffles every 600 seconds (10 minutes) if nobody wins.
-
Stage Elements
- Added the following stage elements using Roblox’s CollectionService tag system
I also made ~ 10 stages (with own quirks, eg not being able to jump). Spent a lot of time on sound design aswell.
Video: https://www.youtube.com/watch?v=WwGzDpOlbbk
Open comments for this post
Devlog #1
Things completed:
- Ragdoll system (debounce + ui)
- Server handling for ragdoll (caching)
- Respawn UI animation
- Custom healthbar + animations
Next devlog will post a playable test-demo version