You are browsing as a guest. Sign up (or log in) to start making projects!

9h 1m 20s logged

UI Updates

Part 1: UI

  • Settings actually work now, supports sliders and switches
  • Made this cool inventory UI (Went through a few iterations)
  • Bottom left shows status effects (Active potions, friend bonuses, whatnot)
  • Ascension Tracker on top! Now you do not need to travel to the board just to see your progress
  • Bottom GUI circles (To open things like inventory, looks kind of bad right now, I’m gonna fix soon)

Part 2: Onboarding (WIP)

Motivation:

  1. When a player joins the game, the first experience is the most important, since it decides whether the player is retained OR leaves within the first 5 minutes.
  2. In my first game, the tutorial was merely a giant piece of text… and the results of that is reflected.. (see the image of the graph) Lesson learned!

This onboarding system features a spotlight masking, which was weird to implement since Roblox does not have a native feature to punch a shape-shaped hole out of a UI overlay (no CSG/boolean cutout support), so the spotlight had to be faked using a UICorner-and-oversized-UIStroke trick.

For 3D objects, I projected the 3D target’s screen-space bounding box into 2D so the spotlight could track a world-space object using the same screen-space hole-masking system as the UI targets.

Part 3: Upgrade Tree

Wired to the server, right now we are using a bunch of toy upgrades. Next time, we will actually implement content.

  • Going more technical, the upgrade tree works as a giant tree (kind of a DAG but not really)
  • We do a level-order (BFS) traversal to produce the cool closing effect.
  • Node revealing uses a lazy DFS-like frontier expansion at runtime (revealing a node spawns only its immediate children as a locked preview ring; deeper nodes don’t exist client-side until their parent is actually leveled. So the client never materializes the whole tree at once)

Part 4: Refactors 💀💀

Yeah. The front-end code was a bit messy so had to refactor a bit. I decided on eliminating pseudo-OOP and just using static declaration since it’s more simple and maintainable.. well I hope..

Part 5: Convention reinforcement

Wrote a quick shell script that runs a sequence of checks across the codebase to enforce conventions, like variable naming, stylua, and selene. This will be ran every pre-commit and github ci/cd. At this point I might as well add PMD.

Part 6: I have no idea lol

If you want to discuss or talk about this project, don’t hesitate to post a comment or add my discord: SeasonedRiceFarmer

(Watermark to prevent work stealing; yeah it happened before.. multiple times.. not in hack club though, y’all are mad cool…)

1
485

Comments 4

@henry1155

hmm. very intriguing.

@SeasonedRiceFarmer

anything for roblox virtual currency 😎😎

@SeasonedRiceFarmer

Yo is it just me or does the video not work on mobile

@ekhore111

i love this game! is it opensourced yet?