|
57001
|
Space_explore by @Jazil | Stardance
|
Jazil
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T18:07:19Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I used nasa api to make this wonderful i liked it", "repo": "https://github.com/JazilJafar/Space-displaying", "demo": "https://jaziljafar.github.io/Space-displaying/"}]...
|
[{"post_id": 73686, "ts": "202 [{"post_id": 73686, "ts": "2026-09-25T18:06:08Z", "hours": 0.9822, "text": "my first version of this website is live in https://jaziljafar.github.io/Space-displaying/ please look if the token limit exceeded sorry"}, {"post_id": 64569, "ts": "2026-09-09T02:32:12Z", "hours": 0.2572, "text": "Some font and style changes"}, {"post_id": 63621, "ts": "2026-09-07T15:25:28Z", "hours": 0.7581, "text": "i enhaced my website structure with css more when getted from api’s"}, {"post_id": 62090, "ts": "2026-09-05T10:40:39Z", "hours": 0.3903, "text": "My space_explore website started fetching data and displaying it . Next is styling it"}, {"post_id": 60962, "ts": "2026-09-03T17:20:01Z", "hours": 0.4497, "text": "I enhanced my readme and also changed my projects files"}, {"post_id": 59405, "ts": "2026-09-01T06:34:37Z", "hours": 0.2636, "text": "My first commit to github and first project coding started"}]...
|
Title: Space_explore by @Jazil | Stardance
Devlog Title: Space_explore by @Jazil | Stardance
Devlogs:
My first commit to github and first project coding started
I enhanced my readme and also changed my projects files
My space_explore website started fetching data and displaying it . Next is styling it
i enhaced my website structure with css more when getted from api’s
Some font and style changes
my first version of this website is live in https://jaziljafar.github.io/Space-displaying/ please look if the token limit exceeded sorry
Ships:
I used nasa api to make this wonderful i liked it...
|
1792853763.2222643
|
1792940163.2222643
|
|
61397
|
Jazil-personal-manager by @Jazil | Stardance
|
Jazil
|
1
|
2.43
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T17:28:35Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My only faced problem is this is my first time but this give knowledge of server using", "repo": "https://github.com/JazilJafar/my-slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0C46LFAFK9"}]...
|
[{"post_id": 74286, "ts": "202 [{"post_id": 74286, "ts": "2026-09-27T03:53:52Z", "hours": 0.4322, "text": "i think five commands is over but bug is not stoping but stopped"}, {"post_id": 71661, "ts": "2026-09-21T08:13:53Z", "hours": 0.48, "text": "I added 5 commands in my slack bot and i am shipping pls comment new command to add"}, {"post_id": 70008, "ts": "2026-09-18T08:27:55Z", "hours": 0.3011, "text": "i added three commands to my bot"}, {"post_id": 68946, "ts": "2026-09-16T02:56:17Z", "hours": 0.8411, "text": "My bot started working"}]...
|
Title: Jazil-personal-manager by @Jazil | Stardanc Title: Jazil-personal-manager by @Jazil | Stardance
Devlogs:
My bot started working
i added three commands to my bot
I added 5 commands in my slack bot and i am shipping pls comment new command to add
i think five commands is over but bug is not stoping but stopped
Ships:
My only faced problem is this is my first time but this give knowledge of server using...
|
1792813838.4374077
|
1792900238.4374077
|
|
64782
|
Raven-Slack-Bot-v1.0 by @AriDev24 | Stardance
|
AriDev24
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T17:25:32Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "(Raven_Slack_Bot_v1.0.0) Raven is a little clever Slack bot who responses upto 5 commands. It’s my first ever slack bot so its not much good but its working and i love it. Main features /raven-ping - Check bot latency /raven-joke - Get a joke /raven-quote - Get a quote /raven-fact - Get a fact /rave-fox - Get a fox I added the fox command because its cute and funny, and also because of the story of the crow and the fox, I know raven is not a crow its just for fun. Difficulty The most difficult part was to diploy it on nest that i was not having so first i apply for it and after i got my nest server i dont know what to do because i was unable to understand it. i have never used linux before, so after experimenting and researching hours i deploy it to linux. How to Run/Test It To know that how to run and test it go to my Repo below and read its README: https://github.com/aridev24/Raven-Slack-Bot", "repo": "https://github.com/aridev24/Raven-Slack-Bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0C4NFANSM8"}]...
|
[{"post_id": 73613, "ts": "202 [{"post_id": 73613, "ts": "2026-09-25T14:11:29Z", "hours": 0.4667, "text": "In the last update my slackbot was completed, atleast the missions requirments were completed, so i was working on its readme, in the readme i added that what is raven What features are included i know there are not much features but in the next verion i will add many amazing features. How to setup and run it At last technologies used Now finally i am going to diploy it on nest."}, {"post_id": 73276, "ts": "2026-09-24T18:39:34Z", "hours": 0.6622, "text": "(Raven_slack_Bot v1.0) Today i have added many new features you can see below: /raven-ping - Check bot latency /raven-joke - Get a joke /raven-quote - Get a quote /raven-fact - Get a fact /rave-fox - Get a fox i add the fox command because its cute and funny, and also because of the story of the crow and the fox. I will add many new features to amke my raven personality like a real raven. And the best thing i love is that i made a Cool looking banner for my Raven."}, {"post_id": 72629, "ts": "2026-09-23T11:53:32Z", "hours": 1.2072, "text": "(Raven-Slack-Bot v0.1) I Have started making a slack bot for my first time, at first I thought I cant do it because of JavaScript but after thing hours i finally started making it, in beginning I was facing many problems but after some time of experimenting i got use to it and now its easy for me, and the best part is its working."}]...
|
Title: Raven-Slack-Bot-v1.0 by @AriDev24 | Stardan Title: Raven-Slack-Bot-v1.0 by @AriDev24 | Stardance
Devlogs:
(Raven-Slack-Bot v0.1) I Have started making a slack bot for my first time, at first I thought I cant do it because of JavaScript but after thing hours i finally started making it, in beginning I was facing many problems but after some time of experimenting i got use to it and now its easy for me, and the best part is its working.
(Raven_slack_Bot v1.0) Today i have added many new features you can see below: /raven-ping - Check bot latency /raven-joke - Get a joke /raven-quote - Get a quote /raven-fact - Get a fact /rave-fox - Get a fox i add the fox command because its cute and funny, and also because of the story of the crow and the fox. I will add many new features to amke my raven personality like a real raven. And the best thing i love is that i made a Cool looking banner for my Raven.
In the last update my slackbot was completed, atleast the missions requirments were completed, so i was working on its readme, in the readme i added that what is raven What features are included i know there are not much features but in the next verion i will add many amazing features. How to setup and run it At last technologies used Now finally i am going to diploy it on nest.
Ships:
(Raven_Slack_Bot_v1.0.0) Raven is a little clever Slack bot who responses upto 5 commands. It’s my first ever slack bot so its not much good but its working and i love it. Main features /raven-ping - Check bot latency /raven-joke - Get a joke /raven-quote - Get a quote /raven-fact - Get a fact /rave-fox - Get a fox I added the fox command because its cute and funny, and also because of the story of the crow and the fox, I know raven is not a crow its just for fun. Difficulty The most difficult part was to diploy it on nest that i was not having so first i apply for it and after i got my nest server i dont know what to do because i was unable to understand it. i have never used linux before, so after experimenting and researching hours i deploy it to linux. How to Run/Test It To know that how to run and test it go to my Repo below and read its README: https://github.com/aridev24/Raven-Slack-Bot...
|
1792814181.465169
|
1792900581.465169
|
|
43969
|
Smart Relocator ESP32 by @henilX0 | Stardance
|
henilX0
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T17:20:11Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Building this ESP32-powered automated robot was an awesome ride—it uses a sweeping servo and ultrasonic sensor to scan the area, detects objects, and pulls off precise turns using MPU6050 IMU feedback alongside custom 3D-printed rack-and-pinion parts. The trickiest part wasn’t just the code, but figuring out KiCad from scratch to design a compact, clean custom circuit board schematic, all while wrestling with the tight wiring and power stability for the motors and sensors.", "repo": "https://github.com/HENILX0/ESP32_SMART_ROBOT-", "demo": ""}]...
|
[{"post_id": 66823, "ts": "202 [{"post_id": 66823, "ts": "2026-09-12T18:39:26Z", "hours": 3.5917, "text": "Just wrapped up designing and routing the custom dual-layer PCB for my ESP32 Smart Robot in KiCad!Took quite a bit of time to get all the pin mapping and trace routing clean without messy crossovers. Here’s what’s packed onto the board:ESP32 DevKit footprint & MPU6050 IMU connectorPin headers for motor driver, ultrasonic sensor, and dual servosPower circuitry with DPDT switch, filter capacitors, and status LEDsChecked everything in the 3D viewer and all the component clearances look clean. Next up: exporting Gerbers and getting this board fabricated!"}, {"post_id": 59854, "ts": "2026-09-01T20:34:45Z", "hours": 2.5875, "text": "Finally back on track after taking about a week off due to some medical/health reasons! Today, I finished designing the complete rack-and-pinion servo gripper in Onshape and integrated it into the full mobile robot assembly. The CAD model is now 100% complete, including the multi-tier chassis, ultrasonic sensor mount, motor driver, and gripper mechanism. Since all the CAD designs are ready, I really need 3D printing grant support/help now to get these physical parts printed so I can start assembling the hardware!"}, {"post_id": 54045, "ts": "2026-08-24T20:06:51Z", "hours": 0.4503, "text": "Redesigned the spur gear and rack profiles in Onshape to get a better tooth fit and pitch alignment. Spent time tweaking assembly mates and testing how the mechanism converts servo rotation into smooth linear movement for the gripper arms. Still fine-tuning, but getting closer to the final assembly!"}, {"post_id": 53245, "ts": "2026-08-23T18:06:05Z", "hours": 0.3, "text": "Spent time in Onshape experimenting with different gear profiles and rack designs for the gripper! Tested tooth counts and pitch alignments to figure out how to convert the servo’s rotation into smooth linear motion. Still tweaking the design, but getting closer!"}, {"post_id": 52650, "ts": "2026-08-22T21:51:45Z", "hours": 1.8875, "text": "Modeled the gripper base plate in Onshape with integrated guide rails and gear clearance for the servo horn. Also mounted the HC-SR04 ultrasonic sensor to the top deck! Still working on finishing the moving gripper arms, but the base structure and sensor placement are locked in."}, {"post_id": 51941, "ts": "2026-08-21T21:48:17Z", "hours": 1.2344, "text": "Designed a custom H-shaped bracket in Onshape to mount the SG90 gripper servo directly onto the front chassis. Integrated precise cutout & screw mounts, aligned everything, and successfully mated the part into the main robot assembly!"}, {"post_id": 51338, "ts": "2026-08-20T23:00:26Z", "hours": 2.6814, "text": "Worked super hard today to completely redesign the robot chassis from scratch in Onshape! My main goal was to optimize material usage, keep the structure lightweight, and make physical assembly as easy as possible.The best part about this new design is all the open space ,there’s so much room from every side now. Routing wires, tuning components, or swapping parts like the ESP32 and motor driver will be totally effortless. Spent hours fine-tuning the component placement and layout, and everything fits together perfectly now!"}, {"post_id": 50564, "ts": "2026-08-19T19:29:04Z", "hours": 0.7011, "text": "Designed a custom mounting bracket for the HC-SR04 ultrasonic sensor in Onshape today! Created the front casing to hold the sensor, added filleted edges for structural rigidity, and integrated a bottom mounting arm to attach it to the servo motor."}, {"post_id": 49794, "ts": "2026-08-18T18:48:37Z", "hours": 0.7506, "text": "Fine-tuned chassis dimensions in Onshape and modeled two structural components: designed a precision grid of internal screw bosses on the base plate for component mounting, and created a custom plate with filleted edges and corner screw holes."}, {"post_id": 49141, "ts": "2026-08-17T19:32:06Z", "hours": 0.9847, "text": "Updated the chassis dimensions in Onshape for better alignment! Also designed and mounted the bracket connecting the ultrasonic sensor to the SG90 servo motor."}, {"post_id": 48459, "ts": "2026-08-16T20:14:17Z", "hours": 2.0519, "text": "Designed the top cover plate for the robot chassis in Onshape today! Added a custom honeycomb mesh pattern for weight reduction, integrated an exact cutout for the SG90 servo motor, and added corner screw bosses to mount it securely to the chassis."}, {"post_id": 47721, "ts": "2026-08-15T20:23:24Z", "hours": 1.9272, "text": "Updated the robot chassis dimensions in Onshape today! Arranged 3D models for components (motors, wheels, battery holder, and electronics) inside the frame to verify fitment and component spacing. Will keep tweaking dimensions as physical assembly progresses."}, {"post_id": 47135, "ts": "2026-08-14T20:10:20Z", "hours": 0.4178, "text": "Worked on the robot chassis CAD design in Onshape today! Added a custom pattern and configured the motor mounting dimensions so everything fits properly."}, {"post_id": 46538, "ts": "2026-08-13T20:42:42Z", "hours": 0.8614, "text": "Fixed the MPU6050 power drop issue today by properly wiring it with the capacitor setup on the PCB. After fixing the power, started designing the initial robot chassis base in Onshape to fit all components!"}, {"post_id": 45953, "ts": "2026-08-12T19:30:18Z", "hours": 2.7806, "text": "Fixed a short circuit today by replacing a damaged capacitor. Got the MPU6050 setup fully working and tested it with code. Also started drafting the 8cm target logic for the servo and ultrasonic sensor,will code the full logic tomorrow!"}, {"post_id": 45333, "ts": "2026-08-11T18:35:33Z", "hours": 0.9825, "text": "Wired and soldered the buck converter power setup. Ran into a short circuit issue whenever the ESP32 was connected and spent the entire session testing voltages and debugging (still in progress)."}, {"post_id": 44786, "ts": "2026-08-10T19:58:42Z", "hours": 2.5739, "text": "Finished soldering and hardware connections for the MPU6050 sensor today! Added this sensor so the robot can measure precise turning angles to face target objects accurately. Next step is writing the code for it!"}, {"post_id": 44094, "ts": "2026-08-09T17:03:31Z", "hours": 0.4006, "text": "Updated the robot’s code in Arduino IDE today! Fixed a few compilation errors in the logic and tweaked some code settings so everything runs smoothly now. Next step is testing it live on the chassis!"}, {"post_id": 43403, "ts": "2026-08-08T16:59:41Z", "hours": 1.8772, "text": "Wrote some new code in Arduino IDE today and wired up the ultrasonic sensor! I set the motor speed to 50% so it moves slow and doesn’t crash while testing. Right now, I’ve added a simple logic where as soon as the sensor detects an object in front, the robot moves towards it. Step by step getting it to work!"}, {"post_id": 43084, "ts": "2026-08-08T05:11:05Z", "hours": 1.6028, "text": "Finally built the first working prototype today! I mounted the ESP32, motor driver, and BO motors onto a temporary MDF board chassis to check wiring and component balance.Wrote custom code in Arduino IDE to handle motor control, flashed it to the board, and successfully verified basic movement!Next steps:Integrate the ultrasonic sensor for obstacle avoidance.Connect the servo motor for the gripper mechanism."}, {"post_id": 42288, "ts": "2026-08-06T22:32:07Z", "hours": 0.3, "text": "Devlog #1: Hardware Soldering & Power Distribution SetupTime Spent: 4 Hours Project Concept & Autonomous Logic Building an autonomous ESP32 mobile robot that identifies, grips, and clears obstacle objects to open areas.- Search & Detection: Ultrasonic sensor continuously scans forward; halts and aligns when an object enters the 8cm threshold.- Gripping & Spatial Mapping: Servo gripper secures the object. A servo-mounted ultrasonic sensor rotates 0°–180° to calculate the vector with maximum open clearance.- Relocation & Rescan: Robot navigates to the identified open space, drops the object, and rescans the environment.- Idle Search Loop: If no target is within 8cm, the robot incrementally pivots left in a continuous patrol-and-scan loop. What I Built Today (Hardware Progress) - Layout Design: Planned component placement and trace routing on Zero PCB board.- Power Regulation: Connected 18650 Li-ion battery pack to LM2596 Buck Converter for stable 5V output.- Header Sockets: Soldered 8-pin female header block for motor driver + male headers for ESP32, servos, and sensors.- Circuit Protection: Soldered main push-button switch and 1000µF decoupling capacitor across 5V rails to prevent ESP32 brownouts.- Auxiliary Power: Added separate 9V battery line to power motor drivers independently."}]...
|
Title: Smart Relocator ESP32 by @henilX0 | Stardan Title: Smart Relocator ESP32 by @henilX0 | Stardance
Devlogs:
Devlog #1: Hardware Soldering & Power Distribution SetupTime Spent: 4 Hours Project Concept & Autonomous Logic Building an autonomous ESP32 mobile robot that identifies, grips, and clears obstacle objects to open areas.- Search & Detection: Ultrasonic sensor continuously scans forward; halts and aligns when an object enters the 8cm threshold.- Gripping & Spatial Mapping: Servo gripper secures the object. A servo-mounted ultrasonic sensor rotates 0°–180° to calculate the vector with maximum open clearance.- Relocation & Rescan: Robot navigates to the identified open space, drops the object, and rescans the environment.- Idle Search Loop: If no target is within 8cm, the robot incrementally pivots left in a continuous patrol-and-scan loop. What I Built Today (Hardware Progress) - Layout Design: Planned component placement and trace routing on Zero PCB board.- Power Regulation: Connected 18650 Li-ion battery pack to LM2596 Buck Converter for stable 5V output.- Header Sockets: Soldered 8-pin female header block for motor driver + male headers for ESP32, servos, and sensors.- Circuit Protection: Soldered main push-button switch and 1000µF decoupling capacitor across 5V rails to prevent ESP32 brownouts.- Auxiliary Power: Added separate 9V battery line to power motor drivers independently.
Finally built the first working prototype today! I mounted the ESP32, motor driver, and BO motors onto a temporary MDF board chassis to check wiring and component balance.Wrote custom code in Arduino IDE to handle motor control, flashed it to the board, and successfully verified basic movement!Next steps:Integrate the ultrasonic sensor for obstacle avoidance.Connect the servo motor for the gripper mechanism.
Wrote some new code in Arduino IDE today and wired up the ultrasonic sensor! I set the motor speed to 50% so it moves slow and doesn’t crash while testing. Right now, I’ve added a simple logic where as soon as the sensor detects an object in front, the robot moves towards it. Step by step getting it to work!
Updated the robot’s code in Arduino IDE today! Fixed a few compilation errors in the logic and tweaked some code settings so everything runs smoothly now. Next step is testing it live on the chassis!
Finished soldering and hardware connections for the MPU6050 sensor today! Added this sensor so the robot can measure precise turning angles to face target objects accurately. Next step is writing the code for it!
Wired and soldered the buck converter power setup. Ran into a short circuit issue whenever the ESP32 was connected and spent the entire session testing voltages and debugging (still in progress).
Fixed a short circuit today by replacing a damaged capacitor. Got the MPU6050 setup fully working and tested it with code. Also started drafting the 8cm target logic for the servo and ultrasonic sensor,will code the full logic tomorrow!
Fixed the MPU6050 power drop issue today by properly wiring it with the capacitor setup on the PCB. After fixing the power, started designing the initial robot chassis base in Onshape to fit all components!
Worked on the robot chassis CAD design in Onshape today! Added a custom pattern and configured the motor mounting dimensions so everything fits properly.
Updated the robot chassis dimensions in Onshape today! Arranged 3D models for components (motors, wheels, battery holder, and electronics) inside the frame to verify fitment and component spacing. Will keep tweaking dimensions as physical assembly progresses.
Designed the top cover plate for the robot chassis in Onshape today! Added a custom honeycomb mesh pattern for weight reduction, integrated an exact cutout for the SG90 servo motor, and added corner screw bosses to mount it securely to the chassis.
Updated the chassis dimensions in Onshape for better alignment! Also designed and mounted the bracket connecting the ultrasonic sensor to the SG90 servo motor.
Fine-tuned chassis dimensions in Onshape and modeled two structural components: designed a precision grid of internal screw bosses on the base plate for component mounting, and created a custom plate with filleted edges and corner screw holes.
Designed a custom mounting bracket for the HC-SR04 ultrasonic sensor in Onshape today! Created the front casing to hold the sensor, added filleted edges for structural rigidity, and integrated a bottom mounting arm to attach it to the servo motor.
Worked super hard today to completely redesign the robot chassis from scratch in Onshape! My main goal was to optimize material usage, keep the structure lightweight, and make physical assembly as easy as possible.The best part about this new design is all the open space ,there’s so much room from every side now. Routing wires, tuning components, or swapping parts like the ESP32 and motor driver will be totally effortless. Spent hours fine-tuning the component placement and layout, and everything fits together perfectly now!
Designed a custom H-shaped bracket in Onshape to mount the SG90 gripper servo directly onto the front chassis. Integrated precise cutout & screw mounts, aligned everything, and successfully mated the part into the main robot assembly!
Modeled the gripper base plate in Onshape with integrated guide rails and gear clearance for the servo horn. Also mounted the HC-SR04 ultrasonic sensor to the top deck! Still working on finishing the moving gripper arms, but the base structure and sensor placement are locked in.
Spent time in Onshape experimenting with different gear profiles and rack designs for the gripper! Tested tooth counts and pitch alignments to figure out how to convert the servo’s rotation into smooth linear motion. Still tweaking the design, but getting closer!
Redesigned the spur gear and rack profiles in Onshape to get a better tooth fit and pitch alignment. Spent time tweaking assembly mates and testing how the mechanism converts servo rotation into smooth linear movement for the gripper arms. Still fine-tuning, but getting closer to the final assembly!
Finally back on track after taking about a week off due to some medical/health reasons! Today, I finished designing the complete rack-and-pinion servo gripper in Onshape and integrated it into the full mobile robot assembly. The CAD model is now 100% complete, including the multi-tier chassis, ultrasonic sensor mount, motor driver, and gripper mechanism. Since all the CAD designs are ready, I really need 3D printing grant support/help now to get these physical parts printed so I can start assembling the hardware!
Just wrapped up designing and routing the custom dual-layer PCB for my ESP32 Smart Robot in KiCad!Took quite a bit of time to get all the pin mapping and trace routing clean without messy crossovers. Here’s what’s packed onto the board:ESP32 DevKit footprint & MPU6050 IMU connectorPin headers for motor driver, ultrasonic sensor, and dual servosPower circuitry with DPDT switch, filter capacitors, and status LEDsChecked everything in the 3D viewer and all the component clearances look clean. Next up: exporting Gerbers and getting this board fabricated!
Ships:
Building this ESP32-powered automated robot was an awesome ride—it uses a sweeping servo and ultrasonic sensor to scan the area, detects objects, and pulls off precise turns using MPU6050 IMU feedback alongside custom 3D-printed rack-and-pinion parts. The trickiest part wasn’t just the code, but figuring out KiCad from scratch to design a compact, clean custom circuit board schematic, all while wrestling with the tight wiring and power stability for the motors and sensors....
|
1792853493.4541085
|
1792939893.4541085
|
|
64089
|
TuOS by @Tudustech | Stardance
|
Tudustech
|
1
|
3.92
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T17:03:47Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello! This is my version of WebOS1! AND THIS IS MY FIRST EVER SHIP TOO!!!! So… i added apps like a note app, a launchpad (opens a menu with all of the apps) a calendar and clock in the topbar, Real Life weather, setup menu and many more! If you want to test it, check it out at https://github.com/Tudustech-hub/TuOS", "repo": "https://github.com/Tudustech-hub/TuOS", "demo": "https://tudustech-hub.github.io/TuOS/"}]...
|
[{"post_id": 75485, "ts": "202 [{"post_id": 75485, "ts": "2026-09-30T07:22:23Z", "hours": 0.9156, "text": "I recoded… EVERYTHING. Since i used more than 30% AI i had to recode everything"}, {"post_id": 73663, "ts": "2026-09-25T16:48:22Z", "hours": 1.2117, "text": "ADDED NEW THINGS!!! Live Weather An cool looking calendar and clock New Icons! And GlassMorphism for most of the apps (dont know if i missed any!"}, {"post_id": 71655, "ts": "2026-09-21T07:51:57Z", "hours": 0.2928, "text": "Devlog #2 Did the Setup Wizard"}, {"post_id": 71633, "ts": "2026-09-21T06:27:12Z", "hours": 1.275, "text": "Devlog #1 Worked on the wallpaper and icons… i need to make them look less ai"}]...
|
Title: TuOS by @Tudustech | Stardance
Devlogs:
De Title: TuOS by @Tudustech | Stardance
Devlogs:
Devlog #1 Worked on the wallpaper and icons… i need to make them look less ai
Devlog #2 Did the Setup Wizard
ADDED NEW THINGS!!! Live Weather An cool looking calendar and clock New Icons! And GlassMorphism for most of the apps (dont know if i missed any!
I recoded… EVERYTHING. Since i used more than 30% AI i had to recode everything
Ships:
Hello! This is my version of WebOS1! AND THIS IS MY FIRST EVER SHIP TOO!!!! So… i added apps like a note app, a launchpad (opens a menu with all of the apps) a calendar and clock in the topbar, Real Life weather, setup menu and many more! If you want to test it, check it out at https://github.com/Tudustech-hub/TuOS...
|
1792814100.665129
|
1792900500.665129
|
|
65741
|
Human vs Computer(Rock Paper Scissors) by @Sameer2 Human vs Computer(Rock Paper Scissors) by @Sameer23 | Stardance...
|
Sameer23
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T16:31:46Z", "hours": 1.0, "multiplier": 1.11, "payout": 0, "blessing": "neutral", "text": "It’s a Human vs Computer rock paper scissors game made for fun.", "repo": "https://github.com/imskyyyy5/HumanvsComputer-RPS-", "demo": "https://unrivaled-halva-34cd93.netlify.app/"}]...
|
[{"post_id": 73635, "ts": "202 [{"post_id": 73635, "ts": "2026-09-25T15:39:15Z", "hours": 0.5975, "text": "Score system is done!!!!"}, {"post_id": 73623, "ts": "2026-09-25T14:51:16Z", "hours": 0.315, "text": "Human vs Computer"}]...
|
Title: Human vs Computer(Rock Paper Scissors) by @ Title: Human vs Computer(Rock Paper Scissors) by @Sameer23 | Stardance
Devlogs:
Human vs Computer
Score system is done!!!!
Ships:
It’s a Human vs Computer rock paper scissors game made for fun....
|
1792817267.9525356
|
1792903667.9525356
|
|
63674
|
Supernova RSVP by @pandacoder2013 | Stardance
|
pandacoder2013
|
1
|
7.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T15:58:51Z", "hours": 7.0, "multiplier": 2.31, "payout": 15, "blessing": "neutral", "text": "An RSVP website for a new YSWS I am planning called Supernova! Supernova is a space-themed YSWS for people interested in areas like rockets, astrophysics, orbital mechanics, rovers etc. This website explains the plan for the Supernova YSWS especially things like how it works, currency, shop items and shipping projects. The shop items carousel will be released once we receive a sponsor for our YSWS.", "repo": "https://github.com/dsochamp/Supernova-RSVP", "demo": "https://supernova-rsvp.vercel.app"}]...
|
[{"post_id": 73626, "ts": "202 [{"post_id": 73626, "ts": "2026-09-25T14:53:38Z", "hours": 0.4042, "text": "The last 24 minutes was just publishing and doing final changes to the website. Now I’m ready to ship!!"}, {"post_id": 73617, "ts": "2026-09-25T14:18:34Z", "hours": 2.7794, "text": "I FINISHED!!! I finally finished my RSVP website and it looks AWESOME. I added a How it Works and FAQ section which are my favourite sections and I also added cool effects like Stomp and Typewriter. Hope you guys like this project and pls pls pls RSVP to Supernova as I really want it to happen and it has some AMAZING shop items."}, {"post_id": 73194, "ts": "2026-09-24T15:47:48Z", "hours": 2.5111, "text": "Well, I haven’t posted in a while… WELCOME BACK TO A NEW DEVLOG!!! I hope that was interesting because I released my storytelling is not very good on Stardance. Anyways so I added a BUNCH of stuff to the page including Mission Brief (About Section), How it Works (halfway through that), and finally the Shop. I will also add an FAQ for fun just because it’s really easy to make, incredibly useful and fun to design. Trying to work on a carousel for the shop like it just slides infinitely between the shop items. btw every time I post I show a new section of the website so here is the shop"}, {"post_id": 70460, "ts": "2026-09-19T07:28:05Z", "hours": 0.8739, "text": "I have recently been planning a new YSWS called Supernova and wanted to build and RSVP website so this project will be about me building the RSVP!!! I already started on adding information and bg images although plan to change the design."}]...
|
Title: Supernova RSVP by @pandacoder2013 | Stardan Title: Supernova RSVP by @pandacoder2013 | Stardance
Devlogs:
I have recently been planning a new YSWS called Supernova and wanted to build and RSVP website so this project will be about me building the RSVP!!! I already started on adding information and bg images although plan to change the design.
Well, I haven’t posted in a while… WELCOME BACK TO A NEW DEVLOG!!! I hope that was interesting because I released my storytelling is not very good on Stardance. Anyways so I added a BUNCH of stuff to the page including Mission Brief (About Section), How it Works (halfway through that), and finally the Shop. I will also add an FAQ for fun just because it’s really easy to make, incredibly useful and fun to design. Trying to work on a carousel for the shop like it just slides infinitely between the shop items. btw every time I post I show a new section of the website so here is the shop
I FINISHED!!! I finally finished my RSVP website and it looks AWESOME. I added a How it Works and FAQ section which are my favourite sections and I also added cool effects like Stomp and Typewriter. Hope you guys like this project and pls pls pls RSVP to Supernova as I really want it to happen and it has some AMAZING shop items.
The last 24 minutes was just publishing and doing final changes to the website. Now I’m ready to ship!!
Ships:
An RSVP website for a new YSWS I am planning called Supernova! Supernova is a space-themed YSWS for people interested in areas like rockets, astrophysics, orbital mechanics, rovers etc. This website explains the plan for the Supernova YSWS especially things like how it works, currency, shop items and shipping projects. The shop items carousel will be released once we receive a sponsor for our YSWS....
|
1792814057.3385105
|
1792900457.3385105
|
|
65249
|
Fruit OS by @weborbit1980 | Stardance
|
weborbit1980
|
1
|
4.62
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T15:58:49Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Fruit OS I made fruit OS, a web based desktop environment where you can open and move different windows around. I added a Notes app with multiple notes and session storage, a calculator, and a live clock. The hardest part was getting the draggable windows and state management to work properly without everything breaking. I am most proud of making it feel like an actual desktop rather than just a nomral webpage. I also added features like the Notes app and calculator that were not part of the basic guide", "repo": "https://github.com/vinitkumarsingh632-creator/Fruit-OS", "demo": "https://fruit-os.vercel.app/"}]...
|
[{"post_id": 74287, "ts": "202 [{"post_id": 74287, "ts": "2026-09-27T03:54:36Z", "hours": 0.625, "text": "#5 - Made Some Changes in UI My project got rejected due to heavy use of AI in UI. Therefore, i have made some changes in UI of notes and calculator app."}, {"post_id": 73638, "ts": "2026-09-25T15:43:22Z", "hours": 1.3142, "text": "#4 - Successfully Completed the Fruit OS I have built two apps, one is notes and another is calculator. Notes: It uses session storage."}, {"post_id": 73568, "ts": "2026-09-25T12:37:16Z", "hours": 0.8986, "text": "#3 - Completed building Clock Today, I have completed building the clock and background part. It was not much hard. Challenges: Updating time, applying glassmorphism. Next: Building apps."}, {"post_id": 72999, "ts": "2026-09-24T06:00:51Z", "hours": 1.4281, "text": "#2 - Completed Welcome Page Today, I have completed building welcome page. While building welcome page, I have lots of challenges. Challenges: To find alphabets of fruits. I have used photopea and mask the background with alphabets. Learnings: I have learned basics of photo editing on photopea. Next: I will start building the actual web OS."}, {"post_id": 72896, "ts": "2026-09-23T23:45:50Z", "hours": 0.3375, "text": "#1 - Starting Fruit OS Today I have started working on Fruit OS, a small experimental OS project with fruit themed project. Right now I am setting the project structure and building the first UI component Next: Building the welcome page."}]...
|
Title: Fruit OS by @weborbit1980 | Stardance
Devl Title: Fruit OS by @weborbit1980 | Stardance
Devlogs:
#1 - Starting Fruit OS Today I have started working on Fruit OS, a small experimental OS project with fruit themed project. Right now I am setting the project structure and building the first UI component Next: Building the welcome page.
#2 - Completed Welcome Page Today, I have completed building welcome page. While building welcome page, I have lots of challenges. Challenges: To find alphabets of fruits. I have used photopea and mask the background with alphabets. Learnings: I have learned basics of photo editing on photopea. Next: I will start building the actual web OS.
#3 - Completed building Clock Today, I have completed building the clock and background part. It was not much hard. Challenges: Updating time, applying glassmorphism. Next: Building apps.
#4 - Successfully Completed the Fruit OS I have built two apps, one is notes and another is calculator. Notes: It uses session storage.
#5 - Made Some Changes in UI My project got rejected due to heavy use of AI in UI. Therefore, i have made some changes in UI of notes and calculator app.
Ships:
Fruit OS I made fruit OS, a web based desktop environment where you can open and move different windows around. I added a Notes app with multiple notes and session storage, a calculator, and a live clock. The hardest part was getting the draggable windows and state management to work properly without everything breaking. I am most proud of making it feel like an actual desktop rather than just a nomral webpage. I also added features like the Notes app and calculator that were not part of the basic guide...
|
1792814218.3207374
|
1792900618.3207374
|
|
62331
|
Game Dashboard by @Parrot | Stardance
|
Parrot
|
2
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T15:56:29Z", "hours": 1.0, "multiplier": 1.18, "payout": 2, "blessing": "neutral", "text": "Hey, this is my project Game Dash Board Added new log out feature and favourting feature ran into couple of bugs bug now its fixed!!!!!", "repo": "https://github.com/ryan113cpu/game-dashboard", "demo": "https://ryan113cpu.github.io/game-dashboard/"}, {"ship_num": 2, "ts": "2026-09-15T20:38:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HI guys this my is my first Devlog and so far is been 30 minutes of me grinding i just added saving featue and favoutriting features more is coming do not worry!!!!!", "repo": "https://github.com/ryan113cpu/game-dashboard", "demo": "https://ryan113cpu.github.io/game-dashboard/"}]...
|
[{"post_id": 69852, "ts": "202 [{"post_id": 69852, "ts": "2026-09-17T22:29:04Z", "hours": 0.3189, "text": "Devlog #4 this may or may not be my Final devlog depending on if they return it or not i hope i Pass this mission!! In this devlog i added a Logout button and made it so you can track you video game time Untill next time or maybe not who knows??????!!!!!"}, {"post_id": 69845, "ts": "2026-09-17T21:54:09Z", "hours": 0.4864, "text": "Devlog # 3 so lowki i kinda forgot to make it so when you sign up/ log in to hide the backgound and yeah fixed it"}, {"post_id": 69413, "ts": "2026-09-17T00:26:26Z", "hours": 0.5819, "text": "Greetings everyone Devlog #2 so For my first Devlog i acsedently shiped it insed of doing devlog LOL so anyways they returned the mission and gave me the idea to add……… Athentication Untill next time"}, {"post_id": 68830, "ts": "2026-09-15T20:27:10Z", "hours": 0.3297, "text": "added game input check!!!!!"}]...
|
Title: Game Dashboard by @Parrot | Stardance
Devl Title: Game Dashboard by @Parrot | Stardance
Devlogs:
added game input check!!!!!
Greetings everyone Devlog #2 so For my first Devlog i acsedently shiped it insed of doing devlog LOL so anyways they returned the mission and gave me the idea to add……… Athentication Untill next time
Devlog # 3 so lowki i kinda forgot to make it so when you sign up/ log in to hide the backgound and yeah fixed it
Devlog #4 this may or may not be my Final devlog depending on if they return it or not i hope i Pass this mission!! In this devlog i added a Logout button and made it so you can track you video game time Untill next time or maybe not who knows??????!!!!!
Ships:
HI guys this my is my first Devlog and so far is been 30 minutes of me grinding i just added saving featue and favoutriting features more is coming do not worry!!!!!
Hey, this is my project Game Dash Board Added new log out feature and favourting feature ran into couple of bugs bug now its fixed!!!!!...
|
1792085060.1607592
|
1792949060.1607592
|
|
42657
|
HackerOS by @akshay369 | Stardance
|
akshay369
|
3
|
13.0
|
58
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T15:49:47Z", "hours": 5.0, "multiplier": 5.21, "payout": 25, "blessing": "neutral", "text": "I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. This ship included new 3 apps, network,calculator and a music player. So try it and give your feedbacks. Thankyou!", "repo": "https://github.com/akshaykpillai369-max/HackerOS", "demo": "https://akshaykpillai369-max.github.io/HackerOS"}, {"ship_num": 2, "ts": "2026-08-21T07:03:03Z", "hours": 5.0, "multiplier": 13.84, "payout": 33, "blessing": "neutral", "text": "What did you make? I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. What was challenging? My biggest hurdle was making the system monitor animated. What are you proud of? I am most proud of successfully implementing the animated system monitor and creating an intuitive, functional user interface with a nice hacker aesthetic. In future updates, I plan to add a dedicated start menu, expanded terminal commands, and more built-in utility apps in hacker aesthetic. All I want is your support. And if you have any nice features in mind, feel free to add those while rating or in the comments of Devlogs", "repo": "https://github.com/akshaykpillai369-max/HackerOS", "demo": "https://akshaykpillai369-max.github.io/HackerOS"}, {"ship_num": 3, "ts": "2026-08-19T07:39:16Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made HackerOS, a fictional hacker-style operating system interface using HTML, CSS, and JavaScript. The most challenging part was creating the booting experience and making the different windows work like an actual desktop. I’m proud that I was able to turn a simple web project into something that feels like a small operating system", "repo": "https://github.com/akshaykpillai369-max/HackerOS", "demo": "https://akshaykpillai369-max.github.io/HackerOS"}]...
|
[{"post_id": 73543, "ts": "202 [{"post_id": 73543, "ts": "2026-09-25T11:03:12Z", "hours": 1.7675, "text": "Added music app and added my very favorite 3 songs in it, guys check it out and if you have more apps in mind, feel free to comment it. I will add it"}, {"post_id": 73066, "ts": "2026-09-24T09:34:36Z", "hours": 1.4125, "text": "Added Calculator to the Hacker OS because in the previous ratings one guy said that adding a calculator and music player is good, so I added it"}, {"post_id": 73018, "ts": "2026-09-24T07:09:54Z", "hours": 0.3031, "text": "Started development of the new two apps, the calculator and the music player"}, {"post_id": 72991, "ts": "2026-09-24T05:42:18Z", "hours": 0.2594, "text": "Now I fixed the transparent background, and many of the users complained about it, so I changed that to an opaque background for the window."}, {"post_id": 72986, "ts": "2026-09-24T05:22:09Z", "hours": 1.0311, "text": "I added the most requested feature , the network app, now we can ping and scan an IP address. Check it out guys!"}, {"post_id": 51483, "ts": "2026-08-21T06:46:12Z", "hours": 0.6197, "text": "I added a small taskbar! Now, when you open any application, its name shows up on the taskbar. Go check it out guys!"}, {"post_id": 51465, "ts": "2026-08-21T06:01:05Z", "hours": 0.6628, "text": "I created Hacker Settings app, and now you can change the wallpaper. Currently, there are 3 wallpapers. Are you still reading? Stop and go try out my project, guys!"}, {"post_id": 51449, "ts": "2026-08-21T05:11:01Z", "hours": 1.0914, "text": "Added a new application: Hacker Notes, now we can save whatever we want. Next destination is Hacker settings. I am into it. Stay tuned!"}, {"post_id": 50791, "ts": "2026-08-20T05:44:17Z", "hours": 0.7919, "text": "Earlier there has a problem is js, that is when we click close button. The application window moves right, I solved that bug . It is the problem of the make draggable fn."}, {"post_id": 50718, "ts": "2026-08-20T01:50:39Z", "hours": 1.6122, "text": "Added a new app, password generator, now we can generate secure password which meets any requirement."}, {"post_id": 50136, "ts": "2026-08-19T07:18:35Z", "hours": 0.6108, "text": "Completed the System Monitor also. Also made some tweaks in the UI and in the Booting page. Soon I will add the functionality to the other two apps(Network Scanner and the Code Editor). Also you have any features in mind, feel free to share it, I will try to add that❤️"}, {"post_id": 50125, "ts": "2026-08-19T06:29:46Z", "hours": 0.5447, "text": "Hurray, The terminal is working well, type help to get the available commands . I will try to add functionality to all the 4 apps. Next going to work on System Monitor"}, {"post_id": 50117, "ts": "2026-08-19T05:50:17Z", "hours": 0.7622, "text": "Designed the website UI🎉. I added 4 applications on the website: Terminal, Network Scanner, Code editor, system Monitor. Also added background that matches the theme😅."}, {"post_id": 50089, "ts": "2026-08-19T04:41:51Z", "hours": 0.3533, "text": "Hurray🎉🎉, the booting screen is completed, now it shows the typing effect , just like we see in movies. and when the system is ready, the button will be enabled. Now going to the actual OS"}, {"post_id": 50080, "ts": "2026-08-19T04:16:37Z", "hours": 0.3336, "text": "Next, I worked on the styling, and now it looks like a hacker terminal 😅. My next target is JS. After adding JS, the booting screen will show “Initializing HackerOS”, “Loading kernel”, “Getting system ready”, etc. After the process is done, the Enter System button will become active. Boom! You entered HackerOS 😂"}, {"post_id": 50069, "ts": "2026-08-19T03:46:17Z", "hours": 0.3394, "text": "I started working on my new project Hacker OS. I made the booting screen in html, now I has to work on its styling part . And everyone dreams(mine also) of becoming a hacker and running commands and boom the system is hacked!🤯, and that is fun to see, though that’s never going to happen because hacking doesn’t work that way 😂. But we can be ethical hackers or grey hats 😂. So this project should be a good way to experience movie-level hacking. So I am working on it, and I initialized a Git repo successfully."}]...
|
Title: HackerOS by @akshay369 | Stardance
Devlogs Title: HackerOS by @akshay369 | Stardance
Devlogs:
I started working on my new project Hacker OS. I made the booting screen in html, now I has to work on its styling part . And everyone dreams(mine also) of becoming a hacker and running commands and boom the system is hacked!🤯, and that is fun to see, though that’s never going to happen because hacking doesn’t work that way 😂. But we can be ethical hackers or grey hats 😂. So this project should be a good way to experience movie-level hacking. So I am working on it, and I initialized a Git repo successfully.
Next, I worked on the styling, and now it looks like a hacker terminal 😅. My next target is JS. After adding JS, the booting screen will show “Initializing HackerOS”, “Loading kernel”, “Getting system ready”, etc. After the process is done, the Enter System button will become active. Boom! You entered HackerOS 😂
Hurray🎉🎉, the booting screen is completed, now it shows the typing effect , just like we see in movies. and when the system is ready, the button will be enabled. Now going to the actual OS
Designed the website UI🎉. I added 4 applications on the website: Terminal, Network Scanner, Code editor, system Monitor. Also added background that matches the theme😅.
Hurray, The terminal is working well, type help to get the available commands . I will try to add functionality to all the 4 apps. Next going to work on System Monitor
Completed the System Monitor also. Also made some tweaks in the UI and in the Booting page. Soon I will add the functionality to the other two apps(Network Scanner and the Code Editor). Also you have any features in mind, feel free to share it, I will try to add that❤️
Added a new app, password generator, now we can generate secure password which meets any requirement.
Earlier there has a problem is js, that is when we click close button. The application window moves right, I solved that bug . It is the problem of the make draggable fn.
Added a new application: Hacker Notes, now we can save whatever we want. Next destination is Hacker settings. I am into it. Stay tuned!
I created Hacker Settings app, and now you can change the wallpaper. Currently, there are 3 wallpapers. Are you still reading? Stop and go try out my project, guys!
I added a small taskbar! Now, when you open any application, its name shows up on the taskbar. Go check it out guys!
I added the most requested feature , the network app, now we can ping and scan an IP address. Check it out guys!
Now I fixed the transparent background, and many of the users complained about it, so I changed that to an opaque background for the window.
Started development of the new two apps, the calculator and the music player
Added Calculator to the Hacker OS because in the previous ratings one guy said that adding a calculator and music player is good, so I added it
Added music app and added my very favorite 3 songs in it, guys check it out and if you have more apps in mind, feel free to comment it. I will add it
Ships:
I made HackerOS, a fictional hacker-style operating system interface using HTML, CSS, and JavaScript. The most challenging part was creating the booting experience and making the different windows work like an actual desktop. I’m proud that I was able to turn a simple web project into something that feels like a small operating system
What did you make? I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. What was challenging? My biggest hurdle was making the system monitor animated. What are you proud of? I am most proud of successfully implementing the animated system monitor and creating an intuitive, functional user interface with a nice hacker aesthetic. In future updates, I plan to add a dedicated start menu, expanded terminal commands, and more built-in utility apps in hacker aesthetic. All I want is your support. And if you have any nice features in mind, feel free to add those while rating or in the comments of Devlogs
I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. This ship included new 3 apps, network,calculator and a music player. So try it and give your feedbacks. Thankyou!...
|
1792850224.342804
|
1792936624.342804
|
|
62840
|
Can you Outsmart AI? by @Duxredux | Stardance
|
Duxredux
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:55:15Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CAN YOU OUTSMART AI? This is a simple website that gamifies the process of trying to basically extract confidential data(not really that confidential in this case) from an LLM by tricking it into giving it to you. Your objective is simple. The LLM has been given a passkey or a secret phrase (whatever floats your boat) and it is instructed on not to giving it to you (Do not try to inspect page, it wont work). You are supposed to give it prompts to trick it into giving you the passkey by any manner. This is a cybersecurity based project to educate people about the potential harm that could occur when AI agents are given acess to confidential information. Challenges: The main challenge in making this was that I had to learn how to make an LLM run locally on a machine and that too through a website and ofc choosing the model itself. I experimented with a few smaller models with 0.5-1B parameters and they were all insanely dumb and made getting the passkey way too easy. So stepped it up to a 1.5B parameter model and a bit of Prompt Engineering Magic to get the sweet spot. Important: This project does not support or endorse any kind of illegal activities by utilizing AI or otherwise. This is strictly a cybersecurity based project I wanted to make to educate people about the potential flaws of LLMs. LLMs are stateless and hence each message is new to them. So its really important to maintain guardrails and safely nets in your AI Agents and system prompts", "repo": "https://github.com/Sohan-r07/Outsmarting-AI", "demo": "https://sohan-r07.github.io/Outsmarting-AI/"}]...
|
[{"post_id": 73221, "ts": "202 [{"post_id": 73221, "ts": "2026-09-24T16:51:16Z", "hours": 1.0839, "text": "Finally finished the website completely. The UI to me is satisfactory but not perfect or good enough, will look forward to improve it. Will be shipping it out soon (maybe tomorrow perhaps)."}, {"post_id": 71791, "ts": "2026-09-21T15:39:47Z", "hours": 0.535, "text": "Finished the UI finally and got the Javascript and stuff working. The model that I am currently using though is a 0.5B parameter one and just keeps giving the secret away with no effort.. Gotta find some bigger and better alternatives for it. Once that’s done I might be able to ship this out"}, {"post_id": 71296, "ts": "2026-09-20T16:13:41Z", "hours": 0.6475, "text": "Worked on the actual website to make it functional but the AI model I am using which is a 0.5B parameter one seems a little too dumb. Going to try to improve it now."}, {"post_id": 70523, "ts": "2026-09-19T09:59:24Z", "hours": 0.5783, "text": "Worked on trying to get the AI model to work on the browser and found out that I could use webllm for it. Chose a simple model. Decided to also implement a sha256 encryption so that people can not just inspect page to get the answer. (Please excuse the video at the bottom)"}, {"post_id": 70160, "ts": "2026-09-18T16:24:23Z", "hours": 0.5692, "text": "Worked on the styling of the website today with a little help for the colour palette. Worked on a bit of the javascript too."}, {"post_id": 69227, "ts": "2026-09-16T16:45:44Z", "hours": 0.4125, "text": "Started the Project today. Done with the simple overall structure for the website, may need some changes later."}]...
|
Title: Can you Outsmart AI? by @Duxredux | Stardan Title: Can you Outsmart AI? by @Duxredux | Stardance
Devlogs:
Started the Project today. Done with the simple overall structure for the website, may need some changes later.
Worked on the styling of the website today with a little help for the colour palette. Worked on a bit of the javascript too.
Worked on trying to get the AI model to work on the browser and found out that I could use webllm for it. Chose a simple model. Decided to also implement a sha256 encryption so that people can not just inspect page to get the answer. (Please excuse the video at the bottom)
Worked on the actual website to make it functional but the AI model I am using which is a 0.5B parameter one seems a little too dumb. Going to try to improve it now.
Finished the UI finally and got the Javascript and stuff working. The model that I am currently using though is a 0.5B parameter one and just keeps giving the secret away with no effort.. Gotta find some bigger and better alternatives for it. Once that’s done I might be able to ship this out
Finally finished the website completely. The UI to me is satisfactory but not perfect or good enough, will look forward to improve it. Will be shipping it out soon (maybe tomorrow perhaps).
Ships:
CAN YOU OUTSMART AI? This is a simple website that gamifies the process of trying to basically extract confidential data(not really that confidential in this case) from an LLM by tricking it into giving it to you. Your objective is simple. The LLM has been given a passkey or a secret phrase (whatever floats your boat) and it is instructed on not to giving it to you (Do not try to inspect page, it wont work). You are supposed to give it prompts to trick it into giving you the passkey by any manner. This is a cybersecurity based project to educate people about the potential harm that could occur when AI agents are given acess to confidential information. Challenges: The main challenge in making this was that I had to learn how to make an LLM run locally on a machine and that too through a website and ofc choosing the model itself. I experimented with a few smaller models with 0.5-1B parameters and they were all insanely dumb and made getting the passkey way too easy. So stepped it up to a 1.5B parameter model and a bit of Prompt Engineering Magic to get the sweet spot. Important: This project does not support or endorse any kind of illegal activities by utilizing AI or otherwise. This is strictly a cybersecurity based project I wanted to make to educate people about the potential flaws of LLMs. LLMs are stateless and hence each message is new to them. So its really important to maintain guardrails and safely nets in your AI Agents and system prompts...
|
1792813980.4829516
|
1792900380.4829516
|
|
37706
|
FormulaOS by @Stellar | Stardance
|
Stellar
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:51:27Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself.", "repo": "https://github.com/Ansh2021/FormulaOS", "demo": "https://ansh2021.github.io/FormulaOS/"}]...
|
[{"post_id": 73460, "ts": "202 [{"post_id": 73460, "ts": "2026-09-25T04:13:29Z", "hours": 10.9867, "text": "Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon."}, {"post_id": 38900, "ts": "2026-08-01T14:11:31Z", "hours": 8.7997, "text": "Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog."}, {"post_id": 33087, "ts": "2026-07-22T17:55:59Z", "hours": 6.3911, "text": "Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?"}]...
|
Title: FormulaOS by @Stellar | Stardance
Devlogs: Title: FormulaOS by @Stellar | Stardance
Devlogs:
Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?
Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog.
Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon.
Ships:
I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself....
|
1792853501.0001607
|
1792939901.0001607
|
|
65535
|
Mini-Games Slackbot by @kareemwaleed | Stardance
|
kareemwaleed
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:15:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a slack bot whenever you get bored you can use it it now contains -coin flip -rock , paper ,scissors -dice rolling I also added the cat facts and the joke part from the guide At the begging of the project i didn’t have much knowledge I started reading documentations and I followed the guide I struggled to push the files and to hide the .env but I finally managed to do it i spent way more than an hour but it was on the push and nest steps that was not recorded by hack time also the algorithm of the rock paper scissors and how to do the win, lose and draw with out writing each case one by one using if statements There was also an error in this game that the user may input his choice capitalized which would result an error so I worked to convert this input into small letters to match the statement I wrote and do not have errors I used Ai to add emojis of both the readme and the code to make it a little more fun and i stated that in the description", "repo": "https://github.com/kokx138/Mini-games", "demo": "https://hackclub.enterprise.slack.com/archives/C0C4QJJ2L0Z"}]...
|
[{"post_id": 73610, "ts": "202 [{"post_id": 73610, "ts": "2026-09-25T14:00:26Z", "hours": 1.1914, "text": "I COMPLETED THE SLACK MISSION"}]...
|
Title: Mini-Games Slackbot by @kareemwaleed | Star Title: Mini-Games Slackbot by @kareemwaleed | Stardance
Devlogs:
I COMPLETED THE SLACK MISSION
Ships:
I made a slack bot whenever you get bored you can use it it now contains -coin flip -rock , paper ,scissors -dice rolling I also added the cat facts and the joke part from the guide At the begging of the project i didn’t have much knowledge I started reading documentations and I followed the guide I struggled to push the files and to hide the .env but I finally managed to do it i spent way more than an hour but it was on the push and nest steps that was not recorded by hack time also the algorithm of the rock paper scissors and how to do the win, lose and draw with out writing each case one by one using if statements There was also an error in this game that the user may input his choice capitalized which would result an error so I worked to convert this input into small letters to match the statement I wrote and do not have errors I used Ai to add emojis of both the readme and the code to make it a little more fun and i stated that in the description...
|
1792817252.1614494
|
1792903652.1614494
|
|
22802
|
Cosmo Sling by @Kartik_B | Stardance
|
Kartik_B
|
4
|
32.0
|
181
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T13:59:49Z", "hours": 2.0, "multiplier": 11.05, "payout": 23, "blessing": "neutral", "text": "This ships is all about the android build of the game. I have also fixed some bugs. i did a lot of playtesting in android.", "repo": "https://github.com/K-BIDDOLIYA/Cosmo-Slingshot", "demo": "https://kartik-biddoliya.itch.io/cosmo-sling"}, {"ship_num": 2, "ts": "2026-08-03T17:48:02Z", "hours": 8.0, "multiplier": 2.26, "payout": 18, "blessing": "neutral", "text": "Cosmo Sling is a 2D space arcade game where players pilot a spacecraft through hazardous space, dodging asteroids, black holes, and other cosmic dangers. This submission includes both Campaign and Endless modes, multiple selectable ships, polished UI, dynamic backgrounds, and improved gameplay and visual effects.", "repo": "https://github.com/K-BIDDOLIYA/Cosmo-Slingshot", "demo": "https://kartik-biddoliya.itch.io/cosmo-sling"}, {"ship_num": 3, "ts": "2026-07-19T17:06:15Z", "hours": 8.0, "multiplier": 7.58, "payout": 62, "blessing": "neutral", "text": "Cosmo Sling is a 2D physics-based space puzzle game where players launch a spaceship from Earth and use the gravitational pull of randomly generated planets to reach the destination. Throughout development, the project has evolved from a simple gravity prototype into a polished game with procedural level generation, multiple difficulty modes, accurate trajectory prediction, dynamic gravity physics, sound effects, UI menus (main menu, settings, pause, win/lose screens), camera improvements, and WebGL support. Continuous feedback and playtesting have led to numerous gameplay balancing, bug fixes, UI refinements, performance improvements, and overall polish, bringing the game close to its final release version.", "repo": "https://github.com/K-BIDDOLIYA/Cosmo-Slingshot", "demo": "https://kartik-biddoliya.itch.io/cosmo-sling"}, {"ship_num": 4, "ts": "2026-07-05T15:09:17Z", "hours": 14.0, "multiplier": 5.54, "payout": 78, "blessing": "neutral", "text": "I made Cosmo Sling, a 2D physics-based space game where you get one launch to reach the destination planet. Randomly generated planets use gravity to curve your ship’s path, with four difficulty modes ranging from 1–6 planets. The most challenging parts were building the gravity system, random level generation, keeping the game working across different screen sizes, and fixing scene/UI issues. I’m most proud of getting the complete game polished and shipped with sound, settings, pause/restart controls, and a Windows build. To test it, download the game, unzip it, and run Cosmo Sling.exe. Click and drag to aim, release to launch, press P to pause, and R to restart anytime.", "repo": "https://github.com/K-BIDDOLIYA/Cosmo-Slingshot", "demo": "https://kartik-biddoliya.itch.io/cosmo-sling"}]...
|
[{"post_id": 73532, "ts": "202 [{"post_id": 73532, "ts": "2026-09-25T10:26:39Z", "hours": 2.1081, "text": "I added the android build also. trust me its better that the image below"}, {"post_id": 40258, "ts": "2026-08-03T17:45:43Z", "hours": 2.5464, "text": "Upgrade Devlog - #3 Just completed the game, upgraded the ui, selection of ships and a new gamemode. i will not add anything to this game anymore. This game is complete for me. This is the End!"}, {"post_id": 38955, "ts": "2026-08-01T16:00:25Z", "hours": 3.0036, "text": "Upgrading Devlog -#2 I added nebula that will come and try to block your vision. Also, i added blackhole but its not fully developed yet. You can see this perfectly timed image of the game that will show all of the upgrades"}, {"post_id": 38708, "ts": "2026-08-01T07:45:19Z", "hours": 2.2847, "text": "Upgrading devlog - #1 I just woke up and decided to upgrade the game and add an endless mode also. I will work on more upgrades like - mutiple ships, game control etc. This is what has been completed till now: Endless bg. Ship movement by WASD. Asteroids."}, {"post_id": 31330, "ts": "2026-07-19T17:03:54Z", "hours": 2.7847, "text": "After first ship devlog - #4 I have successfully fixed all of the issues pointed out in the feedback. Here’s what i did: Implemented the core gravity slingshot mechanic. Added procedural planet generation and difficulty levels. Improved ship launch controls and aiming. Made the trajectory prediction smoother and more accurate. Fixed multiple gameplay bugs (launch, collisions, UI, camera). Added pause menu, settings, win and lose screens. Improved audio system with sound effects and music controls. Balanced gravity strength and gameplay difficulty. Refined ship movement and collision handling. Fixed camera positioning and gameplay visibility issues. Optimized the game for WebGL and browser compatibility. Resolved UI scaling and resolution problems based on testing feedback. Added overall polish and prepared the game for release. Special thanks to @PAPER_01 for following this journey and encouraging me."}, {"post_id": 30668, "ts": "2026-07-18T13:15:24Z", "hours": 0.8947, "text": "After ship devlog - #3 Just fixed the win/lose panels. I’ll add WebGL very soon."}, {"post_id": 30142, "ts": "2026-07-17T14:09:06Z", "hours": 2.9939, "text": "After ship devlog - #2 I’ve just fixed 40% of the issues ya’ll pointed in the first ship and tried my best to work on your feedbacks."}, {"post_id": 25919, "ts": "2026-07-10T12:39:22Z", "hours": 0.8697, "text": "After ship devlog - #1 Started working on the feedback from the first players today. I fixed the difficulty system so each mode now spawns the correct number of planets, fixed the pause menu not appearing properly the first time, and stopped the win/lose sounds from repeating. I also fixed the music and sound toggles so they stay independent and sync correctly, and optimized the gravity system by caching the planets once per level instead of searching for them every physics frame. Still a lot more feedback to work through, but the game is already becoming much more stable and polished. I will ship the game again after fixes and some more firey upgrades."}, {"post_id": 23386, "ts": "2026-07-06T09:44:29Z", "hours": 0.6711, "text": "Devlog – I’m Shipping Again My first ship was sent back with changes requested because I accidentally forgot to mention my AI usage in the submission. I’ve now corrected that and am resubmitting the project with the proper information. There is also a second Hackatime project because I changed the Unity project/company name from Cosmo Slingshot to Cosmo Sling near the end of development. Hackatime detected the renamed project as a new project instead of continuing to track time under the original one. So the two Hackatime projects are both for the same game: Cosmo Slingshot — most of the development time Cosmo Sling — final changes after the rename This is not a second game or a duplicate project—just the same project being tracked under two names."}, {"post_id": 22890, "ts": "2026-07-05T15:03:01Z", "hours": 3.5681, "text": "Final Devlog – Cosmo Sling Shipped 🚀 Today I finished and shipped Cosmo Sling! I completed the final polish, including: Background music and sound effects Music and sound toggles with saved settings Pause menu and win/lose states Final UI fixes and screen scaling Game icon and branding Windows build and final testing After fixing the last build and resolution issues, I packaged the complete game and published it on itch.io. Cosmo Sling is officially finished and shipped!"}, {"post_id": 22151, "ts": "2026-07-04T13:53:14Z", "hours": 3.4792, "text": "Devlog #5 – UI & Visual Polish Today I focused on improving Cosmo Sling’s visuals and UI. Added a new pixel-art settings panel. Created Music and Sound toggles with blue/white visual states. Improved the menu’s space-themed design. Added an infinitely moving space background. Fixed several issues related to camera bounds, level generation, launching, and missing audio references. The game is now starting to look much more polished and consistent with its space theme."}, {"post_id": 19287, "ts": "2026-06-30T15:38:42Z", "hours": 4.1344, "text": "Devlog #4 – Big Progress on Cosmo Sling I completely forgot to write two day’s devlog while working 😅. I spent around 3–4 hours developing the game, so here’s a recap of everything I got done. Project Update Development on Cosmo Sling has been progressing really well. The core gameplay loop is now in place and the project feels much more like a real game than just a prototype. Gameplay Finished the one-shot launch mechanic. Improved the aiming system with a visual aim line. Added gravity that pulls the spaceship toward nearby planets. Implemented procedural generation of gravity planets based on the selected difficulty. Added random planet sizes and gravity strengths. Added minimum spacing between generated planets to reduce overlap. Game Systems Added a proper Game Manager and Level Manager. Added win and lose conditions. Implemented a hull (health) system. Added boundary collisions with hull damage. Added restart functionality and pause menu. UI Created the HUD to display hull information. Added Win and Game Over panels. Added buttons for restarting and returning to the main menu. Visual Polish Added planet spawn animations. Added a launch animation for the spaceship. Added a pulsing effect to the destination planet. Added an explosion effect when the ship is destroyed. Challenges There were a few bugs along the way, mostly related to script references, gravity generation, and scene setup. After tracking them down and fixing them, the project is much more stable and easier to build on. Next Steps The next goal is to improve the game’s presentation by adding camera effects, audio, particle effects, and a more polished background. After that, I’ll focus on balancing gameplay and polishing the overall experience before release. Overall, today’s session was very productive, and Cosmo Sling is steadily becoming a complete and polished game."}, {"post_id": 17455, "ts": "2026-06-28T07:31:55Z", "hours": 1.565, "text": "Devlog #3 - Fresh Start After running into a few issues with the original project setup, I decided it was better to rebuild everything from scratch instead of trying to patch things up. Along with the fresh start, I also renamed the game from Gravity Sling to Cosmo Sling—I think it fits the space theme much better. This is also my first time working on the project again after a pretty long break, so it feels great to finally get back into development. What I worked on today: 🔄 Rebuilt the project from scratch with a cleaner structure. 🚀 Renamed the game to Cosmo Sling. 📁 Organized the project folders for easier development. 🌍 Set up the Earth, spaceship, launch point, and core scene. 🎯 Implemented the click-and-drag launch mechanic. 📏 Added a launch trajectory line. 🛠️ Refactored the launch system into a dedicated Launch Manager for a cleaner architecture. 🧹 Fixed several early issues, including launch direction, spawn position, and ship interactions with Earth. The core launch mechanic is now working, which gives me a solid foundation for the next step: implementing planetary gravity and procedural level generation. Looking forward to making the first playable prototype!"}, {"post_id": 12600, "ts": "2026-06-20T16:07:40Z", "hours": 0.8, "text": "🚀 Gravity Sling — Devlog #2 Made progress on the game scene. Added: Earth and destination planet Spaceship setup Screen Boundaries Basic in-game UI The game is still static for now, but the playground for the core mechanic is finally ready. Next step: launching the ship and seeing gravity do its thing. #gamedev #unity #GravitySling #indiedev"}, {"post_id": 12505, "ts": "2026-06-20T13:01:23Z", "hours": 0.5, "text": "Gravity Sling — Devlog #1 Started work on a new Unity project: Gravity Sling. Today was mostly about building the foundation. The main menu is now up and running with: Start menu Difficulty selection Settings panel Audio controls Nothing flashy yet, but every game starts somewhere. The core idea revolves around launching a spacecraft and using the environment to reach a distant destination. I’m keeping the details secret for now because discovering the mechanics is part of the fun. Next up: bringing the actual gameplay to life and seeing if the physics feels as satisfying as it does in my head. Built with Unity.#gamedev #unity #indiedev #stardance #GravitySling"}]...
|
Title: Cosmo Sling by @Kartik_B | Stardance
Devlo Title: Cosmo Sling by @Kartik_B | Stardance
Devlogs:
Gravity Sling — Devlog #1 Started work on a new Unity project: Gravity Sling. Today was mostly about building the foundation. The main menu is now up and running with: Start menu Difficulty selection Settings panel Audio controls Nothing flashy yet, but every game starts somewhere. The core idea revolves around launching a spacecraft and using the environment to reach a distant destination. I’m keeping the details secret for now because discovering the mechanics is part of the fun. Next up: bringing the actual gameplay to life and seeing if the physics feels as satisfying as it does in my head. Built with Unity.#gamedev #unity #indiedev #stardance #GravitySling
🚀 Gravity Sling — Devlog #2 Made progress on the game scene. Added: Earth and destination planet Spaceship setup Screen Boundaries Basic in-game UI The game is still static for now, but the playground for the core mechanic is finally ready. Next step: launching the ship and seeing gravity do its thing. #gamedev #unity #GravitySling #indiedev
Devlog #3 - Fresh Start After running into a few issues with the original project setup, I decided it was better to rebuild everything from scratch instead of trying to patch things up. Along with the fresh start, I also renamed the game from Gravity Sling to Cosmo Sling—I think it fits the space theme much better. This is also my first time working on the project again after a pretty long break, so it feels great to finally get back into development. What I worked on today: 🔄 Rebuilt the project from scratch with a cleaner structure. 🚀 Renamed the game to Cosmo Sling. 📁 Organized the project folders for easier development. 🌍 Set up the Earth, spaceship, launch point, and core scene. 🎯 Implemented the click-and-drag launch mechanic. 📏 Added a launch trajectory line. 🛠️ Refactored the launch system into a dedicated Launch Manager for a cleaner architecture. 🧹 Fixed several early issues, including launch direction, spawn position, and ship interactions with Earth. The core launch mechanic is now working, which gives me a solid foundation for the next step: implementing planetary gravity and procedural level generation. Looking forward to making the first playable prototype!
Devlog #4 – Big Progress on Cosmo Sling I completely forgot to write two day’s devlog while working 😅. I spent around 3–4 hours developing the game, so here’s a recap of everything I got done. Project Update Development on Cosmo Sling has been progressing really well. The core gameplay loop is now in place and the project feels much more like a real game than just a prototype. Gameplay Finished the one-shot launch mechanic. Improved the aiming system with a visual aim line. Added gravity that pulls the spaceship toward nearby planets. Implemented procedural generation of gravity planets based on the selected difficulty. Added random planet sizes and gravity strengths. Added minimum spacing between generated planets to reduce overlap. Game Systems Added a proper Game Manager and Level Manager. Added win and lose conditions. Implemented a hull (health) system. Added boundary collisions with hull damage. Added restart functionality and pause menu. UI Created the HUD to display hull information. Added Win and Game Over panels. Added buttons for restarting and returning to the main menu. Visual Polish Added planet spawn animations. Added a launch animation for the spaceship. Added a pulsing effect to the destination planet. Added an explosion effect when the ship is destroyed. Challenges There were a few bugs along the way, mostly related to script references, gravity generation, and scene setup. After tracking them down and fixing them, the project is much more stable and easier to build on. Next Steps The next goal is to improve the game’s presentation by adding camera effects, audio, particle effects, and a more polished background. After that, I’ll focus on balancing gameplay and polishing the overall experience before release. Overall, today’s session was very productive, and Cosmo Sling is steadily becoming a complete and polished game.
Devlog #5 – UI & Visual Polish Today I focused on improving Cosmo Sling’s visuals and UI. Added a new pixel-art settings panel. Created Music and Sound toggles with blue/white visual states. Improved the menu’s space-themed design. Added an infinitely moving space background. Fixed several issues related to camera bounds, level generation, launching, and missing audio references. The game is now starting to look much more polished and consistent with its space theme.
Final Devlog – Cosmo Sling Shipped 🚀 Today I finished and shipped Cosmo Sling! I completed the final polish, including: Background music and sound effects Music and sound toggles with saved settings Pause menu and win/lose states Final UI fixes and screen scaling Game icon and branding Windows build and final testing After fixing the last build and resolution issues, I packaged the complete game and published it on itch.io. Cosmo Sling is officially finished and shipped!
Devlog – I’m Shipping Again My first ship was sent back with changes requested because I accidentally forgot to mention my AI usage in the submission. I’ve now corrected that and am resubmitting the project with the proper information. There is also a second Hackatime project because I changed the Unity project/company name from Cosmo Slingshot to Cosmo Sling near the end of development. Hackatime detected the renamed project as a new project instead of continuing to track time under the original one. So the two Hackatime projects are both for the same game: Cosmo Slingshot — most of the development time Cosmo Sling — final changes after the rename This is not a second game or a duplicate project—just the same project being tracked under two names.
After ship devlog - #1 Started working on the feedback from the first players today. I fixed the difficulty system so each mode now spawns the correct number of planets, fixed the pause menu not appearing properly the first time, and stopped the win/lose sounds from repeating. I also fixed the music and sound toggles so they stay independent and sync correctly, and optimized the gravity system by caching the planets once per level instead of searching for them every physics frame. Still a lot more feedback to work through, but the game is already becoming much more stable and polished. I will ship the game again after fixes and some more firey upgrades.
After ship devlog - #2 I’ve just fixed 40% of the issues ya’ll pointed in the first ship and tried my best to work on your feedbacks.
After ship devlog - #3 Just fixed the win/lose panels. I’ll add WebGL very soon.
After first ship devlog - #4 I have successfully fixed all of the issues pointed out in the feedback. Here’s what i did: Implemented the core gravity slingshot mechanic. Added procedural planet generation and difficulty levels. Improved ship launch controls and aiming. Made the trajectory prediction smoother and more accurate. Fixed multiple gameplay bugs (launch, collisions, UI, camera). Added pause menu, settings, win and lose screens. Improved audio system with sound effects and music controls. Balanced gravity strength and gameplay difficulty. Refined ship movement and collision handling. Fixed camera positioning and gameplay visibility issues. Optimized the game for WebGL and browser compatibility. Resolved UI scaling and resolution problems based on testing feedback. Added overall polish and prepared the game for release. Special thanks to @PAPER_01 for following this journey and encouraging me.
Upgrading devlog - #1 I just woke up and decided to upgrade the game and add an endless mode also. I will work on more upgrades like - mutiple ships, game control etc. This is what has been completed till now: Endless bg. Ship movement by WASD. Asteroids.
Upgrading Devlog -#2 I added nebula that will come and try to block your vision. Also, i added blackhole but its not fully developed yet. You can see this perfectly timed image of the game that will show all of the upgrades
Upgrade Devlog - #3 Just completed the game, upgraded the ui, selection of ships and a new gamemode. i will not add anything to this game anymore. This game is complete for me. This is the End!
I added the android build also. trust me its better that the image below
Ships:
I made Cosmo Sling, a 2D physics-based space game where you get one launch to reach the destination planet. Randomly generated planets use gravity to curve your ship’s path, with four difficulty modes ranging from 1–6 planets. The most challenging parts were building the gravity system, random level generation, keeping the game working across different screen sizes, and fixing scene/UI issues. I’m most proud of getting the complete game polished and shipped with sound, settings, pause/restart controls, and a Windows build. To test it, download the game, unzip it, and run Cosmo Sling.exe. Click and drag to aim, release to launch, press P to pause, and R to restart anytime.
Cosmo Sling is a 2D physics-based space puzzle game where players launch a spaceship from Earth and use the gravitational pull of randomly generated planets to reach the destination. Throughout development, the project has evolved from a simple gravity prototype into a polished game with procedural level generation, multiple difficulty modes, accurate trajectory prediction, dynamic gravity physics, sound effects, UI menus (main menu, settings, pause, win/lose screens), camera improvements, and WebGL support. Continuous feedback and playtesting have led to numerous gameplay balancing, bug fixes, UI refinements, performance improvements, and overall polish, bringing the game close to its final release version.
Cosmo Sling is a 2D space arcade game where players pilot a spacecraft through hazardous space, dodging asteroids, black holes, and other cosmic dangers. This submission includes both Campaign and Endless modes, multiple selectable ships, polished UI, dynamic backgrounds, and improved gameplay and visual effects.
This ships is all about the android build of the game. I have also fixed some bugs. i did a lot of playtesting in android....
|
1792846369.3645787
|
1792932769.3645787
|
|
62277
|
Verse by @lukas007 | Stardance
|
lukas007
|
1
|
10.0
|
72
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T13:31:47Z", "hours": 10.0, "multiplier": 7.43, "payout": 72, "blessing": "neutral", "text": "Verse is a web app that finds a song just by a part of the lyrics. It first searches the lyrics you enter and gives back top 10 results. You can then play each song to find the correct one. It’s basically Shazam but with lyrics. I struggled with the APIs but after some time and help from Claude I managed to get everything working. I learned a lot about using APIs, JavaScript and web development in general.", "repo": "https://github.com/lukas66666666/Song_guesser", "demo": "https://song-guesser-rho.vercel.app/"}]...
|
[{"post_id": 73573, "ts": "202 [{"post_id": 73573, "ts": "2026-09-25T12:42:08Z", "hours": 9.6797, "text": "I’m currently working on an app that finds a song just by a part of the lyrics. You can also play the songs it found. First I added the song searching and UI. Yesterday I was fighting with the song preview and I almost abandoned the feature because I just couldn’t get the audio to work but now after 3 hours it finally works. I still need to fix some bugs but it’s almost done and ready to ship."}]...
|
Title: Verse by @lukas007 | Stardance
Devlogs:
I’ Title: Verse by @lukas007 | Stardance
Devlogs:
I’m currently working on an app that finds a song just by a part of the lyrics. You can also play the songs it found. First I added the song searching and UI. Yesterday I was fighting with the song preview and I almost abandoned the feature because I just couldn’t get the audio to work but now after 3 hours it finally works. I still need to fix some bugs but it’s almost done and ready to ship.
Ships:
Verse is a web app that finds a song just by a part of the lyrics. It first searches the lyrics you enter and gives back top 10 results. You can then play each song to find the correct one. It’s basically Shazam but with lyrics. I struggled with the APIs but after some time and help from Claude I managed to get everything working. I learned a lot about using APIs, JavaScript and web development in general....
|
1792813929.8037193
|
1792900329.8037193
|
|
65665
|
My own site! by @mangoman | Stardance
|
mangoman
|
1
|
3.01
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T13:25:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a very simple site.But its my own and i like ir. Hardest part was the css and website hosting", "repo": "https://github.com/ismangoman/personal-site", "demo": "https://mangotechboy.dpdns.org"}]...
|
[{"post_id": 80603, "ts": "202 [{"post_id": 80603, "ts": "2026-10-18T08:43:18Z", "hours": 0.2731, "text": "Added an image to the sight and cleaned up the code a lil bit and upadted link in readme"}, {"post_id": 80596, "ts": "2026-10-18T08:07:49Z", "hours": 0.5772, "text": "I added a section about me. I had to use ai cuz after adding it the colours of the divs and text dissapered. I also changed the domain to a domain I had which hadd nothing on the root of it. now i will add a few images"}, {"post_id": 73874, "ts": "2026-09-26T07:22:14Z", "hours": 1.1578, "text": "So i improved the site by horizontally centering the divs, adding a background colour, adding some animations, made all the boxes use percentage sizes instead of pixel sizes becuas percentage works better. Added some fonts to. I also added a better readme and added a icon"}, {"post_id": 73595, "ts": "2026-09-25T13:18:04Z", "hours": 0.8222, "text": "So basically I started making the website. First i did the HTML of the website, after doing that i made the div’s then the css. I had to use one other tutorial from w3schools.com for the css. After making the website i tried to host on github pages but found i had an Iq too low so i had to use vercel pages.Then I just added the info to starance and done."}]...
|
Title: My own site! by @mangoman | Stardance
Devl Title: My own site! by @mangoman | Stardance
Devlogs:
So basically I started making the website. First i did the HTML of the website, after doing that i made the div’s then the css. I had to use one other tutorial from w3schools.com for the css. After making the website i tried to host on github pages but found i had an Iq too low so i had to use vercel pages.Then I just added the info to starance and done.
So i improved the site by horizontally centering the divs, adding a background colour, adding some animations, made all the boxes use percentage sizes instead of pixel sizes becuas percentage works better. Added some fonts to. I also added a better readme and added a icon
I added a section about me. I had to use ai cuz after adding it the colours of the divs and text dissapered. I also changed the domain to a domain I had which hadd nothing on the root of it. now i will add a few images
Added an image to the sight and cleaned up the code a lil bit and upadted link in readme
Ships:
I made a very simple site.But its my own and i like ir. Hardest part was the css and website hosting...
|
1792817261.2631307
|
1792903661.2631307
|
|
47423
|
DUNGEON ESCAPE (SHOWCASE) by @aaradhyarya_srivasta DUNGEON ESCAPE (SHOWCASE) by @aaradhyarya_srivastava | Stardance...
|
aaradhyarya_srivastava
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T13:09:51Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey Everyone! Dungeon Escape is a sort of showcase project made to showcase a cool dungeon but, more importantly, a gameplay system I’m working on for a rough game I have in mind The movement system is a mix between found footage and smooth horror games like PT (Which it is inspired by) The showcase is done with the help of a cool dungeon map :D If you are interested, please do check it out :3 NOTE: You need a relatively stronger PC since the game is not optimised yet :( Or you can check out the linked YouTube video https://www.youtube.com/watch?v=2ED_53Zj5m8", "repo": "https://github.com/lemonzwastaken/DungeonEscape", "demo": "https://lemonglemongg.itch.io/dungeon-escape-showcase"}]...
|
[{"post_id": 73572, "ts": "202 [{"post_id": 73572, "ts": "2026-09-25T12:41:24Z", "hours": 1.1061, "text": "Finished the showcase :D. I basically worked on the map a little, give some sense of exploration. Besides that I made changes to the player camera by adding a camera boom that gives a sort of smoothness to the camera instead of making it too snappy. On top of that I also made a flashlight for the darker portions of the game I also packaged the project and am now shipping it to itch.io"}, {"post_id": 73123, "ts": "2026-09-24T13:14:46Z", "hours": 1.4281, "text": "Worked on improving the player camera feel for the game. Added a more VHS ish square camera which also feels a bit more cinematic and mostly improved player movement in game like adding bobbing etc. Although quite a bit of this was done using Blueprints as player control is easier done on blueprints"}, {"post_id": 66849, "ts": "2026-09-12T19:32:33Z", "hours": 9.4644, "text": "Since im migrating this project from another YSWS I was unable to post devlogs however up until now ive worked on an inventory system as well as lock and key system that works like a charm. It is showcased in the video below. I also worked on a pressure plate system. I decide to expand upon this game much more in the coming future but for now this is all I have"}]...
|
Title: DUNGEON ESCAPE (SHOWCASE) by @aaradhyarya_s Title: DUNGEON ESCAPE (SHOWCASE) by @aaradhyarya_srivastava | Stardance
Devlogs:
Since im migrating this project from another YSWS I was unable to post devlogs however up until now ive worked on an inventory system as well as lock and key system that works like a charm. It is showcased in the video below. I also worked on a pressure plate system. I decide to expand upon this game much more in the coming future but for now this is all I have
Worked on improving the player camera feel for the game. Added a more VHS ish square camera which also feels a bit more cinematic and mostly improved player movement in game like adding bobbing etc. Although quite a bit of this was done using Blueprints as player control is easier done on blueprints
Finished the showcase :D. I basically worked on the map a little, give some sense of exploration. Besides that I made changes to the player camera by adding a camera boom that gives a sort of smoothness to the camera instead of making it too snappy. On top of that I also made a flashlight for the darker portions of the game I also packaged the project and am now shipping it to itch.io
Ships:
Hey Everyone! Dungeon Escape is a sort of showcase project made to showcase a cool dungeon but, more importantly, a gameplay system I’m working on for a rough game I have in mind The movement system is a mix between found footage and smooth horror games like PT (Which it is inspired by) The showcase is done with the help of a cool dungeon map :D If you are interested, please do check it out :3 NOTE: You need a relatively stronger PC since the game is not optimised yet :( Or you can check out the linked YouTube video https://www.youtube.com/watch?v=2ED_53Zj5m8...
|
1792853349.062955
|
1792939749.062955
|
|
65374
|
RandomBot by @Greg_ios | Stardance
|
Greg_ios
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T13:08:47Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "RandomBot is a simple Slack bot that manages a list of people and can randomly pick someone from it. You can add people, view the list, randomly pick a person, clear the list, and see all available commands directly from Slack. The bot is built with JavaScript, Node.js, Slack Bolt and Socket Mode. The list is saved locally in a JSON file so it can stay between restarts.", "repo": "https://github.com/travletothefurureprogramming/RandomBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0C4NGG664A"}]...
|
[{"post_id": 73585, "ts": "202 [{"post_id": 73585, "ts": "2026-09-25T13:08:17Z", "hours": 0.2594, "text": "Today I wrapped up the development of RandomBot for the Hack Club Stardance Slack Bot mission! The bot is fully finished, tested, and running live. What got finished in v1.0.0: Deployment on Nest: Deployed the bot to the Nest server using systemd ( slackbot.service ) so it runs 24/7 in the background. Production Setup: Configured server-side environment variables ( .env ) for Slack tokens and verified process logging via journalctl . Repo Polish: Cleaned up the repository with a minimal README.md , LICENSE (MIT), CHANGELOG.md , .env.example , and .gitignore . Persistence: Verified that local state persistence ( people.json ) works seamlessly across process restarts. Key Learnings: Building this project step-by-step taught me a lot about Node.js array manipulation, handling the local filesystem ( fs ), managing JSON data, Slack’s @slack/bolt framework with Socket Mode, and setting up persistent Linux services on Nest. The project is officially shipped and ready to use! 🚀"}, {"post_id": 73092, "ts": "2026-09-24T11:28:54Z", "hours": 0.7606, "text": "RandomBot — Devlog Today I started building my first Slack bot for the Hack Club Stardance Slack Bot mission. The idea is pretty simple. I wanted to make something where you can add people to a list and then let the bot randomly pick someone. What it can do so far /randombot-add [name] — adds someone to the list /randombot-list — shows everyone in the list /randombot-pick — randomly picks someone /randombot-clear — clears the list /randombot-help — shows the available commands I’m using a small people.json file to save the list. The bot creates it automatically if it doesn’t exist, and I added it to .gitignore so the list won’t be uploaded to GitHub. I’m building everything step by step instead of trying to make the whole thing at once. So far I’ve learned more about arrays, fs , JSON and how Slack slash commands work. Next I want to test everything in Slack and continue improving the bot."}]...
|
Title: RandomBot by @Greg_ios | Stardance
Devlogs Title: RandomBot by @Greg_ios | Stardance
Devlogs:
RandomBot — Devlog Today I started building my first Slack bot for the Hack Club Stardance Slack Bot mission. The idea is pretty simple. I wanted to make something where you can add people to a list and then let the bot randomly pick someone. What it can do so far /randombot-add [name] — adds someone to the list /randombot-list — shows everyone in the list /randombot-pick — randomly picks someone /randombot-clear — clears the list /randombot-help — shows the available commands I’m using a small people.json file to save the list. The bot creates it automatically if it doesn’t exist, and I added it to .gitignore so the list won’t be uploaded to GitHub. I’m building everything step by step instead of trying to make the whole thing at once. So far I’ve learned more about arrays, fs , JSON and how Slack slash commands work. Next I want to test everything in Slack and continue improving the bot.
Today I wrapped up the development of RandomBot for the Hack Club Stardance Slack Bot mission! The bot is fully finished, tested, and running live. What got finished in v1.0.0: Deployment on Nest: Deployed the bot to the Nest server using systemd ( slackbot.service ) so it runs 24/7 in the background. Production Setup: Configured server-side environment variables ( .env ) for Slack tokens and verified process logging via journalctl . Repo Polish: Cleaned up the repository with a minimal README.md , LICENSE (MIT), CHANGELOG.md , .env.example , and .gitignore . Persistence: Verified that local state persistence ( people.json ) works seamlessly across process restarts. Key Learnings: Building this project step-by-step taught me a lot about Node.js array manipulation, handling the local filesystem ( fs ), managing JSON data, Slack’s @slack/bolt framework with Socket Mode, and setting up persistent Linux services on Nest. The project is officially shipped and ready to use! 🚀
Ships:
RandomBot is a simple Slack bot that manages a list of people and can randomly pick someone from it. You can add people, view the list, randomly pick a person, clear the list, and see all available commands directly from Slack. The bot is built with JavaScript, Node.js, Slack Bolt and Socket Mode. The list is saved locally in a JSON file so it can stay between restarts....
|
1792817240.9736824
|
1792903640.9736824
|
|
65670
|
Personal site by @shyamks1828 | Stardance
|
shyamks1828
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T13:00:11Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Helloo guyss. I made my personal website. I know it feels very less but very soon i will add some pictures and videos of my projects in action pls do lookout.Helloo guyss. I made my personal website. I know it feels very less but very soon i will add some pictures and videos of my projects in action pls do lookout. rn the site has an about section projects section and project links section. I did use Ai mainly only for the part where if you hover over the links they morph to blue colour.", "repo": "https://github.com/coderrcboy/personal-website", "demo": "https://coderrcboy.github.io/personal-website/"}]...
|
[{"post_id": 73579, "ts": "202 [{"post_id": 73579, "ts": "2026-09-25T12:58:09Z", "hours": 0.6208, "text": "Helloo guyss. I made my personal website. I know it feels very less but very soon i will add some pictures and videos of my projects in action pls do lookout."}]...
|
Title: Personal site by @shyamks1828 | Stardance
Title: Personal site by @shyamks1828 | Stardance
Devlogs:
Helloo guyss. I made my personal website. I know it feels very less but very soon i will add some pictures and videos of my projects in action pls do lookout.
Ships:
Helloo guyss. I made my personal website. I know it feels very less but very soon i will add some pictures and videos of my projects in action pls do lookout.Helloo guyss. I made my personal website. I know it feels very less but very soon i will add some pictures and videos of my projects in action pls do lookout. rn the site has an about section projects section and project links section. I did use Ai mainly only for the part where if you hover over the links they morph to blue colour....
|
1792817262.3950968
|
1792903662.3950968
|
|
21500
|
HCR2 Setups Guide by @Alloy | Stardance
|
Alloy
|
1
|
63.0
|
846
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T11:58:58Z", "hours": 63.0, "multiplier": 13.44, "payout": 846, "blessing": "neutral", "text": "I made a web based information app that shows setups for each vehicle and track combination in the time attack game mode of Hill Climb Racing 2 (HCR2). The hardest thing was all of the queries for specific statistics, and since some of them also filtered by world records I just made a function to make world record queries cleaner and less messy. A second major problem was the filters on the search page, at the start were just simple select elements but they only take one value so the user can’t filter by more than one of each at once, to fix this I wanted to add a checkbox to each option but selects don’t support that so I needed to break my entire css by switching to details elements and restyling them so they stack nicely like the select elements before.", "repo": "https://github.com/Alloy-MVP/HCR2-Setups-Guide", "demo": "https://frenchtoast.pythonanywhere.com/"}]...
|
[{"post_id": 73537, "ts": "202 [{"post_id": 73537, "ts": "2026-09-25T10:57:09Z", "hours": 0.8028, "text": "FINAL DEVLOG: Added the new parts; Echo and Amplifier, added another part slot, increasing it to 4 since all world records use 4 parts now instead of 3. Took 4 hours to insert the world record setups (only all vehicle world records) for all 197 tracks as of 25/9/2026."}, {"post_id": 73425, "ts": "2026-09-25T02:03:28Z", "hours": 4.7644, "text": "Fixed a bug where inserting setups with a negative number were getting through because they are the only inputs not validated by sqlalchemy. Changed the validation to use the database data instead of the lists at the top of the .py, and therefore also added every single vehicle, part, and track to replace it in the db. Installed pylint to help my code look cleaner and changed everything it was complaining about. Also cleared the database so its empty and added all of the in game tracks and vehicles to replace the test data."}, {"post_id": 52034, "ts": "2026-08-22T02:16:53Z", "hours": 2.0461, "text": "Changed the tuning parts on setups and search page to icons, reversed the order of setups on the setups page so recently added ones are shown at the top, added a max time limit (32 bit integer limit). Tons of bug fixes: the search filters now handle more than one value, checking “World Records” doesnt wipe other filters, filters arent wiped when the page reloads after searching for a setup, rows per page defaults to 50, fixed the settings returning the error statement if rows per page is empty."}, {"post_id": 51494, "ts": "2026-08-21T07:31:36Z", "hours": 0.7431, "text": "Small tweak to the backend validation for the settings inputs, database path is now relative instead of absolute, added a second SQLAlchemy error catcher on top of the python ones, removed the .venv so a new one is made when the repository is cloned. (now it should be runable)"}, {"post_id": 51359, "ts": "2026-08-20T23:45:02Z", "hours": 0.8308, "text": "Changed most of the lists to now use list comprehension, made the error handler handle every error code from 400 to 599. Updated the error page to not break the flow. The app is now fully runable (hopefully) with instructions on the readme."}, {"post_id": 50800, "ts": "2026-08-20T06:19:49Z", "hours": 2.0058, "text": "Added a clear filters button to the insert form, added a shadow to the home page title. Changed the backend for time to not allow times > 32 bit int limit, changed the rows per page setting to be able to type custom amounts while still suggesting 5,10,20,30,40,50 with back end validation. Added a small section in information about insert field parameters. The setups table order is now reversed so new inserts are shown at the top. Settings errors are now shown on pages. Cleaned up some backend validation, the error messages now dont show for empty fields, created a requrements.txt and a readme on how to run the app."}, {"post_id": 49273, "ts": "2026-08-17T23:45:16Z", "hours": 0.8703, "text": "Added a 404 error handler and images of tuning parts to replace the text."}, {"post_id": 47929, "ts": "2026-08-16T06:12:15Z", "hours": 3.1731, "text": "Finished most of the home page, added a information section with a video, added 3 containers with quick navigation links, statistics, and fastest times on the home page, also added a background."}, {"post_id": 47790, "ts": "2026-08-15T23:28:52Z", "hours": 1.8481, "text": "Made the button borders brighter to be more visible, changed the content backgrounds to a gradient. Changed the setups table to look identical to search. Added a delete button to the all setups table to easily delete specific setups."}, {"post_id": 47320, "ts": "2026-08-15T06:19:10Z", "hours": 4.9217, "text": "Big Update: Moved links to the right and added a settings menu, added a title, made all inputs and filters have hover effects. Settings menu has a toggle for light/dark theme, and a way to select how many rows are shown in all tables (default is 10). Changed all of the css colors to variables for the settings."}, {"post_id": 46610, "ts": "2026-08-13T23:34:27Z", "hours": 2.1578, "text": "Search bar now fully supports searching for more than one word."}, {"post_id": 45471, "ts": "2026-08-11T23:30:33Z", "hours": 1.6261, "text": "The player, vehicle, and track filters can all take more than one filter so the search page can now show results from multiple players, vehicles, and tracks."}, {"post_id": 43698, "ts": "2026-08-09T03:15:24Z", "hours": 2.5139, "text": "Revamped the css again, the insert and delete forms are being moved to the setups table. No screenshot until the next devlog because its a mess right now."}, {"post_id": 43069, "ts": "2026-08-08T04:14:05Z", "hours": 1.5303, "text": "Added a leaderboard for the most used part setups, Changed how the parts are submitted, they are now sorted so there cant be multiple setups of the same parts combination but different orders, duplicates will just reuse an already existing one."}, {"post_id": 42928, "ts": "2026-08-07T22:11:58Z", "hours": 2.7381, "text": "Added a script that counts how many wrs every single player has and displays on the leaderboard page. Made the player field autoselect a name if you type it with wrong capitalization, for example ndwg will autoswitch to Ndwg."}, {"post_id": 39258, "ts": "2026-08-02T03:35:36Z", "hours": 2.9344, "text": "Completely finished styling the search page, also changed the filters to details instead of select so i can use checkboxes inside."}, {"post_id": 39170, "ts": "2026-08-01T22:55:05Z", "hours": 0.7469, "text": "World records filter is fully finished"}, {"post_id": 38508, "ts": "2026-07-31T22:44:24Z", "hours": 3.4031, "text": "Finished the backend of the wr filter, the fastest time with x vehicle and y track is highlighted in yellow."}, {"post_id": 36188, "ts": "2026-07-28T03:29:06Z", "hours": 1.2111, "text": "Finally found out about back_populates, players that arent currently in a setup now get deleted."}, {"post_id": 35045, "ts": "2026-07-26T06:34:23Z", "hours": 1.4058, "text": "Styled the filters section, added hover styling for links, buttons, and table data."}, {"post_id": 34983, "ts": "2026-07-26T03:54:43Z", "hours": 3.9231, "text": "Completely restarted the css, started styling the search bar filters and navigation bar."}, {"post_id": 29886, "ts": "2026-07-17T01:32:40Z", "hours": 1.055, "text": "Changed the filters to only show players,tracks, and vehicles that actually have a setup. Made the vehicle and track filter setups by time (lowest to highes) so the first time (fastest) is at the top."}, {"post_id": 29282, "ts": "2026-07-16T02:58:34Z", "hours": 0.8175, "text": "Added warnings for invalid filters (changed the values using inspect)"}, {"post_id": 28723, "ts": "2026-07-15T05:01:13Z", "hours": 1.4858, "text": "Made the filter fields functional but are misssing back end validation"}, {"post_id": 26951, "ts": "2026-07-12T01:24:49Z", "hours": 2.71, "text": "Added a stats/search page and moved the search bar there, also added a way to filter by players and vehicles (unfuctional)."}, {"post_id": 21229, "ts": "2026-07-03T02:00:51Z", "hours": 1.4261, "text": "Added a search bar to filter specific setups but still has some bugs (first table is all data, second table is data from the search)"}, {"post_id": 19058, "ts": "2026-06-30T07:43:15Z", "hours": 1.2028, "text": "Made the delete table functional and removes rows from setups but not the sub tables where the individual data is."}, {"post_id": 16718, "ts": "2026-06-27T05:02:23Z", "hours": 2.5661, "text": "Added checks for duplicates, missing fields, and times automatically updates if a time that is faster than the previous for a specific setup is submitted. Automatically adds the data to the setups table and puts the individual field data into their respective tables as well."}, {"post_id": 15998, "ts": "2026-06-25T23:45:29Z", "hours": 2.5778, "text": "Added some back end validation checks and added a list to check if the track field matches what can actually be inserted, also used a jinja loop to make options for each individual track in the list for the form."}, {"post_id": 14169, "ts": "2026-06-23T04:56:34Z", "hours": 2.9508, "text": "Basic input form for the database if every field is filled and correct"}]...
|
Title: HCR2 Setups Guide by @Alloy | Stardance
De Title: HCR2 Setups Guide by @Alloy | Stardance
Devlogs:
Basic input form for the database if every field is filled and correct
Added some back end validation checks and added a list to check if the track field matches what can actually be inserted, also used a jinja loop to make options for each individual track in the list for the form.
Added checks for duplicates, missing fields, and times automatically updates if a time that is faster than the previous for a specific setup is submitted. Automatically adds the data to the setups table and puts the individual field data into their respective tables as well.
Made the delete table functional and removes rows from setups but not the sub tables where the individual data is.
Added a search bar to filter specific setups but still has some bugs (first table is all data, second table is data from the search)
Added a stats/search page and moved the search bar there, also added a way to filter by players and vehicles (unfuctional).
Made the filter fields functional but are misssing back end validation
Added warnings for invalid filters (changed the values using inspect)
Changed the filters to only show players,tracks, and vehicles that actually have a setup. Made the vehicle and track filter setups by time (lowest to highes) so the first time (fastest) is at the top.
Completely restarted the css, started styling the search bar filters and navigation bar.
Styled the filters section, added hover styling for links, buttons, and table data.
Finally found out about back_populates, players that arent currently in a setup now get deleted.
Finished the backend of the wr filter, the fastest time with x vehicle and y track is highlighted in yellow.
World records filter is fully finished
Completely finished styling the search page, also changed the filters to details instead of select so i can use checkboxes inside.
Added a script that counts how many wrs every single player has and displays on the leaderboard page. Made the player field autoselect a name if you type it with wrong capitalization, for example ndwg will autoswitch to Ndwg.
Added a leaderboard for the most used part setups, Changed how the parts are submitted, they are now sorted so there cant be multiple setups of the same parts combination but different orders, duplicates will just reuse an already existing one.
Revamped the css again, the insert and delete forms are being moved to the setups table. No screenshot until the next devlog because its a mess right now.
The player, vehicle, and track filters can all take more than one filter so the search page can now show results from multiple players, vehicles, and tracks.
Search bar now fully supports searching for more than one word.
Big Update: Moved links to the right and added a settings menu, added a title, made all inputs and filters have hover effects. Settings menu has a toggle for light/dark theme, and a way to select how many rows are shown in all tables (default is 10). Changed all of the css colors to variables for the settings.
Made the button borders brighter to be more visible, changed the content backgrounds to a gradient. Changed the setups table to look identical to search. Added a delete button to the all setups table to easily delete specific setups.
Finished most of the home page, added a information section with a video, added 3 containers with quick navigation links, statistics, and fastest times on the home page, also added a background.
Added a 404 error handler and images of tuning parts to replace the text.
Added a clear filters button to the insert form, added a shadow to the home page title. Changed the backend for time to not allow times > 32 bit int limit, changed the rows per page setting to be able to type custom amounts while still suggesting 5,10,20,30,40,50 with back end validation. Added a small section in information about insert field parameters. The setups table order is now reversed so new inserts are shown at the top. Settings errors are now shown on pages. Cleaned up some backend validation, the error messages now dont show for empty fields, created a requrements.txt and a readme on how to run the app.
Changed most of the lists to now use list comprehension, made the error handler handle every error code from 400 to 599. Updated the error page to not break the flow. The app is now fully runable (hopefully) with instructions on the readme.
Small tweak to the backend validation for the settings inputs, database path is now relative instead of absolute, added a second SQLAlchemy error catcher on top of the python ones, removed the .venv so a new one is made when the repository is cloned. (now it should be runable)
Changed the tuning parts on setups and search page to icons, reversed the order of setups on the setups page so recently added ones are shown at the top, added a max time limit (32 bit integer limit). Tons of bug fixes: the search filters now handle more than one value, checking “World Records” doesnt wipe other filters, filters arent wiped when the page reloads after searching for a setup, rows per page defaults to 50, fixed the settings returning the error statement if rows per page is empty.
Fixed a bug where inserting setups with a negative number were getting through because they are the only inputs not validated by sqlalchemy. Changed the validation to use the database data instead of the lists at the top of the .py, and therefore also added every single vehicle, part, and track to replace it in the db. Installed pylint to help my code look cleaner and changed everything it was complaining about. Also cleared the database so its empty and added all of the in game tracks and vehicles to replace the test data.
FINAL DEVLOG: Added the new parts; Echo and Amplifier, added another part slot, increasing it to 4 since all world records use 4 parts now instead of 3. Took 4 hours to insert the world record setups (only all vehicle world records) for all 197 tracks as of 25/9/2026.
Ships:
I made a web based information app that shows setups for each vehicle and track combination in the time attack game mode of Hill Climb Racing 2 (HCR2). The hardest thing was all of the queries for specific statistics, and since some of them also filtered by world records I just made a function to make world record queries cleaner and less messy. A second major problem was the filters on the search page, at the start were just simple select elements but they only take one value so the user can’t filter by more than one of each at once, to fix this I wanted to add a checkbox to each option but selects don’t support that so I needed to break my entire css by switching to details elements and restyling them so they stack nicely like the select elements before....
|
1792856965.1590054
|
1792943365.1590054
|
|
63794
|
Dynamite by @disgustalt | Stardance
|
disgustalt
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T11:01:21Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A simple Slack bot that works. My first time working with @slack /bolt, so I had some trouble making it at first (though the caption command was more troublesome 😔). I’m proud that it works lol, and if you wanna try it, run ‘/dynamite-caption’ in #bot-spam (Use the try project button :0000)", "repo": "https://github.com/disgustalt/Slackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 73538, "ts": "202 [{"post_id": 73538, "ts": "2026-09-25T10:57:41Z", "hours": 2.4247, "text": "Made a clear guide on the stuff (idk what to write help)"}, {"post_id": 73035, "ts": "2026-09-24T07:51:44Z", "hours": 4.8675, "text": "Simple slackbot ;) Has only a few commands (caption, fact, ping). Any ideas for new commands? Or maybe a software project idea :))"}]...
|
Title: Dynamite by @disgustalt | Stardance
Devlog Title: Dynamite by @disgustalt | Stardance
Devlogs:
Simple slackbot ;) Has only a few commands (caption, fact, ping). Any ideas for new commands? Or maybe a software project idea :))
Made a clear guide on the stuff (idk what to write help)
Ships:
A simple Slack bot that works. My first time working with @slack /bolt, so I had some trouble making it at first (though the caption command was more troublesome 😔). I’m proud that it works lol, and if you wanna try it, run ‘/dynamite-caption’ in #bot-spam (Use the try project button :0000)...
|
1792814071.7843876
|
1792900471.7843876
|
|
51505
|
Simon_pocket by @joris | Stardance
|
joris
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T10:19:34Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Simon_pocket - a pocket version of the classic simon says game. I designed a PCB, wrote bare metal code for the microcontroller and designed an enclosure. I am very happy with the PCB and code, but it think that I need to improve my 3D modeling skills and make better models in the future. I am really happy that i was able to learn so much about the programming of STM32 microcontrollers even if it took a long time. In the future i hope to make projects with more interesting electronic circuits.", "repo": "https://github.com/JorisBar/Simon_pocket", "demo": ""}]...
|
[{"post_id": 71325, "ts": "202 [{"post_id": 71325, "ts": "2026-09-20T17:06:37Z", "hours": 0.7, "text": "I just prepared a few 3D printed housings and PCBs. My 3D printed parts have bridges that don’t turn out very well, so i need to use some tools to grind them down. I think that my filament is wet, so I’m experiencing this problem."}, {"post_id": 62788, "ts": "2026-09-06T09:38:25Z", "hours": 3.2003, "text": "I just updated the Simon_pocket housing 3D model. It now has a tighter locking mechanism and a thinner loop for connecting to key rings. I am also finishing up my README document. I have created all of the diagrams and pictures i need. I attached a picture of the old and the new versions of the housing."}, {"post_id": 56440, "ts": "2026-08-28T06:33:06Z", "hours": 5.6667, "text": "I just soldered 2 PCBs by hand and 5 PCBs using a solder paste stencil. I was very suprised that the solder paste and stencil were easy to use. Using the stencil, i soldered 5 PCBs in about the same time it would have taken me to solder 1 PCB by hand. The stencil also improved the solder quality. It looks way better than doing it by hand. Even though i used a cheap solder paste, I still got great results."}, {"post_id": 51524, "ts": "2026-08-21T09:05:24Z", "hours": 2.0833, "text": "Today I finished 2 diagrams for the code logic and took a screenshot of my Fusion workspace to put in my README file. I also took 2 images of the real soldered PCBs. The README is starting to look really good"}, {"post_id": 50940, "ts": "2026-08-20T12:31:58Z", "hours": 1.1833, "text": "I started 2 diagrams for my project’s code/game logic. I will put them in my README file on my github. At first i had a hard time figuring out how to display the code logic, but after talking to Gemini i decided to do 2 different diagrams: one for system state transitions and the other for how the code is structured. I attached images of both unfinnished diagrams."}, {"post_id": 50846, "ts": "2026-08-20T09:10:28Z", "hours": 2.2167, "text": "I created a block diagram to explain the gameplay of my project. I did it in diagrams.net. I really like how it looks and it makes my README.md way better. I also fixed file formats of some images, because github doesnt suppord PDFs in the README and i had a hard time exporting .svg files. I later realised that i can put a black rectangle behind my PCB svg and now the constrast is really good and i can see everything clearly."}]...
|
Title: Simon_pocket by @joris | Stardance
Devlogs Title: Simon_pocket by @joris | Stardance
Devlogs:
I created a block diagram to explain the gameplay of my project. I did it in diagrams.net. I really like how it looks and it makes my README.md way better. I also fixed file formats of some images, because github doesnt suppord PDFs in the README and i had a hard time exporting .svg files. I later realised that i can put a black rectangle behind my PCB svg and now the constrast is really good and i can see everything clearly.
I started 2 diagrams for my project’s code/game logic. I will put them in my README file on my github. At first i had a hard time figuring out how to display the code logic, but after talking to Gemini i decided to do 2 different diagrams: one for system state transitions and the other for how the code is structured. I attached images of both unfinnished diagrams.
Today I finished 2 diagrams for the code logic and took a screenshot of my Fusion workspace to put in my README file. I also took 2 images of the real soldered PCBs. The README is starting to look really good
I just soldered 2 PCBs by hand and 5 PCBs using a solder paste stencil. I was very suprised that the solder paste and stencil were easy to use. Using the stencil, i soldered 5 PCBs in about the same time it would have taken me to solder 1 PCB by hand. The stencil also improved the solder quality. It looks way better than doing it by hand. Even though i used a cheap solder paste, I still got great results.
I just updated the Simon_pocket housing 3D model. It now has a tighter locking mechanism and a thinner loop for connecting to key rings. I am also finishing up my README document. I have created all of the diagrams and pictures i need. I attached a picture of the old and the new versions of the housing.
I just prepared a few 3D printed housings and PCBs. My 3D printed parts have bridges that don’t turn out very well, so i need to use some tools to grind them down. I think that my filament is wet, so I’m experiencing this problem.
Ships:
I made Simon_pocket - a pocket version of the classic simon says game. I designed a PCB, wrote bare metal code for the microcontroller and designed an enclosure. I am very happy with the PCB and code, but it think that I need to improve my 3D modeling skills and make better models in the future. I am really happy that i was able to learn so much about the programming of STM32 microcontrollers even if it took a long time. In the future i hope to make projects with more interesting electronic circuits....
|
1792853737.4050138
|
1792940137.4050138
|
|
65589
|
NovTAB by @notfix133 | Stardance
|
notfix133
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T09:38:16Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NovTAB here!! This is NovTAB a “…………” new tab for your browser. (it is still in its initial stages so there is not really a good adjective for it.) I have finished with the v1.0 the basic version that works and has the following features: a clock that works and a calendar that shows today’s date and day a searchbar that works!!! a few shortcuts to your favourite sites a hover animation I have used fonts awesome for the icons. demo lonk: https://abhrajit-gogoi.github.io/novTAB/", "repo": "https://github.com/Abhrajit-Gogoi/novTAB", "demo": "https://abhrajit-gogoi.github.io/novTAB/"}]...
|
[{"post_id": 73517, "ts": "202 [{"post_id": 73517, "ts": "2026-09-25T09:23:00Z", "hours": 0.2536, "text": "Wrote the clock and the search tab logic!!"}, {"post_id": 73511, "ts": "2026-09-25T08:43:30Z", "hours": 0.7531, "text": "done with the styling!!!! now i need to add the javascript logic"}, {"post_id": 73496, "ts": "2026-09-25T07:41:41Z", "hours": 0.4042, "text": "Started with the styling css. made the content centered…"}, {"post_id": 73478, "ts": "2026-09-25T06:32:57Z", "hours": 0.4758, "text": "Created the basic html for my new tab and added a searchbar and a timer along with daily useful href links"}]...
|
Title: NovTAB by @notfix133 | Stardance
Devlogs:
Title: NovTAB by @notfix133 | Stardance
Devlogs:
Created the basic html for my new tab and added a searchbar and a timer along with daily useful href links
Started with the styling css. made the content centered…
done with the styling!!!! now i need to add the javascript logic
Wrote the clock and the search tab logic!!
Ships:
NovTAB here!! This is NovTAB a “…………” new tab for your browser. (it is still in its initial stages so there is not really a good adjective for it.) I have finished with the v1.0 the basic version that works and has the following features: a clock that works and a calendar that shows today’s date and day a searchbar that works!!! a few shortcuts to your favourite sites a hover animation I have used fonts awesome for the icons. demo lonk: https://abhrajit-gogoi.github.io/novTAB/...
|
1792817257.0391219
|
1792903657.0391219
|
|
64379
|
My very very personal website by @mian | Stardance
|
mian
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T08:30:52Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "#About I made a personal website that has three sections. There is the About, project, and my food tier list. In the projects, there are links which you can find the project. What did I learn? I learnt how to make a table and list. I used to manually do like <\\p> and then to split it but then i realised i can just do that list thing lol.", "repo": "https://github.com/mianyay/My-personal-website", "demo": "https://mianyay.github.io/My-personal-website/"}]...
|
[{"post_id": 73493, "ts": "202 [{"post_id": 73493, "ts": "2026-09-25T07:25:21Z", "hours": 0.5017, "text": "Added a third section cause i didnt realise we needed 3"}, {"post_id": 73477, "ts": "2026-09-25T06:27:32Z", "hours": 1.9336, "text": "I made a personal site for the mission. It has an about me and a table of projects. I learnt how to make a table using html!"}]...
|
Title: My very very personal website by @mian | St Title: My very very personal website by @mian | Stardance
Devlogs:
I made a personal site for the mission. It has an about me and a table of projects. I learnt how to make a table using html!
Added a third section cause i didnt realise we needed 3
Ships:
#About I made a personal website that has three sections. There is the About, project, and my food tier list. In the projects, there are links which you can find the project. What did I learn? I learnt how to make a table and list. I used to manually do like <\p> and then to split it but then i realised i can just do that list thing lol....
|
1792814129.6295063
|
1792900529.6295063
|
|
63944
|
My own site by @colgation | Stardance
|
colgation
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T07:49:56Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "MY personal site, thought it would be cool to style it in a color palette that matches colgate, as that is my username after all. Go check it out! Currently it seems a bit empty, I mgith add more things later on.", "repo": "https://github.com/194500-cpu/basicpersonaltemplate", "demo": "https://194500-cpu.github.io/basicpersonaltemplate/"}]...
|
[{"post_id": 73500, "ts": "202 [{"post_id": 73500, "ts": "2026-09-25T07:46:39Z", "hours": 0.7214, "text": "I have made a personal site, my previous project was deleted for some reason, alongside all mydevlogs."}]...
|
Title: My own site by @colgation | Stardance
Devl Title: My own site by @colgation | Stardance
Devlogs:
I have made a personal site, my previous project was deleted for some reason, alongside all mydevlogs.
Ships:
MY personal site, thought it would be cool to style it in a color palette that matches colgate, as that is my username after all. Go check it out! Currently it seems a bit empty, I mgith add more things later on....
|
1792814086.781319
|
1792900486.781319
|
|
65096
|
streaksaver by @raahi | Stardance
|
raahi
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T06:55:59Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a bot to remind you to actually lock in and do 30 min of work everyday. It directly connects to your hackatime account when you run /streaksaver-connect and pulls the number of hours you do. You can use the bot to do other things as well like directly see how many hours you’ve done without actually opening hackatime or view your streak. There is API support as well for this allowing you to access whoevers hackatime data like hours/streaks/goals. I am hosting this project using nest which was fun to learn as well. This was my very first attempt at making a slack bot, coding in JS and actually SSHing into a server and running my programs on it! Hope yall like it and feel free to join the channel #streaksaver-stardance-bot-project to try the bot out :0", "repo": "https://github.com/CreativeDragon1/streakbuddy", "demo": "https://hackclub.enterprise.slack.com/archives/C0C40JKMH7B"}]...
|
[{"post_id": 72725, "ts": "202 [{"post_id": 72725, "ts": "2026-09-23T16:26:24Z", "hours": 10.1311, "text": "Hey there, I made this project initially for thirdsapce and then later moved it here, thirdspace doesn’t have a web log system, so I ended up making a JOURNAL.md with all the journals for each commit. Each journal has an estimate of the time spent, the gh commit, AI disclosure and a summary of stuff I did. github for it: streakbuddy/JOURNAL.md at main · CreativeDragon1/streakbuddy"}]...
|
Title: streaksaver by @raahi | Stardance
Devlogs: Title: streaksaver by @raahi | Stardance
Devlogs:
Hey there, I made this project initially for thirdsapce and then later moved it here, thirdspace doesn’t have a web log system, so I ended up making a JOURNAL.md with all the journals for each commit. Each journal has an estimate of the time spent, the gh commit, AI disclosure and a summary of stuff I did. github for it: streakbuddy/JOURNAL.md at main · CreativeDragon1/streakbuddy
Ships:
I made a bot to remind you to actually lock in and do 30 min of work everyday. It directly connects to your hackatime account when you run /streaksaver-connect and pulls the number of hours you do. You can use the bot to do other things as well like directly see how many hours you’ve done without actually opening hackatime or view your streak. There is API support as well for this allowing you to access whoevers hackatime data like hours/streaks/goals. I am hosting this project using nest which was fun to learn as well. This was my very first attempt at making a slack bot, coding in JS and actually SSHing into a server and running my programs on it! Hope yall like it and feel free to join the channel #streaksaver-stardance-bot-project to try the bot out :0...
|
1792814199.4487333
|
1792900599.4487333
|
|
65205
|
Nova Tab by @gdev | Stardance
|
gdev
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T04:02:39Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NovaTab is my custom newtab page where you can be greated with a beautiful tab everytime you open a new tab! NovaTab has everything from custom calendar support, to a custom-made bookmark widget, and dymanic weather and timezone systems using various apis.", "repo": "https://github.com/galaxydevvv/NovaTab", "demo": "https://galaxydevvv.github.io/NovaTab/"}]...
|
[{"post_id": 73454, "ts": "202 [{"post_id": 73454, "ts": "2026-09-25T03:56:56Z", "hours": 0.2822, "text": "DEVLOG #3 I added a clock from my old website to go above the search bar and wrote a quick readme for the website so people can easily read how to config and setup the new tab"}, {"post_id": 73122, "ts": "2026-09-24T13:12:12Z", "hours": 0.6708, "text": "DEVLOG #2 Today I added a bookmarks and calendar widget! The calendar took forever to add, working and cool-looking, without doxxing myself lol, and the bookmarks are just a new widget form I recoded from my old bookmark manager project."}, {"post_id": 72917, "ts": "2026-09-24T01:04:27Z", "hours": 1.5039, "text": "DEVLOG #1 YAYYY FIRST DEV LOG!!! I tried using the guide but it was really boring lol so I made my own new tab and after some research I found out its actually REALLY easy to add a working google search-bar so I added that the to center and also I added a cool weather widget I made so you can view the weather from inside the website! Its pretty basic right now so I added some blur effects and outlines, etc with css so it looks pretty good at least :D"}]...
|
Title: Nova Tab by @gdev | Stardance
Devlogs:
DEV Title: Nova Tab by @gdev | Stardance
Devlogs:
DEVLOG #1 YAYYY FIRST DEV LOG!!! I tried using the guide but it was really boring lol so I made my own new tab and after some research I found out its actually REALLY easy to add a working google search-bar so I added that the to center and also I added a cool weather widget I made so you can view the weather from inside the website! Its pretty basic right now so I added some blur effects and outlines, etc with css so it looks pretty good at least :D
DEVLOG #2 Today I added a bookmarks and calendar widget! The calendar took forever to add, working and cool-looking, without doxxing myself lol, and the bookmarks are just a new widget form I recoded from my old bookmark manager project.
DEVLOG #3 I added a clock from my old website to go above the search bar and wrote a quick readme for the website so people can easily read how to config and setup the new tab
Ships:
NovaTab is my custom newtab page where you can be greated with a beautiful tab everytime you open a new tab! NovaTab has everything from custom calendar support, to a custom-made bookmark widget, and dymanic weather and timezone systems using various apis....
|
1792814212.9844654
|
1792900612.9844654
|
|
63760
|
My own site! by @notfix133 | Stardance
|
notfix133
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T03:43:20Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is my first project on stardance!! i tried to follow a simple yt tutorial and made this simple sectioned website. it turned out to be kind of cute like a banana pancake but alls well!!! thank you for visiting this humble site of mine :) demo link: https://github.com/Abhrajit-Gogoi/personal-site", "repo": "https://github.com/Abhrajit-Gogoi/personal-site", "demo": "https://abhrajit-gogoi.github.io/personal-site/"}]...
|
[{"post_id": 73450, "ts": "202 [{"post_id": 73450, "ts": "2026-09-25T03:40:31Z", "hours": 0.4481, "text": "added my styling and a little bit of color. although it looks like a banana pancake to me. i really need to work on my styling sense."}, {"post_id": 73145, "ts": "2026-09-24T14:13:48Z", "hours": 0.4806, "text": "made the index.html after following the guide!!!!!"}]...
|
Title: My own site! by @notfix133 | Stardance
Dev Title: My own site! by @notfix133 | Stardance
Devlogs:
made the index.html after following the guide!!!!!
added my styling and a little bit of color. although it looks like a banana pancake to me. i really need to work on my styling sense.
Ships:
this is my first project on stardance!! i tried to follow a simple yt tutorial and made this simple sectioned website. it turned out to be kind of cute like a banana pancake but alls well!!! thank you for visiting this humble site of mine :) demo link: https://github.com/Abhrajit-Gogoi/personal-site...
|
1792814066.7728412
|
1792900466.7728412
|
|
25598
|
itinerarey by @nate | Stardance
|
nate
|
1
|
25.0
|
369
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T03:25:36Z", "hours": 25.0, "multiplier": 14.57, "payout": 369, "blessing": "neutral", "text": "Itinerarey is the better way to plan out your trips! When getting ready for a vacation, it can be incredibly stressful to plan out flights, hotels, activities, and more! So, I built itinerarey to make it a bit easier! It uses APIs and web scrapers to compile information from across the internet to have a centralized place to get information. The most challenging part of Itinerarey was the flights and hotels system. There are no free APIs (with good limits) for showing either, so I had to get a bit creative and spend a few hours researching. The flights system runs by contacting an API that runs a python web scraper that is hosted on Render, while the hotels call from an online Booking.com scraper. I am really proud of the recap page, mainly. To me, it feels like a representation of the entire project in its entireity. It shows everything the user did, and it works as a confirmation of every system performing as it should. For testing, please be aware that the render server mmight take up to a minute to load up. Also, due to web scraping being a bit finnicky, some results might not show up. If this happens, try clearing your localstorage and using a new destination. Enjoy your vacations! -nate", "repo": "https://github.com/Np3-0/itinerarey", "demo": "https://itinerarey.vercel.app/"}]...
|
[{"post_id": 73441, "ts": "202 [{"post_id": 73441, "ts": "2026-09-25T03:12:47Z", "hours": 3.2119, "text": "Itinerarey is complete! The last thing that I needed to get done was the recap page, which takes all the data in your localstorage and displays it for you! I had to rewrite how the flights and hotels are displayed to show the booking links, but overall it was pretty simple. The main thing that I am proud of is the budget tracker, which shows the prices for everything, including how much is leftover in the budget! This is done with some pretty simple math, but it definitely ties the project together. Lastly, the user can save a copy of this page to their computer. They can then also reset their localstorage to create a brand new trip! Lastly, I got the readme and license done (id take a look if I were you!), and finished deploying everything on vercel. Overall, I am really happy with how Itinerarey came out. I learned a lot about web scrapping and hosting websites from this project, which I hope will come in handy in the future! Thank you all for the support, stardance has been incredible! feel free to dm me in slack! - nate"}, {"post_id": 72073, "ts": "2026-09-22T03:31:50Z", "hours": 3.2789, "text": "The activities portion of the website is done! I did some research, and it turns out that the best way for me to find information on local events is AI! The way it works is by using Google Gemini along with Zod, which allows me to format my API requests to return in JSON. Since it has the same information each time, I can then just treat it as a regular API call. However, I might change it and put this on the backend to try to hide the API key. Anyways, we are almost at the end! The last major portion of the project is the recap page, where I plan to show all info on the trip, let users download, and maybe more! Today went pretty well, and I am excited to finally get this thing done."}, {"post_id": 70976, "ts": "2026-09-20T04:34:37Z", "hours": 3.3614, "text": "So… quick update, I tore my ACL! havent really been able to do much since, but today I sat down and got work done. Mainly, I got the hotels done! It works pretty similar to flights system, where the user is prompted with a list, and they choose whichever they want. Now, if you remember, I have been struggling with finding a hotel API, since amadeus shut down. Originally, the plan was rapidAPI, but the rate limits are horrid for that. After some very intense googling, I found omkar.cloud ! They have a bunch of web scrappers with a 200/month limit, so their booking.com API works perfectly. I genuinely was considering dropping the project from this, and I am so happy I found something that worked. Now, the future. There is like 10 days left in stardance, and I need to do the activities, final page, and fix deployment. Activities shouldn’t be that dificult, my plan is to use gemini and prompt it for activity ideas, and then format it to look cool? Im going to still do some research. Now, the main issue is deployment. Github pages doesn’t really support having a .env, so I tried switching to vercel. However, I now need to get localstorage (which I had to use as the cookie got too big lol) working on that, plus the flight API and everything else."}, {"post_id": 65159, "ts": "2026-09-10T03:14:31Z", "hours": 2.3381, "text": "Did I get work done on the hotels part? No! BUT, I did some very needed work on the flight system so that it should work in general. The main issue was that there was no way to convert from cities to airport codes, but I sat down and actually got it done. When the user enters a city and goes to the flight screen, a modal now appears. In the background, a function runs that gets the coordinates of the city, and then creates a 100 km circle around the location, returning all airports inside of it! Originally, the plan was to use nominatim for the geolocating, since it’s free, open source, and the goat, but I may have gotten IP banned for having it run 60 times a second for a good few minutes. (This is around 60 times the amount I am supposed to do it). I forgot to remove a variable from a dependency array. ANYWAYS, I used Mapbox instead! I have some experience with it, and its free tier is pretty comprehensive. Once the locations show on the modal, they choose which ones, it reloads to show departures, and then the same system as before applies! This works SO much better, and I’m really proud of the system."}, {"post_id": 61266, "ts": "2026-09-04T03:42:26Z", "hours": 1.16, "text": "So, I got some work done on itinerarey since. Mainly, I’ve been working on error trapping and trying to find a hotel’s API. Firstly, I am trying to use airport-data-js to convert city names to airports, but it returns the incorrect values usually. Otherwise, I got the base for the hotel page done. It’s going to look pretty similar to the flights, just with different information. Currently, I need to find an API that works for hotels, but it’s going to be a bit of a struggle. I tried fast-hotels, but they are no longer maintained, or at least the current version broke on me. Wish me luck!"}, {"post_id": 59366, "ts": "2026-09-01T03:57:08Z", "hours": 1.375, "text": "The flight system is complete! To reiterate how it works, once you put in a date, a render server with an API is called that uses Python to scrape Google Flights and return (hopefully) accurate flight data. Then, a user chooses the flight they want, it gets saved to the cookie, and it does the same actions for the return flight. The main issue I had with this was getting to swap between departure and returns, since it required some refactoring of the code. It wasn’t anything too bad, though. Next up is going to be finding a hotel API. This is going to be probably just as annoying as with the flights, but there is only one way to find out. That’ll be tomorrow, though; I am so tired right now lol. Lastly, I am writing this 3 minutes before my time as a Stardance Ambassador ends. I want to thank the team for letting me take this role; Nay-nay and Alex for their help; and everyone whom I’ve interacted with. While the role is done, I’m going to finish this project!"}, {"post_id": 57779, "ts": "2026-08-30T02:17:46Z", "hours": 0.9856, "text": "Now, the flights will actually show up in the website! Using the API, I get an array, and then each flight is put into a custom object that allows it to be displayed! Each option includes basic info such as airline, price, legs, locations, timings, and more! Now that it is styled, the next goal is to save flights to the cookie, and than rerun the same process for the return flight! Overall, I think it looks pretty good!"}, {"post_id": 52020, "ts": "2026-08-22T01:49:59Z", "hours": 1.9211, "text": "This time is fully my bad, I sort of (100%) forgot about this. ANYWAYS, I got some of the biggest progress done yet. Firstly, I got trips to save as cookies in your browser, since its an easier way for me to store data across the website. dont worry, im not stealing your data or anything lol. Then, I did some research (with help from Claude) and found fast-flights, a Python library that is basically a Google Flights scraper, so it works perfectly. Except it’s a Python library… on a React website. So, I created a seperate repo that contains an API that requests the library and hosted it on render.com. One note is that the links supplied reroute to google flights, so users will have to be careful with choosing correctly. Sadly, theres really no good free options for a flight API (literally everyone shut theirs down lol). Lastly, I connected it all together by writing the base code for querying the API and getting the data back. I do need to actually format it, modify it to work with my data, and display it. But, its a good stopping point for now. By next time, I want to have the flights page looking good, and my API to be more polished!"}, {"post_id": 38419, "ts": "2026-07-31T19:38:47Z", "hours": 1.1278, "text": "So… its been a minute! I’ve been out of state doing an engineering program at ND for the past few weeks, and I am FINALLY back home! So, here’s what I got done today! I finished the layout (for now) on for the planning page. For now, you put in the departure/arrival, number of people, dates, and overall budgets. The worst part of getting it to work was the date picker. I spent like 2 hours researching different date-range pickers and trying them out, such as react aria, react-date-range, and more. Eventually, I settled on cally since its lightweight, easy to customize, and didn’t require me to spend 3 hours making it work! I also created a new input type to shrink the file size down. For the future, I plan to get data to actually save in the app, and then start looking for a flights API. The API is going to be an issue. There is really not a lot of choices for a free and large-scale API for what I want. But, its the internet. Theres gotta be something! the website thats published isn’t updated yet, since I have some code that needs to be implemented before I can redeploy."}, {"post_id": 23955, "ts": "2026-07-07T05:30:43Z", "hours": 2.0186, "text": "I started to get some work done on the planning settings! Mainly, I need to track budgets, dates, and what the user actually wants to do and spend money on. The main issue I am currently having is making the date system work. I am going to do more research, though!"}, {"post_id": 21772, "ts": "2026-07-03T21:28:54Z", "hours": 0.9672, "text": "The home page is completely done! I spent around an hour adding in all of the other info, mainly about how the program works. I also spent a decent amount of time redoing the file structure of the website, just so everything is more organized. Now, I have to find the APIs I need. Google Flights doesn’t have one, so I am going to need to do some deep research."}, {"post_id": 20522, "ts": "2026-07-02T04:20:43Z", "hours": 0.6714, "text": "Been on vacation so progress been slow but here’s what I got done! Mainly, the search bar is done! I haven’t been able to program my custom algorithm yet, so right now it just links to google maps. I tried to mimic websites like Kayak and Google Earth, and I think its pretty decent. The main issue I had was with the website crashing when clicking the search bar. ThreeJS couldnt handle the pointer event (it doesnt really make sense), but with changing the z-order and adding a LOT of e.stoppropagation() fixed it. Overall, good progress, and next post I want to get the home page done!"}, {"post_id": 18112, "ts": "2026-06-29T03:36:57Z", "hours": 0.5631, "text": "Two major things for today: I fixed responsiveness, so it looks better on small screens. Also, I started work on the search bar. I have to style it, but its coming along well! shoutout to my friends @ fallout, wish i was allowed to come with! enjoy!"}, {"post_id": 16726, "ts": "2026-06-27T05:22:25Z", "hours": 0.9508, "text": "Card system works! When you click on a point (I added more), with around 3 per continent except Australia, a popup with basic info, a photo, and a button shows up. The button will eventually go to the itinerary algorithim, but for now just links to google maps. I have to make it responsive, but tomorrow I will (hopefully) finish the base page. check it out here!"}, {"post_id": 15870, "ts": "2026-06-25T19:58:46Z", "hours": 1.4225, "text": "Itinerarey (get it?) is going to be a website where you can put in a plan for a trip and get a full detailed list of what you can do, taking into consideration price, dates, and suggested ideas. I got this idea while waiting at EWR for 3 hours before my flight got cancelled, lol. I was supposed to go to Atlanta, and I would have had a free day by myself. If I had this, I could have figured out what to do. The plan is to take data from APIs to get flights, hotels, and other stuff, and combine it with AI to get a full list of what to do! But, so far, all I got done is the start of the hero page. I want to have a globe spinning in the BG with points that can pop up some ideas, which I got done using globe.gl. The points are not coded in yet to pop up, but that’ll be later."}]...
|
Title: itinerarey by @nate | Stardance
Devlogs:
I Title: itinerarey by @nate | Stardance
Devlogs:
Itinerarey (get it?) is going to be a website where you can put in a plan for a trip and get a full detailed list of what you can do, taking into consideration price, dates, and suggested ideas. I got this idea while waiting at EWR for 3 hours before my flight got cancelled, lol. I was supposed to go to Atlanta, and I would have had a free day by myself. If I had this, I could have figured out what to do. The plan is to take data from APIs to get flights, hotels, and other stuff, and combine it with AI to get a full list of what to do! But, so far, all I got done is the start of the hero page. I want to have a globe spinning in the BG with points that can pop up some ideas, which I got done using globe.gl. The points are not coded in yet to pop up, but that’ll be later.
Card system works! When you click on a point (I added more), with around 3 per continent except Australia, a popup with basic info, a photo, and a button shows up. The button will eventually go to the itinerary algorithim, but for now just links to google maps. I have to make it responsive, but tomorrow I will (hopefully) finish the base page. check it out here!
Two major things for today: I fixed responsiveness, so it looks better on small screens. Also, I started work on the search bar. I have to style it, but its coming along well! shoutout to my friends @ fallout, wish i was allowed to come with! enjoy!
Been on vacation so progress been slow but here’s what I got done! Mainly, the search bar is done! I haven’t been able to program my custom algorithm yet, so right now it just links to google maps. I tried to mimic websites like Kayak and Google Earth, and I think its pretty decent. The main issue I had was with the website crashing when clicking the search bar. ThreeJS couldnt handle the pointer event (it doesnt really make sense), but with changing the z-order and adding a LOT of e.stoppropagation() fixed it. Overall, good progress, and next post I want to get the home page done!
The home page is completely done! I spent around an hour adding in all of the other info, mainly about how the program works. I also spent a decent amount of time redoing the file structure of the website, just so everything is more organized. Now, I have to find the APIs I need. Google Flights doesn’t have one, so I am going to need to do some deep research.
I started to get some work done on the planning settings! Mainly, I need to track budgets, dates, and what the user actually wants to do and spend money on. The main issue I am currently having is making the date system work. I am going to do more research, though!
So… its been a minute! I’ve been out of state doing an engineering program at ND for the past few weeks, and I am FINALLY back home! So, here’s what I got done today! I finished the layout (for now) on for the planning page. For now, you put in the departure/arrival, number of people, dates, and overall budgets. The worst part of getting it to work was the date picker. I spent like 2 hours researching different date-range pickers and trying them out, such as react aria, react-date-range, and more. Eventually, I settled on cally since its lightweight, easy to customize, and didn’t require me to spend 3 hours making it work! I also created a new input type to shrink the file size down. For the future, I plan to get data to actually save in the app, and then start looking for a flights API. The API is going to be an issue. There is really not a lot of choices for a free and large-scale API for what I want. But, its the internet. Theres gotta be something! the website thats published isn’t updated yet, since I have some code that needs to be implemented before I can redeploy.
This time is fully my bad, I sort of (100%) forgot about this. ANYWAYS, I got some of the biggest progress done yet. Firstly, I got trips to save as cookies in your browser, since its an easier way for me to store data across the website. dont worry, im not stealing your data or anything lol. Then, I did some research (with help from Claude) and found fast-flights, a Python library that is basically a Google Flights scraper, so it works perfectly. Except it’s a Python library… on a React website. So, I created a seperate repo that contains an API that requests the library and hosted it on render.com. One note is that the links supplied reroute to google flights, so users will have to be careful with choosing correctly. Sadly, theres really no good free options for a flight API (literally everyone shut theirs down lol). Lastly, I connected it all together by writing the base code for querying the API and getting the data back. I do need to actually format it, modify it to work with my data, and display it. But, its a good stopping point for now. By next time, I want to have the flights page looking good, and my API to be more polished!
Now, the flights will actually show up in the website! Using the API, I get an array, and then each flight is put into a custom object that allows it to be displayed! Each option includes basic info such as airline, price, legs, locations, timings, and more! Now that it is styled, the next goal is to save flights to the cookie, and than rerun the same process for the return flight! Overall, I think it looks pretty good!
The flight system is complete! To reiterate how it works, once you put in a date, a render server with an API is called that uses Python to scrape Google Flights and return (hopefully) accurate flight data. Then, a user chooses the flight they want, it gets saved to the cookie, and it does the same actions for the return flight. The main issue I had with this was getting to swap between departure and returns, since it required some refactoring of the code. It wasn’t anything too bad, though. Next up is going to be finding a hotel API. This is going to be probably just as annoying as with the flights, but there is only one way to find out. That’ll be tomorrow, though; I am so tired right now lol. Lastly, I am writing this 3 minutes before my time as a Stardance Ambassador ends. I want to thank the team for letting me take this role; Nay-nay and Alex for their help; and everyone whom I’ve interacted with. While the role is done, I’m going to finish this project!
So, I got some work done on itinerarey since. Mainly, I’ve been working on error trapping and trying to find a hotel’s API. Firstly, I am trying to use airport-data-js to convert city names to airports, but it returns the incorrect values usually. Otherwise, I got the base for the hotel page done. It’s going to look pretty similar to the flights, just with different information. Currently, I need to find an API that works for hotels, but it’s going to be a bit of a struggle. I tried fast-hotels, but they are no longer maintained, or at least the current version broke on me. Wish me luck!
Did I get work done on the hotels part? No! BUT, I did some very needed work on the flight system so that it should work in general. The main issue was that there was no way to convert from cities to airport codes, but I sat down and actually got it done. When the user enters a city and goes to the flight screen, a modal now appears. In the background, a function runs that gets the coordinates of the city, and then creates a 100 km circle around the location, returning all airports inside of it! Originally, the plan was to use nominatim for the geolocating, since it’s free, open source, and the goat, but I may have gotten IP banned for having it run 60 times a second for a good few minutes. (This is around 60 times the amount I am supposed to do it). I forgot to remove a variable from a dependency array. ANYWAYS, I used Mapbox instead! I have some experience with it, and its free tier is pretty comprehensive. Once the locations show on the modal, they choose which ones, it reloads to show departures, and then the same system as before applies! This works SO much better, and I’m really proud of the system.
So… quick update, I tore my ACL! havent really been able to do much since, but today I sat down and got work done. Mainly, I got the hotels done! It works pretty similar to flights system, where the user is prompted with a list, and they choose whichever they want. Now, if you remember, I have been struggling with finding a hotel API, since amadeus shut down. Originally, the plan was rapidAPI, but the rate limits are horrid for that. After some very intense googling, I found omkar.cloud ! They have a bunch of web scrappers with a 200/month limit, so their booking.com API works perfectly. I genuinely was considering dropping the project from this, and I am so happy I found something that worked. Now, the future. There is like 10 days left in stardance, and I need to do the activities, final page, and fix deployment. Activities shouldn’t be that dificult, my plan is to use gemini and prompt it for activity ideas, and then format it to look cool? Im going to still do some research. Now, the main issue is deployment. Github pages doesn’t really support having a .env, so I tried switching to vercel. However, I now need to get localstorage (which I had to use as the cookie got too big lol) working on that, plus the flight API and everything else.
The activities portion of the website is done! I did some research, and it turns out that the best way for me to find information on local events is AI! The way it works is by using Google Gemini along with Zod, which allows me to format my API requests to return in JSON. Since it has the same information each time, I can then just treat it as a regular API call. However, I might change it and put this on the backend to try to hide the API key. Anyways, we are almost at the end! The last major portion of the project is the recap page, where I plan to show all info on the trip, let users download, and maybe more! Today went pretty well, and I am excited to finally get this thing done.
Itinerarey is complete! The last thing that I needed to get done was the recap page, which takes all the data in your localstorage and displays it for you! I had to rewrite how the flights and hotels are displayed to show the booking links, but overall it was pretty simple. The main thing that I am proud of is the budget tracker, which shows the prices for everything, including how much is leftover in the budget! This is done with some pretty simple math, but it definitely ties the project together. Lastly, the user can save a copy of this page to their computer. They can then also reset their localstorage to create a brand new trip! Lastly, I got the readme and license done (id take a look if I were you!), and finished deploying everything on vercel. Overall, I am really happy with how Itinerarey came out. I learned a lot about web scrapping and hosting websites from this project, which I hope will come in handy in the future! Thank you all for the support, stardance has been incredible! feel free to dm me in slack! - nate
Ships:
Itinerarey is the better way to plan out your trips! When getting ready for a vacation, it can be incredibly stressful to plan out flights, hotels, activities, and more! So, I built itinerarey to make it a bit easier! It uses APIs and web scrapers to compile information from across the internet to have a centralized place to get information. The most challenging part of Itinerarey was the flights and hotels system. There are no free APIs (with good limits) for showing either, so I had to get a bit creative and spend a few hours researching. The flights system runs by contacting an API that runs a python web scraper that is hosted on Render, while the hotels call from an online Booking.com scraper. I am really proud of the recap page, mainly. To me, it feels like a representation of the entire project in its entireity. It shows everything the user did, and it works as a confirmation of every system performing as it should. For testing, please be aware that the render server mmight take up to a minute to load up. Also, due to web scraping being a bit finnicky, some results might not show up. If this happens, try clearing your localstorage and using a new destination. Enjoy your vacations! -nate...
|
1792856925.6322525
|
1792943325.6322525
|
|
14548
|
PhoebOS: Digital temple of Apollo by @Icky_Vicky | PhoebOS: Digital temple of Apollo by @Icky_Vicky | Stardance...
|
Icky_Vicky
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T03:10:31Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS with a functional clock in the top bar, an app that links to a list of reading material, and a work in progress weather app!", "repo": "https://github.com/IckyVicky-real/PhoebOS", "demo": "https://ickyvicky-real.github.io/PhoebOS/"}]...
|
[{"post_id": 73439, "ts": "202 [{"post_id": 73439, "ts": "2026-09-25T02:59:08Z", "hours": 8.1939, "text": "I sorta forgot to post devlogs I was I working oops. I succesfully built several functional windows, made my simple app that linked to a list of reading material, and then the only thing I had left to do was build my complex app. The complex app I decided to build was a weather app. Over the past roughly two weeks of work I managed to complete a fully functional weather app that was based off a free API tracker that I found that was made specifically for weather apps like mine. I say all of this in past tense because, as of yesterday at the time I am posting this devlog, that API tracker shut down without warning. As a result of this, the entirety of the 8h 11m devlog I am posting will have absolutely nothing to show for it. Needless to say this is extremely frustrating, and I am hoping that whoever is reading this will see how hard I tried on that app and consider my WebOS 1 project finished enough. After losing what is essentially all of my progress, I have decided to spend the last week off this event focusing on other projects. I understand that I have not done what this mission asked of me, but I hope you understand that I tried my absolute hardest."}, {"post_id": 63285, "ts": "2026-09-07T01:04:06Z", "hours": 0.4731, "text": "I tried separating the time and date from the window, but I haven’t figured it out yet :b. I also changed the window position to the center and changed the border tyep"}, {"post_id": 63268, "ts": "2026-09-07T00:27:29Z", "hours": 1.2722, "text": "I am working on a web OS that will act as a digital temple to the Greek god Apollo! So far I’ve only added a title page with a clock that updates every second."}]...
|
Title: PhoebOS: Digital temple of Apollo by @Icky_ Title: PhoebOS: Digital temple of Apollo by @Icky_Vicky | Stardance
Devlogs:
I am working on a web OS that will act as a digital temple to the Greek god Apollo! So far I’ve only added a title page with a clock that updates every second.
I tried separating the time and date from the window, but I haven’t figured it out yet :b. I also changed the window position to the center and changed the border tyep
I sorta forgot to post devlogs I was I working oops. I succesfully built several functional windows, made my simple app that linked to a list of reading material, and then the only thing I had left to do was build my complex app. The complex app I decided to build was a weather app. Over the past roughly two weeks of work I managed to complete a fully functional weather app that was based off a free API tracker that I found that was made specifically for weather apps like mine. I say all of this in past tense because, as of yesterday at the time I am posting this devlog, that API tracker shut down without warning. As a result of this, the entirety of the 8h 11m devlog I am posting will have absolutely nothing to show for it. Needless to say this is extremely frustrating, and I am hoping that whoever is reading this will see how hard I tried on that app and consider my WebOS 1 project finished enough. After losing what is essentially all of my progress, I have decided to spend the last week off this event focusing on other projects. I understand that I have not done what this mission asked of me, but I hope you understand that I tried my absolute hardest.
Ships:
I made a WebOS with a functional clock in the top bar, an app that links to a list of reading material, and a work in progress weather app!...
|
1792853537.3781435
|
1792939937.3781435
|
|
34416
|
My own site! by @HarvyLiu | Stardance
|
HarvyLiu
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T02:26:34Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "IDK why it only recorded 1h but I’m 100% sure I spent at least 3 hours on this… Well anyways, I’ve finished my own site which is just some Me-info HOWEVER, THERE is a FLAG hidden here, the format is HLCTF{…} tho it’s not a ctf but just for fun :D. Have fun finding it, hint1: open inspect (F12)", "repo": "https://github.com/HarvyLiu/My-own-site", "demo": "https://harvyliu.github.io/My-own-site/"}]...
|
[{"post_id": 73428, "ts": "202 [{"post_id": 73428, "ts": "2026-09-25T02:12:46Z", "hours": 0.2939, "text": "Done! still doing a little tweaks and I’ll ship"}, {"post_id": 72761, "ts": "2026-09-23T17:59:36Z", "hours": 0.7486, "text": "Wrote some css… this is like the first time touching web since I was like in junior high… the feeling that I don’t wanna be a web dev is still in here (jk). Ricing linux would be more motivated but, welp trying out this to a depth that I havent been to is still a bit interesting…"}, {"post_id": 71835, "ts": "2026-09-21T16:56:41Z", "hours": 0.2719, "text": "Still working on it, it looks very ugly now, planning to make it into slide format, like slide to the right (using arrows) and show the next section."}]...
|
Title: My own site! by @HarvyLiu | Stardance
Devl Title: My own site! by @HarvyLiu | Stardance
Devlogs:
Still working on it, it looks very ugly now, planning to make it into slide format, like slide to the right (using arrows) and show the next section.
Wrote some css… this is like the first time touching web since I was like in junior high… the feeling that I don’t wanna be a web dev is still in here (jk). Ricing linux would be more motivated but, welp trying out this to a depth that I havent been to is still a bit interesting…
Done! still doing a little tweaks and I’ll ship
Ships:
IDK why it only recorded 1h but I’m 100% sure I spent at least 3 hours on this… Well anyways, I’ve finished my own site which is just some Me-info HOWEVER, THERE is a FLAG hidden here, the format is HLCTF{…} tho it’s not a ctf but just for fun :D. Have fun finding it, hint1: open inspect (F12)...
|
1792853364.2937655
|
1792939764.2937655
|
|
60002
|
OpenTasks by @noahplaysmario | Stardance
|
noahplaysmario
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:51:56Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an open-source server for tracking tasks and events. Everything is securely encrypted, and easy to make custom clients for. One thing you should know is that this software only contains the server and a basic testing client, but a custom client is very simple, especially if you use the testing client as a starting point.", "repo": "https://github.com/noah560/OpenTasks", "demo": "https://github.com/noah560/OpenTasks/blob/main/server.py"}]...
|
[{"post_id": 73392, "ts": "202 [{"post_id": 73392, "ts": "2026-09-25T01:48:45Z", "hours": 3.2003, "text": "I finished the server and test client!!!!!!!!! I am very happy, if it isn’t obvious by the number of exclamation points in the top line of this devlog. I finally finished the main part, now I can use this myself and implement clients for whatever I want. Also, I added a debug mode to help with client development."}, {"post_id": 71552, "ts": "2026-09-21T01:40:11Z", "hours": 2.6672, "text": "Finished server code for now- now to make a testing client to make sure it works! I am almost done with the project. For this devlog, I mainly fixed a bunch of errors found by AI (even if it doesn’t code the best, it can still find mistakes after all it’s pretty much just a lot of pattern detection) and fixed them(myself, not with AI). Next, I will make a simple CLI test/demo client to make sure it works."}, {"post_id": 71218, "ts": "2026-09-20T14:01:27Z", "hours": 5.6742, "text": "Redesigned protocol to be more extensible without modifying the server much."}, {"post_id": 68920, "ts": "2026-09-16T01:38:08Z", "hours": 2.2131, "text": "Started work on the actual server code!"}, {"post_id": 65714, "ts": "2026-09-11T01:46:52Z", "hours": 0.6372, "text": "Made it more secure and added a version number to the protocol. Next thing to do: the server code!"}, {"post_id": 65683, "ts": "2026-09-11T00:23:37Z", "hours": 0.9097, "text": "Documented the TCP protocol and request types."}, {"post_id": 64736, "ts": "2026-09-09T11:26:19Z", "hours": 0.5064, "text": "Started making the protocol. I am making the protocol first so I know exactly what to program and custom clients can easily be made."}]...
|
Title: OpenTasks by @noahplaysmario | Stardance
D Title: OpenTasks by @noahplaysmario | Stardance
Devlogs:
Started making the protocol. I am making the protocol first so I know exactly what to program and custom clients can easily be made.
Documented the TCP protocol and request types.
Made it more secure and added a version number to the protocol. Next thing to do: the server code!
Started work on the actual server code!
Redesigned protocol to be more extensible without modifying the server much.
Finished server code for now- now to make a testing client to make sure it works! I am almost done with the project. For this devlog, I mainly fixed a bunch of errors found by AI (even if it doesn’t code the best, it can still find mistakes after all it’s pretty much just a lot of pattern detection) and fixed them(myself, not with AI). Next, I will make a simple CLI test/demo client to make sure it works.
I finished the server and test client!!!!!!!!! I am very happy, if it isn’t obvious by the number of exclamation points in the top line of this devlog. I finally finished the main part, now I can use this myself and implement clients for whatever I want. Also, I added a debug mode to help with client development.
Ships:
I made an open-source server for tracking tasks and events. Everything is securely encrypted, and easy to make custom clients for. One thing you should know is that this software only contains the server and a basic testing client, but a custom client is very simple, especially if you use the testing client as a starting point....
|
1792813690.928457
|
1792900090.928457
|
|
24990
|
Fortress Fighter by @codingfreak234 | Stardance
|
codingfreak234
|
2
|
12.0
|
30
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:39:15Z", "hours": 0.0, "multiplier": 3.46, "payout": 2, "blessing": "neutral", "text": "I made some mistakes. Mainly, I wrote a terrible readme(oops), and completely forgot to tell anyone how to play the game. Also, I had it named as a RPG, which it is not. And now, after fixing these, I’m ready to re-release. To avoid a repeat: Use WASD to move Use L to launch a long range blast in the direction of travel Use K to launch a short range blast in the direction of travel I really hope I didn’t miss anything that needed to be fixed. Have Fun!", "repo": "https://github.com/CodingFreak234/Fortress-Fighter-Sprig-game", "demo": "https://sprig.hackclub.com/share/IgY4OhjZCEx4bOdCrc6c"}, {"ship_num": 2, "ts": "2026-09-08T02:26:07Z", "hours": 12.0, "multiplier": 2.33, "payout": 28, "blessing": "neutral", "text": "I made a basic RPG in sprig! It was really hard, especially since, this was my first real JavaScript project. I think the game turned out great, and I hope you enjoy it.", "repo": "https://github.com/CodingFreak234/Fortress-Fighter-Sprig-game", "demo": "https://sprig.hackclub.com/share/IgY4OhjZCEx4bOdCrc6c"}]...
|
[{"post_id": 72821, "ts": "202 [{"post_id": 72821, "ts": "2026-09-23T20:09:39Z", "hours": 0.4758, "text": "Mistakes were made… specifically the one were I forgot to tell anyone how to play my game. So here it is, and I will also include it in the second ship as well. Oh, and I added it to the read me as well. Plus, I changed the name, because it really isn’t an rpg. I updated the placement of the health and score displays as well because I needed time to make a devlog so I can ship again. controls are wasd to move/rotate. Use L to attack the bugs with long range blasts, and K to hit them with short range ones."}, {"post_id": 63981, "ts": "2026-09-08T02:23:44Z", "hours": 1.2344, "text": "I’M DONE!!! I finished the modifications, made a repository for the project, and I’m going to ship it. (This took me way too long…)"}, {"post_id": 56183, "ts": "2026-08-27T20:24:33Z", "hours": 1.89, "text": "Over the past week or so, I reworked the controls. I did this so I could add some sort of long range weapon. the long range weapon would be able to hit more enemies with longer range, but would also do less damage. It was a lot of trial and error, and I’m still not done. I need to add the script where the enemies get damaged, but only part way. I also need to make it so that the long range blasts get removed from the screen after a second."}, {"post_id": 38577, "ts": "2026-08-01T01:51:24Z", "hours": 1.0628, "text": "Today I fixed a bug where the enemies in my game weren’t spawning at the very top of the playing field, they were spawning a little below it. After that I fixed a potential bug about being able to move the character out of bounds, and a very real bug about the program trying to spawn an attack sprite out of bounds. In fixing that, I also restrained the player a little more, making it harder to farm the enemies. Finally, I tried to add a theme song, but either something with the software didn’t work, or I have just failed to see the exit button for three or four days strait. The problem is likely that second option."}, {"post_id": 26324, "ts": "2026-07-11T01:50:56Z", "hours": 2.5386, "text": "I worked a lot on my Sprig RPG today, and got a lot of work done. I also got the project done. For those of you who are familiar with sprig, the game will be released there soon (hopefully tommorrow). However, lets go through what I did today. First off, I updated the player character from a large blue block to a blue circle with an orange outline. second, I added a castle for the player to defend. I also made it fairly difficult for players to puppy gaurd one segment of the castle. Finnally, I made it so that the game gets progressively harder. That’s what I did today. Enjoy!"}, {"post_id": 25588, "ts": "2026-07-09T22:45:30Z", "hours": 0.5617, "text": "Today I did a lot of debugging and solved all known problems with the game. I (finally) fixed the health counter and made the blasts disappear shortly after they are fired. finally, I regulated the numbers of enemies to make them more manageable. Next time I’m going to do the final graphic design and then add some sort of castle for the player to defend. Enjoy!"}, {"post_id": 24469, "ts": "2026-07-08T01:24:56Z", "hours": 1.4217, "text": "I worked on debugging for both yesterday and today. I had one particular problem where the player could attack the enemies in the game, but the attack would do nothing to the enemy. I fixed that, and now I only have a few more bugs to fix. Right now, I still have to fix the health counter, and then I have to figure out how to make the blasts disappear about a half-second after the player brings them into existence. Enjoy!"}, {"post_id": 18862, "ts": "2026-06-30T01:59:26Z", "hours": 0.8964, "text": "I worked on fighting mechanics today for my sprig RPG. I have it so that you can blast the enemy sprites with the IJKL buttons, and then move around with the WASD buttons. There was a lot of tweaking in the code today, but it works. I haven’t fixed the health counter yet, but I think I know what’s wrong, and I plan to fix it soon. Enjoy!"}, {"post_id": 16059, "ts": "2026-06-26T02:54:05Z", "hours": 1.4053, "text": "I continued to work on the Sprig RPG today. Initially, I had planned for there to be some kind of wall building mechanic in the game, but I realized that might be a little over my head, so I put that on the shelf for now. I created an initial game loop today, and it’s working okay. The one problem I’ve run into is the health counter. In the game, you start at 10 health I tried to make it so that after every hit you go down by one, but after the first hit you go up to 90, and then it counts down by ten after that. I’m going to try and figure that out next week. Enjoy!"}, {"post_id": 14812, "ts": "2026-06-24T01:40:09Z", "hours": 0.9139, "text": "I started on a basic RPG in sprig. To start off I did preliminary graphic design, and then I coded the wasd controls."}]...
|
Title: Fortress Fighter by @codingfreak234 | Stard Title: Fortress Fighter by @codingfreak234 | Stardance
Devlogs:
I started on a basic RPG in sprig. To start off I did preliminary graphic design, and then I coded the wasd controls.
I continued to work on the Sprig RPG today. Initially, I had planned for there to be some kind of wall building mechanic in the game, but I realized that might be a little over my head, so I put that on the shelf for now. I created an initial game loop today, and it’s working okay. The one problem I’ve run into is the health counter. In the game, you start at 10 health I tried to make it so that after every hit you go down by one, but after the first hit you go up to 90, and then it counts down by ten after that. I’m going to try and figure that out next week. Enjoy!
I worked on fighting mechanics today for my sprig RPG. I have it so that you can blast the enemy sprites with the IJKL buttons, and then move around with the WASD buttons. There was a lot of tweaking in the code today, but it works. I haven’t fixed the health counter yet, but I think I know what’s wrong, and I plan to fix it soon. Enjoy!
I worked on debugging for both yesterday and today. I had one particular problem where the player could attack the enemies in the game, but the attack would do nothing to the enemy. I fixed that, and now I only have a few more bugs to fix. Right now, I still have to fix the health counter, and then I have to figure out how to make the blasts disappear about a half-second after the player brings them into existence. Enjoy!
Today I did a lot of debugging and solved all known problems with the game. I (finally) fixed the health counter and made the blasts disappear shortly after they are fired. finally, I regulated the numbers of enemies to make them more manageable. Next time I’m going to do the final graphic design and then add some sort of castle for the player to defend. Enjoy!
I worked a lot on my Sprig RPG today, and got a lot of work done. I also got the project done. For those of you who are familiar with sprig, the game will be released there soon (hopefully tommorrow). However, lets go through what I did today. First off, I updated the player character from a large blue block to a blue circle with an orange outline. second, I added a castle for the player to defend. I also made it fairly difficult for players to puppy gaurd one segment of the castle. Finnally, I made it so that the game gets progressively harder. That’s what I did today. Enjoy!
Today I fixed a bug where the enemies in my game weren’t spawning at the very top of the playing field, they were spawning a little below it. After that I fixed a potential bug about being able to move the character out of bounds, and a very real bug about the program trying to spawn an attack sprite out of bounds. In fixing that, I also restrained the player a little more, making it harder to farm the enemies. Finally, I tried to add a theme song, but either something with the software didn’t work, or I have just failed to see the exit button for three or four days strait. The problem is likely that second option.
Over the past week or so, I reworked the controls. I did this so I could add some sort of long range weapon. the long range weapon would be able to hit more enemies with longer range, but would also do less damage. It was a lot of trial and error, and I’m still not done. I need to add the script where the enemies get damaged, but only part way. I also need to make it so that the long range blasts get removed from the screen after a second.
I’M DONE!!! I finished the modifications, made a repository for the project, and I’m going to ship it. (This took me way too long…)
Mistakes were made… specifically the one were I forgot to tell anyone how to play my game. So here it is, and I will also include it in the second ship as well. Oh, and I added it to the read me as well. Plus, I changed the name, because it really isn’t an rpg. I updated the placement of the health and score displays as well because I needed time to make a devlog so I can ship again. controls are wasd to move/rotate. Use L to attack the bugs with long range blasts, and K to hit them with short range ones.
Ships:
I made a basic RPG in sprig! It was really hard, especially since, this was my first real JavaScript project. I think the game turned out great, and I hope you enjoy it.
I made some mistakes. Mainly, I wrote a terrible readme(oops), and completely forgot to tell anyone how to play the game. Also, I had it named as a RPG, which it is not. And now, after fixing these, I’m ready to re-release. To avoid a repeat: Use WASD to move Use L to launch a long range blast in the direction of travel Use K to launch a short range blast in the direction of travel I really hope I didn’t miss anything that needed to be fixed. Have Fun!...
|
1792853244.30974
|
1792939644.30974
|
|
35799
|
TurboNinja by @TheGeekachu | Stardance
|
TheGeekachu
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:34:28Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack.", "repo": "https://github.com/vijayakasee-debug/TurboNinja", "demo": "https://thegeekachu.itch.io/turboninja-preview"}]...
|
[{"post_id": 73383, "ts": "202 [{"post_id": 73383, "ts": "2026-09-25T01:30:42Z", "hours": 0.6725, "text": "I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox."}, {"post_id": 72905, "ts": "2026-09-24T00:16:24Z", "hours": 0.6064, "text": "IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!"}, {"post_id": 72893, "ts": "2026-09-23T23:40:35Z", "hours": 0.3989, "text": "I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…"}, {"post_id": 72377, "ts": "2026-09-22T19:48:13Z", "hours": 0.7825, "text": "SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!"}, {"post_id": 71984, "ts": "2026-09-21T22:13:01Z", "hours": 2.9931, "text": "AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!"}, {"post_id": 70824, "ts": "2026-09-19T20:39:05Z", "hours": 0.6794, "text": "I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!"}, {"post_id": 70408, "ts": "2026-09-19T04:04:20Z", "hours": 0.4569, "text": "He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!"}, {"post_id": 70402, "ts": "2026-09-19T03:29:51Z", "hours": 1.0106, "text": "So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!"}, {"post_id": 66847, "ts": "2026-09-12T19:25:12Z", "hours": 0.5358, "text": "After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie."}, {"post_id": 40830, "ts": "2026-08-04T16:27:24Z", "hours": 1.3808, "text": "I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!"}, {"post_id": 37756, "ts": "2026-07-30T17:47:05Z", "hours": 0.8744, "text": "I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed."}, {"post_id": 31022, "ts": "2026-07-19T02:35:16Z", "hours": 0.5706, "text": "I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout."}, {"post_id": 29739, "ts": "2026-07-16T20:40:52Z", "hours": 1.5772, "text": "Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!"}, {"post_id": 29196, "ts": "2026-07-15T22:41:02Z", "hours": 2.2247, "text": "Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy."}]...
|
Title: TurboNinja by @TheGeekachu | Stardance
Dev Title: TurboNinja by @TheGeekachu | Stardance
Devlogs:
Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy.
Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!
I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout.
I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed.
I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!
After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie.
So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!
He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!
I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!
AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!
SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!
I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…
IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!
I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox.
Ships:
I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack....
|
1792853813.4363272
|
1792940213.4363272
|
|
64293
|
MatchRatingCalc by @Allen | Stardance
|
Allen
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:33:57Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Veyro", "repo": "https://github.com/awang03-crypto/Veyrov2.6", "demo": "https://darksalmon-lark-983637.hostingersite.com/calculator"}]...
|
[{"post_id": 73381, "ts": "202 [{"post_id": 73381, "ts": "2026-09-25T01:29:20Z", "hours": 10.9056, "text": "I just worked on making the site better"}]...
|
Title: MatchRatingCalc by @Allen | Stardance
Devl Title: MatchRatingCalc by @Allen | Stardance
Devlogs:
I just worked on making the site better
Ships:
I made Veyro...
|
1792814113.702276
|
1792900513.702276
|
|
43023
|
Worlds Unbound - Terrain Engine by @alpeka | Stard Worlds Unbound - Terrain Engine by @alpeka | Stardance...
|
alpeka
|
1
|
125.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:05:30Z", "hours": 125.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "— SHIP No.1 — I spent the last couple of months making a model terrain, which I will use for my game that I will continue to build after this competition. My game idea is quite ambitious, and given how long it took for me to get this basic terrain to work properly and well, that won’t even be coming with the extra month added one. I lot of you may be thinking though, what on earth were you doing for 125 hours, when all you came up with is a glorified green and grey piece of paper you could walk on. Well, not only was I learning and using Godot for the first time, it was the first time I learnt anything as complicated as this. I had to wrap my head around complex (at least for me) maths and computer science topics, like vectors and cross product, noise and FBM, TBN model, and UVs, not to mention just the sheer amount of logic I had to get through. It was so tiring to keep getting bugs for the chunking system I had, or the collisions. But thankfully, all that is behind me 😼. I’ll give you a more indepth look into what I’ve done over the past couple months. Devlogs 1-12: This period was the general beginning of my project. Not only was I learning Godot, and watching tutorials on it, I was also spending time on the player character, the camera system, and the world environment. Devlogs 13-15: I tried to implement LODs into my chunks, since the performance was simply too bad. Somehow this made it worse, possibly because of more chunks (the ones at the broder of LOD borders) being forced to be unloaded and loaded back in. Devlogs 16-21: I used my current technique, heavily based from devmars video on youtube about procedural terrain during this period. School had also started, so I spent less and less time on it, being significantly burnt out and tired. So I basically went through 3 iterations of terrain for my game, so that is why it took so long to get to this point.", "repo": "https://github.com/jona-mtw/Celestial", "demo": "https://alpeka.itch.io/worlds-unbound-terrain-engine"}]...
|
[{"post_id": 73370, "ts": "202 [{"post_id": 73370, "ts": "2026-09-25T00:42:51Z", "hours": 2.2056, "text": "Devlog 21 - Ship Prep!!! Colours I added colours to the terrain depending on how high the vertex is. This does create a very harsh border between the two colours, but I didn’t want to learn lerping, ik how to larp enough. Cleaned up my commits My commits were, and probably are still messy, and when I went ahead to revert some changes it said there were errors, but now thankfully that’s all fixed. :) I also updated quite small normals and some technical stuff."}, {"post_id": 72564, "ts": "2026-09-23T07:21:06Z", "hours": 3.9622, "text": "Devlog 20: GPU noise I found a way to make noise using a Godot addon called FastNoiseLite Runtime Shader . It was apparently identical to the FastNoiseLite in GDScript. So I gave it a try. I knew it was a gamble, given how much time I got left to ship an decent project, but I gave it a try since it seemed interesting. It wasn’t that hard to get the noise working, but to get it to sync with the collisions was a nightmare. In the end, I decided that even though the README stated it was 99.9% the same, the output seed by seed was different. So I decided to scrap it and now I’m going back to the old version with heightmaps. Why did I really want to switch? Because of the limited colour depth in images (has to be 8-bit for GDShader to read), theres not enough heights for each vertex to be at, so every so often, there’s this massive wall. It looks fine from afar, but thats probably because my terrain is 20km x 20km, so of course an 8m tall wall would look fine. (the image is from the addon readme)"}, {"post_id": 70779, "ts": "2026-09-19T19:04:39Z", "hours": 6.5594, "text": "Devlog 19 - Main Menu Added (and other things)! I spent quite a lot of time making the background for the main menu in Blender. After just copy and pasting the player model used in the game, I went ahead and made the main attraction: ✨ the planet in the background ✨ . My knowledge of noise that I gained from my previous attempts at the terrain generation helped me create the stars in the background, and the texture for the actual planet in the shader editor. I also added a slight atmosphere, which is (somewhat?) noticeable. I also went ahead and updated the shader code. Before, I used to use the visual shaders, since it was quite similar to the shader editor in Blender, which I was familiar with. But then I realised there’s just more flexibility with using GLSL . I can group uniforms in the inspector, making it clearer and less cluttered if I want to add textures in the future, including different images for the same texture (like Ambient Occlusion, Normals, Colours, and Roughness). Thus being able to group those different types images for the same texture was very important for future usability. Thankfully, Godot allows you to see the shader code that is generated from the visual shaders. Unfortunately, it was not readable at all. The generated code used a random(ish) collection of numbers and letters, and it was too long. Look below for the comparision for just the vertex shader, but it was something like 84 lines that was shruken down to 10 for the vertex shader. Even if you account for spaces in the generated code (which then it might be like 50-60 lines) thats a huge difference. So it took quite some time to get it to a readable state. edit: idk why the actual background looks so bumcheeks compared to the banner, hopefully itll be fixed by then 🤞"}, {"post_id": 67802, "ts": "2026-09-14T01:51:22Z", "hours": 4.0497, "text": "Devlog 18 - I am happy once again!! I FINALLY got the collisions to work!! Basically, it looks at the terrain model that is imported into Godot, and aligns the vertices of the CollisionShape3D with it. It also updates its position every time the player moves 1 unit (whatever the size of a quad of the mesh is). Then it looks at the heightmap, looks up the height of its coresponding pixel, multiplies that by the height shader param (2000, like in the vertex shaders), and thats the collision shape done. I noticed while walking around the world, that there were these massive ridges on the terrain. This is due to the lack of precision in the heightmap. The heightmap only has 256 shades of grey, and I need 2000 values. It is quite impossible to make a image file with that much precision, so instead, I’ll make it so that the CPU will just send an array to the vertex shader. Also, I’ve rebranded my project to Worlds Unbound, and this specific Stardance project will just be handling the terrain stuff for the game. p.s, it never goes above 16ms, i think thats probably because i was recording"}, {"post_id": 65723, "ts": "2026-09-11T02:05:18Z", "hours": 6.0086, "text": "Devlog 17 - I am incredibly frustrated. No matter what I do it feels like I just can’t get the collisions to work. Basically, I’m trying to fetch the heights from the height map to input into the CollisionShape3D, but the coordinates are always offset in some way or the other. I even used AI my friend to basically rewrite the entire script over and over again, but that didn’t work either. Maybe it’s cos school has started now, and I haven’t been able to spend that much time on this project than I would like to As you can see in the photo, the collision mesh (in blue) is offset from the normal terrain (in white)"}, {"post_id": 63142, "ts": "2026-09-06T19:41:46Z", "hours": 7.2203, "text": "Devlog 16 - AMAZING PROGRESS!! I’ve managed to get a massive 20km render distance with huge mountains and ridges using FastNoiseLite and vertex shaders. I used devmar ’s terrain technique, which he named the “Wandering Clipmap Terrain Technique”. The reason why the technique is called the “ Wandering Clipmap Terrain Technique” is because a flat plane that is subdivided a bunch (to make varrying levels of detail (LODs)) that follows the player. The vertex shaders then offset the heightmap so it gives off the illusions that your moving about in a massive world. All the displacement is done by the vertex shaders, which looks at a heightmap. In the future, I might make this heightmap be generated in gdscript instead of in the inspector, to deal with texture resolutions. Currently, from afar, the terrain looks amazing (except from the fact its not textured) but upclose, you can see rings in the terrain, which is caused by the heightmap’s resolution being too low. In fact each ring is about 8m tall so I really need to fix that 😭 The normals are calculated by just copying the heightmap and setting it ‘as normals’ in the inspector. They also are multiplied by a normal basis matrix, which allows me to configure the specific normal settings. I’ll need to calculate the normals in the fragment shader as well in the future for more convincing shadows, but for the mean time, the vertex shaders should do just fine. I’m planning on adding collisions, then maybe textures, biomes and vegetation soon!!"}, {"post_id": 61230, "ts": "2026-09-04T01:57:24Z", "hours": 4.8533, "text": "Devlog 15 - I’m an Idiot For the past 95ish hours, I’ve been working on a way to make procedural terrain for my game. I tried 2 main methods, one centred round the CPU, and one I was building centred around the GPU. The endless chunk seam bugs caused me to burnout/get tired of the entire project, and there was so many stuff (that I won’t really be explaining for the sake of my poor reader’s sanity) leading to me ✨ youtube ✨ I saw this AMAZINGLY smart video by devmar, showing an alternate way of generating terrain. I urge you to watch the video as well, the whole technique is very very clever, and he even goes on to make further videos on making collisions, recalculating normals and adding vegetation, especially if your interested in procedural generation. After watching this video however, I became incredibly frustrated. I spent nearly 100hrs of my summer making this procedural terrain which I know hadn’t gotten anywhere and theres this incredibly smart video from 4yrs ago that pops up on my feed. Welp, now ig i gotta try out this way, and quick cos my parents are on my tail talking about me finishing this project before school starts 🙏 (its my gcse year so ig its valid but still ) Now what I actually did that counted to my time Experimented with vertex shaders, and sending heightmaps to vertex shaders to displace. This however caused immense lag and caused VERY ANNOYING chunk seams. #epicfails"}, {"post_id": 59673, "ts": "2026-09-01T16:27:07Z", "hours": 9.5572, "text": "Devlog 14 - LOD chunks ——— OPTIMISATION IS SOO HARDD 10hrs to do practically do something I’ve already done? (i had already made a chunk system in previous devlogs) Well, whilst some of that time was transferring code from my old commits to the current one and making sure it works, most of the time I spent on this devlog was spent on ✨ “optimisation” ✨ Optimisation First of all, I added LODs into the chunk mesh. What this means is that since further away chunks take up less of your screen, the level of detail (LOD) is reduced the further away it is. I had already made the script that handled the creation of those different meshes with different LODs, so in this devlog, I added it to the main terrain generation script, and assigned each LOD to a certain distance, so that any chunk with a certain distance has a certain LOD. In my last version of the terrain generation, I relied on the name of the MeshInstance3d nodes created to identify what chunk they were. I realised when making this updated version that it was prone to failure, since if the node did not exist or a node with the same name were some how added to the scene tree, errors would be raised or at the very least, a logic error would occur. To recetify this, I switched to using dictionaries to house all the information of all the chunks: chunks : Dictionary [ Vector2i , int ] = { Vector2i ( 0 , 0 ): 0 , Vector2i ( 0 , 1 ): 0 , #etc } The key is chunk coordinate, and the value is the LOD (0 being the highest, 4 being the lowest) Every time I wanted to update the terrain, I would search the scene tree if a particular node was unwanted (again, by looking at the name) and then generating the rest of the ones wanted. This way would not work with LODs, since some chunks may still exist, but may have to change LOD depending on where the player is. So I made use of the dictionary and also created a new one that would store the chunks that I want created. It would loop through the dictionarys, checking certain conditions, and the terrain would be updated. All this looping is somewhat inefficient, and did cause some lag spikes, so I will try to fix that next devlog by only checking the chunks that would be affected based on which way the player moved. To help with the looping, I created chunk and lod lookup tables, that can be offset based on the players_position. These lookup tables are only changed when the render distance is changed, so the same calculation doesn’t have to run hundreds of times in 16ms (60 fps)."}, {"post_id": 57389, "ts": "2026-08-29T15:03:50Z", "hours": 3.8103, "text": "Devlog 13 - LOD template I basically deleted all the old code, and started over, by making a function where the noise will be given to the vertex shader, and one that will generate the actual flat mesh for it (which is going to be changed by the vertex shader). I made the template for making flat planes with different levels of detail (LOD), which will be changed by the vertex shaders, applying the noise to the mesh. I created a new script called lod.gd and gave it a class name, so that I can call multiple instances of it in the main terrain generation program. Every time the program wants to make another chunk, I have to pass the arguements: resolution - what ive defined as a synoymn of LOD chunk_pos - where the chunk is The function then loads an ArrayMesh from a pre-generated list of possible meshes and creates a new MeshInstance3D node to display it. Extra stuff I also added player coords and chunk position in the debug_screen :)"}, {"post_id": 56938, "ts": "2026-08-28T23:24:46Z", "hours": 4.2589, "text": "Devlog 12 - General updates 3.0 I PROMISE THIS IS THE LAST ONE GUYS 🙏 Performance Stats I added a little HUD showing the FPS, the time it takes to make one frame (has to be below 16.67ms (60fps) or there will be noticeable lag), and the memory usage. Lighting, Shadows, and World Environment I slightly changed the shadow bias and normal bias so that shadow artifacts are to a minimum. On top of that, I set it so that shadows aren’t cast for the terrain, which unintentionally handles with some of the artifacts, whilst keeping the “shadows” by illuminating the terrain depending on where the DirectionalLight3d is, making the “shadows” reponsive to a future day-night cycle. Also the volumetric fog and lighting looks better Camera Issues 2.0 So previously I had the player hide() when you go into first person, but that also effects the shadows. So instead I made the visor disappear when you go into first person. But then there was another problem. The head would move during the idle and walking animations, which is quite distracting and could be problematic for some players. So I stopped the animtions whilst in first person. It is a very rudimentary fix, since players can look at their shadows and see the lack of animation. Furthermore if I want to add multiplayer in the future, it’ll look very weird. Performance checks In preparation of the biome generation, I wanted to make sure the performance is fine. It takes a bit for the terrain to generate at the start, but thats common across nearly every game. And this will be lightened a bit when I implement LODs. Once the game is running, it runs relatively fine, except with (very quick) lag spikes when the chunks update. To address this, I’m planning of offloading some of the terrain generation to the GPU, which can calculate normals a LOT more effeciently and quicker than the CPU. Current, the CPU calculates all the vertices, indices, normals, and then compiles it into an ArrayMesh , which is given to the GPU for rendering. This can put a lot of strain on the CPU, especially later down the line, so it’s better and more effiecient if the GPU does the very repetetive calculations, by making it do all the normal calculations, including other stuff."}, {"post_id": 56302, "ts": "2026-08-28T01:02:37Z", "hours": 5.1292, "text": "Devlog 11 - General updates 2.0 Editor Tools!! - (to see the terrain in the editor) So in a previous devlog, I think I talked about how I added @tool in my terrain generation program to be able to see it in the editor. Once I made it dependent on the player position, it didn’t generate in the editor because the player wasn’t loaded in. So now I made it so that if the script was running while the editor (not the game) is open, the terrain would generate around (0, 0) based on how ever big the render distance is. Also I made it so that if you tweak the value of any of the primary noise settings in the editor, it updates in the editor. On top of that, I set the viewport to display wireframe so that I can see the triangles at different resolutions, which is where I came across:…. FLOATING POINT ERRORS!!! (yay ) I noticed that if I set the resolution to a decimal value that was not a power of 2, the triangles would be off by some amount, causing neighbouring triangles to overlap each other, causing normal and collision problems. The resolution variable is going to be eventually used for LODs, so since I’ll be the only setting it, I’ll just make sure to use a value thats a power of 2 The reason why this happens is because 16 (my chunk size) can be multplied and divided by 0.125 (2^-3) evenly to create an integer, compared to 0.1 which results in 1.6. Any smaller power of two is rounded it to the nearest 3dp, so 0.0625 (2^-4) doesn’t work. Camera Issues So I made functionality with the camera where you can scroll to zoom the camera in and out, and if you scroll far enough in, you’ll be in first person, much like how it works in Roblox. There was one problem though. Since the material for the visor on the player model was somewhat transluscent, your view would get darker. Also, you could free look inside the helmet, looking at the areas I wasn’t bothered to model and texture hadn’t modelled. So I disabled that in first person. The biggest timewaste of my life In an attempt to offload some of the generation to the GPU for more effecient parallel processing, I tried to figure out which parts of the algorthim were going to be handled by the CPU and GPU. There were some that had to be handled by the CPU, and there was no choice about those, and they were: collisions and figuring out what chunks should be rendered. At first I thought, how about I offload nearly everything to the GPU, including the noise function. Then I learnt that FastNoiseLite didn’t exist in .gdshader . So I did what any normal person would do, and CODE PERLIN NOISE BY HAND. I spent HOURS learning everything my dumbass could about it: vectors, normals, gradients, deviation, erosional generation, and finite difference approximation. At least I probably learnt something useful for FSMQ 🤷 (a British maths exam most students do in yr11 along with their other GCSEs)."}, {"post_id": 55266, "ts": "2026-08-26T23:25:21Z", "hours": 4.5936, "text": "Devlog 10 - General updates Alright, so ik I said I would work on the procedural terrain, but instead I worked on:… Debugging Tools!! (yayy! ) When tab is pressed, it toggles on debug mode, where all meshes turn into wireframes (to check LOD) and chunk boudaries are shown. There are problems with chunk boundaries not despawning when the terrain its on is gone, but that’s fixed when you toggle debug mode again :). I could fix it but icba I have other stuff that needs to be prioritsed. Resizabile UI So before, if you resized the window, the pause menu and settings menu would be offset from the centre and wouldn’t scale with the window. Now when you scale it, the pause and settings menu stay in the centre and scale accordingly. (the flickering in the video is just an artifact created by the godot editor, and will apparently be fixed once exported)"}, {"post_id": 55025, "ts": "2026-08-26T13:34:07Z", "hours": 7.725, "text": "Devlog 9 - Player Animation!! Walking and Idle Animations I finished a basic walking and idle animation for the player. The walking animation is also somewhat inspired from the kerbals from KSP. Both the animations are kinda choppy, especially when the animation loops round, but frankly icba I didn’t have enough time to fix them rn (mbmb 😭 ). Thankfully the walking animation is timed properly so that the player doesn’t look like its sliding around. Camera updates I added functionality to the camera where you can freelook around the player when holding the right mouse button. Once released, it goes back to the normal position (motion is lerped). Prepartions for next steps For the next steps, I want to go back to the terrain_generation program and start to add variation across the world (like biomes, mountains, etc.). I’m also looking to optimise it, making it generate terrain and collisions faster in prepartion for any future implementation of faster travel. So I added functionality that can allow me to make LODs, which will likely be implemented next devlog."}, {"post_id": 53506, "ts": "2026-08-24T02:34:01Z", "hours": 9.7758, "text": "Devlog 8 - Player Model and other assets! Player Model I finished with texturing, rigging and weight painting. Next Step is to make the walking and jumping animations. Worked on the settings menu I updated the setting menu layout to account for different settings I’ll add in the future Stupid Bugs So when trying to break the terrain generation, I set the speed of the player to like 300 (which it will never be in the game except when in a space ship) but when I tried to do that, the game kept crashing, spitting out an error saying that something didn’t exist. It was coming from my unload_terrain() function. Basically how it works is it checks for all the instances of the MeshInstance3D node, and checks the name of it. For every chunk that is created, I assigned a unique name to it on creation based on the x and y coordinates of it. The function would checking all the nodes, and seeing which ones were out of the “ collision_chunk_size ” radius, and then would delete them. But when going super fast, the processing of things got all weird, meaning that when it tried to delete a chunk, and if it didn’t exist, it would crash. So I added a simple if statement if len(child_name_array) > 2: (basically it would check if the length of the name was long enough to see if there was the coord data). Stupidly I wrote the greater than sign the wrong way round, which led to me being stumped for SO long on why the terrain was just not unloading. tldr: > was the wrong way round and cost me hours."}, {"post_id": 48656, "ts": "2026-08-17T04:20:08Z", "hours": 6.7203, "text": "Devlog 7 - Chunks # 2: PROCEDURAL GENERATION DONE (mostly) Bugs Managed to fix all the bugs related to this part of terrain generation. Weird chunk errors There was an if statement (I changed it out for something else that’s more efficient) that was like: if abs(player_position.x - chunk_pos.x) > collision_chunk_size or abs(player_position.y - chunk_pos.y) > collision_chunk_size This logic error create weird stuttering issues and lag. The fix was to switch or with and . Normals DEFINITELY the bane of my existence. I know roughly what normals are due to me doing 3D modelling/rendering, but I have no clue how it actually works. And plus, I’ve barely covered the maths I need for this in school, so I spent sooo much time (much of which wasn’t recorded) just researching about normals and how they work. I think that definitely helped me find a solution to the annoying chunk borders and random artifacts found inside each chunk. Chunk Sizing I stupidly and randomly changed the chunk size from 16 to 10, which worked completely fine, except for the fact that the player script was still using the 16x16 chunk system, causing the generation to lag behind, eventually leading to the player falling off the map. New Features There were also some ✨ features ✨ that I added. Colour I added colour to the world, and if I match it to the fog and sky, I think it would look AMAZING I will make it so that the colour does vary across the planet. Player I added the rig and refined the topology for animation."}, {"post_id": 47230, "ts": "2026-08-15T00:41:31Z", "hours": 7.1208, "text": "Devlog 6 - Chunks # 1 Previously, I had it so that the entire world was one big mesh, that could not be expanded without unloading and reloading the whole thing and more. This is obviously very inefficient, especially if I want the terrain to load in and out based on where the player is. Chunks is the answer to that. Split the world into chunks of your choice (I chose 16x16), and load/unload just the chunks you need to, not the whole thing. It seemed easy for me at first, clearly it wasn’t (the #1 for the header, ik this isnt gonna be the only devlog on this 😭 ). Bug 1 - The Normals aren’t normal Last devlog, I talked about calculating the normals, which went smoothly… For the old mesh… You see, to calculate normals, you need the vertices surrounding the vertex your trying to find out, and with chunks, that meant every 16 vertices, the normals were being calculated incorrectly, causing seams to be found in the terrain. However, since we did calculate the normals (for the most part) some pretty nice shadows have been cast on our terrain. Despite it being a bug, it is useful to find out where the chunk boundaries are, which is EXTREMELY useful for debugging, so I haven’t tried fixing it just yet. Bug 2 - Not so Good Performance After dividing the terrain into chunks, and making new chunks generate when the player moved into a new chunk, I tested it out. And every time I tried to cross a chunk border, there would be a huge lag spike. This would be caused by the fact the game prioritised the generation of chunks instead of the game. Thankfully I was able to make it so that the chunks would load whenever the processor was ready, to make sure not to overload it too much. Bug 3 - (Lack of) Collisions Another reason why chunks are useful is for limiting the area with active collisions. When the terrain was one big mesh, the entire mesh had active collisions, which would all be checking if something hit it, which is very resource intensive. Which is why I limited the area with collisions to a small radius around the player. While coding it, many logic erros came up, such as one that caused the collisions to just not work."}, {"post_id": 46583, "ts": "2026-08-13T22:19:41Z", "hours": 8.0178, "text": "Devlog 5 - Procedural Terrain (FINALLY!!) I made a start at making the procedural terrain, made some progress with the player model, and with configuring the basic shaders of the game. Elephant in the Room - Procedural Terrain Technically calling it procedural terrain is cheating a bit, cos really all it is right now is perlin noise applied to each vertex’s height. And with that, you can change the shape of the terrain by changing the values of some variables, like the seed, frequency, and octaves. I exported these variables so I could change them in the editor, and added @tool at the start so I can see it in the editor. I’m starting to work on a chunk system at the moment, which will load and unload chunks of the world as the player moves about. Player Model I finished modelling the player (added this version to the game) and added the bones for rigging, except when I move the arm bone, the helmet deforms, so next time I will be doing some weight painting Thankfully UV unwrapping is done as well so I should be able to texture everything before the next devlog. Also, addressing my last devlog, I said Lapse wasn’t syncing with hackatime. Turns out, if I just told it to create a new project called Celestial (which is what my project is called on hackatime), it’ll just add the time to it, so thats amazing!!! The WorldEnvironment Node I accidentally deleted my old configuration of this node while experimenting with stuff, and so I made some changes to the shading of the world. Next up is to recalculate all the normals of each triangle so shadows can be cast properly. I tried using SSAO, but every time I used that to make some sort of shadow, it changed depending on where the camera was and it made the terrain very pixelated. As you can see in the video, you can see the outlines of the terrain. That is because of the volumetric fog added. It sounds resource intensive, so if it starts to lag out my game I might remove it, which is a shame cos it looks really nice."}, {"post_id": 45513, "ts": "2026-08-12T01:47:27Z", "hours": 6.4792, "text": "Devlog 4 - A little bit of a few things I mostly did a combination of small bits, which is probably bad in terms of github commits and actual progress, but at least it’s not burning me out because I’m doing whatever part of the project I fancy at the time. UI I spent most of the time making a (hopefully) futuristic(?) looking pause menu that can also redirect you to a settings page, where I’m planning to hold the settings for terrain generation for the player to manipulate. Much of this time was spent experimenting with different Control nodes, finding out what they do and what they’re helpful for and manipulating the styles of them. I ended up with a style shown below 👇👇👇 Player Model I think I’ve finalised on a particular style, now I basically just have to make it and then texture it. The sad thing is that for some reason lapse doesn’t recognise my hackclub project anymore (already logged 5+ hrs on lapse), so all the time I spent on Blender wasn’t actually logged. If someone could please tell me how to fix this or if theres an extension for blender that would be SO helpful 🙏. Extras I also added the devlogs to my repository, it should appear there when I next commit, which should be soon!! I realise that the popular devlogs have assets from the get-go, so I probably might focus more on that, despite lapse not working if I wanna record time on Blender or Affinity. Again, if someone could please tell me if something is up with lapse or if there’s an extension that I can download for Blender or Affinity, that would be SOO helpful!! 🙏"}, {"post_id": 44908, "ts": "2026-08-10T23:37:53Z", "hours": 2.1228, "text": "Devlog 3 - Flat Plane I know this sounds INCREDIBLY trivial, but I finally figured out how to make a flat plane in Godot, that can be used to make an actual terrain. There were 2 main ways that I could have used to make this: Method 1: I can use a PlaneMesh and then subdivide it down into triangles. Then use vertex shaders or custom scripts to displace the plane as a whole based on noise. It is faster to make the flat plane using this method since you give Godot most of the control over the tessellation, and the individual vertex placement. This means however that it is a lot harder to load and unload certain parts of the terrain, and it is generally harder to add noise to the terrain since you do not have control over each vertex. Method 2: I can use an ArrayMesh , where I create the grid from scratch, telling Godot how to connect every single vertex to create triangles. The downside to this is how long this took. I know it seems short compared to my first devlog (I think the main reason I took so long in that one was not only because I was learning Godot, but it was also because I was experimenting with player models on Blender but hopefully now I’ll be more time efficient) but it is still more time consuming to tell Godot how to connect each and every vertex. I was in fact so stumped on how to go about doing this that it suddenly came to me when I was playing with my little cousin. I even noted down how to do it on my phones notes app (excuse my bad handwriting I was in the car writing with my finger) :/ Despite it being longer to setup, it is overall better for the needs of my game, since I’ll not only need to be able to change the height of each vertex based on a heightmap, but it can also aid with making biomes, by adding custom values to each vertex, which is simply not possible with PlaneMesh . It is also easier to load and unload certain parts of the mesh, and it is better for larger maps, since your CPU isnt doing all the hard work of choosing all the vertices and indexing them. In order to make the actually interesting part of the terrain (which btw I haven’t done in this devlog, I guess this is just like a future plans part) I can use either vertex shaders or custom scripts to make noise in the terrain. Both of these have their respective use cases, and I wouldn’t be able to say one is better than the other for my case. Vertex Shaders: GPU based no collisions (purely visual) written in Godot Shader Language (which is written in C, which is terrifying for me who practically only knows Python ( GDScript and Python are similar enough for me)) Custom Scripts: CPU based can create collisions (actually changes the vertex’s height) written in GDScript (happy days (ik I can write it in C# , but I’m staying far away from that)) Despite my fear of anything not similar to Python , I will still need to use vertex shaders. And I will explain that in my next devlog because this is getting too long. Now onto my struggles incredible skill when making a.. flat plane in Godot. I chose to do Method 2, because of it’s functionality later down the line. But that means I have to tell Godot what vertices to make, and how to connect them up. Obviously that was as simple as could be.. (you can see my failures in the screen recordings below)"}, {"post_id": 44630, "ts": "2026-08-10T15:03:15Z", "hours": 1.7508, "text": "Devlog 2 - One Lone Triangle I spent 2ish hours trying to make a triangle. In GDScript.. Absoutely terrible progress. I see people on Stardance making whole ass projects in 2 hours, and I’m spending those 2 hours making a simple triangle. I have no idea why decided to do a game with procedural terrain generation as my FIRST Godot project. I somewhat understand the theory behind procedural generation, mainly from watching a video on the breakdown of Minecraft’s code when I was like 10, but yeah 🤷 Unfortunately, I have no clue how to do it in practise.. so I guess hours of looking through the Godot docs awaits me yay -_-. (jk the docs are extremely helpful tysm godot 🙏)"}, {"post_id": 43355, "ts": "2026-08-08T15:43:46Z", "hours": 12.8333, "text": "Devlog 1 - Player Movement Okay I know what your thinking. 12 hours for just player movement. Surely you must be wasting time just to get as much stardust as possible. The thing is.. I’ve never used Godot before. Everything from the node tree, to project settings was all pretty much new to me. I should have honestly done the WarioWave Godot mission thingy, so that I would have at least been fimilarised with how Godot worked in 3D. And here I am thinking about making a game where you explore a procedurally generated world. Never before have I touched Godot, and I’m dreaming of making a game with procedural terrain, like in Minecraft or No Mans Sky. Time Waste No. 1 - Learning Godot I had to look through the docs just to figure out how to assign a key to going forwards, mind you all the code needed is given to you when you use the PlayerCharacter3D class. This is on of the many things I struggled with in Godot. 😭 Time Waste No. 2 - Experimenting with player models in blender I experiemented with different styles of player models to use in the game, and I landed on one inspired from the infamous space game Kerbal Space Program. Time Waste No. 3 - Being petty about a camera system 📷 I think this is what took up most of my time. As soon as I made a moveable player that doesn’t fall through the ground (a very quickly made glorified cube in blender), I thought about adding a third person camera. I initially thought of making it toggleable, like in Minecraft, where you press F5, it toggles between first, second(?) and third person. But you can’t change the distance away the camera is from the player in third person. Besides, my stupid ass made it so that each time you pressed F, the camera would keep zooming out endlessly instead of toggling between first and third person. So instead I made it zoomable, like in Roblox. First I tried to manually change the offset based on the scroll wheel (that took me so much time because I had no clue how to get inputs from the scroll wheel). But that posed a problem, which was that the player could clip through walls. Then I found there was a literal node called SpringArm3D to do all of this for me 😭 And its so useful, like I can change how much it zoom’s out by my just changing one variable, and it automatically detects collisions an stops clipping through them. This may seem like somehting that is really basic to some of you who have actually cared to read this far (ty btw :)) but this was crazy for me. And now, I realised you can’t orbit around the camera without the player moving. But that’s something to add next time 🤷 lmao this feels like smth to convince ppl that i wasnt afk or smth to farm stardust. i PROMISE im not trying to farm them, although i would love to get some, im not trying to cheat the system guys 😭"}]...
|
Title: Worlds Unbound - Terrain Engine by @alpeka Title: Worlds Unbound - Terrain Engine by @alpeka | Stardance
Devlogs:
Devlog 1 - Player Movement Okay I know what your thinking. 12 hours for just player movement. Surely you must be wasting time just to get as much stardust as possible. The thing is.. I’ve never used Godot before. Everything from the node tree, to project settings was all pretty much new to me. I should have honestly done the WarioWave Godot mission thingy, so that I would have at least been fimilarised with how Godot worked in 3D. And here I am thinking about making a game where you explore a procedurally generated world. Never before have I touched Godot, and I’m dreaming of making a game with procedural terrain, like in Minecraft or No Mans Sky. Time Waste No. 1 - Learning Godot I had to look through the docs just to figure out how to assign a key to going forwards, mind you all the code needed is given to you when you use the PlayerCharacter3D class. This is on of the many things I struggled with in Godot. 😭 Time Waste No. 2 - Experimenting with player models in blender I experiemented with different styles of player models to use in the game, and I landed on one inspired from the infamous space game Kerbal Space Program. Time Waste No. 3 - Being petty about a camera system 📷 I think this is what took up most of my time. As soon as I made a moveable player that doesn’t fall through the ground (a very quickly made glorified cube in blender), I thought about adding a third person camera. I initially thought of making it toggleable, like in Minecraft, where you press F5, it toggles between first, second(?) and third person. But you can’t change the distance away the camera is from the player in third person. Besides, my stupid ass made it so that each time you pressed F, the camera would keep zooming out endlessly instead of toggling between first and third person. So instead I made it zoomable, like in Roblox. First I tried to manually change the offset based on the scroll wheel (that took me so much time because I had no clue how to get inputs from the scroll wheel). But that posed a problem, which was that the player could clip through walls. Then I found there was a literal node called SpringArm3D to do all of this for me 😭 And its so useful, like I can change how much it zoom’s out by my just changing one variable, and it automatically detects collisions an stops clipping through them. This may seem like somehting that is really basic to some of you who have actually cared to read this far (ty btw :)) but this was crazy for me. And now, I realised you can’t orbit around the camera without the player moving. But that’s something to add next time 🤷 lmao this feels like smth to convince ppl that i wasnt afk or smth to farm stardust. i PROMISE im not trying to farm them, although i would love to get some, im not trying to cheat the system guys 😭
Devlog 2 - One Lone Triangle I spent 2ish hours trying to make a triangle. In GDScript.. Absoutely terrible progress. I see people on Stardance making whole ass projects in 2 hours, and I’m spending those 2 hours making a simple triangle. I have no idea why decided to do a game with procedural terrain generation as my FIRST Godot project. I somewhat understand the theory behind procedural generation, mainly from watching a video on the breakdown of Minecraft’s code when I was like 10, but yeah 🤷 Unfortunately, I have no clue how to do it in practise.. so I guess hours of looking through the Godot docs awaits me yay -_-. (jk the docs are extremely helpful tysm godot 🙏)
Devlog 3 - Flat Plane I know this sounds INCREDIBLY trivial, but I finally figured out how to make a flat plane in Godot, that can be used to make an actual terrain. There were 2 main ways that I could have used to make this: Method 1: I can use a PlaneMesh and then subdivide it down into triangles. Then use vertex shaders or custom scripts to displace the plane as a whole based on noise. It is faster to make the flat plane using this method since you give Godot most of the control over the tessellation, and the individual vertex placement. This means however that it is a lot harder to load and unload certain parts of the terrain, and it is generally harder to add noise to the terrain since you do not have control over each vertex. Method 2: I can use an ArrayMesh , where I create the grid from scratch, telling Godot how to connect every single vertex to create triangles. The downside to this is how long this took. I know it seems short compared to my first devlog (I think the main reason I took so long in that one was not only because I was learning Godot, but it was also because I was experimenting with player models on Blender but hopefully now I’ll be more time efficient) but it is still more time consuming to tell Godot how to connect each and every vertex. I was in fact so stumped on how to go about doing this that it suddenly came to me when I was playing with my little cousin. I even noted down how to do it on my phones notes app (excuse my bad handwriting I was in the car writing with my finger) :/ Despite it being longer to setup, it is overall better for the needs of my game, since I’ll not only need to be able to change the height of each vertex based on a heightmap, but it can also aid with making biomes, by adding custom values to each vertex, which is simply not possible with PlaneMesh . It is also easier to load and unload certain parts of the mesh, and it is better for larger maps, since your CPU isnt doing all the hard work of choosing all the vertices and indexing them. In order to make the actually interesting part of the terrain (which btw I haven’t done in this devlog, I guess this is just like a future plans part) I can use either vertex shaders or custom scripts to make noise in the terrain. Both of these have their respective use cases, and I wouldn’t be able to say one is better than the other for my case. Vertex Shaders: GPU based no collisions (purely visual) written in Godot Shader Language (which is written in C, which is terrifying for me who practically only knows Python ( GDScript and Python are similar enough for me)) Custom Scripts: CPU based can create collisions (actually changes the vertex’s height) written in GDScript (happy days (ik I can write it in C# , but I’m staying far away from that)) Despite my fear of anything not similar to Python , I will still need to use vertex shaders. And I will explain that in my next devlog because this is getting too long. Now onto my struggles incredible skill when making a.. flat plane in Godot. I chose to do Method 2, because of it’s functionality later down the line. But that means I have to tell Godot what vertices to make, and how to connect them up. Obviously that was as simple as could be.. (you can see my failures in the screen recordings below)
Devlog 4 - A little bit of a few things I mostly did a combination of small bits, which is probably bad in terms of github commits and actual progress, but at least it’s not burning me out because I’m doing whatever part of the project I fancy at the time. UI I spent most of the time making a (hopefully) futuristic(?) looking pause menu that can also redirect you to a settings page, where I’m planning to hold the settings for terrain generation for the player to manipulate. Much of this time was spent experimenting with different Control nodes, finding out what they do and what they’re helpful for and manipulating the styles of them. I ended up with a style shown below 👇👇👇 Player Model I think I’ve finalised on a particular style, now I basically just have to make it and then texture it. The sad thing is that for some reason lapse doesn’t recognise my hackclub project anymore (already logged 5+ hrs on lapse), so all the time I spent on Blender wasn’t actually logged. If someone could please tell me how to fix this or if theres an extension for blender that would be SO helpful 🙏. Extras I also added the devlogs to my repository, it should appear there when I next commit, which should be soon!! I realise that the popular devlogs have assets from the get-go, so I probably might focus more on that, despite lapse not working if I wanna record time on Blender or Affinity. Again, if someone could please tell me if something is up with lapse or if there’s an extension that I can download for Blender or Affinity, that would be SOO helpful!! 🙏
Devlog 5 - Procedural Terrain (FINALLY!!) I made a start at making the procedural terrain, made some progress with the player model, and with configuring the basic shaders of the game. Elephant in the Room - Procedural Terrain Technically calling it procedural terrain is cheating a bit, cos really all it is right now is perlin noise applied to each vertex’s height. And with that, you can change the shape of the terrain by changing the values of some variables, like the seed, frequency, and octaves. I exported these variables so I could change them in the editor, and added @tool at the start so I can see it in the editor. I’m starting to work on a chunk system at the moment, which will load and unload chunks of the world as the player moves about. Player Model I finished modelling the player (added this version to the game) and added the bones for rigging, except when I move the arm bone, the helmet deforms, so next time I will be doing some weight painting Thankfully UV unwrapping is done as well so I should be able to texture everything before the next devlog. Also, addressing my last devlog, I said Lapse wasn’t syncing with hackatime. Turns out, if I just told it to create a new project called Celestial (which is what my project is called on hackatime), it’ll just add the time to it, so thats amazing!!! The WorldEnvironment Node I accidentally deleted my old configuration of this node while experimenting with stuff, and so I made some changes to the shading of the world. Next up is to recalculate all the normals of each triangle so shadows can be cast properly. I tried using SSAO, but every time I used that to make some sort of shadow, it changed depending on where the camera was and it made the terrain very pixelated. As you can see in the video, you can see the outlines of the terrain. That is because of the volumetric fog added. It sounds resource intensive, so if it starts to lag out my game I might remove it, which is a shame cos it looks really nice.
Devlog 6 - Chunks # 1 Previously, I had it so that the entire world was one big mesh, that could not be expanded without unloading and reloading the whole thing and more. This is obviously very inefficient, especially if I want the terrain to load in and out based on where the player is. Chunks is the answer to that. Split the world into chunks of your choice (I chose 16x16), and load/unload just the chunks you need to, not the whole thing. It seemed easy for me at first, clearly it wasn’t (the #1 for the header, ik this isnt gonna be the only devlog on this 😭 ). Bug 1 - The Normals aren’t normal Last devlog, I talked about calculating the normals, which went smoothly… For the old mesh… You see, to calculate normals, you need the vertices surrounding the vertex your trying to find out, and with chunks, that meant every 16 vertices, the normals were being calculated incorrectly, causing seams to be found in the terrain. However, since we did calculate the normals (for the most part) some pretty nice shadows have been cast on our terrain. Despite it being a bug, it is useful to find out where the chunk boundaries are, which is EXTREMELY useful for debugging, so I haven’t tried fixing it just yet. Bug 2 - Not so Good Performance After dividing the terrain into chunks, and making new chunks generate when the player moved into a new chunk, I tested it out. And every time I tried to cross a chunk border, there would be a huge lag spike. This would be caused by the fact the game prioritised the generation of chunks instead of the game. Thankfully I was able to make it so that the chunks would load whenever the processor was ready, to make sure not to overload it too much. Bug 3 - (Lack of) Collisions Another reason why chunks are useful is for limiting the area with active collisions. When the terrain was one big mesh, the entire mesh had active collisions, which would all be checking if something hit it, which is very resource intensive. Which is why I limited the area with collisions to a small radius around the player. While coding it, many logic erros came up, such as one that caused the collisions to just not work.
Devlog 7 - Chunks # 2: PROCEDURAL GENERATION DONE (mostly) Bugs Managed to fix all the bugs related to this part of terrain generation. Weird chunk errors There was an if statement (I changed it out for something else that’s more efficient) that was like: if abs(player_position.x - chunk_pos.x) > collision_chunk_size or abs(player_position.y - chunk_pos.y) > collision_chunk_size This logic error create weird stuttering issues and lag. The fix was to switch or with and . Normals DEFINITELY the bane of my existence. I know roughly what normals are due to me doing 3D modelling/rendering, but I have no clue how it actually works. And plus, I’ve barely covered the maths I need for this in school, so I spent sooo much time (much of which wasn’t recorded) just researching about normals and how they work. I think that definitely helped me find a solution to the annoying chunk borders and random artifacts found inside each chunk. Chunk Sizing I stupidly and randomly changed the chunk size from 16 to 10, which worked completely fine, except for the fact that the player script was still using the 16x16 chunk system, causing the generation to lag behind, eventually leading to the player falling off the map. New Features There were also some ✨ features ✨ that I added. Colour I added colour to the world, and if I match it to the fog and sky, I think it would look AMAZING I will make it so that the colour does vary across the planet. Player I added the rig and refined the topology for animation.
Devlog 8 - Player Model and other assets! Player Model I finished with texturing, rigging and weight painting. Next Step is to make the walking and jumping animations. Worked on the settings menu I updated the setting menu layout to account for different settings I’ll add in the future Stupid Bugs So when trying to break the terrain generation, I set the speed of the player to like 300 (which it will never be in the game except when in a space ship) but when I tried to do that, the game kept crashing, spitting out an error saying that something didn’t exist. It was coming from my unload_terrain() function. Basically how it works is it checks for all the instances of the MeshInstance3D node, and checks the name of it. For every chunk that is created, I assigned a unique name to it on creation based on the x and y coordinates of it. The function would checking all the nodes, and seeing which ones were out of the “ collision_chunk_size ” radius, and then would delete them. But when going super fast, the processing of things got all weird, meaning that when it tried to delete a chunk, and if it didn’t exist, it would crash. So I added a simple if statement if len(child_name_array) > 2: (basically it would check if the length of the name was long enough to see if there was the coord data). Stupidly I wrote the greater than sign the wrong way round, which led to me being stumped for SO long on why the terrain was just not unloading. tldr: > was the wrong way round and cost me hours.
Devlog 9 - Player Animation!! Walking and Idle Animations I finished a basic walking and idle animation for the player. The walking animation is also somewhat inspired from the kerbals from KSP. Both the animations are kinda choppy, especially when the animation loops round, but frankly icba I didn’t have enough time to fix them rn (mbmb 😭 ). Thankfully the walking animation is timed properly so that the player doesn’t look like its sliding around. Camera updates I added functionality to the camera where you can freelook around the player when holding the right mouse button. Once released, it goes back to the normal position (motion is lerped). Prepartions for next steps For the next steps, I want to go back to the terrain_generation program and start to add variation across the world (like biomes, mountains, etc.). I’m also looking to optimise it, making it generate terrain and collisions faster in prepartion for any future implementation of faster travel. So I added functionality that can allow me to make LODs, which will likely be implemented next devlog.
Devlog 10 - General updates Alright, so ik I said I would work on the procedural terrain, but instead I worked on:… Debugging Tools!! (yayy! ) When tab is pressed, it toggles on debug mode, where all meshes turn into wireframes (to check LOD) and chunk boudaries are shown. There are problems with chunk boundaries not despawning when the terrain its on is gone, but that’s fixed when you toggle debug mode again :). I could fix it but icba I have other stuff that needs to be prioritsed. Resizabile UI So before, if you resized the window, the pause menu and settings menu would be offset from the centre and wouldn’t scale with the window. Now when you scale it, the pause and settings menu stay in the centre and scale accordingly. (the flickering in the video is just an artifact created by the godot editor, and will apparently be fixed once exported)
Devlog 11 - General updates 2.0 Editor Tools!! - (to see the terrain in the editor) So in a previous devlog, I think I talked about how I added @tool in my terrain generation program to be able to see it in the editor. Once I made it dependent on the player position, it didn’t generate in the editor because the player wasn’t loaded in. So now I made it so that if the script was running while the editor (not the game) is open, the terrain would generate around (0, 0) based on how ever big the render distance is. Also I made it so that if you tweak the value of any of the primary noise settings in the editor, it updates in the editor. On top of that, I set the viewport to display wireframe so that I can see the triangles at different resolutions, which is where I came across:…. FLOATING POINT ERRORS!!! (yay ) I noticed that if I set the resolution to a decimal value that was not a power of 2, the triangles would be off by some amount, causing neighbouring triangles to overlap each other, causing normal and collision problems. The resolution variable is going to be eventually used for LODs, so since I’ll be the only setting it, I’ll just make sure to use a value thats a power of 2 The reason why this happens is because 16 (my chunk size) can be multplied and divided by 0.125 (2^-3) evenly to create an integer, compared to 0.1 which results in 1.6. Any smaller power of two is rounded it to the nearest 3dp, so 0.0625 (2^-4) doesn’t work. Camera Issues So I made functionality with the camera where you can scroll to zoom the camera in and out, and if you scroll far enough in, you’ll be in first person, much like how it works in Roblox. There was one problem though. Since the material for the visor on the player model was somewhat transluscent, your view would get darker. Also, you could free look inside the helmet, looking at the areas I wasn’t bothered to model and texture hadn’t modelled. So I disabled that in first person. The biggest timewaste of my life In an attempt to offload some of the generation to the GPU for more effecient parallel processing, I tried to figure out which parts of the algorthim were going to be handled by the CPU and GPU. There were some that had to be handled by the CPU, and there was no choice about those, and they were: collisions and figuring out what chunks should be rendered. At first I thought, how about I offload nearly everything to the GPU, including the noise function. Then I learnt that FastNoiseLite didn’t exist in .gdshader . So I did what any normal person would do, and CODE PERLIN NOISE BY HAND. I spent HOURS learning everything my dumbass could about it: vectors, normals, gradients, deviation, erosional generation, and finite difference approximation. At least I probably learnt something useful for FSMQ 🤷 (a British maths exam most students do in yr11 along with their other GCSEs).
Devlog 12 - General updates 3.0 I PROMISE THIS IS THE LAST ONE GUYS 🙏 Performance Stats I added a little HUD showing the FPS, the time it takes to make one frame (has to be below 16.67ms (60fps) or there will be noticeable lag), and the memory usage. Lighting, Shadows, and World Environment I slightly changed the shadow bias and normal bias so that shadow artifacts are to a minimum. On top of that, I set it so that shadows aren’t cast for the terrain, which unintentionally handles with some of the artifacts, whilst keeping the “shadows” by illuminating the terrain depending on where the DirectionalLight3d is, making the “shadows” reponsive to a future day-night cycle. Also the volumetric fog and lighting looks better Camera Issues 2.0 So previously I had the player hide() when you go into first person, but that also effects the shadows. So instead I made the visor disappear when you go into first person. But then there was another problem. The head would move during the idle and walking animations, which is quite distracting and could be problematic for some players. So I stopped the animtions whilst in first person. It is a very rudimentary fix, since players can look at their shadows and see the lack of animation. Furthermore if I want to add multiplayer in the future, it’ll look very weird. Performance checks In preparation of the biome generation, I wanted to make sure the performance is fine. It takes a bit for the terrain to generate at the start, but thats common across nearly every game. And this will be lightened a bit when I implement LODs. Once the game is running, it runs relatively fine, except with (very quick) lag spikes when the chunks update. To address this, I’m planning of offloading some of the terrain generation to the GPU, which can calculate normals a LOT more effeciently and quicker than the CPU. Current, the CPU calculates all the vertices, indices, normals, and then compiles it into an ArrayMesh , which is given to the GPU for rendering. This can put a lot of strain on the CPU, especially later down the line, so it’s better and more effiecient if the GPU does the very repetetive calculations, by making it do all the normal calculations, including other stuff.
Devlog 13 - LOD template I basically deleted all the old code, and started over, by making a function where the noise will be given to the vertex shader, and one that will generate the actual flat mesh for it (which is going to be changed by the vertex shader). I made the template for making flat planes with different levels of detail (LOD), which will be changed by the vertex shaders, applying the noise to the mesh. I created a new script called lod.gd and gave it a class name, so that I can call multiple instances of it in the main terrain generation program. Every time the program wants to make another chunk, I have to pass the arguements: resolution - what ive defined as a synoymn of LOD chunk_pos - where the chunk is The function then loads an ArrayMesh from a pre-generated list of possible meshes and creates a new MeshInstance3D node to display it. Extra stuff I also added player coords and chunk position in the debug_screen :)
Devlog 14 - LOD chunks ——— OPTIMISATION IS SOO HARDD 10hrs to do practically do something I’ve already done? (i had already made a chunk system in previous devlogs) Well, whilst some of that time was transferring code from my old commits to the current one and making sure it works, most of the time I spent on this devlog was spent on ✨ “optimisation” ✨ Optimisation First of all, I added LODs into the chunk mesh. What this means is that since further away chunks take up less of your screen, the level of detail (LOD) is reduced the further away it is. I had already made the script that handled the creation of those different meshes with different LODs, so in this devlog, I added it to the main terrain generation script, and assigned each LOD to a certain distance, so that any chunk with a certain distance has a certain LOD. In my last version of the terrain generation, I relied on the name of the MeshInstance3d nodes created to identify what chunk they were. I realised when making this updated version that it was prone to failure, since if the node did not exist or a node with the same name were some how added to the scene tree, errors would be raised or at the very least, a logic error would occur. To recetify this, I switched to using dictionaries to house all the information of all the chunks: chunks : Dictionary [ Vector2i , int ] = { Vector2i ( 0 , 0 ): 0 , Vector2i ( 0 , 1 ): 0 , #etc } The key is chunk coordinate, and the value is the LOD (0 being the highest, 4 being the lowest) Every time I wanted to update the terrain, I would search the scene tree if a particular node was unwanted (again, by looking at the name) and then generating the rest of the ones wanted. This way would not work with LODs, since some chunks may still exist, but may have to change LOD depending on where the player is. So I made use of the dictionary and also created a new one that would store the chunks that I want created. It would loop through the dictionarys, checking certain conditions, and the terrain would be updated. All this looping is somewhat inefficient, and did cause some lag spikes, so I will try to fix that next devlog by only checking the chunks that would be affected based on which way the player moved. To help with the looping, I created chunk and lod lookup tables, that can be offset based on the players_position. These lookup tables are only changed when the render distance is changed, so the same calculation doesn’t have to run hundreds of times in 16ms (60 fps).
Devlog 15 - I’m an Idiot For the past 95ish hours, I’ve been working on a way to make procedural terrain for my game. I tried 2 main methods, one centred round the CPU, and one I was building centred around the GPU. The endless chunk seam bugs caused me to burnout/get tired of the entire project, and there was so many stuff (that I won’t really be explaining for the sake of my poor reader’s sanity) leading to me ✨ youtube ✨ I saw this AMAZINGLY smart video by devmar, showing an alternate way of generating terrain. I urge you to watch the video as well, the whole technique is very very clever, and he even goes on to make further videos on making collisions, recalculating normals and adding vegetation, especially if your interested in procedural generation. After watching this video however, I became incredibly frustrated. I spent nearly 100hrs of my summer making this procedural terrain which I know hadn’t gotten anywhere and theres this incredibly smart video from 4yrs ago that pops up on my feed. Welp, now ig i gotta try out this way, and quick cos my parents are on my tail talking about me finishing this project before school starts 🙏 (its my gcse year so ig its valid but still ) Now what I actually did that counted to my time Experimented with vertex shaders, and sending heightmaps to vertex shaders to displace. This however caused immense lag and caused VERY ANNOYING chunk seams. #epicfails
Devlog 16 - AMAZING PROGRESS!! I’ve managed to get a massive 20km render distance with huge mountains and ridges using FastNoiseLite and vertex shaders. I used devmar ’s terrain technique, which he named the “Wandering Clipmap Terrain Technique”. The reason why the technique is called the “ Wandering Clipmap Terrain Technique” is because a flat plane that is subdivided a bunch (to make varrying levels of detail (LODs)) that follows the player. The vertex shaders then offset the heightmap so it gives off the illusions that your moving about in a massive world. All the displacement is done by the vertex shaders, which looks at a heightmap. In the future, I might make this heightmap be generated in gdscript instead of in the inspector, to deal with texture resolutions. Currently, from afar, the terrain looks amazing (except from the fact its not textured) but upclose, you can see rings in the terrain, which is caused by the heightmap’s resolution being too low. In fact each ring is about 8m tall so I really need to fix that 😭 The normals are calculated by just copying the heightmap and setting it ‘as normals’ in the inspector. They also are multiplied by a normal basis matrix, which allows me to configure the specific normal settings. I’ll need to calculate the normals in the fragment shader as well in the future for more convincing shadows, but for the mean time, the vertex shaders should do just fine. I’m planning on adding collisions, then maybe textures, biomes and vegetation soon!!
Devlog 17 - I am incredibly frustrated. No matter what I do it feels like I just can’t get the collisions to work. Basically, I’m trying to fetch the heights from the height map to input into the CollisionShape3D, but the coordinates are always offset in some way or the other. I even used AI my friend to basically rewrite the entire script over and over again, but that didn’t work either. Maybe it’s cos school has started now, and I haven’t been able to spend that much time on this project than I would like to As you can see in the photo, the collision mesh (in blue) is offset from the normal terrain (in white)
Devlog 18 - I am happy once again!! I FINALLY got the collisions to work!! Basically, it looks at the terrain model that is imported into Godot, and aligns the vertices of the CollisionShape3D with it. It also updates its position every time the player moves 1 unit (whatever the size of a quad of the mesh is). Then it looks at the heightmap, looks up the height of its coresponding pixel, multiplies that by the height shader param (2000, like in the vertex shaders), and thats the collision shape done. I noticed while walking around the world, that there were these massive ridges on the terrain. This is due to the lack of precision in the heightmap. The heightmap only has 256 shades of grey, and I need 2000 values. It is quite impossible to make a image file with that much precision, so instead, I’ll make it so that the CPU will just send an array to the vertex shader. Also, I’ve rebranded my project to Worlds Unbound, and this specific Stardance project will just be handling the terrain stuff for the game. p.s, it never goes above 16ms, i think thats probably because i was recording
Devlog 19 - Main Menu Added (and other things)! I spent quite a lot of time making the background for the main menu in Blender. After just copy and pasting the player model used in the game, I went ahead and made the main attraction: ✨ the planet in the background ✨ . My knowledge of noise that I gained from my previous attempts at the terrain generation helped me create the stars in the background, and the texture for the actual planet in the shader editor. I also added a slight atmosphere, which is (somewhat?) noticeable. I also went ahead and updated the shader code. Before, I used to use the visual shaders, since it was quite similar to the shader editor in Blender, which I was familiar with. But then I realised there’s just more flexibility with using GLSL . I can group uniforms in the inspector, making it clearer and less cluttered if I want to add textures in the future, including different images for the same texture (like Ambient Occlusion, Normals, Colours, and Roughness). Thus being able to group those different types images for the same texture was very important for future usability. Thankfully, Godot allows you to see the shader code that is generated from the visual shaders. Unfortunately, it was not readable at all. The generated code used a random(ish) collection of numbers and letters, and it was too long. Look below for the comparision for just the vertex shader, but it was something like 84 lines that was shruken down to 10 for the vertex shader. Even if you account for spaces in the generated code (which then it might be like 50-60 lines) thats a huge difference. So it took quite some time to get it to a readable state. edit: idk why the actual background looks so bumcheeks compared to the banner, hopefully itll be fixed by then 🤞
Devlog 20: GPU noise I found a way to make noise using a Godot addon called FastNoiseLite Runtime Shader . It was apparently identical to the FastNoiseLite in GDScript. So I gave it a try. I knew it was a gamble, given how much time I got left to ship an decent project, but I gave it a try since it seemed interesting. It wasn’t that hard to get the noise working, but to get it to sync with the collisions was a nightmare. In the end, I decided that even though the README stated it was 99.9% the same, the output seed by seed was different. So I decided to scrap it and now I’m going back to the old version with heightmaps. Why did I really want to switch? Because of the limited colour depth in images (has to be 8-bit for GDShader to read), theres not enough heights for each vertex to be at, so every so often, there’s this massive wall. It looks fine from afar, but thats probably because my terrain is 20km x 20km, so of course an 8m tall wall would look fine. (the image is from the addon readme)
Devlog 21 - Ship Prep!!! Colours I added colours to the terrain depending on how high the vertex is. This does create a very harsh border between the two colours, but I didn’t want to learn lerping, ik how to larp enough. Cleaned up my commits My commits were, and probably are still messy, and when I went ahead to revert some changes it said there were errors, but now thankfully that’s all fixed. :) I also updated quite small normals and some technical stuff.
Ships:
— SHIP No.1 — I spent the last couple of months making a model terrain, which I will use for my game that I will continue to build after this competition. My game idea is quite ambitious, and given how long it took for me to get this basic terrain to work properly and well, that won’t even be coming with the extra month added one. I lot of you may be thinking though, what on earth were you doing for 125 hours, when all you came up with is a glorified green and grey piece of paper you could walk on. Well, not only was I learning and using Godot for the first time, it was the first time I learnt anything as complicated as this. I had to wrap my head around complex (at least for me) maths and computer science topics, like vectors and cross product, noise and FBM, TBN model, and UVs, not to mention just the sheer amount of logic I had to get through. It was so tiring to keep getting bugs for the chunking system I had, or the collisions. But thankfully, all that is behind me 😼. I’ll give you a more indepth look into what I’ve done over the past couple months. Devlogs 1-12: This period was the general beginning of my project. Not only was I learning Godot, and watching tutorials on it, I was also spending time on the player character, the camera system, and the world environment. Devlogs 13-15: I tried to implement LODs into my chunks, since the performance was simply too bad. Somehow this made it worse, possibly because of more chunks (the ones at the broder of LOD borders) being forced to be unloaded and loaded back in. Devlogs 16-21: I used my current technique, heavily based from devmars video on youtube about procedural terrain during this period. School had also started, so I spent less and less time on it, being significantly burnt out and tired. So I basically went through 3 iterations of terrain for my game, so that is why it took so long to get to this point....
|
1792853399.1686566
|
1792939799.1686566
|
|
21375
|
STANDTall by @akshay369 | Stardance
|
akshay369
|
3
|
7.0
|
37
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:01:00Z", "hours": 2.0, "multiplier": 6.33, "payout": 5, "blessing": "neutral", "text": "I built StandTall, a lightweight system tray utility designed for desk workers to encourage regular movement and help prevent back pain during long working hours. So try this and StandTall", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}, {"ship_num": 2, "ts": "2026-07-06T13:36:46Z", "hours": 2.0, "multiplier": 3.17, "payout": 5, "blessing": "neutral", "text": "I made the app modern, added more features so it is worth check in out . So try it and StandTall.", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}, {"ship_num": 3, "ts": "2026-06-29T10:05:50Z", "hours": 3.0, "multiplier": 9.57, "payout": 27, "blessing": "neutral", "text": "I made an application for those who sit more, and it is challenging to look for bugs and test the app", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}]...
|
[{"post_id": 73372, "ts": "202 [{"post_id": 73372, "ts": "2026-09-25T00:54:27Z", "hours": 1.5414, "text": "Version V4 is live. The major feature in this version is Cursor Inactivity Pause — automatically pauses the timer after five minutes of cursor inactivity and resumes when you move the cursor again. So guys, Try it and always StandTall"}, {"post_id": 23293, "ts": "2026-07-06T05:03:27Z", "hours": 0.7544, "text": "Previously, there was a bug of multiple instances running, now it is solved and new features have been added NEW FEATURES 1, Break Nudges — Full-screen overlay during eye breaks with countdown + Dismiss button. Toggle on/off in Settings. 2, Statistics Dashboard — Tracks stands and eye breaks per day. View today’s totals, all-time totals, and a 7-day bar chart. 3, Tray Tooltip — Hover the tray icon to see remaining time until next stand and eye break (Stand↑ Xm Eye Ym). 4, Auto-Update Check — “Check for Updates” button in Settings queries GitHub releases and notifies you when a newer version is available."}, {"post_id": 22226, "ts": "2026-07-04T16:18:09Z", "hours": 0.5997, "text": "StandTall Pro is now available on Windows, macOS, and Linux! This release features a completely rewritten cross-platform codebase, near-zero startup impact, a first-launch setup window, and standalone packages for all platforms. What’s new 1, 🌍 Cross-platform — works on Windows, macOS, and Linux 2, 🚀 Near-zero startup impact — CustomTkinter now loads only when you open Settings 3, 🪟 First-launch window — settings appear automatically on first run so new users can configure the app 4, 🔒 Single-instance lock — prevents duplicate app instances (works on all OS)"}, {"post_id": 20778, "ts": "2026-07-02T13:59:09Z", "hours": 0.3683, "text": "How to install it correctly 1, Download the zip file from the assets 2, Unzip it 3, Open the exe file 4, It does not show any windows at first; look at the system tray and right-click the application, then select Settings 5, Done. Now you can adjust the remainder"}, {"post_id": 18229, "ts": "2026-06-29T09:43:42Z", "hours": 2.8225, "text": "StandTall Pro is a health-focused Windows desktop utility tailored for desk-bound professionals. Operating quietly from the system tray, it helps mitigate back pain and digital eye strain by prompting users to take physical standing breaks and practice the 20-20-20 rule (looking at an object 20 feet away for 20 seconds every 20 minutes)."}]...
|
Title: STANDTall by @akshay369 | Stardance
Devlog Title: STANDTall by @akshay369 | Stardance
Devlogs:
StandTall Pro is a health-focused Windows desktop utility tailored for desk-bound professionals. Operating quietly from the system tray, it helps mitigate back pain and digital eye strain by prompting users to take physical standing breaks and practice the 20-20-20 rule (looking at an object 20 feet away for 20 seconds every 20 minutes).
How to install it correctly 1, Download the zip file from the assets 2, Unzip it 3, Open the exe file 4, It does not show any windows at first; look at the system tray and right-click the application, then select Settings 5, Done. Now you can adjust the remainder
StandTall Pro is now available on Windows, macOS, and Linux! This release features a completely rewritten cross-platform codebase, near-zero startup impact, a first-launch setup window, and standalone packages for all platforms. What’s new 1, 🌍 Cross-platform — works on Windows, macOS, and Linux 2, 🚀 Near-zero startup impact — CustomTkinter now loads only when you open Settings 3, 🪟 First-launch window — settings appear automatically on first run so new users can configure the app 4, 🔒 Single-instance lock — prevents duplicate app instances (works on all OS)
Previously, there was a bug of multiple instances running, now it is solved and new features have been added NEW FEATURES 1, Break Nudges — Full-screen overlay during eye breaks with countdown + Dismiss button. Toggle on/off in Settings. 2, Statistics Dashboard — Tracks stands and eye breaks per day. View today’s totals, all-time totals, and a 7-day bar chart. 3, Tray Tooltip — Hover the tray icon to see remaining time until next stand and eye break (Stand↑ Xm Eye Ym). 4, Auto-Update Check — “Check for Updates” button in Settings queries GitHub releases and notifies you when a newer version is available.
Version V4 is live. The major feature in this version is Cursor Inactivity Pause — automatically pauses the timer after five minutes of cursor inactivity and resumes when you move the cursor again. So guys, Try it and always StandTall
Ships:
I made an application for those who sit more, and it is challenging to look for bugs and test the app
I made the app modern, added more features so it is worth check in out . So try it and StandTall.
I built StandTall, a lightweight system tray utility designed for desk workers to encourage regular movement and help prevent back pain during long working hours. So try this and StandTall...
|
1792850225.571659
|
1792936625.571659
|
|
26084
|
MagnOS by @ABN | Stardance
|
ABN
|
2
|
15.0
|
71
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T00:52:53Z", "hours": 10.0, "multiplier": 7.34, "payout": 71, "blessing": "neutral", "text": "I made a magnet themed OS called MagnOS. This OS’s standout feature is the ability to flip the polarity of the windows to make them either attract or repel each other. The goal is to let people be able to organize related windows and put them where they want to. I added a switch which toggles window outlines between red and blue, and linked windows can be dragged together. Along with this feature, I also added a scientific calculator, a music player, and a search app. Windows are also scalable now by dragging the corners, allowing even more freedom to the user. So altogether, 5 new features. The most challenging part was getting the magnetism feature working; I couldn’t find any references online, and even after the core function was working, there were a bunch of number tweaks to be made. Generally speaking, I’m proud of making an HTML site that goes above and beyond, expanding on my previous ship for the more limited mission. I’m also proud of some of the intentional choices I made, like adding feedback to windows snapping and creating gradients on the magnetism switches. For anyone who wants to test my project, just head to the demo URL, since it is just a web page you can run in your browser. The magnetism stuff should be pretty intuitive to use, but it can be a bit janky if you spawn many windows on top of each other. Thanks for reading!", "repo": "https://github.com/abn3000/magnos", "demo": "https://abn3000.github.io/magnos/"}, {"ship_num": 2, "ts": "2026-07-06T01:19:48Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a magnet-themed OS, with a red and blue design. I added a welcome window and a notes app, both of which can be dragged around. For some bonus features, I added the ability to drag the app icon, as well as an editable taskbar “To Do” item. The most challenging part of designing this was getting the icon for the app to be draggable without having the app open when dragged. I am proud of this OS, since I have limited experience with HTML, and almost no experience in combining it with JavaScript. To test it out, just head to the attached link (it’s hosted using Github pages).", "repo": "https://github.com/abn3000/magnos", "demo": "https://abn3000.github.io/magnos/"}]...
|
[{"post_id": 73366, "ts": "202 [{"post_id": 73366, "ts": "2026-09-25T00:23:22Z", "hours": 6.8256, "text": "Final Update Scalable Windows It wouldn’t really be useful for productivity if you couldn’t shrink the apps that can stay off to the side, so now they can be shrunk and still attached to other windows! This was definitely the hardest part, and I’m not 100% sure it works in all cases when windows are already magnetized. Snapping Design Previously, I was able to make the windows’ edges change to white when connected. After doing some more Googling, I was able to make a sort of pulse that acts as feedback when the super snaps the windows together (I’m very proud of this). If that’s not enough, it also plays a snap sound now. Search Fix I noticed that some OS’s make their search app replace the current tab, which makes the OS tab go away. I fixed mine to have it open a new tab with your query. End of the Line This will be the final devlog for MagnOS, at least before my first WebOS 2 ship. I’ve added 3 new apps and a big new feature, which I hope Stardancers will enjoy."}, {"post_id": 67028, "ts": "2026-09-13T02:09:47Z", "hours": 2.1383, "text": "Big Update Magnetism Features Click a switch on a window to swap it between red mode and blue mode. Opposites attract, while like poles repel. The main feature of this OS. Calculator Not just a four-function one, but scientific with all the bells and whistles! Music Player Comes with all the basic features you’d expect (except maybe more than one song, but I feel like the song choice is self-explanatory). Next Time I have a search feature that I want to properly flesh out so that it’s actually usable. Also, I want to make scalable windows, but I’ve been having a lot of trouble getting that to be separate from the dragging functionality."}, {"post_id": 25046, "ts": "2026-07-09T00:17:57Z", "hours": 0.7333, "text": "Looks pretty sketchy… Introducing the MagSketch app, which comes with different colours, pen sizes, and even a colour picker (I’m pretty proud of that one). Getting the canvas to work was pretty challenging, but there are plenty of guides online that really helped speed things up."}, {"post_id": 22198, "ts": "2026-07-04T15:35:53Z", "hours": 3.1514, "text": "What a drag… I’ve updated quite a bit since the last devlog, so the windows are now draggable, closable, openable, all that jazz. We also have some editability: the MagNotes app is up and working as a simple notepad, and the to-do list in the taskbar can be updated. One app is a little boring, though, so I think we can step things up in the coming days. The end of WebOS 1 is in sight!"}, {"post_id": 17962, "ts": "2026-06-28T22:28:49Z", "hours": 1.3928, "text": "Are we sure we’re on task right now? The bottom bar is ready, except for that to-do button in the centre. That can be made inputtable and working once I get a bit more in-depth on my JavaScript. Right now, we have a window of content, the taskbar, and a nice screensaver background (this might be a placeholder, but I kind of like it). Moving on to some clickability!"}, {"post_id": 17361, "ts": "2026-06-28T03:37:48Z", "hours": 0.9319, "text": "Welcome! I’ve made the welcome page for MagnOS, including the basics on what it does, and a little introduction to how magnets work. That’s the basic HTML and CSS, but JavaScript (a.k.a. the hard stuff) is yet to come. If this pans out how I hope, I think the OS can really be a cool thing to mess around with, and I might even use the code for my personal productivity!"}]...
|
Title: MagnOS by @ABN | Stardance
Devlogs:
Welcom Title: MagnOS by @ABN | Stardance
Devlogs:
Welcome! I’ve made the welcome page for MagnOS, including the basics on what it does, and a little introduction to how magnets work. That’s the basic HTML and CSS, but JavaScript (a.k.a. the hard stuff) is yet to come. If this pans out how I hope, I think the OS can really be a cool thing to mess around with, and I might even use the code for my personal productivity!
Are we sure we’re on task right now? The bottom bar is ready, except for that to-do button in the centre. That can be made inputtable and working once I get a bit more in-depth on my JavaScript. Right now, we have a window of content, the taskbar, and a nice screensaver background (this might be a placeholder, but I kind of like it). Moving on to some clickability!
What a drag… I’ve updated quite a bit since the last devlog, so the windows are now draggable, closable, openable, all that jazz. We also have some editability: the MagNotes app is up and working as a simple notepad, and the to-do list in the taskbar can be updated. One app is a little boring, though, so I think we can step things up in the coming days. The end of WebOS 1 is in sight!
Looks pretty sketchy… Introducing the MagSketch app, which comes with different colours, pen sizes, and even a colour picker (I’m pretty proud of that one). Getting the canvas to work was pretty challenging, but there are plenty of guides online that really helped speed things up.
Big Update Magnetism Features Click a switch on a window to swap it between red mode and blue mode. Opposites attract, while like poles repel. The main feature of this OS. Calculator Not just a four-function one, but scientific with all the bells and whistles! Music Player Comes with all the basic features you’d expect (except maybe more than one song, but I feel like the song choice is self-explanatory). Next Time I have a search feature that I want to properly flesh out so that it’s actually usable. Also, I want to make scalable windows, but I’ve been having a lot of trouble getting that to be separate from the dragging functionality.
Final Update Scalable Windows It wouldn’t really be useful for productivity if you couldn’t shrink the apps that can stay off to the side, so now they can be shrunk and still attached to other windows! This was definitely the hardest part, and I’m not 100% sure it works in all cases when windows are already magnetized. Snapping Design Previously, I was able to make the windows’ edges change to white when connected. After doing some more Googling, I was able to make a sort of pulse that acts as feedback when the super snaps the windows together (I’m very proud of this). If that’s not enough, it also plays a snap sound now. Search Fix I noticed that some OS’s make their search app replace the current tab, which makes the OS tab go away. I fixed mine to have it open a new tab with your query. End of the Line This will be the final devlog for MagnOS, at least before my first WebOS 2 ship. I’ve added 3 new apps and a big new feature, which I hope Stardancers will enjoy.
Ships:
I made a magnet-themed OS, with a red and blue design. I added a welcome window and a notes app, both of which can be dragged around. For some bonus features, I added the ability to drag the app icon, as well as an editable taskbar “To Do” item. The most challenging part of designing this was getting the icon for the app to be draggable without having the app open when dragged. I am proud of this OS, since I have limited experience with HTML, and almost no experience in combining it with JavaScript. To test it out, just head to the attached link (it’s hosted using Github pages).
I made a magnet themed OS called MagnOS. This OS’s standout feature is the ability to flip the polarity of the windows to make them either attract or repel each other. The goal is to let people be able to organize related windows and put them where they want to. I added a switch which toggles window outlines between red and blue, and linked windows can be dragged together. Along with this feature, I also added a scientific calculator, a music player, and a search app. Windows are also scalable now by dragging the corners, allowing even more freedom to the user. So altogether, 5 new features. The most challenging part was getting the magnetism feature working; I couldn’t find any references online, and even after the core function was working, there were a bunch of number tweaks to be made. Generally speaking, I’m proud of making an HTML site that goes above and beyond, expanding on my previous ship for the more limited mission. I’m also proud of some of the intentional choices I made, like adding feedback to windows snapping and creating gradients on the magnetism switches. For anyone who wants to test my project, just head to the demo URL, since it is just a web page you can run in your browser. The magnetism stuff should be pretty intuitive to use, but it can be a bit janky if you spawn many windows on top of each other. Thanks for reading!...
|
1792846058.1884913
|
1792932458.1884913
|
|
57660
|
Program Framework by @Wiiwhbfidow | Stardance
|
Wiiwhbfidow
|
1
|
21.67
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T00:15:56Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple framework that builds on the Single DirectMedia Library (an existing library) which helps to take care of some boilerplate and streamline programming projects. I finished the basics like rendering and a component system, but I plan to add more soon! Attached is a rough design diagram (made in Microsoft Paint)", "repo": "https://github.com/User-Name54321/BPFramework", "demo": "https://github.com/User-Name54321/BPFramework/releases/tag/Binaries"}]...
|
[{"post_id": 81136, "ts": "202 [{"post_id": 81136, "ts": "2026-10-20T01:04:45Z", "hours": 3.3481, "text": "New functioning audio system In the past few days, I have been working on implementing an audio system that relies on SDL_Mixer, a separate library from SDL. I decided to use SDL_Mixer because I did not want to manually manage the mixing of sounds and management of the different audio streams, like that of which I would need to do if I used SDL’s built in audio tools. I also dropped SDL_image from the library right now because it adds too many dependencies, and I don’t think the additional overhead is needed for my intended functionality right now. In the future, I was looking into incorporating WUFFS, which is a programming language that is built to guarantee memory safety when loading files. (link: https://github.com/google/wuffs ) I wasn’t really sure of what to put for my image, so I put an image of me stepping through and debugging my code because nothing was played. (Spoiler alert: I flipped an operator)"}, {"post_id": 78910, "ts": "2026-10-12T00:30:07Z", "hours": 4.3239, "text": "First, I worked a bit more on my observer system under the hood. Instead of relying on observer objects, the subject just takes a reference to a callback which is intended to be called on the subject’s notify(). The picture is a demo where anytime I press a key it prints “test.” I also went through my code and tried to leave comments which clarify the functions and usage of certain things, which should help to make it more usable. Also, my Git connection keeps breaking, which is enraging!"}, {"post_id": 73362, "ts": "2026-09-25T00:05:25Z", "hours": 0.5894, "text": "I finished wiring up a simple test render which uses the framework’s systems. I also worked a bit on cleaning up some of the code and labelling my intentions/future plans. I also verified that my build configurations were ok, and made sure I had no more memory issues."}, {"post_id": 72486, "ts": "2026-09-23T02:07:10Z", "hours": 6.6931, "text": "I cobbled together a component system which allows for the creation of two types of containers. One strictly contains data, while the other one is slower but can also contain references to other components and functions. I based quite a bit of this on some of the patterns I read in “Game Programming Patterns” by Robert Nystrom, and I really recommend it if you are interested. In addition to that, I had a “small” (massive) memory leak which resulted from me misunderstanding the way SDL handles rendering, so I got it to render stuff and clear the command queue which fixed that. I also started a little bit on a logging system which also uses SDL, but I want to make it more natural to use and more fitting with the way I designed this library."}, {"post_id": 69876, "ts": "2026-09-17T23:50:57Z", "hours": 6.8017, "text": "Started basic window management, input systems, and texture rendering. More soon!"}]...
|
Title: Program Framework by @Wiiwhbfidow | Stardan Title: Program Framework by @Wiiwhbfidow | Stardance
Devlogs:
Started basic window management, input systems, and texture rendering. More soon!
I cobbled together a component system which allows for the creation of two types of containers. One strictly contains data, while the other one is slower but can also contain references to other components and functions. I based quite a bit of this on some of the patterns I read in “Game Programming Patterns” by Robert Nystrom, and I really recommend it if you are interested. In addition to that, I had a “small” (massive) memory leak which resulted from me misunderstanding the way SDL handles rendering, so I got it to render stuff and clear the command queue which fixed that. I also started a little bit on a logging system which also uses SDL, but I want to make it more natural to use and more fitting with the way I designed this library.
I finished wiring up a simple test render which uses the framework’s systems. I also worked a bit on cleaning up some of the code and labelling my intentions/future plans. I also verified that my build configurations were ok, and made sure I had no more memory issues.
First, I worked a bit more on my observer system under the hood. Instead of relying on observer objects, the subject just takes a reference to a callback which is intended to be called on the subject’s notify(). The picture is a demo where anytime I press a key it prints “test.” I also went through my code and tried to leave comments which clarify the functions and usage of certain things, which should help to make it more usable. Also, my Git connection keeps breaking, which is enraging!
New functioning audio system In the past few days, I have been working on implementing an audio system that relies on SDL_Mixer, a separate library from SDL. I decided to use SDL_Mixer because I did not want to manually manage the mixing of sounds and management of the different audio streams, like that of which I would need to do if I used SDL’s built in audio tools. I also dropped SDL_image from the library right now because it adds too many dependencies, and I don’t think the additional overhead is needed for my intended functionality right now. In the future, I was looking into incorporating WUFFS, which is a programming language that is built to guarantee memory safety when loading files. (link: https://github.com/google/wuffs ) I wasn’t really sure of what to put for my image, so I put an image of me stepping through and debugging my code because nothing was played. (Spoiler alert: I flipped an operator)
Ships:
I made a simple framework that builds on the Single DirectMedia Library (an existing library) which helps to take care of some boilerplate and streamline programming projects. I finished the basics like rendering and a component system, but I plan to add more soon! Attached is a rough design diagram (made in Microsoft Paint)...
|
1792853842.2136784
|
1792940242.2136784
|
|
62089
|
My first site by @Manu_Gurgel | Stardance
|
Manu_Gurgel
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T00:14:01Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my first website to introduce myself using HTML and CSS; I had never programmed anything like this before, having previously only trained for C++ programming competitions. At first, I found it quite challenging, but with the help of AI to fix errors and understand how to use certain elements, the site began to take shape. On the site, you can find information about my academic background and a link to Neps Academy, where you can create an account to access programming exercises in various languages (C, C++, Python, etc.). I still think there is plenty of room for improvement—such as adding more information and features, and making it look better and more organized—but for now, this is how it stands.", "repo": "https://github.com/Manu-Gurgel/Teste-1", "demo": "https://manu-gurgel.github.io/Teste-1/"}]...
|
[{"post_id": 73323, "ts": "202 [{"post_id": 73323, "ts": "2026-09-24T21:25:12Z", "hours": 1.035, "text": "I’m thinking about more informations that I could add to the site to make a portifolio"}, {"post_id": 71716, "ts": "2026-09-21T11:24:41Z", "hours": 2.4125, "text": "I’m working on my first website to introduce myself and tell about my programming journey"}]...
|
Title: My first site by @Manu_Gurgel | Stardance
Title: My first site by @Manu_Gurgel | Stardance
Devlogs:
I’m working on my first website to introduce myself and tell about my programming journey
I’m thinking about more informations that I could add to the site to make a portifolio
Ships:
I created my first website to introduce myself using HTML and CSS; I had never programmed anything like this before, having previously only trained for C++ programming competitions. At first, I found it quite challenging, but with the help of AI to fix errors and understand how to use certain elements, the site began to take shape. On the site, you can find information about my academic background and a link to Neps Academy, where you can create an account to access programming exercises in various languages (C, C++, Python, etc.). I still think there is plenty of room for improvement—such as adding more information and features, and making it look better and more organized—but for now, this is how it stands....
|
1792813912.496366
|
1792900312.496366
|
|
64853
|
Smart Temp Fan by @MaxAA | Stardance
|
MaxAA
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:36:28Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A fan that turns on once it reaches a certain temperature, the code was a bit challenging but it was really fun to do! It took a lot of patient to do but i am really proud of the final product!", "repo": "https://github.com/aalaqqad0808-star/Smart-Temp-Fan/blob/main/Smart%20Fan", "demo": ""}]...
|
[{"post_id": 73195, "ts": "202 [{"post_id": 73195, "ts": "2026-09-24T15:58:37Z", "hours": 0.4075, "text": "Built and Tested a fan that turns on automatically once it reaches the desired temperature"}]...
|
Title: Smart Temp Fan by @MaxAA | Stardance
Devlo Title: Smart Temp Fan by @MaxAA | Stardance
Devlogs:
Built and Tested a fan that turns on automatically once it reaches the desired temperature
Ships:
A fan that turns on once it reaches a certain temperature, the code was a bit challenging but it was really fun to do! It took a lot of patient to do but i am really proud of the final product!...
|
1792814185.4198906
|
1792900585.4198906
|
|
47285
|
flyos by @Winny | Stardance
|
Winny
|
1
|
3.73
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:35:38Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I make a OS called flyos where each state I fly to ( aka click on), it should pop out a function that is suitable for that states.", "repo": "https://github.com/WinnyT/flyos", "demo": "https://winnyt.github.io/flyos/"}]...
|
[{"post_id": 74525, "ts": "202 [{"post_id": 74525, "ts": "2026-09-27T15:44:20Z", "hours": 0.7333, "text": "Because the reviewer screen and my screen are not the same size, we have clicking conflict ( they can’t open the window at “that” states because it’s somewhere else). Therefore, I used css to fixed the pin and the map. The pin will depends on the map image instead of the screen."}, {"post_id": 73341, "ts": "2026-09-24T22:39:09Z", "hours": 0.5661, "text": "I just added the close button, and planning to have each states is a window. Currently, the welcome window is GA xD"}, {"post_id": 67025, "ts": "2026-09-13T02:06:49Z", "hours": 1.3292, "text": "Just completed the drag function but it doesn’t seems to work so well. Changed back ground photo and added top bar time"}, {"post_id": 46664, "ts": "2026-08-14T03:04:42Z", "hours": 0.8914, "text": "Flyos- The OS system that make you want to fly. I just go through 2 part of the tutorial and here is the result. Nothing fancy, just copy - paste cuz I still don’t know how to style my OS yet!"}]...
|
Title: flyos by @Winny | Stardance
Devlogs:
Flyos Title: flyos by @Winny | Stardance
Devlogs:
Flyos- The OS system that make you want to fly. I just go through 2 part of the tutorial and here is the result. Nothing fancy, just copy - paste cuz I still don’t know how to style my OS yet!
Just completed the drag function but it doesn’t seems to work so well. Changed back ground photo and added top bar time
I just added the close button, and planning to have each states is a window. Currently, the welcome window is GA xD
Because the reviewer screen and my screen are not the same size, we have clicking conflict ( they can’t open the window at “that” states because it’s somewhere else). Therefore, I used css to fixed the pin and the map. The pin will depends on the map image instead of the screen.
Ships:
I make a OS called flyos where each state I fly to ( aka click on), it should pop out a function that is suitable for that states....
|
1792853337.4975944
|
1792939737.4975944
|
|
28240
|
My awesome macropad! by @Shlok_P | Stardance
|
Shlok_P
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:07:56Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a macropad- Learned a lot about coding and how to make a pcb and solder it", "repo": "https://github.com/shlokrpatel/Shlok-Superpad", "demo": ""}]...
|
[{"post_id": 73345, "ts": "202 [{"post_id": 73345, "ts": "2026-09-24T23:07:15Z", "hours": 0.9333, "text": "Coding some stuff and got it working"}, {"post_id": 26174, "ts": "2026-07-10T20:30:17Z", "hours": 2.3333, "text": "I finally finished my macropad. I troubleshooted my qmk so many times and finally found the problem and fixed with claude. I then spent some time compiling all my files into git and am currently working on the submission"}, {"post_id": 25660, "ts": "2026-07-10T02:16:54Z", "hours": 5.2308, "text": "Absolutely huge day for me. I finished my case after hours of working on it and started on my qmk coding. Coding is sooooo hard. I had to use 3 different websites and some AI to help me and still couldn’t get it right."}, {"post_id": 24790, "ts": "2026-07-08T16:15:31Z", "hours": 4.6169, "text": "First post! I have had some trouble with attaching my timelapses to my project but thanks to some amazing help in the slack I compiled all 3 of my current timelapses into my first devlog. These 3 timelapses include me making my pcb with 9 switches, a oled screen, and a rotary encoder. After I finished with the pcb I spend a lot of time looking at other projects that people made for some inspiration for my case. I finally started making my case and ran into problems with sizing and trying to get a 3 degree tilt on it. I still have to finish my case and will probably seek some help again."}]...
|
Title: My awesome macropad! by @Shlok_P | Stardanc Title: My awesome macropad! by @Shlok_P | Stardance
Devlogs:
First post! I have had some trouble with attaching my timelapses to my project but thanks to some amazing help in the slack I compiled all 3 of my current timelapses into my first devlog. These 3 timelapses include me making my pcb with 9 switches, a oled screen, and a rotary encoder. After I finished with the pcb I spend a lot of time looking at other projects that people made for some inspiration for my case. I finally started making my case and ran into problems with sizing and trying to get a 3 degree tilt on it. I still have to finish my case and will probably seek some help again.
Absolutely huge day for me. I finished my case after hours of working on it and started on my qmk coding. Coding is sooooo hard. I had to use 3 different websites and some AI to help me and still couldn’t get it right.
I finally finished my macropad. I troubleshooted my qmk so many times and finally found the problem and fixed with claude. I then spent some time compiling all my files into git and am currently working on the submission
Coding some stuff and got it working
Ships:
Made a macropad- Learned a lot about coding and how to make a pcb and solder it...
|
1792853765.5965755
|
1792940165.5965755
|
|
29817
|
Gleam by @arth_mi | Stardance
|
arth_mi
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T22:29:30Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Gleam is a FastAPI backend driving RGBW strips through a generic plugin API, so effects are built on exposed primitives (color, intensity, dim) rather than hardcoded. The tricky part was getting the architecture right first: syncing modules through a shared clock and separating color/intensity/white as distinct render layers. I’m especially proud of the Ambilight module, which captures HDMI output live and mirrors it onto the strip in real time, fully on-device with no cloud dependency.", "repo": "https://github.com/arthmi/gleam", "demo": "https://gleam-virid.vercel.app/docs"}]...
|
[{"post_id": 72828, "ts": "202 [{"post_id": 72828, "ts": "2026-09-23T20:31:06Z", "hours": 10.8583, "text": "Just finished a new module! The module is called audio_reactive and, as its name suggests, it reacts to the audio input provided (system default if parameter = None). It lights up the selected target as the sound gets louder. It also features animations to make sudden transitions feel smoother.Here are the parameters for this module: device: Audio input device name, or a portion of it (empty = system default) color: Color of the light min_intensity: Intensity when the input is silent [0.0 - 1.0] max_intensity: Intensity at maximum volume [0.0 - 1.0] sensitivity: Gain applied to the normalized level [0.1 - 5.0] attack: Rise time in milliseconds (how quickly the light reacts to a louder sound) release: Fall time in milliseconds (how slowly the light fades when the sound drops)"}, {"post_id": 45228, "ts": "2026-08-11T15:51:49Z", "hours": 3.2964, "text": "Rewrite the entirety of the Ambilight module for better functionalities and performances. I wrote an advanced algorithm to get a smoother result in addition to more parameters : device_index edge reversed band_depth_percent weight_exponent sample_overlap_percent saturation_boost -temporal_smoothing_tau The main functionalities added are: Advanced Color Averaging: Improved methods to calculate smarter average colors, such as sampling larger color bands or allowing LEDs to influence adjacent colors. Temporal Smoothing: Introduction of “temporal_smoothing_tau” to ensure smoother, more natural color transitions over time. Enhanced Immersion: Addition of “saturation_boost” and “weight_exponent” parameters to deliver a more vibrant and immersive visual experience. For instance, the colors on the left terminal simulate the final result that would handle the left edge of the screen (using default parameters)."}, {"post_id": 34682, "ts": "2026-07-25T16:23:38Z", "hours": 16.5069, "text": "Just finished the main functionalities of the ambilight module of my LED controller. It takes a stream from the edge of the screen (HDMI to USB, for example), then processes each frame to get the average color of the surrounding area. I’m still working on a blur effect that would give a less detailed result for a better experience. (Sorry for the bad recording quality, this was made on an old laptop.)"}]...
|
Title: Gleam by @arth_mi | Stardance
Devlogs:
Jus Title: Gleam by @arth_mi | Stardance
Devlogs:
Just finished the main functionalities of the ambilight module of my LED controller. It takes a stream from the edge of the screen (HDMI to USB, for example), then processes each frame to get the average color of the surrounding area. I’m still working on a blur effect that would give a less detailed result for a better experience. (Sorry for the bad recording quality, this was made on an old laptop.)
Rewrite the entirety of the Ambilight module for better functionalities and performances. I wrote an advanced algorithm to get a smoother result in addition to more parameters : device_index edge reversed band_depth_percent weight_exponent sample_overlap_percent saturation_boost -temporal_smoothing_tau The main functionalities added are: Advanced Color Averaging: Improved methods to calculate smarter average colors, such as sampling larger color bands or allowing LEDs to influence adjacent colors. Temporal Smoothing: Introduction of “temporal_smoothing_tau” to ensure smoother, more natural color transitions over time. Enhanced Immersion: Addition of “saturation_boost” and “weight_exponent” parameters to deliver a more vibrant and immersive visual experience. For instance, the colors on the left terminal simulate the final result that would handle the left edge of the screen (using default parameters).
Just finished a new module! The module is called audio_reactive and, as its name suggests, it reacts to the audio input provided (system default if parameter = None). It lights up the selected target as the sound gets louder. It also features animations to make sudden transitions feel smoother.Here are the parameters for this module: device: Audio input device name, or a portion of it (empty = system default) color: Color of the light min_intensity: Intensity when the input is silent [0.0 - 1.0] max_intensity: Intensity at maximum volume [0.0 - 1.0] sensitivity: Gain applied to the normalized level [0.1 - 5.0] attack: Rise time in milliseconds (how quickly the light reacts to a louder sound) release: Fall time in milliseconds (how slowly the light fades when the sound drops)
Ships:
Gleam is a FastAPI backend driving RGBW strips through a generic plugin API, so effects are built on exposed primitives (color, intensity, dim) rather than hardcoded. The tricky part was getting the architecture right first: syncing modules through a shared clock and separating color/intensity/white as distinct render layers. I’m especially proud of the Ambilight module, which captures HDMI output live and mirrors it onto the strip in real time, fully on-device with no cloud dependency....
|
1792853794.4940524
|
1792940194.4940524
|
|
45734
|
LaserRay by @jonas_gaden | Stardance
|
jonas_gaden
|
2
|
21.32
|
249
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T22:09:15Z", "hours": 12.0, "multiplier": 11.1, "payout": 129, "blessing": "neutral", "text": "This update completely changes the way my game works. By introducing live service integration using Supabase everybody is now able to create, share and publish levels to every other player. While the content of the last ship was very limited, my app now has transformed into a platform, open for everyone to create new content within a few minutes. But only that would be not enough! That’s why i also added a brand new step-by-step interactive tutorial, to give everyone the ability to understand the game right of the start. Now all thats left for me to say: Have fun and please <3 give me a good score and let me know what to add next", "repo": "https://github.com/agentquackyt/LaserCircuit", "demo": "https://agentquackyt.github.io/LaserCircuit/"}, {"ship_num": 2, "ts": "2026-08-24T22:03:22Z", "hours": 9.0, "multiplier": 12.89, "payout": 120, "blessing": "neutral", "text": "LaserCircuit ist is clever out-of-the-box thinking game, made and optimized for mobile use. This version includes 12 level, handcrafted by myself, with various different difficulties. For some problems you will need to think out of the box, but you will figure it out. And you only need 6/9 to unlock Stage 2", "repo": "https://github.com/agentquackyt/LaserCircuit", "demo": "https://agentquackyt.github.io/LaserCircuit/"}]...
|
[{"post_id": 73602, "ts": "202 [{"post_id": 73602, "ts": "2026-09-25T13:39:28Z", "hours": 0.3169, "text": "I improved the tutorial flow, now saving the tutorial state"}, {"post_id": 73333, "ts": "2026-09-24T21:59:10Z", "hours": 2.5467, "text": "Final devlog This is the final devlog before shipping, packed with a load of new and improved features, including but not limited to: a new Tutorial, introducing you into the core features an updated UI to ensure the grid has always the aspect ratio 1/1 updated the symbols used on the game board to improve readability shareable links to community levels, like this one => “Traffic Jam” New levels And so much more …"}, {"post_id": 73068, "ts": "2026-09-24T09:52:51Z", "hours": 1.71, "text": "The discover community levels screen is now fully working, making this the first time the new live service intergration is fully finished. I will do another polishing devlog, where i will add a tutorial on how to play and refine my UI further"}, {"post_id": 72874, "ts": "2026-09-23T22:24:38Z", "hours": 1.2708, "text": "I improved the editor ui and added a few useful features and indicators. I also force reload the site now, should the user decide to log out (As the editor is only accessible when signed in). Next i will add the new table in the backend database and then build both the own level tab as well as the discover tab"}, {"post_id": 72791, "ts": "2026-09-23T18:59:51Z", "hours": 1.7267, "text": "I am now working on the first version of the community level editor. Currently it works more or less, but the live service integration is not done yet. I decided to separate the normal levels from the user levels (different database table) but its not wired in as of right now"}, {"post_id": 72576, "ts": "2026-09-23T08:31:51Z", "hours": 0.7675, "text": "I worked on improving my GUI, starting with the Discord login screen. I am quite happy with the outcome, and the visual look in general. Next i will start working on the level editor itself and an level discovery screen after that"}, {"post_id": 72430, "ts": "2026-09-22T22:46:53Z", "hours": 1.9322, "text": "I am currently working on implementing login via Discord for user generated levels. I am also introducing a more structured way for the app to work, however its a slow process. Atleast i got the basic version of the login with Discord working"}, {"post_id": 71951, "ts": "2026-09-21T20:45:42Z", "hours": 1.6481, "text": "I am currently migrating the level structure to a data-as-backend solution, coming from a static, file-based level system. This give me the ability quickly add new levels, modify and exchange old ones and add time-limited levels. I am also reviewing the option to create an level builder with sharable levels, but this is only an idea i might come back to in the future."}, {"post_id": 54101, "ts": "2026-08-24T22:00:25Z", "hours": 0.6958, "text": "I added many new levels as well as building a stable release version and setting up a new README file. This will be the final devlog before my first ship, i hope you like it"}, {"post_id": 54042, "ts": "2026-08-24T20:02:07Z", "hours": 0.8731, "text": "I added more levels as well as improving the completion UI. To improve the workflow, i added an editor to quickly develop new levels (i used the File System API for the first time, allowing me to edit files directly in the browser without handeling upload and download) https://lapse.hackclub.com/timelapse/-edas1fyH1rh"}, {"post_id": 53978, "ts": "2026-08-24T18:05:36Z", "hours": 1.2856, "text": "I added a new layout for the finish screen, brought the level title and id (calculated from “(id/3)+1”+.+”(id%3)+1”) to the game screen and overall improved the UI"}, {"post_id": 53650, "ts": "2026-08-24T09:44:17Z", "hours": 1.3772, "text": "after quite a good amount of pain, i finally figured out a way to save the highscores and create “sets” of 9 levels, which you need to complete 6/9 to unlock the next set. My next session will be to clean up the UI and optimize both for PC as well as mobile"}, {"post_id": 53610, "ts": "2026-08-24T07:51:30Z", "hours": 1.0131, "text": "I fixed a weird bug which was caused by using a false ctx.restore(); too much, which caused the beams to render in different colors, despite the game working properly. I also added a new piece: The Obstacle. this piece is exclusive to the level creator, the player can not modfiy nor delete the block, requiring a interesting challenge for some levels . Next i will be working on the level loader and will create a few levels"}, {"post_id": 52936, "ts": "2026-08-23T09:50:19Z", "hours": 2.2358, "text": "I implemented a first basic version of the LightRay Game i am working on. It now supports mirrors and splitters. I am now working on polishing as well as building a level loader (levels stored as json files, a custom level editor is planned)"}, {"post_id": 43587, "ts": "2026-08-08T22:43:51Z", "hours": 0.9517, "text": "I designed a very simple start page for my game template (and added a UIpatcher class, which handles interaction with the dom, especially spawning and removing buttons and changing text)"}, {"post_id": 43545, "ts": "2026-08-08T21:33:40Z", "hours": 0.8717, "text": "I started my project by setting up a reusable Github Template, which includes basic styling (e.g. buttons) as well as reusable code, such as a basic game engine for loading scenes, managing score and sound manager. (coming soon) For now i stuck with styling the buttons, which now have 5 different styles with a simple animation. Next i will build a level basic loader and a new framework for the UI. I will try to target both mobile and desktop for the app."}]...
|
Title: LaserRay by @jonas_gaden | Stardance
Devlo Title: LaserRay by @jonas_gaden | Stardance
Devlogs:
I started my project by setting up a reusable Github Template, which includes basic styling (e.g. buttons) as well as reusable code, such as a basic game engine for loading scenes, managing score and sound manager. (coming soon) For now i stuck with styling the buttons, which now have 5 different styles with a simple animation. Next i will build a level basic loader and a new framework for the UI. I will try to target both mobile and desktop for the app.
I designed a very simple start page for my game template (and added a UIpatcher class, which handles interaction with the dom, especially spawning and removing buttons and changing text)
I implemented a first basic version of the LightRay Game i am working on. It now supports mirrors and splitters. I am now working on polishing as well as building a level loader (levels stored as json files, a custom level editor is planned)
I fixed a weird bug which was caused by using a false ctx.restore(); too much, which caused the beams to render in different colors, despite the game working properly. I also added a new piece: The Obstacle. this piece is exclusive to the level creator, the player can not modfiy nor delete the block, requiring a interesting challenge for some levels . Next i will be working on the level loader and will create a few levels
after quite a good amount of pain, i finally figured out a way to save the highscores and create “sets” of 9 levels, which you need to complete 6/9 to unlock the next set. My next session will be to clean up the UI and optimize both for PC as well as mobile
I added a new layout for the finish screen, brought the level title and id (calculated from “(id/3)+1”+.+”(id%3)+1”) to the game screen and overall improved the UI
I added more levels as well as improving the completion UI. To improve the workflow, i added an editor to quickly develop new levels (i used the File System API for the first time, allowing me to edit files directly in the browser without handeling upload and download) https://lapse.hackclub.com/timelapse/-edas1fyH1rh
I added many new levels as well as building a stable release version and setting up a new README file. This will be the final devlog before my first ship, i hope you like it
I am currently migrating the level structure to a data-as-backend solution, coming from a static, file-based level system. This give me the ability quickly add new levels, modify and exchange old ones and add time-limited levels. I am also reviewing the option to create an level builder with sharable levels, but this is only an idea i might come back to in the future.
I am currently working on implementing login via Discord for user generated levels. I am also introducing a more structured way for the app to work, however its a slow process. Atleast i got the basic version of the login with Discord working
I worked on improving my GUI, starting with the Discord login screen. I am quite happy with the outcome, and the visual look in general. Next i will start working on the level editor itself and an level discovery screen after that
I am now working on the first version of the community level editor. Currently it works more or less, but the live service integration is not done yet. I decided to separate the normal levels from the user levels (different database table) but its not wired in as of right now
I improved the editor ui and added a few useful features and indicators. I also force reload the site now, should the user decide to log out (As the editor is only accessible when signed in). Next i will add the new table in the backend database and then build both the own level tab as well as the discover tab
The discover community levels screen is now fully working, making this the first time the new live service intergration is fully finished. I will do another polishing devlog, where i will add a tutorial on how to play and refine my UI further
Final devlog This is the final devlog before shipping, packed with a load of new and improved features, including but not limited to: a new Tutorial, introducing you into the core features an updated UI to ensure the grid has always the aspect ratio 1/1 updated the symbols used on the game board to improve readability shareable links to community levels, like this one => “Traffic Jam” New levels And so much more …
I improved the tutorial flow, now saving the tutorial state
Ships:
LaserCircuit ist is clever out-of-the-box thinking game, made and optimized for mobile use. This version includes 12 level, handcrafted by myself, with various different difficulties. For some problems you will need to think out of the box, but you will figure it out. And you only need 6/9 to unlock Stage 2
This update completely changes the way my game works. By introducing live service integration using Supabase everybody is now able to create, share and publish levels to every other player. While the content of the last ship was very limited, my app now has transformed into a platform, open for everyone to create new content within a few minutes. But only that would be not enough! That’s why i also added a brand new step-by-step interactive tutorial, to give everyone the ability to understand the game right of the start. Now all thats left for me to say: Have fun and please <3 give me a good score and let me know what to add next...
|
1792850081.5911274
|
1792936481.5911274
|
|
55067
|
Word Chains by @Chicken502 | Stardance
|
Chicken502
|
2
|
47.97
|
501
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T21:13:23Z", "hours": 22.0, "multiplier": 18.45, "payout": 403, "blessing": "neutral", "text": "Word Chains V0.4b is out! Since the last ship I’ve been working very hard to add a whole slew of features. There is now 200 new levels, daily puzzles and a tutorial (very requested last ship!). I had a lot of fun making this, and I hope you have a lot of fun playing it! The main part of this ship was rewriting the level loading code, and generating files for levels. I didn’t want to write 200 puzzles by hand. I found did some research and wrote a small script to generate the puzzles for me. I do eventually want to add more to Word Chains after this ship but it probably won’t be for a little while as I have other projects I want to work on. But the end goal is to get Word Chains onto a app store. Last Note: When reviewing please do not feel like you need to complete all the levels, and have fun!", "repo": "https://github.com/Chiken502/WordChains", "demo": "https://chicken502.itch.io/word-chains"}, {"ship_num": 2, "ts": "2026-09-06T14:26:12Z", "hours": 8.0, "multiplier": 12.68, "payout": 98, "blessing": "neutral", "text": "I just finished making a small word puzzle game called Word Chains. To play, you drag letters to change your current word one letter at a time! There are 15 different levels with a wide range of difficulty. This game was originally intended to be played on a phone, but getting it on to the app stores is a little out of my league right now, although you can still play the itch version on your phone, but maybe next year Ill get it onto a app store! I had a lot of fun making this project and I might add some more things later like daily puzzles or more color options. I started this project before I found hack club so sadly not all my hours are accounted for. This was really fun to work on this project and show it of to my friends. I learned more about marketing my games with devlogs, and learned that after 5 years of making games with Godot, I’ve been exporting them to the web wrong this whole time! Thanks so much for taking the time to check this project out! Can’t wait to see what everyone thinks!", "repo": "https://github.com/Chiken502/WordChains", "demo": "https://chicken502.itch.io/word-chains"}]...
|
[{"post_id": 81908, "ts": "202 [{"post_id": 81908, "ts": "2026-10-22T23:04:41Z", "hours": 1.9497, "text": "New Hint Mechanic and BUGS! As I’m nearing the end of this project (or at least this version) I’ve been doing a lot of bug fixing . This time around I squashed a major bug that has been annoying me for some time now. For some reason, Godot doesn’t have native keyboard support for IOS devices, unless you go into the advanced export settings and turn them on. And since there are text boxes for writing your nickname, this is kinda needed. Hint rewarding changed This is a feature that I’ve been intending to add for a couple weeks now. In the past every time you complete a level, you gain an new hint. Now you get hints after completing a set number of puzzles. Each difficulty has a different value for this as well. So it takes less completed puzzles on difficult puzzles than on easy puzzles to earn hints. With this I also added a small animation to show that you got a new hint! Secret Solutions This was not an intended feature that I meant to add. But its hear to stay! Recently I changed how puzzles are generated , by using a cleaned up dictionary, that only has more frequently used words. But I still let the user make connections with less frequent words, so sometimes its possible to find shorter solutions then intended . This used to leave the leftover letters behind to use on the next puzzle which messed everything up. I have now fixed this issue , and added a little message telling you that you have “Found a Secret Solution!” What’s next? Things are wrapping up , both with Stardance and WordChains. I only have two items left on my todo list , the first being to add more puzzles, which will only take a couple of minutes, and the second is a bug which I’m not sure I can even start to debug since I think it only happens on my phone, where I can’t see the console. Once I add these things, WordChains is ready to ship! I’m expecting to ship on Tuesday or Wednesday, but It might even happen over the weekend. Once Stardance is over, WordChains will still continue development. If you want to follow the devlopment, go follow it over on itch.io"}, {"post_id": 80845, "ts": "2026-10-19T00:18:28Z", "hours": 3.6275, "text": "Stats and game reset. Finally got around to making the stats page. You can now see stats like how many puzzles you have completed, how many hints you’ve used and even how many times you have dragged a letter. This wasn’t to hard to add although it did take a little while. Reset game Now you can wipe your save file to replay levels. The also wasn’t anything to difficult to do but it ended up take about an hour to figure out how to style the confirmation pop up. This did show me a couple things that needed fixing regarding the tutorial, and even some stat tracking that I coded in wrong. What’s next! We have some small bug fixes that need to be made, and some other small features like adding more settings, compressing the puzzle files so they don’t get to big later on, and some small sound design changes. From there all that needs to be done is some formatting and spelling checks (cause I am terrible at spelling) and updating the README, then we are ready to SHIP!!!"}, {"post_id": 80156, "ts": "2026-10-16T13:17:16Z", "hours": 1.2933, "text": "Puzzle Generation Overhaul Not a lot to say about this other than there are 200 new puzzles (just changed them out though)! I created a new python script that uses python libraries wordfreq and better_profanity , to clean up the generation dictionary. What this does is takes out words that are to infrequently used or are marked as profanity. One thing to note is that this is not the dictionary in game that this cleans. It just cleans the dictionary that I use to generate puzzles . So in game it is still possible to spell obscure words, which opens the opportunity to find alternant solutions. Another thing that I added to my puzzle selector script was the ability to append new puzzles to a file allowing me to later add more puzzles very easily. What’s next? I plan on doing some more puzzle generation tweaks , as well as adding in a stats page! That’s most of what’s on the timeline, so were getting near the end!"}, {"post_id": 78868, "ts": "2026-10-11T20:18:16Z", "hours": 3.7161, "text": "New UI! The main menu has been changed, and some new features are coming soon! Dictionary Polishing I added in some much needed polishing to the dictionary panel that added in yesterday. I added a loading panel as it used to just show the previous term you looked up, then jumped to the new one when it loaded. Currently its just a progress bar with a small animation to it, but it works for now. I’m also thinking about reusing it in other areas too. New Credit Screen! I’ve been wanting to change the credits screen for a while now, as its just been a static wall of text. For right now it mostly still is a static wall of text. But with more stuff! I have some tweens when you hover over the text which was missing in the old version. I’m not entirely happy with this one, but its still much better. New Main Menu Buttons! What are those about? Added two new buttons. One for level select, and one for a stats page (not added yet! but soon). Now when you press the big play button you go to the last level you were playing, instead of level select. What’s next for Word Chains I have some plans for what’s next for Word Chains, like a stats page! I’m also planning some new puzzles."}, {"post_id": 78421, "ts": "2026-10-10T19:19:56Z", "hours": 4.1831, "text": "#New Dictionary Feature & Bug Fixes! We are back! School finally caught up to me so things slowed down over the last week, but I think I’m back! So lets get started! New Dictionary Feature One thing I’ve wanted to add for a while was a way to look up the definition for the current word . So now using a this free API I added this feature. It still has some small polishing things that need to be done but overall it pretty much done. Bug Fixes I also took some time todo some bug fixing. Most of them originated from added the Timed Mode like leaderboards displaying scores incorrectly and medium difficulty level progress being saved in timed mode. Another bug that I fixed was UI scaling . When you play WordChains on a phone, the buttons and everything can be really small. It only took some changes to the project settings but it was very needed as the end goal is for WordChains to be on the app store! ##Puzzle Generation One small thing that I also worked on was making levels more normal. The way levels are generated is by picking random words from the dictionary that I’m using, and seeing if they connect. This gets us to have some really weird words. I wrote a little program in python to clean up the words but checking if the word use frequency was above a certain level. This hasn’t been implemented yet but it hopefully will be in the coming week. Thanks for reading! I’ve been trying to put more effort into these devlogs , plus I haven’t posted in over a week so wanted to let everyone know what’s going on with WordChains! If you want to play it you can do so here although this version doesn’t have all the new features yet . You can follow the project to be notifed when it does though!"}, {"post_id": 75232, "ts": "2026-09-29T15:20:11Z", "hours": 1.5033, "text": "Timed Mode What’s new Added new timed mode , where you have 90 seconds to complete as many medium difficulty levels as you can. Then your score gets submitted to a leaderboard . This was not very difficult to add but I didn’t have a lot of time, so it’s very unpolished right now. I need some balancing and some tweens to add to it. There is also a lot of bugs that I think I introduce that I get to go hunt for later today. YIPPEE! Whats coming up soon Puzzle generation rehaul. The way I created all 200 levels for WordChains is through a algorithm that hunts through every possible puzzle combination that could be made from the dictionary that I’m using. This worked for the last shift but It wont work in the long run as some puzzles just have completely random words that don’t seem like they are really words. In other words I think I need to update the dictionary that the algorithm takes from."}, {"post_id": 74604, "ts": "2026-09-27T19:09:55Z", "hours": 1.6953, "text": "Level Reset Button Just shipped! I just got the reviews in for the last ship, and things were very positive! There were a couple little bugs that people found as well as a lot of people wanting one feature: a level reset button! So I added one! What’s coming up in the future Based on recent feedback, I want to continue working on this game with the end goal of publishing WordChains into the Apple App Store . So here are some of the features that are coming soonish: Timed Mode : See how many levels you can complete in a set amount of time. Daily Streak and Personal Records : Keep track of everything. EVEN MORE PUZZLES : But also working on condensing the puzzle files, and imporving the quality of the puzzles, as currently some of the words are really random, which make the puzzle a bit tricky Better Credits Screen(?) : I want to improve the current credits screen, to add more personality so its not just a wall of text. This isn’t a necessary feature but something that I would like to add."}, {"post_id": 72901, "ts": "2026-09-24T00:02:32Z", "hours": 1.2467, "text": "Last touches! Planning on shipping tomorrow, so finished up some small things. I added a label to the top of the game screen to tell you what level you are currently on. The other big thing I did was update the README with all the updates in the new version. All I have to do tomorrow is hit ship!"}, {"post_id": 72457, "ts": "2026-09-23T00:46:57Z", "hours": 2.2489, "text": "Documentation Took some time to update/add documentation to most of the scripts. I haven’t done this for a very long time, and since the project will likely be shipped very soon, they should be intelligible. Also took some time to update some images in the README to reflect recent updates."}, {"post_id": 71531, "ts": "2026-09-21T00:48:06Z", "hours": 6.2325, "text": "200 NEW LEVELS! Yes you are reading that right folks! 200 new levels (and the ability to easily add tons more) have been added to Word Chains! A while ago for the daily puzzle creation I created some algorithms to create a list of puzzles from all the words in the dictionary that I’m using, and then randomly select some. I ended up generating 4,125,015 puzzles with word lengths of 4-8 letters . I then generated difficulties and selected 50 per each difficulty. I then created this new UI for the level select screen . I then wasted an hour trying to find a very small bug that was caused by my over complicated code! Where in the home stretch now and word chains is almost ready to be shipped!"}, {"post_id": 69418, "ts": "2026-09-17T00:42:52Z", "hours": 1.68, "text": "New Settings and Color! Added Teal as a color! I want to add more colors, but I’ve used most of the rainbow now so don’t know how many more will be coming. I also added the ability to change your leaderboard display name , and the ability to replay the tutorial . These can both be found in the settings page. Getting the leaderboard display name to change was actually more challenging than I thought it would be due to a bug in the Godot CheddaBoard SDK that I was using, but the updated Github had a version that worked! One thing to note about changing the display name: The change will not appear on the leaderboard until the next time you submit a score, or in other words till the next day."}, {"post_id": 68375, "ts": "2026-09-15T00:59:59Z", "hours": 2.6225, "text": "Leaderboard and Daily Puzzles Complete! Got the leaderboard to work and finished up some polishing touches to this leaderboard screen. The big challenge today was getting the chosen nickname to save and be used , then not prompt for it again (although I’m planning on being able to change it in settings later). I also changed my API that I was using to get the time, so I could get the correct daily puzzle, to UTC to align with CheddaBoards daily reset for my leaderboard. Another big thing was you can now only play the daily puzzle once ! This took a bit longer than I would have liked, but oh well!"}, {"post_id": 67742, "ts": "2026-09-13T23:45:07Z", "hours": 5.4233, "text": "Daily Puzzle and Leaderboard(kinda) Today was all about the daily puzzles. I generated a list of about 360 puzzles, then used an API to fetch the day of the year, and got the puzzle at that index. All in all that part was super easy! But the leaderboards, not so much. They are still being worked on in fact! I’m trying to use a service called CheddaBoards but I keep running into random issues that shouldn’t be issues. I think I’m just going to switch my leaderboard service, and rewrite all the code. But I need a break today, as 5 hours is a lot of coding for me."}, {"post_id": 66015, "ts": "2026-09-11T15:31:23Z", "hours": 1.6583, "text": "Tutorial and New Color One piece of feedback that I got from playtesting was to add a tutorial . So I made it so when you first play the game, the tutorial mode is activated. This shows a hand that will show you how to drag the letters. If you need the animation to replay you can use the hint button at no cost. Another quick thing I added was a new color, Green ! It might be tweeked in the future but for now I’m happy with it."}, {"post_id": 65611, "ts": "2026-09-10T21:06:12Z", "hours": 0.7383, "text": "Updated Repo Organization and README Last week I shipped Word Chains, and the reviews are back! People seem to like it and even 4 minuets before logged on to post this devlog, Word Chains was given a Super Star! Wow! Thanks everyone! Feedback from the ship was amazing, although there were some comments about a couple things, like the repo being messy. This is what I worked on today was cleaning up the repo and adding some more stuff to the README like update notes, and the project’s file structure. In the near future I plan on adding a couple things like… daily puzzles with leaderboards, a actual tutorial, new colors and more!"}, {"post_id": 62935, "ts": "2026-09-06T14:09:04Z", "hours": 0.5508, "text": "v0.3b Finished! I just uploaded the v0.3b builds to by itch page so you can play with all the new updates here ! This update added the new level select screen and the 5 new levels. I added a couple little tweeks this morning before finally uploading everything to itch.io. And for the first time I created a Windows and Linux builds, which went much smoother than I thought."}, {"post_id": 62534, "ts": "2026-09-05T23:22:18Z", "hours": 3.0839, "text": "Level Select Screen Finally took the time to create a working level select screen! This was one of the last big features that I have to add to this game before I ship it. In order to make this, I had to redo the way I saved the game, and needed to change some stuff on my color changing code. If you haven’t noticed from my devlogs, One of the options in the settings, is to change the games color. That was made before I came across HackClub so sadly I don’t get credit for the multiple hours that it took to make that feature."}, {"post_id": 58165, "ts": "2026-08-30T15:01:32Z", "hours": 1.7544, "text": "Bug fixes and new levels! Added 5 new levels into the game, but a little concerned with the difficulty scaling so far. I’ve also added some squash and stretch to the letters when you drag them, which was a bit tricky to figure out how to do with my code base so far. If you want to check it you you can do so here ."}, {"post_id": 57616, "ts": "2026-08-29T20:31:48Z", "hours": 1.6956, "text": "Bug Fixing plus new splash screen audio! One big issue I had was that the icons in the web build weren’t rendering correctly. If you look in the screenshot, the icons I’m talking about are the check box, the slider grabbers, etc.. The big problem I had was I was trying to read a file that was not able to be read at runtime on the web build due to them being compressed into a .pck file by Godot. The way I got around this is by adding .txt to the end of the file. I also found some sound effects for the splash screen that I’m using, so I added that today as well. If you want to play this game the beta version is on itch.io at https://chicken502.itch.io/word-chains"}, {"post_id": 56293, "ts": "2026-08-28T00:35:53Z", "hours": 0.7311, "text": "First update to my game! I just found out about HackClub, and ive been working on this project for a couple of weeks. This is my first update here! I just added fullscreen support for my game WordChains! I made everything auto scale to the window size, and when the window is resized, letters that are now off the screen get respawned instead of just snaping to the edge."}]...
|
Title: Word Chains by @Chicken502 | Stardance
Dev Title: Word Chains by @Chicken502 | Stardance
Devlogs:
First update to my game! I just found out about HackClub, and ive been working on this project for a couple of weeks. This is my first update here! I just added fullscreen support for my game WordChains! I made everything auto scale to the window size, and when the window is resized, letters that are now off the screen get respawned instead of just snaping to the edge.
Bug Fixing plus new splash screen audio! One big issue I had was that the icons in the web build weren’t rendering correctly. If you look in the screenshot, the icons I’m talking about are the check box, the slider grabbers, etc.. The big problem I had was I was trying to read a file that was not able to be read at runtime on the web build due to them being compressed into a .pck file by Godot. The way I got around this is by adding .txt to the end of the file. I also found some sound effects for the splash screen that I’m using, so I added that today as well. If you want to play this game the beta version is on itch.io at https://chicken502.itch.io/word-chains
Bug fixes and new levels! Added 5 new levels into the game, but a little concerned with the difficulty scaling so far. I’ve also added some squash and stretch to the letters when you drag them, which was a bit tricky to figure out how to do with my code base so far. If you want to check it you you can do so here .
Level Select Screen Finally took the time to create a working level select screen! This was one of the last big features that I have to add to this game before I ship it. In order to make this, I had to redo the way I saved the game, and needed to change some stuff on my color changing code. If you haven’t noticed from my devlogs, One of the options in the settings, is to change the games color. That was made before I came across HackClub so sadly I don’t get credit for the multiple hours that it took to make that feature.
v0.3b Finished! I just uploaded the v0.3b builds to by itch page so you can play with all the new updates here ! This update added the new level select screen and the 5 new levels. I added a couple little tweeks this morning before finally uploading everything to itch.io. And for the first time I created a Windows and Linux builds, which went much smoother than I thought.
Updated Repo Organization and README Last week I shipped Word Chains, and the reviews are back! People seem to like it and even 4 minuets before logged on to post this devlog, Word Chains was given a Super Star! Wow! Thanks everyone! Feedback from the ship was amazing, although there were some comments about a couple things, like the repo being messy. This is what I worked on today was cleaning up the repo and adding some more stuff to the README like update notes, and the project’s file structure. In the near future I plan on adding a couple things like… daily puzzles with leaderboards, a actual tutorial, new colors and more!
Tutorial and New Color One piece of feedback that I got from playtesting was to add a tutorial . So I made it so when you first play the game, the tutorial mode is activated. This shows a hand that will show you how to drag the letters. If you need the animation to replay you can use the hint button at no cost. Another quick thing I added was a new color, Green ! It might be tweeked in the future but for now I’m happy with it.
Daily Puzzle and Leaderboard(kinda) Today was all about the daily puzzles. I generated a list of about 360 puzzles, then used an API to fetch the day of the year, and got the puzzle at that index. All in all that part was super easy! But the leaderboards, not so much. They are still being worked on in fact! I’m trying to use a service called CheddaBoards but I keep running into random issues that shouldn’t be issues. I think I’m just going to switch my leaderboard service, and rewrite all the code. But I need a break today, as 5 hours is a lot of coding for me.
Leaderboard and Daily Puzzles Complete! Got the leaderboard to work and finished up some polishing touches to this leaderboard screen. The big challenge today was getting the chosen nickname to save and be used , then not prompt for it again (although I’m planning on being able to change it in settings later). I also changed my API that I was using to get the time, so I could get the correct daily puzzle, to UTC to align with CheddaBoards daily reset for my leaderboard. Another big thing was you can now only play the daily puzzle once ! This took a bit longer than I would have liked, but oh well!
New Settings and Color! Added Teal as a color! I want to add more colors, but I’ve used most of the rainbow now so don’t know how many more will be coming. I also added the ability to change your leaderboard display name , and the ability to replay the tutorial . These can both be found in the settings page. Getting the leaderboard display name to change was actually more challenging than I thought it would be due to a bug in the Godot CheddaBoard SDK that I was using, but the updated Github had a version that worked! One thing to note about changing the display name: The change will not appear on the leaderboard until the next time you submit a score, or in other words till the next day.
200 NEW LEVELS! Yes you are reading that right folks! 200 new levels (and the ability to easily add tons more) have been added to Word Chains! A while ago for the daily puzzle creation I created some algorithms to create a list of puzzles from all the words in the dictionary that I’m using, and then randomly select some. I ended up generating 4,125,015 puzzles with word lengths of 4-8 letters . I then generated difficulties and selected 50 per each difficulty. I then created this new UI for the level select screen . I then wasted an hour trying to find a very small bug that was caused by my over complicated code! Where in the home stretch now and word chains is almost ready to be shipped!
Documentation Took some time to update/add documentation to most of the scripts. I haven’t done this for a very long time, and since the project will likely be shipped very soon, they should be intelligible. Also took some time to update some images in the README to reflect recent updates.
Last touches! Planning on shipping tomorrow, so finished up some small things. I added a label to the top of the game screen to tell you what level you are currently on. The other big thing I did was update the README with all the updates in the new version. All I have to do tomorrow is hit ship!
Level Reset Button Just shipped! I just got the reviews in for the last ship, and things were very positive! There were a couple little bugs that people found as well as a lot of people wanting one feature: a level reset button! So I added one! What’s coming up in the future Based on recent feedback, I want to continue working on this game with the end goal of publishing WordChains into the Apple App Store . So here are some of the features that are coming soonish: Timed Mode : See how many levels you can complete in a set amount of time. Daily Streak and Personal Records : Keep track of everything. EVEN MORE PUZZLES : But also working on condensing the puzzle files, and imporving the quality of the puzzles, as currently some of the words are really random, which make the puzzle a bit tricky Better Credits Screen(?) : I want to improve the current credits screen, to add more personality so its not just a wall of text. This isn’t a necessary feature but something that I would like to add.
Timed Mode What’s new Added new timed mode , where you have 90 seconds to complete as many medium difficulty levels as you can. Then your score gets submitted to a leaderboard . This was not very difficult to add but I didn’t have a lot of time, so it’s very unpolished right now. I need some balancing and some tweens to add to it. There is also a lot of bugs that I think I introduce that I get to go hunt for later today. YIPPEE! Whats coming up soon Puzzle generation rehaul. The way I created all 200 levels for WordChains is through a algorithm that hunts through every possible puzzle combination that could be made from the dictionary that I’m using. This worked for the last shift but It wont work in the long run as some puzzles just have completely random words that don’t seem like they are really words. In other words I think I need to update the dictionary that the algorithm takes from.
#New Dictionary Feature & Bug Fixes! We are back! School finally caught up to me so things slowed down over the last week, but I think I’m back! So lets get started! New Dictionary Feature One thing I’ve wanted to add for a while was a way to look up the definition for the current word . So now using a this free API I added this feature. It still has some small polishing things that need to be done but overall it pretty much done. Bug Fixes I also took some time todo some bug fixing. Most of them originated from added the Timed Mode like leaderboards displaying scores incorrectly and medium difficulty level progress being saved in timed mode. Another bug that I fixed was UI scaling . When you play WordChains on a phone, the buttons and everything can be really small. It only took some changes to the project settings but it was very needed as the end goal is for WordChains to be on the app store! ##Puzzle Generation One small thing that I also worked on was making levels more normal. The way levels are generated is by picking random words from the dictionary that I’m using, and seeing if they connect. This gets us to have some really weird words. I wrote a little program in python to clean up the words but checking if the word use frequency was above a certain level. This hasn’t been implemented yet but it hopefully will be in the coming week. Thanks for reading! I’ve been trying to put more effort into these devlogs , plus I haven’t posted in over a week so wanted to let everyone know what’s going on with WordChains! If you want to play it you can do so here although this version doesn’t have all the new features yet . You can follow the project to be notifed when it does though!
New UI! The main menu has been changed, and some new features are coming soon! Dictionary Polishing I added in some much needed polishing to the dictionary panel that added in yesterday. I added a loading panel as it used to just show the previous term you looked up, then jumped to the new one when it loaded. Currently its just a progress bar with a small animation to it, but it works for now. I’m also thinking about reusing it in other areas too. New Credit Screen! I’ve been wanting to change the credits screen for a while now, as its just been a static wall of text. For right now it mostly still is a static wall of text. But with more stuff! I have some tweens when you hover over the text which was missing in the old version. I’m not entirely happy with this one, but its still much better. New Main Menu Buttons! What are those about? Added two new buttons. One for level select, and one for a stats page (not added yet! but soon). Now when you press the big play button you go to the last level you were playing, instead of level select. What’s next for Word Chains I have some plans for what’s next for Word Chains, like a stats page! I’m also planning some new puzzles.
Puzzle Generation Overhaul Not a lot to say about this other than there are 200 new puzzles (just changed them out though)! I created a new python script that uses python libraries wordfreq and better_profanity , to clean up the generation dictionary. What this does is takes out words that are to infrequently used or are marked as profanity. One thing to note is that this is not the dictionary in game that this cleans. It just cleans the dictionary that I use to generate puzzles . So in game it is still possible to spell obscure words, which opens the opportunity to find alternant solutions. Another thing that I added to my puzzle selector script was the ability to append new puzzles to a file allowing me to later add more puzzles very easily. What’s next? I plan on doing some more puzzle generation tweaks , as well as adding in a stats page! That’s most of what’s on the timeline, so were getting near the end!
Stats and game reset. Finally got around to making the stats page. You can now see stats like how many puzzles you have completed, how many hints you’ve used and even how many times you have dragged a letter. This wasn’t to hard to add although it did take a little while. Reset game Now you can wipe your save file to replay levels. The also wasn’t anything to difficult to do but it ended up take about an hour to figure out how to style the confirmation pop up. This did show me a couple things that needed fixing regarding the tutorial, and even some stat tracking that I coded in wrong. What’s next! We have some small bug fixes that need to be made, and some other small features like adding more settings, compressing the puzzle files so they don’t get to big later on, and some small sound design changes. From there all that needs to be done is some formatting and spelling checks (cause I am terrible at spelling) and updating the README, then we are ready to SHIP!!!
New Hint Mechanic and BUGS! As I’m nearing the end of this project (or at least this version) I’ve been doing a lot of bug fixing . This time around I squashed a major bug that has been annoying me for some time now. For some reason, Godot doesn’t have native keyboard support for IOS devices, unless you go into the advanced export settings and turn them on. And since there are text boxes for writing your nickname, this is kinda needed. Hint rewarding changed This is a feature that I’ve been intending to add for a couple weeks now. In the past every time you complete a level, you gain an new hint. Now you get hints after completing a set number of puzzles. Each difficulty has a different value for this as well. So it takes less completed puzzles on difficult puzzles than on easy puzzles to earn hints. With this I also added a small animation to show that you got a new hint! Secret Solutions This was not an intended feature that I meant to add. But its hear to stay! Recently I changed how puzzles are generated , by using a cleaned up dictionary, that only has more frequently used words. But I still let the user make connections with less frequent words, so sometimes its possible to find shorter solutions then intended . This used to leave the leftover letters behind to use on the next puzzle which messed everything up. I have now fixed this issue , and added a little message telling you that you have “Found a Secret Solution!” What’s next? Things are wrapping up , both with Stardance and WordChains. I only have two items left on my todo list , the first being to add more puzzles, which will only take a couple of minutes, and the second is a bug which I’m not sure I can even start to debug since I think it only happens on my phone, where I can’t see the console. Once I add these things, WordChains is ready to ship! I’m expecting to ship on Tuesday or Wednesday, but It might even happen over the weekend. Once Stardance is over, WordChains will still continue development. If you want to follow the devlopment, go follow it over on itch.io
Ships:
I just finished making a small word puzzle game called Word Chains. To play, you drag letters to change your current word one letter at a time! There are 15 different levels with a wide range of difficulty. This game was originally intended to be played on a phone, but getting it on to the app stores is a little out of my league right now, although you can still play the itch version on your phone, but maybe next year Ill get it onto a app store! I had a lot of fun making this project and I might add some more things later like daily puzzles or more color options. I started this project before I found hack club so sadly not all my hours are accounted for. This was really fun to work on this project and show it of to my friends. I learned more about marketing my games with devlogs, and learned that after 5 years of making games with Godot, I’ve been exporting them to the web wrong this whole time! Thanks so much for taking the time to check this project out! Can’t wait to see what everyone thinks!
Word Chains V0.4b is out! Since the last ship I’ve been working very hard to add a whole slew of features. There is now 200 new levels, daily puzzles and a tutorial (very requested last ship!). I had a lot of fun making this, and I hope you have a lot of fun playing it! The main part of this ship was rewriting the level loading code, and generating files for levels. I didn’t want to write 200 puzzles by hand. I found did some research and wrote a small script to generate the puzzles for me. I do eventually want to add more to Word Chains after this ship but it probably won’t be for a little while as I have other projects I want to work on. But the end goal is to get Word Chains onto a app store. Last Note: When reviewing please do not feel like you need to complete all the levels, and have fun!...
|
1792853254.483679
|
1792939654.483679
|
|
61021
|
Expenses-tracker by @kareemwaleed | Stardance
|
kareemwaleed
|
2
|
3.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:21:21Z", "hours": 1.0, "multiplier": 1.52, "payout": 1, "blessing": "neutral", "text": "I improved the ui /ux I made the site responsive I added animations on hovering", "repo": "https://github.com/kokx138/expenses-tracker", "demo": "https://kokx138.github.io/expenses-tracker/"}, {"ship_num": 2, "ts": "2026-09-21T10:56:20Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a complete working expenses tracker you can add income and expenses in it , it is fully working you can add income by entering positive values you can add expenses by adding - values it saves what you have entered in local storage I found it challenging to write js code and I got many bugs because I often forget the semi column", "repo": "https://github.com/kokx138/expenses-tracker", "demo": "https://kokx138.github.io/expenses-tracker/"}]...
|
[{"post_id": 73308, "ts": "202 [{"post_id": 73308, "ts": "2026-09-24T20:19:46Z", "hours": 1.045, "text": "I improved the ui of my expense tracker and I added some animations also I made it responsive"}, {"post_id": 71705, "ts": "2026-09-21T10:50:33Z", "hours": 0.5956, "text": "MY SITE IS FINALLY WORKING I ADDED JS"}, {"post_id": 67003, "ts": "2026-09-13T01:13:01Z", "hours": 1.5892, "text": "Thats expenses tracker"}]...
|
Title: Expenses-tracker by @kareemwaleed | Stardan Title: Expenses-tracker by @kareemwaleed | Stardance
Devlogs:
Thats expenses tracker
MY SITE IS FINALLY WORKING I ADDED JS
I improved the ui of my expense tracker and I added some animations also I made it responsive
Ships:
I made a complete working expenses tracker you can add income and expenses in it , it is fully working you can add income by entering positive values you can add expenses by adding - values it saves what you have entered in local storage I found it challenging to write js code and I got many bugs because I often forget the semi column
I improved the ui /ux I made the site responsive I added animations on hovering...
|
1792813787.6601605
|
1792900187.6601605
|
|
52019
|
Pointer Fighter (C based) by @nano | Stardance
|
nano
|
1
|
58.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:19:08Z", "hours": 58.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A roguelike room crawler completely built in C! What is in it? Randomly generated rooms with a fog of war for you to explore Three different enemy types with scaling difficulty Boss fights with unique item drop RPG Style fighting An interactive inventory that can be used during battle A battle log that tracks everything that happens in battle Items, pickups and a persistent highscore What am I proud of? The enemy pursuit and fleeing system. It was somewhat hard to implement but I think it made the game wayyyy better than before. I’m also proud of how the state machine turned out in the end. The game has strict separations between the different game states and first handles what the player/the game did during the game loop iteration and then after that is done draws it to the screen. That state machine was very prone to bugs and I had to spend a bunch of time to fix (fallthrough bug, etc. all talked about in devlogs). But I think the result that turned out at the end was great and I am very content with it How is it built? As said its completely built in C using ncurses as its graphics library using 12 source files (currently) with each one having a specific task only it does. The build is released using GitHub workflows and the binary can easily be downloaded and used on (almost) all glibc linux distros (the project was compiled for Ubuntu and you will have to install ncurses though) What I learned The game was actually my first real coding project ever apart from a few simple websites so I learned a bunch. I learned how to separate state transitions, I learned the importance of good and bad switch statements, bounds checking (really rough path) and I think most importantly: The power of code separation and making every file do its designated task. I often caught myself picking the easy and sloppy path and then fixing it properly and in retrospect helped with preventing a bunch of bugs Known limitations / plans for the future It’s my first project, so there are likely still issues I haven’t found. Even though I tried to find everything (a.e. using Valgrind told me there are no memory blocks definitely lost) there are still potentially memory safety issues or potential segfaults. It’s possible some edge cases might have slipped through. I’ve tested the project thoroughly and haven’t found any crashes since the last few debugging sessions but I cannot safely say it’s perfect. I think if I will find the time I will maybe add some new features like new special item related enemies or player status effects though I cannot safely say if i can Closing word I think building a game for my first real project was the right decision for me because I really had a bunch of fun building this project. I currently have some ideas for unrelated new projects (one is up on my profile check it out (; ) and I think this project was a really good pathway into coding for me. Check the GitHub and the demo video out and I hope you like the project", "repo": "https://github.com/skibidi-nano/Stardance-roguelike", "demo": "https://github.com/skibidi-nano/Stardance-roguelike/releases/tag/v1.0.1"}]...
|
[{"post_id": 73295, "ts": "202 [{"post_id": 73295, "ts": "2026-09-24T19:37:40Z", "hours": 3.1092, "text": "LOG 26: FINAL DEVLOG MAINLY BUG FIXES AND SOME MINOR CHANGES CHANGES Enemies previously scaled to strongly and beat you too hard after the boss fight. Also because it was hard to scale the opponents down i decided to make the hp of everyone higher (everything got stronger in theory, player has 100 starting hp, does 20 damage etc.) LATE ADDITIONS LICENSE I licensed the project under the MIT licesne because it seemed fitting BUILD FILE I added a build file for the repo so i could upload a release binary (ncurses is required tho) BUG FIXES HIGHSCORE BUG There was a bug with the highscore not being displayed when there was no highscore.txt file. I needed to change the handling of the fact that the open function returned NULL, because NULL either meant, no file was there or no file could be found which resulted in no file being created because the function exited when the open function returned NULL, the fix was pretty simple overall tho (just adding an extra if conditional to check) FULL INVENTORY BUG Previously when having a full inventory, you couldnt pick up new items, issue was when using items that state didnt reset so one full inventory meant no items anymore :( . The fix was just to reset the state after using items BOSS ITEM INVENTORY BUG I forgot to make the boss item return the correct state which resulted in the item sometimes not being put in the inventory. The fix was just to add return ENTER_LEGAL to the boss items if statement SET ROOM ISSUE Because of random rooms sometimes boss room dimensions where bigger than current room which resulted in bugs (see previous devlogs). My previous fix worked in theory but had more affinity for potential bugs so i changed the set room function from two static values to two values that get passed into the function"}, {"post_id": 71417, "ts": "2026-09-20T19:47:13Z", "hours": 5.0142, "text": "LOG 25: FLEEING ENEMIES (CONTAINS MANY CHANGES), BOSS ITEM REFACTOR FLEEING ENEMIES Enemies (except the boss) now have the ability to run away if the enemy would get killed by the next attack. The chance for this to happen is 10% and when they run away, they gain 1 HP per step they take and return to chasing the enemy if their hp is back at half of their max HP. FLEEING REWORK Before adding this feature, fleeing was the same practically as winning (the return type of the fight was STATE_VICTORY), i changed that to the proper STATE _FLED. Also before when fleeing, if you fled and another enemy of another type collided with you, he had normal stats but the enemy before that also got his stats reset. The same went for enemies of the same type. When fleeing from enemy A from type A and then colliding with enemy B from type A, he would have the stats of enemy A. The fix for both was to make a 2D Array of all enemies and their types, so each individual enemy stores its stats, not the battle function. PLAYER POSITION STRUCT Previously the player had ~ 8 different position variables, which was pretty clunky if i wanted to transport the player position to another function. Because of that i put all player positions into a singular struct, so i could pass all the player positions at once if i needed to. ENEMY PURSUIT FUNCTION REWORK Because enemies have to run away instead of chasing i had to rework the pursuit function a bit so it could also work in a reverse way. I had to make the function branch between the two states which took a bit more work than originally anticipated because i had a bunch of wrong ideas for how the function should work. Overall the function implementation was essentially to just use the inverse vector of the normal vector for the direction function BOSS ITEM FUNCTION/ITEM FUNCTION REFACTOR Because previously the boss item detection function and the item detection were separate the code didnt feel clean at all (felt like a lazy implementation for me), so i made the item function work with the boss item which makes the item function overall more open for new item types (if i will add any more)"}, {"post_id": 69703, "ts": "2026-09-17T16:40:29Z", "hours": 4.2308, "text": "LOG 24: BOSS ITEM DROP, CONTROLS SCREEN, NEW IN-GAME BANNER, ITEM TO INVENTORY REFACTOR, BUG FIXES FEATURES BOSS ITEM DROP I added an item that only the boss drops, when killed. Its ability is to make the enemy unable to attack for one turn. You will always get it when defeating the boss and has the ‘?’ glyph compare to regular items (‘+’). Its also the only item that can always be picked up (with normal items, if your inventory is full you cannot pick them up, with the boss item your first slot gets overwritten). CONTROLS SCREEN I added a basic controls screen so people that try the game out (now or when it ships), know what to do when playing. Currently most things are really straightforward but i added it just in case. The most important aspect will probably how to end the game because thats the most unintuitive one (even though i hope anyone testing the game doesnt want to quit it) ITEM TO INVENTORY REFACTOR I thought that the previous state of my item to inventory were pretty lazy so i changed the logic up a bit. Previously when picking up items the items would go into the spot after the last item that was picked up and when the inventory ran full the first item was swappped with the newly picked up item. I didnt like that looking back and because of that the logic now scans through the inventory until it finds an empty spot and puts the item in that empty slot. If the inventory is full no item can be picked up (except the boss item) and the player gets a message on their screen. They can then leave the item screen using ESC and the item is not removed and can be picked up later if you somehow make space in your inventory NEW IN-GAME BANNER Also pretty straightforward, i added a banner so the menu looks a little bit prettier :) BUG FIXES BOSS ROOM BUG Because of map and gamestates and me forgetting to implement a feature in the door collision checks, there was a bug when defeating the boss (the map stayed as it was, but had the usual visible map ‘#’ everywhere you hadnt already explored (you cant really explore much so there where many ‘#’ ’s around the map which was really ugly. The fix was to move a mapstate change from the function that is responsible for handling victory to the function handling doors BOSS BUG There was a bug after defeating the boss which resulted from the previous bug and its fix. Because i forgot an additional check in my door function when defeating the boss the boss would spawn again and overwrite your boss item. The boss also chased you (which normally doesnt happen) and you couldnt leave the room. The fix was just to add another condition to the if statement in the door function responsible for the boss room ENEMY REMOVAL BUG For some reason (i dont know how i made the bug happen), when defeating enemies the visible map lagged behind the normal map which resulted in defeated enemies appearing to still exist on the map for one iteration of the loop (pressing any button made them vanish). The fix was to add a call to the visible_map_init function after defeating enemies"}, {"post_id": 68741, "ts": "2026-09-15T17:34:46Z", "hours": 2.2667, "text": "LOG 23: BATTLE LOG FOR ITEMS, BUG FIXES, BUG FIXES, BUG FIXES, BUG FIXES FEATURE BATTLE LOG FOR ITEMS The previous battle log only logged attacks and the damage dealt, now the log also tracks if items are used or items deal damage BUG FIXES SEGFAULT There was a segfault when trying to render the bottom of deeper rooms because the render guard had a major fault (only disjunctions no conjunctions). Because of that the game tried to reach spaces of the visible_map array out of reach of the array which resulted in a segfault when trying to go into spaces out of reach of the array. The fix was changing the guard from if ((player_y + y) < MAX_HEIGHT || (player_x + x) < MAX_WIDTH || (player_y + y ) >= 0 || (player_x + x >= 0)) to if ((player_y + y) < MAX_HEIGHT && (player_x + x) < MAX_WIDTH && (player_y + y ) >= 0 && (player_x + x >= 0)) which fixed the issue BATTLE LOG NULL TERMINATOR FIX There was a bug with the battle log, where ^ were printed (NUL ascii in ncurses) because the battle log printed out every part of the string character by character (including the \\0 terminator). The fix was to just not print out the \\0 terminator to the screen BATTLE SELECTION BUG There was a bug with conflicting selection variables (multiple variables where named selection which resulted in wrong selections being displayed). The fix was to give every function their own selection variable which fixed the issue VISIBLE MAP GLITCH Because the visible map only updated itself in the perimeter you are standing in if you moved fast enough some characters lagged behind and made it look like there were way more enemies than there actually were. The fix was to update not only the perimeter on every movement but also update everything that had already been explored"}, {"post_id": 68208, "ts": "2026-09-14T18:13:59Z", "hours": 4.045, "text": "LOG 22: POISON ITEM, BATTLE LOG, MAIN LOOP AND ITEM SELECTION REWORK POISON ITEM A new item that does 3 tick damage every enemy turn, for 2 turns. Its the rarest item in the game as of right now and was somewhat complex to add (because of the tick damage and tracking how many turns have passed) BATTLE LOG A log that tracks the last two actions that have happened in the game. It currently only tracks damage and attacks but will track item usage and more detailed information in the future. It was a real headache to implement because i had contradictory logic between the log and my main loop and i had to reimplement it multiple times. But went well overall :) REWORKS MAIN LOOP REWORK I reworked the main loop a bit because even though it worked well in theory it was not really optimized and it was prone to bugs in the future which is why i felt like redoing it a bit. Now instead of every function handling their own init, every changing gamestate instantly also inits the state it was changed to. Because of this there are less possible bugs and its overall easier to do for future gamestates ITEM PICKUP REWORK I noticed that the logic for my items wasn’t really perfect and seemed unoptimized which is why i felt like changing it a bit. Because when picking up items there are only two possible things to do (which both result in the same exit scenario) i swapped my if/else if logic for a switch statement which made the code shorter, and more optimal"}, {"post_id": 67326, "ts": "2026-09-13T12:07:21Z", "hours": 3.1628, "text": "LOG 21: FOG OF WAR, HOMING ENEMIES, BATTLE LOGIC OVERALL AND BUG FIXES FEATURES HOMING ENEMIES The enemies now home on you with every step you take, meaning you actually have to think about where you will go or the enemies will catch up to you. This was implemented by adding a sign function that decide whether the enemy should move +1 or -1 and then moving the enemy by that value. There were some bugs regarding enemies in previous rooms which got fixed by resetting the whole array during map init FOG OF WAR I added a fog of war feature that obstructs everything in the map you haven’t explored yet. This also pairs very well with the homing enemies feature. You have to go around the map to look out for items and enemies which now also walk towards you, so every step matters now BATTLE LOGIC OVERHAUL After revisiting most of my code for commenting i realized how terrible most of my battle logic was so i made it a bit more efficient and most importantly more readable. Overall i realized how great switch statements are in the last few logs BUG FIXES DOOR BUG There was a bug with the map that was somewhat useful when testing but still was a bug. The issue was that if you tried to step into the door the game let you step onto that char. The issue was that i forgot to make the game think that the door (when closed) should behave exactly like a wall. So the fix was just to add the door char to the wall collision check function"}, {"post_id": 66634, "ts": "2026-09-12T14:15:36Z", "hours": 1.4594, "text": "LOG 20: DYNAMIC STATS, BUG FIXES, SMALL UPDATE TO DEBUG MODE AND MORE COMMENTS DYNAMIC STATS The stats of all enemies are now connected to the boss counter which is the number of boss fights that have been fought during the current run so there is real progression and you dont just get stupidly overpowered DEBUG MODE I basically just added the boss to the debug mode nothing much BUG FIXES There was a glitch with the boss room being cut off because the randomly generated room was smaller than the boss room. I had to push a few things around and put every type of map generation (standard, debug, boss) into a switch statement to make it work properly COMMENTS I pretty much forgot most of the comments in the game so i started adding way more comments where they should be so the code is hopefully more intuitive to follow NOTE I think the next update will be pretty big so watch out when it finally drops!!!"}, {"post_id": 66094, "ts": "2026-09-11T17:53:56Z", "hours": 3.0956, "text": "LOG 19: NEW ENEMY TYPE: BOSS FIGHTS, BETTER DOOR LOGIC, NEW SPRITES NEW ENEMY TYPE Because i thought that the normal enemies would be too easy to beat down the run i added the main boss (the pointer which stole the star sprite from the address enemy) and he will always be fought every 5-10 rooms (im not sure on the number) . Currently his stats are static but i plan on making them dynamic based on the number of rooms you went through. BOSS ROOM/BETTER DOOR LOGIC The old door logic practically only worked with a normal room and needed the regular enemies to all be defeated. I tweaked it a little so it works with boss triggers/defeating the boss NEW SPRITE(s) As i said the boss got the star sprite because he is the true pointer so i gave the address an ampersand sprite (which is way more fitting btw). But i am not completely satisfied with the current ampersand sprite (i will maybe change it sometime) NOTE This time there werent really any bugs except during building the boss logic but they got fixed along the way. This time it actually went rather smoothly :) Also ignore the absurd stats of the player"}, {"post_id": 65457, "ts": "2026-09-10T16:29:10Z", "hours": 1.7283, "text": "LOG 18: NEW ITEM AND BUG FIXES BUG FIXES BUG FIXES NEW ITEM DAMAGE POTION I added a new item that can be used in the inventory during battle which deals (currently) 4 damage to the opponent. Its the rarest item in the game right now (i think 1 in 11). Because of the new item i had to make a bunch of code more modular in the inventory logic (a trend in my code). But overall this was the reimplementation that went the smoothest BUG FIXES BATTLE INPUT BUG There was a bug in the battle screen that made the overall input very clunky and previously was only fixed by letting another bug happen but i fixed it by changing something in the switch statements of the battle logic INVENTORY ACCESS AND SELECTION BUG A bug that mainly happened because of the previous bug: When trying to access the inventory in battle the game automatically selected the first item and returned to battle and only after the second time accessing the inventory you could really use your items as you wished INVENTORY SELECTION BUG In the inventory itself a bug was caused by a lazy implementation which caused the display (not the real logic behind the inventory actually) to become very glitched out and very confusing. I just fixed this by fixing my old and bad implementation for a better more modular one (an overall trend in my code to be not that modular lol)"}, {"post_id": 64879, "ts": "2026-09-09T16:10:45Z", "hours": 2.0467, "text": "LOG 17: DEBUG MODE FOR FASTER TESTING DEBUG MODE I added a debug mode because i found that most of my testing time was wasted finding items or players in rooms (which was very annoying most of the time), so i added a debug room so that goes way faster. Though it is very useful it was somewhat hard to implement but it made the code modular the same way the enemy logic is modular now which is an improvement in two ways"}, {"post_id": 63783, "ts": "2026-09-07T18:59:06Z", "hours": 3.6586, "text": "LOG 16: NEW NPC, BETTER CODE MODULARITY, FIXED SOME BUGS NEW FEATURES New “Modulo” / % enemy (based on the modulo operator in c)! It has weaker stats but is way stronger in terms of attack power BETTER CODE MODULARITY Because at the start of the game my main idea was to only implement one enemy type (which was pretty dumb tbh), i had to rework most of the map and battle logic so it was more generic and welcoming to multiple entities (and will help me add more enemies in the future). BUG FIXES VISUAL GLITCH There was a bug for the most of the time in the game (an issue with unititialized variables being printed, which resulted in a visual glitch), which was actually a pretty easy fix (i had to change the switch statements that handle state input and drawing output a bit so that changing the gamestate doesn’t skip to drawing instantly) MEMORY LEAK Because of a dumb implementation of a function that was supposed to carry over the value of a variable in file A to file B which used pointers allocated with malloc i had a memory issue because in a common case i forgot to implement free which resulted in lost memory (the fix was actually just switching over to passing by value because it was just a single char being transported from file A to file B and passing by reference wasn’t necessary)"}, {"post_id": 62408, "ts": "2026-09-05T19:04:09Z", "hours": 2.9256, "text": "LOG 15: MAINLY BUG FIXES AND SOME MINOR NEW FEATURES NEW FEATURES Better life/strength display A feature that was originally used for debugging has turned out as a good feature for the game overall. It always displays your and the enemies HP, and attack power (even though the attack damage is partly random which i have to note somewhere so there will be no confusion) An item descriptor that tells you what the item you are looking at currently does There is only one item to be used in the inventory right now so you can only see what the heal item does but more will be added in the future. BUG FIXES Memory unsafety fixed There was an issue with unsafe memory access if the items in the inventory where bigger than 10. My fix is that if you have more than 10 items and you pick up a new one, the new item will replace the first item, the next one the second one etc. It also resolved a smaller issue with blank inventory space that ate up inventory space even though it was empty. Items not working fixed The functions responsible for changing your hp, healing you or making you stronger hat an issue with their pointer assignment (they were pointing to the wrong variable) which i fixed for all function which work great now. Bug with doors acting the same as item pickups Because of something what seemed to be a typo (a function returned 1 instead of 0), if you tried to go through a door and you haven’t beaten every enemy, instead of nothing happening you got a free item (which turned out to be a great testing feature for items, because i can get many items fast and easily). The fix was really easy (just swap the 1 for a 0) Health bar not drawing properly Because of a badly implemented function i added in the past which turned out to be completely redundant (got cut out) the current hp weren’t imported properly to the function that handles printing out the health bar which i fixed by using another variable responsible for storing the current hp of the player Misc fixes After having to audit most of the code again i noticed that there were some issues with the code (partly because it was fine as it was when it was written, part was just sloppy implementation) which i also fixed even though most of it was minor. CURRENT PLANS FOR THE FUTURE More items that can be used in battle MORE ENEMIES!!! Im planning to add more and stronger enemies in the future even though that will probably will be one of the biggest newfeatures as it requires rewriting most of the battle and map logic Enemies getting stronger if you get farther for better progression Overall some more optimization and bug fixes (there is always something to be fixed ;) )"}, {"post_id": 61748, "ts": "2026-09-04T20:04:49Z", "hours": 4.0994, "text": "LOG 14: Made the items more interactive and functional (items can now be picked up or ignored and will vanish if either is done) and i built a somewhat functional inventory accessible only in battle as of right now. I also had to clean up a bunch of code and had to re-implement some stuff as i implemented some things rather poorly before. There are still some things to be made a bit cleaner which will come in the next few devlogs but i felt like posting one for the current state of the game."}, {"post_id": 60461, "ts": "2026-09-02T19:58:48Z", "hours": 2.5567, "text": "LOG 13: Added items that are supposed to give you power-ups in the future. currently they dont really do anything except open a screen with a sprite for the corresponding item (SPRITES ARE AI GENERATED). The plan for the future is to deicde between regular and activatable items (the first give permanent buffs, the second can be activated) and to be able to choose the items while in battle. For now they can spawn on the map (anywhere except 1|1 and spots where enemies are) and open a random sprite of the 3 that are available right now!"}, {"post_id": 59815, "ts": "2026-09-01T19:33:57Z", "hours": 0.7692, "text": "LOG 12: This came quicker than i thought it would lol. I implemented the two things i spoke about in the last log. I added a highscore system so you can always see how far you came with beating the evil pointers and i also “locked” the rooms until youve beaten every enemy in the room. I plan on adding power ups and some other features (read the README in the repo). STAY UPDATED!!!"}, {"post_id": 59787, "ts": "2026-09-01T18:38:08Z", "hours": 1.3131, "text": "LOG 11: Im Back. After a short break i started to implement that enemies really “die” if you beat them! Now there is some kind of progress added into the game as you can actually beat the enemies!!! The next features will probably be a real highscore and restricitions in leaving the room until youve beaten every enemy. Till then stay updated!!!!"}, {"post_id": 55276, "ts": "2026-08-27T00:06:09Z", "hours": 1.4606, "text": "LOG 10: Added multiple enemies (dynamic based on room size) and stats get reset after battle. Battle still issnt finished yet as i think of two more things to add for every one thing i implement. Stay updated !!!"}, {"post_id": 54777, "ts": "2026-08-25T21:47:45Z", "hours": 1.3933, "text": "LOG 9: Battle now works better and you can see enemy h now. Code is way less tangled (though some stuff still needs to be improved and the battle still isnt fully polished). There are some bugs regarding memory right now (will be fixed ASAP). But as of now you can finally really battle the evil evil evil pointer!"}, {"post_id": 54087, "ts": "2026-08-24T21:27:57Z", "hours": 2.0, "text": "added the first implementation of working battle (taking and dealing damage, working health bar)! The main issues right now are that the code is a bit tangled and that the logic isnt polished at all. But after 2 hours of work i felt like i had to post a log so this is the current state (you can attack or try to run) (winning and running have the same effect as of now)"}, {"post_id": 52721, "ts": "2026-08-23T01:22:10Z", "hours": 1.3925, "text": "Kinda added a battle screen (not reactive yet but will happen soon) and made the ASCII designs for my characters with AI (i cannot make any good ASCII art sadly :( … yet). In the top left is what is supposed to resemble a health bar which also still needs to be implemented. Also made the code a bit cleaner added a few header guards and most importantly i added structs for the entities so their stats could be recorded. Thats it :)"}, {"post_id": 52658, "ts": "2026-08-22T22:08:53Z", "hours": 1.2631, "text": "Added a (somewhat) functional menu screen to view highscore and start the game (highscore function will be implemented soon!!!!. Also built the first prototype of the battle screen though it is no where near finished. I will probably make the menu screen a bit prettier in the future but the current design has to suffice for now. :)"}, {"post_id": 51911, "ts": "2026-08-21T20:21:08Z", "hours": 0.9469, "text": "Added “Npcs” (evil pointers/ampersands). Collision yet have to do something relevant (right now they only trigger a new room). Also fixed a few memory unsafeties."}, {"post_id": 51814, "ts": "2026-08-21T17:36:52Z", "hours": 1.5833, "text": "Implemented doors (currently a minus sign probably going to change that). If you collide with said door/minus sign you will enter a new, different sized room. I did that by choosing a random wall, a random spot on that wall which is the spot where the door will be and if you make contact with the door a new room will be initialized."}, {"post_id": 51346, "ts": "2026-08-20T23:28:52Z", "hours": 0.9203, "text": "Added collision checks for walls so you cant escape the rooms"}, {"post_id": 51318, "ts": "2026-08-20T22:03:55Z", "hours": 1.0767, "text": "Implemented functional Walking (even though there is no real border yet). I also fragmented the code a bit so its more readable!"}, {"post_id": 51226, "ts": "2026-08-20T19:16:10Z", "hours": 0.4381, "text": "“Roguelike” “Game” in C (neither of them has begun to be implemented. But i guess i have set up the very basics as of now"}]...
|
Title: Pointer Fighter (C based) by @nano | Starda Title: Pointer Fighter (C based) by @nano | Stardance
Devlogs:
“Roguelike” “Game” in C (neither of them has begun to be implemented. But i guess i have set up the very basics as of now
Implemented functional Walking (even though there is no real border yet). I also fragmented the code a bit so its more readable!
Added collision checks for walls so you cant escape the rooms
Implemented doors (currently a minus sign probably going to change that). If you collide with said door/minus sign you will enter a new, different sized room. I did that by choosing a random wall, a random spot on that wall which is the spot where the door will be and if you make contact with the door a new room will be initialized.
Added “Npcs” (evil pointers/ampersands). Collision yet have to do something relevant (right now they only trigger a new room). Also fixed a few memory unsafeties.
Added a (somewhat) functional menu screen to view highscore and start the game (highscore function will be implemented soon!!!!. Also built the first prototype of the battle screen though it is no where near finished. I will probably make the menu screen a bit prettier in the future but the current design has to suffice for now. :)
Kinda added a battle screen (not reactive yet but will happen soon) and made the ASCII designs for my characters with AI (i cannot make any good ASCII art sadly :( … yet). In the top left is what is supposed to resemble a health bar which also still needs to be implemented. Also made the code a bit cleaner added a few header guards and most importantly i added structs for the entities so their stats could be recorded. Thats it :)
added the first implementation of working battle (taking and dealing damage, working health bar)! The main issues right now are that the code is a bit tangled and that the logic isnt polished at all. But after 2 hours of work i felt like i had to post a log so this is the current state (you can attack or try to run) (winning and running have the same effect as of now)
LOG 9: Battle now works better and you can see enemy h now. Code is way less tangled (though some stuff still needs to be improved and the battle still isnt fully polished). There are some bugs regarding memory right now (will be fixed ASAP). But as of now you can finally really battle the evil evil evil pointer!
LOG 10: Added multiple enemies (dynamic based on room size) and stats get reset after battle. Battle still issnt finished yet as i think of two more things to add for every one thing i implement. Stay updated !!!
LOG 11: Im Back. After a short break i started to implement that enemies really “die” if you beat them! Now there is some kind of progress added into the game as you can actually beat the enemies!!! The next features will probably be a real highscore and restricitions in leaving the room until youve beaten every enemy. Till then stay updated!!!!
LOG 12: This came quicker than i thought it would lol. I implemented the two things i spoke about in the last log. I added a highscore system so you can always see how far you came with beating the evil pointers and i also “locked” the rooms until youve beaten every enemy in the room. I plan on adding power ups and some other features (read the README in the repo). STAY UPDATED!!!
LOG 13: Added items that are supposed to give you power-ups in the future. currently they dont really do anything except open a screen with a sprite for the corresponding item (SPRITES ARE AI GENERATED). The plan for the future is to deicde between regular and activatable items (the first give permanent buffs, the second can be activated) and to be able to choose the items while in battle. For now they can spawn on the map (anywhere except 1|1 and spots where enemies are) and open a random sprite of the 3 that are available right now!
LOG 14: Made the items more interactive and functional (items can now be picked up or ignored and will vanish if either is done) and i built a somewhat functional inventory accessible only in battle as of right now. I also had to clean up a bunch of code and had to re-implement some stuff as i implemented some things rather poorly before. There are still some things to be made a bit cleaner which will come in the next few devlogs but i felt like posting one for the current state of the game.
LOG 15: MAINLY BUG FIXES AND SOME MINOR NEW FEATURES NEW FEATURES Better life/strength display A feature that was originally used for debugging has turned out as a good feature for the game overall. It always displays your and the enemies HP, and attack power (even though the attack damage is partly random which i have to note somewhere so there will be no confusion) An item descriptor that tells you what the item you are looking at currently does There is only one item to be used in the inventory right now so you can only see what the heal item does but more will be added in the future. BUG FIXES Memory unsafety fixed There was an issue with unsafe memory access if the items in the inventory where bigger than 10. My fix is that if you have more than 10 items and you pick up a new one, the new item will replace the first item, the next one the second one etc. It also resolved a smaller issue with blank inventory space that ate up inventory space even though it was empty. Items not working fixed The functions responsible for changing your hp, healing you or making you stronger hat an issue with their pointer assignment (they were pointing to the wrong variable) which i fixed for all function which work great now. Bug with doors acting the same as item pickups Because of something what seemed to be a typo (a function returned 1 instead of 0), if you tried to go through a door and you haven’t beaten every enemy, instead of nothing happening you got a free item (which turned out to be a great testing feature for items, because i can get many items fast and easily). The fix was really easy (just swap the 1 for a 0) Health bar not drawing properly Because of a badly implemented function i added in the past which turned out to be completely redundant (got cut out) the current hp weren’t imported properly to the function that handles printing out the health bar which i fixed by using another variable responsible for storing the current hp of the player Misc fixes After having to audit most of the code again i noticed that there were some issues with the code (partly because it was fine as it was when it was written, part was just sloppy implementation) which i also fixed even though most of it was minor. CURRENT PLANS FOR THE FUTURE More items that can be used in battle MORE ENEMIES!!! Im planning to add more and stronger enemies in the future even though that will probably will be one of the biggest newfeatures as it requires rewriting most of the battle and map logic Enemies getting stronger if you get farther for better progression Overall some more optimization and bug fixes (there is always something to be fixed ;) )
LOG 16: NEW NPC, BETTER CODE MODULARITY, FIXED SOME BUGS NEW FEATURES New “Modulo” / % enemy (based on the modulo operator in c)! It has weaker stats but is way stronger in terms of attack power BETTER CODE MODULARITY Because at the start of the game my main idea was to only implement one enemy type (which was pretty dumb tbh), i had to rework most of the map and battle logic so it was more generic and welcoming to multiple entities (and will help me add more enemies in the future). BUG FIXES VISUAL GLITCH There was a bug for the most of the time in the game (an issue with unititialized variables being printed, which resulted in a visual glitch), which was actually a pretty easy fix (i had to change the switch statements that handle state input and drawing output a bit so that changing the gamestate doesn’t skip to drawing instantly) MEMORY LEAK Because of a dumb implementation of a function that was supposed to carry over the value of a variable in file A to file B which used pointers allocated with malloc i had a memory issue because in a common case i forgot to implement free which resulted in lost memory (the fix was actually just switching over to passing by value because it was just a single char being transported from file A to file B and passing by reference wasn’t necessary)
LOG 17: DEBUG MODE FOR FASTER TESTING DEBUG MODE I added a debug mode because i found that most of my testing time was wasted finding items or players in rooms (which was very annoying most of the time), so i added a debug room so that goes way faster. Though it is very useful it was somewhat hard to implement but it made the code modular the same way the enemy logic is modular now which is an improvement in two ways
LOG 18: NEW ITEM AND BUG FIXES BUG FIXES BUG FIXES NEW ITEM DAMAGE POTION I added a new item that can be used in the inventory during battle which deals (currently) 4 damage to the opponent. Its the rarest item in the game right now (i think 1 in 11). Because of the new item i had to make a bunch of code more modular in the inventory logic (a trend in my code). But overall this was the reimplementation that went the smoothest BUG FIXES BATTLE INPUT BUG There was a bug in the battle screen that made the overall input very clunky and previously was only fixed by letting another bug happen but i fixed it by changing something in the switch statements of the battle logic INVENTORY ACCESS AND SELECTION BUG A bug that mainly happened because of the previous bug: When trying to access the inventory in battle the game automatically selected the first item and returned to battle and only after the second time accessing the inventory you could really use your items as you wished INVENTORY SELECTION BUG In the inventory itself a bug was caused by a lazy implementation which caused the display (not the real logic behind the inventory actually) to become very glitched out and very confusing. I just fixed this by fixing my old and bad implementation for a better more modular one (an overall trend in my code to be not that modular lol)
LOG 19: NEW ENEMY TYPE: BOSS FIGHTS, BETTER DOOR LOGIC, NEW SPRITES NEW ENEMY TYPE Because i thought that the normal enemies would be too easy to beat down the run i added the main boss (the pointer which stole the star sprite from the address enemy) and he will always be fought every 5-10 rooms (im not sure on the number) . Currently his stats are static but i plan on making them dynamic based on the number of rooms you went through. BOSS ROOM/BETTER DOOR LOGIC The old door logic practically only worked with a normal room and needed the regular enemies to all be defeated. I tweaked it a little so it works with boss triggers/defeating the boss NEW SPRITE(s) As i said the boss got the star sprite because he is the true pointer so i gave the address an ampersand sprite (which is way more fitting btw). But i am not completely satisfied with the current ampersand sprite (i will maybe change it sometime) NOTE This time there werent really any bugs except during building the boss logic but they got fixed along the way. This time it actually went rather smoothly :) Also ignore the absurd stats of the player
LOG 20: DYNAMIC STATS, BUG FIXES, SMALL UPDATE TO DEBUG MODE AND MORE COMMENTS DYNAMIC STATS The stats of all enemies are now connected to the boss counter which is the number of boss fights that have been fought during the current run so there is real progression and you dont just get stupidly overpowered DEBUG MODE I basically just added the boss to the debug mode nothing much BUG FIXES There was a glitch with the boss room being cut off because the randomly generated room was smaller than the boss room. I had to push a few things around and put every type of map generation (standard, debug, boss) into a switch statement to make it work properly COMMENTS I pretty much forgot most of the comments in the game so i started adding way more comments where they should be so the code is hopefully more intuitive to follow NOTE I think the next update will be pretty big so watch out when it finally drops!!!
LOG 21: FOG OF WAR, HOMING ENEMIES, BATTLE LOGIC OVERALL AND BUG FIXES FEATURES HOMING ENEMIES The enemies now home on you with every step you take, meaning you actually have to think about where you will go or the enemies will catch up to you. This was implemented by adding a sign function that decide whether the enemy should move +1 or -1 and then moving the enemy by that value. There were some bugs regarding enemies in previous rooms which got fixed by resetting the whole array during map init FOG OF WAR I added a fog of war feature that obstructs everything in the map you haven’t explored yet. This also pairs very well with the homing enemies feature. You have to go around the map to look out for items and enemies which now also walk towards you, so every step matters now BATTLE LOGIC OVERHAUL After revisiting most of my code for commenting i realized how terrible most of my battle logic was so i made it a bit more efficient and most importantly more readable. Overall i realized how great switch statements are in the last few logs BUG FIXES DOOR BUG There was a bug with the map that was somewhat useful when testing but still was a bug. The issue was that if you tried to step into the door the game let you step onto that char. The issue was that i forgot to make the game think that the door (when closed) should behave exactly like a wall. So the fix was just to add the door char to the wall collision check function
LOG 22: POISON ITEM, BATTLE LOG, MAIN LOOP AND ITEM SELECTION REWORK POISON ITEM A new item that does 3 tick damage every enemy turn, for 2 turns. Its the rarest item in the game as of right now and was somewhat complex to add (because of the tick damage and tracking how many turns have passed) BATTLE LOG A log that tracks the last two actions that have happened in the game. It currently only tracks damage and attacks but will track item usage and more detailed information in the future. It was a real headache to implement because i had contradictory logic between the log and my main loop and i had to reimplement it multiple times. But went well overall :) REWORKS MAIN LOOP REWORK I reworked the main loop a bit because even though it worked well in theory it was not really optimized and it was prone to bugs in the future which is why i felt like redoing it a bit. Now instead of every function handling their own init, every changing gamestate instantly also inits the state it was changed to. Because of this there are less possible bugs and its overall easier to do for future gamestates ITEM PICKUP REWORK I noticed that the logic for my items wasn’t really perfect and seemed unoptimized which is why i felt like changing it a bit. Because when picking up items there are only two possible things to do (which both result in the same exit scenario) i swapped my if/else if logic for a switch statement which made the code shorter, and more optimal
LOG 23: BATTLE LOG FOR ITEMS, BUG FIXES, BUG FIXES, BUG FIXES, BUG FIXES FEATURE BATTLE LOG FOR ITEMS The previous battle log only logged attacks and the damage dealt, now the log also tracks if items are used or items deal damage BUG FIXES SEGFAULT There was a segfault when trying to render the bottom of deeper rooms because the render guard had a major fault (only disjunctions no conjunctions). Because of that the game tried to reach spaces of the visible_map array out of reach of the array which resulted in a segfault when trying to go into spaces out of reach of the array. The fix was changing the guard from if ((player_y + y) < MAX_HEIGHT || (player_x + x) < MAX_WIDTH || (player_y + y ) >= 0 || (player_x + x >= 0)) to if ((player_y + y) < MAX_HEIGHT && (player_x + x) < MAX_WIDTH && (player_y + y ) >= 0 && (player_x + x >= 0)) which fixed the issue BATTLE LOG NULL TERMINATOR FIX There was a bug with the battle log, where ^ were printed (NUL ascii in ncurses) because the battle log printed out every part of the string character by character (including the \0 terminator). The fix was to just not print out the \0 terminator to the screen BATTLE SELECTION BUG There was a bug with conflicting selection variables (multiple variables where named selection which resulted in wrong selections being displayed). The fix was to give every function their own selection variable which fixed the issue VISIBLE MAP GLITCH Because the visible map only updated itself in the perimeter you are standing in if you moved fast enough some characters lagged behind and made it look like there were way more enemies than there actually were. The fix was to update not only the perimeter on every movement but also update everything that had already been explored
LOG 24: BOSS ITEM DROP, CONTROLS SCREEN, NEW IN-GAME BANNER, ITEM TO INVENTORY REFACTOR, BUG FIXES FEATURES BOSS ITEM DROP I added an item that only the boss drops, when killed. Its ability is to make the enemy unable to attack for one turn. You will always get it when defeating the boss and has the ‘?’ glyph compare to regular items (‘+’). Its also the only item that can always be picked up (with normal items, if your inventory is full you cannot pick them up, with the boss item your first slot gets overwritten). CONTROLS SCREEN I added a basic controls screen so people that try the game out (now or when it ships), know what to do when playing. Currently most things are really straightforward but i added it just in case. The most important aspect will probably how to end the game because thats the most unintuitive one (even though i hope anyone testing the game doesnt want to quit it) ITEM TO INVENTORY REFACTOR I thought that the previous state of my item to inventory were pretty lazy so i changed the logic up a bit. Previously when picking up items the items would go into the spot after the last item that was picked up and when the inventory ran full the first item was swappped with the newly picked up item. I didnt like that looking back and because of that the logic now scans through the inventory until it finds an empty spot and puts the item in that empty slot. If the inventory is full no item can be picked up (except the boss item) and the player gets a message on their screen. They can then leave the item screen using ESC and the item is not removed and can be picked up later if you somehow make space in your inventory NEW IN-GAME BANNER Also pretty straightforward, i added a banner so the menu looks a little bit prettier :) BUG FIXES BOSS ROOM BUG Because of map and gamestates and me forgetting to implement a feature in the door collision checks, there was a bug when defeating the boss (the map stayed as it was, but had the usual visible map ‘#’ everywhere you hadnt already explored (you cant really explore much so there where many ‘#’ ’s around the map which was really ugly. The fix was to move a mapstate change from the function that is responsible for handling victory to the function handling doors BOSS BUG There was a bug after defeating the boss which resulted from the previous bug and its fix. Because i forgot an additional check in my door function when defeating the boss the boss would spawn again and overwrite your boss item. The boss also chased you (which normally doesnt happen) and you couldnt leave the room. The fix was just to add another condition to the if statement in the door function responsible for the boss room ENEMY REMOVAL BUG For some reason (i dont know how i made the bug happen), when defeating enemies the visible map lagged behind the normal map which resulted in defeated enemies appearing to still exist on the map for one iteration of the loop (pressing any button made them vanish). The fix was to add a call to the visible_map_init function after defeating enemies
LOG 25: FLEEING ENEMIES (CONTAINS MANY CHANGES), BOSS ITEM REFACTOR FLEEING ENEMIES Enemies (except the boss) now have the ability to run away if the enemy would get killed by the next attack. The chance for this to happen is 10% and when they run away, they gain 1 HP per step they take and return to chasing the enemy if their hp is back at half of their max HP. FLEEING REWORK Before adding this feature, fleeing was the same practically as winning (the return type of the fight was STATE_VICTORY), i changed that to the proper STATE _FLED. Also before when fleeing, if you fled and another enemy of another type collided with you, he had normal stats but the enemy before that also got his stats reset. The same went for enemies of the same type. When fleeing from enemy A from type A and then colliding with enemy B from type A, he would have the stats of enemy A. The fix for both was to make a 2D Array of all enemies and their types, so each individual enemy stores its stats, not the battle function. PLAYER POSITION STRUCT Previously the player had ~ 8 different position variables, which was pretty clunky if i wanted to transport the player position to another function. Because of that i put all player positions into a singular struct, so i could pass all the player positions at once if i needed to. ENEMY PURSUIT FUNCTION REWORK Because enemies have to run away instead of chasing i had to rework the pursuit function a bit so it could also work in a reverse way. I had to make the function branch between the two states which took a bit more work than originally anticipated because i had a bunch of wrong ideas for how the function should work. Overall the function implementation was essentially to just use the inverse vector of the normal vector for the direction function BOSS ITEM FUNCTION/ITEM FUNCTION REFACTOR Because previously the boss item detection function and the item detection were separate the code didnt feel clean at all (felt like a lazy implementation for me), so i made the item function work with the boss item which makes the item function overall more open for new item types (if i will add any more)
LOG 26: FINAL DEVLOG MAINLY BUG FIXES AND SOME MINOR CHANGES CHANGES Enemies previously scaled to strongly and beat you too hard after the boss fight. Also because it was hard to scale the opponents down i decided to make the hp of everyone higher (everything got stronger in theory, player has 100 starting hp, does 20 damage etc.) LATE ADDITIONS LICENSE I licensed the project under the MIT licesne because it seemed fitting BUILD FILE I added a build file for the repo so i could upload a release binary (ncurses is required tho) BUG FIXES HIGHSCORE BUG There was a bug with the highscore not being displayed when there was no highscore.txt file. I needed to change the handling of the fact that the open function returned NULL, because NULL either meant, no file was there or no file could be found which resulted in no file being created because the function exited when the open function returned NULL, the fix was pretty simple overall tho (just adding an extra if conditional to check) FULL INVENTORY BUG Previously when having a full inventory, you couldnt pick up new items, issue was when using items that state didnt reset so one full inventory meant no items anymore :( . The fix was just to reset the state after using items BOSS ITEM INVENTORY BUG I forgot to make the boss item return the correct state which resulted in the item sometimes not being put in the inventory. The fix was just to add return ENTER_LEGAL to the boss items if statement SET ROOM ISSUE Because of random rooms sometimes boss room dimensions where bigger than current room which resulted in bugs (see previous devlogs). My previous fix worked in theory but had more affinity for potential bugs so i changed the set room function from two static values to two values that get passed into the function
Ships:
A roguelike room crawler completely built in C! What is in it? Randomly generated rooms with a fog of war for you to explore Three different enemy types with scaling difficulty Boss fights with unique item drop RPG Style fighting An interactive inventory that can be used during battle A battle log that tracks everything that happens in battle Items, pickups and a persistent highscore What am I proud of? The enemy pursuit and fleeing system. It was somewhat hard to implement but I think it made the game wayyyy better than before. I’m also proud of how the state machine turned out in the end. The game has strict separations between the different game states and first handles what the player/the game did during the game loop iteration and then after that is done draws it to the screen. That state machine was very prone to bugs and I had to spend a bunch of time to fix (fallthrough bug, etc. all talked about in devlogs). But I think the result that turned out at the end was great and I am very content with it How is it built? As said its completely built in C using ncurses as its graphics library using 12 source files (currently) with each one having a specific task only it does. The build is released using GitHub workflows and the binary can easily be downloaded and used on (almost) all glibc linux distros (the project was compiled for Ubuntu and you will have to install ncurses though) What I learned The game was actually my first real coding project ever apart from a few simple websites so I learned a bunch. I learned how to separate state transitions, I learned the importance of good and bad switch statements, bounds checking (really rough path) and I think most importantly: The power of code separation and making every file do its designated task. I often caught myself picking the easy and sloppy path and then fixing it properly and in retrospect helped with preventing a bunch of bugs Known limitations / plans for the future It’s my first project, so there are likely still issues I haven’t found. Even though I tried to find everything (a.e. using Valgrind told me there are no memory blocks definitely lost) there are still potentially memory safety issues or potential segfaults. It’s possible some edge cases might have slipped through. I’ve tested the project thoroughly and haven’t found any crashes since the last few debugging sessions but I cannot safely say it’s perfect. I think if I will find the time I will maybe add some new features like new special item related enemies or player status effects though I cannot safely say if i can Closing word I think building a game for my first real project was the right decision for me because I really had a bunch of fun building this project. I currently have some ideas for unrelated new projects (one is up on my profile check it out (; ) and I think this project was a really good pathway into coding for me. Check the GitHub and the demo video out and I hope you like the project...
|
1792853775.869821
|
1792940175.869821
|
|
64739
|
WeatherFetch by @SilentVelocity | Stardance
|
SilentVelocity
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:19:04Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome to Weather Fetch. This Website displays weather of a location by requesting permission for location of user and sends API requests to Open Meteo for weather information and a separate request to bigdatacloud.net for displaying the location. What I found challenging was making the AQI feature work and making the correct URLs for the API calls. I’m Proud of the structure that I’ve given to my JS. The JS is not messily tangled altogether but rather in neat blocks of code. This prevents everything from breaking if one thing breaks. Another thing is the way I’ve used THREE APIs for this. sounds big.", "repo": "https://github.com/VolarQuill/WeatherFetch", "demo": "https://weather-fetch-six.vercel.app/"}]...
|
[{"post_id": 73303, "ts": "202 [{"post_id": 73303, "ts": "2026-09-24T20:09:17Z", "hours": 1.7786, "text": "The project is officially done!!! I got over with the AQI, and went on to add some animations to the website and two separate alerts. One alert for high UV and one alert for high chance of rain."}, {"post_id": 73237, "ts": "2026-09-24T17:12:07Z", "hours": 6.6658, "text": "Okay. A lot has happened now actually. I’ve a big weather condition block, added time, location, added a lot more of CSS, added stickers too! Working on adding AQI and potentially FORECAST! i probably wont be doing forecast cuz AQI adding AQI has a lot more extra steps than adding the other stats, and i dont seem to figure it out. See the github commits for the proper progressions of features. i forgot about devlogs sorry"}, {"post_id": 72144, "ts": "2026-09-22T09:41:56Z", "hours": 0.8428, "text": "I finally got the browser to ask for the user’s permission for location. NOT a fan of making error messages work."}]...
|
Title: WeatherFetch by @SilentVelocity | Stardance Title: WeatherFetch by @SilentVelocity | Stardance
Devlogs:
I finally got the browser to ask for the user’s permission for location. NOT a fan of making error messages work.
Okay. A lot has happened now actually. I’ve a big weather condition block, added time, location, added a lot more of CSS, added stickers too! Working on adding AQI and potentially FORECAST! i probably wont be doing forecast cuz AQI adding AQI has a lot more extra steps than adding the other stats, and i dont seem to figure it out. See the github commits for the proper progressions of features. i forgot about devlogs sorry
The project is officially done!!! I got over with the AQI, and went on to add some animations to the website and two separate alerts. One alert for high UV and one alert for high chance of rain.
Ships:
Welcome to Weather Fetch. This Website displays weather of a location by requesting permission for location of user and sends API requests to Open Meteo for weather information and a separate request to bigdatacloud.net for displaying the location. What I found challenging was making the AQI feature work and making the correct URLs for the API calls. I’m Proud of the structure that I’ve given to my JS. The JS is not messily tangled altogether but rather in neat blocks of code. This prevents everything from breaking if one thing breaks. Another thing is the way I’ve used THREE APIs for this. sounds big....
|
1792814173.8988998
|
1792900573.8988998
|
|
61154
|
littleone by @fiddletwo | Stardance
|
fiddletwo
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T19:58:48Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This slack bot has some commands such as a command that lets you see the league standings of Europe’s top five football leagues. The most important thing I took away from this project was learning how to host via a server.", "repo": "https://github.com/fiddletwo/littleone", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 66927, "ts": "202 [{"post_id": 66927, "ts": "2026-09-12T22:01:33Z", "hours": 1.3317, "text": "Added a football league standings command. Currently only shows the points the club has. Working with the API was somewhat difficult because the stats were put into an array. Also added a help command that lists all commands."}, {"post_id": 66680, "ts": "2026-09-12T15:32:50Z", "hours": 1.4892, "text": "basic bot setup reminds me of the discord bot development i used to do, but i digress anyways i made a little dice rolling command"}]...
|
Title: littleone by @fiddletwo | Stardance
Devlog Title: littleone by @fiddletwo | Stardance
Devlogs:
basic bot setup reminds me of the discord bot development i used to do, but i digress anyways i made a little dice rolling command
Added a football league standings command. Currently only shows the points the club has. Working with the API was somewhat difficult because the stats were put into an array. Also added a help command that lists all commands.
Ships:
This slack bot has some commands such as a command that lets you see the league standings of Europe’s top five football leagues. The most important thing I took away from this project was learning how to host via a server....
|
1792813800.0343714
|
1792900200.0343714
|