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

tongyu

@tongyu

Joined May 31st, 2026

  • 3Devlogs
  • 2Projects
  • 0Ships
  • 0Votes
i work on stardance!! hooray
Open comments for this post
Reposted by @tongyu

5h 16m 48s logged

First devlog on Stardance! You might remember this project from flavortown, and I’m going to keep working on it for stardance.

I’ve added a ton of stuff to the game in the last month, like 3 or 4 new player abilities, new animations, and polishing various things based on feedback I received.

The ~5 hours in this devlog were mostly me trying to set up a system where I can have 2 post processing profiles active at once, but affecting different layers. I used this to create an intense bloom effect that only renders on certain sprites, specifically the spark particles in combat. I finally got it working using render features and render graphs, and I’m super happy with the result.

First devlog on Stardance! You might remember this project from flavortown, and I’m going to keep working on it for stardance.

I’ve added a ton of stuff to the game in the last month, like 3 or 4 new player abilities, new animations, and polishing various things based on feedback I received.

The ~5 hours in this devlog were mostly me trying to set up a system where I can have 2 post processing profiles active at once, but affecting different layers. I used this to create an intense bloom effect that only renders on certain sprites, specifically the spark particles in combat. I finally got it working using render features and render graphs, and I’m super happy with the result.

Replying to @myth0

1
1728
Open comments for this post
Reposted by @tongyu

34m 6s logged

How “Draw a Perfect Star” actually calculates accuracy

The goal of this system is not to “recognise” a star visually. It turns both your drawing and a perfect star into comparable point data, then measures how far apart they are.

This makes scoring fast, deterministic, and surprisingly stable.

Input capture

While you draw, the app records raw mouse positions:

path = [(x1, y1), (x2, y2), etc etc]

This data is noisy and depends heavily on speed and polling/sampling rate.

Resampling

The stroke is converted into a fixed number of evenly spaced points (120).

This removes:

  • drawing speed differences

  • uneven mouse sampling

Now every drawing has a consistent structure.

Normalisation

The shape is transformed so comparison is fair:

  • centred around (0, 0)

  • scaled so max radius = 1

This removes position/size- only shape remains.

Reference star

A perfect 5-pointed star is generated mathematically using polar coordinates and sine-based radius switching.

It is also sampled into 120 points so it matches the user format.

Comparison

Each user point is compared directly to the corresponding star point-

error += distance(user[i], star[i])

This produces an average geometric deviation across the full shape.

Scoring

Final score is computed as:

score = 100 - error * 120

Then clamped between 0 and 100.

Summary

The system works by converting both shapes into normalized point sequences and measuring their geometric distance.

How “Draw a Perfect Star” actually calculates accuracy

The goal of this system is not to “recognise” a star visually. It turns both your drawing and a perfect star into comparable point data, then measures how far apart they are.

This makes scoring fast, deterministic, and surprisingly stable.

Input capture

While you draw, the app records raw mouse positions:

path = [(x1, y1), (x2, y2), etc etc]

This data is noisy and depends heavily on speed and polling/sampling rate.

Resampling

The stroke is converted into a fixed number of evenly spaced points (120).

This removes:

  • drawing speed differences

  • uneven mouse sampling

Now every drawing has a consistent structure.

Normalisation

The shape is transformed so comparison is fair:

  • centred around (0, 0)

  • scaled so max radius = 1

This removes position/size- only shape remains.

Reference star

A perfect 5-pointed star is generated mathematically using polar coordinates and sine-based radius switching.

It is also sampled into 120 points so it matches the user format.

Comparison

Each user point is compared directly to the corresponding star point-

error += distance(user[i], star[i])

This produces an average geometric deviation across the full shape.

Scoring

Final score is computed as:

score = 100 - error * 120

Then clamped between 0 and 100.

Summary

The system works by converting both shapes into normalized point sequences and measuring their geometric distance.

Replying to @lionel

4
1913
Open comments for this post

11h 49m 54s logged

comment system is better now :)))) and you can ctrl+enter or cmd+enter to post comments or devlogs. yay!

comment system is better now :)))) and you can ctrl+enter or cmd+enter to post comments or devlogs. yay!

Replying to @tongyu

0
70
Open comments for this post
Reposted by @tongyu

2h 58m 11s logged

I made a storage system for my hanger objects with a sorting system. The hardest part was making the hangers move from one canvas to another canvas on another scene. The hangers also kept spawning in all the wrong places, and there was a lot of scene management bugs. But, it works smoothly now as seen in the demo below.

Main changes :

  • Created storage system that moves hangers from player’s canvas to storage canvas in separate scene
  • Hangers keep their properties when stored, and stay in storage when player loads and unloads scene
  • Sorting system sorts the clothes in storage by attributes

I made a storage system for my hanger objects with a sorting system. The hardest part was making the hangers move from one canvas to another canvas on another scene. The hangers also kept spawning in all the wrong places, and there was a lot of scene management bugs. But, it works smoothly now as seen in the demo below.

Main changes :

  • Created storage system that moves hangers from player’s canvas to storage canvas in separate scene
  • Hangers keep their properties when stored, and stay in storage when player loads and unloads scene
  • Sorting system sorts the clothes in storage by attributes

Replying to @Peneroni

2
454
Open comments for this post
Reposted by @tongyu

1h 22m 52s logged

Exterstellar indev-1

Introducing your underrated browser extension for Stardance: Exterstellar by Sabio (that’s me!) & @Flux3tor (pretty much a major contributor-).

Features

  • Toggleable Plugins (which are basically features the extension adds!)
  • A lot (and I mean a LOT…) of configurations available for all plugins (plugin configs!)
  • Can be used to support MANY mini-extensions with our easy-to-use plugin development tool and documentation¹.

Plugins

  • Better Sidebar
  • Custom Font
  • Custom Scrollbar
  • Devlog Formatter
  • Sidebar Hotkeys
  • Sidebar Reordering
  • Themes (@Gizzy certified btw :3)
  • +more already in the works! (please comment plugin ideas if you have suggestions!)

Join #exterstellar now!

¹ The documentation is in the works.

Exterstellar indev-1

Introducing your underrated browser extension for Stardance: Exterstellar by Sabio (that’s me!) & @Flux3tor (pretty much a major contributor-).

Features

  • Toggleable Plugins (which are basically features the extension adds!)
  • A lot (and I mean a LOT…) of configurations available for all plugins (plugin configs!)
  • Can be used to support MANY mini-extensions with our easy-to-use plugin development tool and documentation¹.

Plugins

  • Better Sidebar
  • Custom Font
  • Custom Scrollbar
  • Devlog Formatter
  • Sidebar Hotkeys
  • Sidebar Reordering
  • Themes (@Gizzy certified btw :3)
  • +more already in the works! (please comment plugin ideas if you have suggestions!)

Join #exterstellar now!

¹ The documentation is in the works.

Replying to @Sabio

4
3147

Followers

Loading…