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

NC

@NC

Joined June 1st, 2026

  • 33Devlogs
  • 6Projects
  • 3Ships
  • 30Votes
Open comments for this post

11h 4m 42s logged

Devlog 3: Polished up Reload system and added new sceneries

Another update with the game, things are really starting to come together with the game feel and world design

Here’s what I made so far:

Polished UI and Reload animations:

  • Reorganised weapon inventory. Made it into a clean, compact panel so it doesn’t block gameplay view
  • Animated a reload bar underneath the weapons that fill up according to the reload time set in the dictionary. (See previous devlog on how) using a simple tween function
  • Weapon swapping. Updated the knife so the character whips out the knife and slashes the zombies before swapping back to their equipped gun. Similar to Call of Duty.

World Design Landmarks

  • Expanded the map with new sceneries, chunks, buildings to make the map/game more exciting. I aim to do something like where I make a make several chunks, 16 by 16 using tilemaps and Sprite2Ds to make different zones.

I am yet to figure out how to stitch the chunks together.

Enemy and Wave system

  • I just made fairly basic enemy AI that follows the player and added an Avoidance area so the zombies don’t pile up or follow the player in a line.
  • Made a wave system that increases in difficulty as you survive longer and longer.

This is the difficulty logic

enemies_left_to_spawn = 5 + (current_wave + 2)
spawn_cooldown = max(0.4, 1.5-(current_wave * 0.1))

We have a base amount of 5 plus the extra enemies + 2 and the extended time it take to spawn zombies making each wave slightly longer than the previous one.

Possible Issues

#Imperfect spawning of zombies
One thing I am noticing, is that some of the zombies are spawning inside of the bushes and are just stuck there, the player can’t shoot the zombie because of collision layers and the game is ‘hardstuck’ I am yet to work on how to fix it

Bullets not firing?

Something also that I’ve have noticed consistently is that the bullets sometimes not fire that well, it appears that they might be hitting the player and not spawning? I have been scratching my head on this bug for a while, any suggestions will be GREAT!

What’s next?

  • Making Player health system
  • Loot System
  • Making many more chunks and stitching them together
  • Upgrades???

Have a look at the screenshots and comment down below what you think the following structures look like! (This feedback will be very helpful! I’ll tell the answers in the next devlog!)

0
0
4
Open comments for this post

6h 18m 45s logged

Devlog 6 Finished Making the Interactive UI

Took a little while but in the end, totally worth it!

What have I accomplished:

Real-Time Telemetry Arrays:

Dynamic Navigation Tools:

Integrated a fully functional Compass Heading indicator, alongside precise Speed (m/s) and Depth trackers linked directly to the sub’s 3D transform and linear physics state.

Not to mention there is also a compass, a progress tracker and a warning system

Vital Resource Gauges:

The console now cleanly maps out real-time Stamina and Exhaustion meters to handle high-speed maneuvering and sprint cooldowns smoothly.

Smart Health & “Frame-Before” Velocity Systems:

Implemented a custom predictive physics calculation that catches the sub’s exact velocity right before a collision occurs. This completely bypasses physics-engine quirks (like velocity instantly dropping to zero on impact frames), ensuring blunt collisions register perfectly every time.

Dynamic Hull Integrity Status:

The hull damage bar dynamically recalculates color states and screen readouts:

Above 66%: Status reads STABLE with green theme aesthetics.25% to 66%: Automatically shifts to a warning state (DAMAGED) with an orange alert profile.

Emergency Visual Alert System (Dynamic Warning Lights):

When structural health drops below the 25% Critical Zone, a time-accumulating sine wave engine takes over the console mesh arrays. This triggers an aggressive, high-speed visual flashing sequence across the interior status plates to warn the player of if its gonna die.

Terminal Polish & Hacking Decorations:

To capture that retro, high-tech submarine atmosphere, the dashboard now features a multi-layered background Parallax Hacking Screen that slides continuously behind the telemetry values.

Combined with sudden flickering screen effects, the terminal reacts heavily to impact forces, making the player feel every heavy rattle when diving too fast into rocky corridors.


What’s next?

  • I want to make my 3rd person camera a periscope with the cute little spyglass on top of the submarine and allow to have a 360 degree of motion

  • Adding a death screen and animation, not so sure of seeing myself still being able to run

  • Also doing something about this Collision Warning alert in the bottom left corner.

  • Definitely add some visual juice (screen shake, glass crack) but that’s low priority

  • Also some audio!

See you guys later!

0
0
26
Open comments for this post

5h 33m 5s logged

DEVLOG 2: Added New weapons and reload system

Just made a new shotgun and a machine gun and a melee weapon to go with the original pistol.

However, this was not the smoothest journey…


Fixing the 360-Degree Aim Bug

The biggest headache was a bug where the shooting worked perfectly in the bottom-left quadrant of the screen but went completely wild in the other three. It turned out to be an issue with local versus global coordinates when mixing the player node’s position and the muzzle position. I fixed it by bypassing the muzzle’s relative math entirely and calculating the trajectory straight from the player’s core global position. Now aiming and shooting are perfectly consistent all 360 degrees around the player.


Reloading States and Auto-Reload

I wired up the static reload sprites so they actually show up visually. The issue before was that the sprite swap was happening after the timer finished, so it never showed up. Now it swaps to the reload frame instantly when you press R, and then swaps back to the normal shooting frame when the timer finishes. I also made it so that the second your mag drops to zero, it calls the reload function automatically without making you click an extra time.

here is how I made the different gun types

enum GunType { PISTOL, SHOTGUN, MACHINE_GUN, KNIFE}


var gun_stats = {
	GunType.PISTOL: {"current_ammo": 7, "ammo_max": 7, "reload_time": 1.0, "spread": 0, "projectiles": 1, "is_automatic": false, "is_melee": false},
	GunType.SHOTGUN: {"current_ammo": 2, "ammo_max": 2, "reload_time": 2.0, "spread": 0.22, "projectiles": 5, "is_automatic": false, "is_melee": false},
	GunType.KNIFE: {"current_ammo": 1, "ammo_max": 1, "reload_time": 0.4, "spread": 0, "projectiles": 0, "is_automatic": false, "is_melee": true},
	GunType.MACHINE_GUN: {"current_ammo": 30, "ammo_max": 30, "reload_time": 2.2, "spread": 0.08, "projectiles": 1, "is_automatic": true, "is_melee": false}
}

Mobile-Friendly Drag and Release Controls

I completely changed how aiming and firing work to make the game ready for a mobile layout. Instead of just clicking to shoot, you now hold down the mouse button (or your finger on a screen) to bring up the trajectory line and aim. For semi-auto weapons like the pistol and shotgun, you rotate around as much as you want to frame the shot, and the gun fires the exact moment you release the button. For the machine gun, it continuously fires while you hold it down but limits the rate of fire with a quick cooldown loop so it doesn’t empty all 30 rounds in one frame. The player also keeps turning smoothly even when they aren’t actively clicking.


What’s Next?

  • Making the zombies
  • The ‘waves’ mechanic
  • Player and Zombie damage system
  • Loot System
  • Polish up the reload UI
  • Add collision rules for house

I also made a test level to get an idea of how the level will be layered out. Check out the video! (if it loads…)

0
0
2
Open comments for this post

1h 35m 25s logged

Did some last minute tweaks to the UI, made it look all festive and Christmassy.

Once I was happy with it, I tried updating it, but the Nest deployment thingy wouldn’t work/update. It sucked the life out of me!

Then I went on Vercel and put it on there (that’s the only other 1 Stardance accepts, because Github pages doesn’t support backend coding like python)

After some more head banging, it works! It is live, working and can send emails!

This is prolly my last devlog to shipping

PS. also updated README to include relevant, upto date information after recent changes

I worked really hard on it than any other 1, cuz the mission said i needed a good README, YIKES!

0
0
3
Open comments for this post

1h 3m 20s logged

Just working on the basic player movement as well as shooting mechanic. Looks basic (I know) BUT.

If there’s anything you should know, it’s that you should always, make sure that the mechanics actually work rather than making the game look pretty.

This is going to be a top-down mobile game and hopefully with joysticks. But for now I am using WASD and mouse.

I am trying to go for a Brawl Stars kind of UI, but that will be seen in the future.

Next I will be working on a reloading and magazine system!

See you then!

0
0
4
Open comments for this post

2h 43m 31s logged

ALERT ALERT ALERT: Actual progress coming in!

I have been pretty busy this week working on my other custom WarioWare game, but I finally managed to crack it.

By carefully placing each and every word, section, icon and evaluating every single number… the top screen of the submarine is officially done!

What’s on the screen right now:

  • Hull Integrity: A functioning system variable.
  • Custom Healthbar: A sick-looking visual health layout.
  • Rings / Checkpoint tracking: Keeps tabs on your current objectives.
  • Status Alarms: Two red dots on the wings (which will flash for critical signs or dangers once I code the triggers).

I got so excited that I even found a cool hacking matrix background and threw a Parallax2D on it so it looks like the sub is constantly processing code in the background

On top of that, I added a custom shader flicker effect so it feels like a real, raw electronic monitor. As you can see in the screenshot, I just slapped a ColorRect2D added some code (with the help of AI as I don’t know jack about shader code) and BOOM!

The big game-changer: I just switched the viewport texture configuration from the default Albedo slot over to the Emission channel so the cockpit doesn’t look so dull. Because the display now literally emits its own light into the dark, I was able to delete the temporary OmniLight3D from the scene entirely. The cockpit lighting looks way more natural now.

Next Up:
Now that the formula is down, I’m moving on to complete the other two viewports: the primary speedometer display right on the steering wheel, and the auxiliary bottom viewport sitting behind it.

Give me a follow to see the next updates as they happen!

0
0
3
Ship

I made a cloud-deployed Secret Santa generator using a Python Flask backend and an HTML/CSS frontend. It shuffles participants and emails custom HTML holiday assignment cards directly to their inboxes.

Something that was a challenge was building a defensive validation loop to stop players from accidentally drawing their own names, and fixing case-sensitivity folder issues (Templates vs templates) when deploying onto the Linux cloud server (Render).

Something that I am proud of is making custom HTML cards directly to user inboxes instead of boring plain text, and keeping the mail server totally secure by hiding app passwords using Environment Variables (.env).

It is 100% live on the web! Just open the Render link, add a few email addresses you own, set a budget/date, and hit send. Give it a few seconds to process and then check your inboxes for your assignments (it actually works!)

Try project → See source code →
Open comments for this post

1h 11m 5s logged

Ok guys just finished on the custom email, it looks SO MUCH better than before. I genuinely did not know you could put html code inside of an email body and using MIMETEXT, you can put it in the email and it will actually work!! I am very proud of this, I think now, I will finally make the README.

0
0
2
Open comments for this post

32m 59s logged

Just worked on improving this, UI looks fairly OK. But 1 thing I realised is the emails sent are fairly basic, I will now try to improve the look as well as message conveyed in the email. It’s looking pretty good!! Nearly done, just a few cosmetic touches and nearly ready to ship

0
0
1
Open comments for this post

34m 57s logged

People, I just finished migrating from Resend back to the SMTP gmail server. It now says its from the secretsanta generator now. Next up: I think I will add some customisation features, like a date or budget, the customer has more freedom over their choice, (maybe even a theme other than secret santa) Anything BUT the boring README

0
0
5
Open comments for this post

37m 35s logged

Ok guys, just added the loading circle, fairly easy, BUT… however… getting the email system of Resend may take a bit more work. I first of all need a domain, subdomains, submit DNS records. That is too messy, as I don’t even own a domain and plus, that is way too much work, very unnecessary, so I will just make a new gmail account call it [email protected], get the 16 digit App key, rework some code (bit more than some) because I have to delete the original resend code, and then fix the original code I had for the gmail. RAAAAAAR. and of course, the readme

0
0
3
Open comments for this post

2h 0m 46s logged

Engineering Devlog #2: Moving to the Web & Dynamic Inputs

Objective / Goal

So this session today was about upgrading the project from a command-line Python script into a fully functional web application using Flask. This allows unfamiliar users easily enter participants names and emails via web interface.

Progress Made

  • I created an index.html for the actual website. I just wrote all the css code inside the actual html code as the code wasn’t that long that it needed its own css file.
  • I built a dynamic form with an ‘Add person’ button as well as a ‘Remove person’ button (just an X).
  • Additionally, I removed the hardcoded .env credentials and replaced with the website asking for the user’s email and 16-digit App password (so we don’t have to use mine). These are all temporary variables meaning they immediately get cleared from memory after deploying.

Roadblocks Encountered & Resolutions

  • There were quite a few bugs and errors, but I realised they were just silly mistakes like syntax errors and files nesting in the wrong places.
  • For example, I had some TypeError bugs because my send_email function was missing arguments after the update, and a TemplateNotFound error because my HTML file wasn’t sitting inside the correct folder structure that Flask looks for.
  • I fixed them by making sure the file paths matched what Flask needed and ensuring all arguments were passed correctly in my Python loops.

What’s next

  • I am going to be adding a loading screen for when the audience clicks the submit button because the screen just stays kinda frozen and its hard to tell if its loading.
  • Also I am going to find a workaround to not have to get people to put in their 16-digit App password just for a Secret Santa Email system. I am planning on switching to third party APIs like Resend or SendGrid.
0
0
4
Open comments for this post

1h 2m 3s logged

Devlog: Automated Secret Santa Email System

Language: Python
Tools: VS Code, GitHub


Project Overview and Objective

I just made the project, it works! This project just required smtplib and ssl to establish a connection to Gmails servers, as well as python-dotenv to securely manage the sender’s email credentials without hardcoding passwords. As for the proper details on how this works, I will be including it in my README (that I’ve yet to make).


Challenges and Technical Roadblocks

There were a few bugs honestly. Here is what I ran into and how I solved them:

1. Environment Setup and Security Blocks

  • The Problem: Windows initially wouldn’t recognize the pip command to install libraries, and standard email passwords were blocked by Gmail’s modern security protocols.
  • The Solution: After some googling and reading forums, I realised I needed to bypass the Windows PATH issue by using python -m pip install. To fix the security block, I enabled 2-Step Verification on my Google account and generated a unique 16-character App Password specifically for this script. (Which I cannot show to anyone, you will not see it in my Github page).

2. Backend Shuffling Logic Error

  • The Problem: Another problem with the backend logic, I used while loop to shuffle and assign the peoples names, something I realised was that it would delete items from the list using .pop(0) while shuffling inside the loop. This caused a logic error where people could be assigned to themselves, or multiple people could be assigned the same target.
  • The Solution: In order to fix this I restructured the logic to create a separate clone of the participants list using .copy() and then implemented a while True loop that shuffles the target list and checks it. If anyone is matched with themselves, it automatically reshuffles before sending any emails.

Code Architecture

See the code below:

while True:
    random.shuffle(targets)
    matched_self = False
    for i in range(len(participants)):
        if participants[i][0] == targets[i][0]:
            matched_self = True
            break
    if not matched_self:
        break

So what’s next?

Just adding the README, testing to see of the project can handle variations or emails, (icloud, yahoo.com, microsoft, maybe like work or school organisations.)

And also adding an inbuilt condition to see if the email is valid, the program should see if an email is actually real. Not just try and send an email to someone like @gail.com or some other typo

0
0
1
Open comments for this post

1h 12m 32s logged

Devlog Update: Wario Land Mechanics & Microgame #2!

Have you ever wondered what happens to Wario when he gets stung by a bee in the classic games? He inflates into a massive, round balloon! He gets so hilariously huge that he loses his regular platforming abilities and starts floating automatically.

That exact mechanic is the core inspiration behind my second minigame!

The Concept: Excretion Propulsion

Instead of your standard top-down or platforming setup, players have to navigate a panicked survival challenge while completely inflated:

  • The Movement: Wario floats upward automatically. To move horizontally, you have to blast him sideways by burping out of one side or farting out of the other!
  • The Objective: Pilot Wario’s massive balloon collision box through tight corridors and narrow vertical alleys before the clock hits zero.

What have I been upto so far?

  • Custom Physics & Input: The funny burp/fart thrust logic is fully operational.
  • Environmental Hazards: Industrial fans are officially placed and working as expected! They generate continuous wind forces that push Wario across the map.
  • Visual Juice: The fan blades actually rotate dynamically, and I’ve added custom wind particles to show the direction of the draft.

Next Steps

The core engine code and character states are working beautifully. Now it’s all down to the physical level design. I need to finish constructing the full layout maps, adding hazards like spikes, and coding the closing walls for the higher difficulty tiers.

I’m aiming to have the full map layouts completed (or very close to it) by tomorrow!

Check out the screenshots below, seeing this vintage GBC puffed Wario rocket around the screen with gas clouds is absolutely hilarious!

Found the wario sprites and wind particles here https://www.spriters-resource.com/game_boy_advance/wl4/asset/1577/
https://nyknck.itch.io/wind

(I added the farts, burps, fans myself using this free sprite editor https://www.piskelapp.com)

0
0
3
Open comments for this post

25m 36s logged

Working on a new minigame (2)… TEASER: Wario won’t be collecting coins on the floor, nonono… hint: What happens to Wario when he gets stung by a bee? I’ll put a proper devlog of the 2nd minigame soon…

0
0
5
Ship

A Warioware style minigame project. Fast-paced levels with a life system. Custom lose screen interface tracking score.

I made a WarioWare themed game with 5 minigames in total. You have to beat all 5 minigames What I found was challenging was designing and creating my own minigames as well as linking my own minigames to the ones in the guide. What I am most proud of is how polished the game feels especially and how fun the games turned out to be. The controls are intuitive and easy to learn as in most of the minigames, you only use the arrow keys

Try project → See source code →
Open comments for this post

1h 57m 29s logged

its done… Just spent time fixing on Warioware game, it took a really long, I was trying to figure out why my level for some reason, was going on level 1,2,3 straight to 5! What happened to my level 4. I literally just exported the game, uploaded it on itch.io played it, then realised HUH? for the next hour I just sat there staring at lines of code scrutinizing every individual variable line of code, (heck I even paid attention to the yellow labels!) I realised that I had been giving an extra command Global.minigames_done += 1 when my timer screen was already running that command, so the Global variable will run twice causing it to skip the 4th level. And also it happened that the lose screen buttons happened to not work, it was so annoying, RAAAAH. After another whole hour, it works! I had this function

func _process(delta):
	if lives == 0:
		lives = 5
		get_tree().change_scene_to_file("res://lose_screen.tscn")

so i just added a line in front of the get_tree() function lives = 5. It’s finally working now!!

1
0
2
Loading more…

Followers

Loading…