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

abhinavP

@abhinavP

Joined June 16th, 2026

  • 18Devlogs
  • 5Projects
  • 1Ships
  • 15Votes
I am an intermediate CAD and software developer, and I'm continually improving from my mistakes. I hope that I come out of this challenge knowing more than I did when I started. Plz take a look at my projects:D
Open comments for this post

8h 14m logged

This is the part where the game actually starts doing things. Wraps up arena generation, then jumps into shooting, movement, input, the bot’s brain, powerups, and bullets.
begin_level and start_match are just glue, reset the tanks, build the level, flip the state to playing. start_match additionally zeroes out score and level since that only happens when a whole new match starts, not every round.
fire_from is where powerups actually change what comes out of the barrel. Big shells make the bullet bigger and slower but harder hitting. Lock-On just flags the bullet as homing. Twin Cannons is the odd one out since it fires two bullets at a slight angle instead of changing one bullet’s stats. Bullets spawn a little in front of the tank’s nose too, otherwise they’d spawn inside their own tank and immediately register a hit on the guy who just fired.
try_move_tank is the one function basically everything routes through, player and bot both. Clamp the position, check it against every obstacle, only actually move if nothing’s blocking, unless you’ve got the Dozer Blade and you’re hitting a crate specifically, then the crate just dies instead.
handle_player_input is the “instant facing” control scheme. Read whichever movement keys are held, build a direction, normalize it so diagonals aren’t faster than straight lines, then just snap the tank’s angle straight to that direction. No gradual turning for humans, you press a direction and you’re already facing it.
update_bot is the biggest one here and honestly the most fun to write. Every frame it loads its difficulty stats, decides whether to chase the player or detour for a nearby powerup, figures out how far off its aim is, probes a little bit ahead of itself to avoid walking into walls, turns gradually toward its goal since bots don’t get the instant snap the player gets, picks a speed based on distance to target, and only actually shoots if its aim is tight enough and the target’s in range.
maybe_spawn_powerup and check_powerup_pickup are pretty simple, try random spots until one doesn’t overlap anything or spawn too close to a tank, and check distance for pickup.
update_bullets is the long one. Homing bullets get nudged toward their target a little each frame instead of snapping straight at it, so they’re curveable and dodgeable, not laser guided. Then every bullet gets checked against the arena bounds, every obstacle, and both tanks, in that order, and whichever one it hits first is what actually happens to it.
update_particles is just the tiny cosmetic bit, dots that drift, slow down over time, and fade out. Purely for hit sparks and crate destruction, doesn’t affect gameplay at all.

0
0
4
Open comments for this post

2h 8m logged

Devlogs might be ragebait… Lines 1 to 217 are basically just setup, nothing’s actually running yet.
Top of the file is the instruction manual docstring, how to install and run it. Then imports, math for angles and distances, random for scattering stuff and giving the bot some unpredictability, pygame doing the actual window and drawing and input work. After that’s a big constants block, basically a settings panel. Window size, tank stats, bullet speed, all the colors. The two fun ones are POWER_TYPES, which holds each powerup’s color and name in one place, and DIFFICULTIES, which is basically the bot’s stat sheet for easy medium and hard. Then MAPS, the four arenas, built so they’re mirror symmetric so nobody spawns with worse cover. Three small helper functions come next. clamp keeps a number in range. ang_diff figures out the short way to turn instead of spinning the long way around. circle_rect_hit checks if a circle touches a rectangle, and honestly this one function quietly handles every collision in the whole game.
Then the entity classes, Obstacle, Powerup, Bullet, Tank. All pretty dumb on purpose, they just hold data like position and health, they don’t do anything themselves. Last bit is Game.init setting up empty lists and the score, and reset_tanks, which puts player one at the bottom facing up and player two or the bot at the top facing down. That’s it, that’s everything before the game logic actually kicks in.

0
0
12
Ship

I made a Flappy Bird clone where you play as Nyan Cat flying through Mario-style pipes. The whole game runs in the browser as a single HTML file with no installs or dependencies, and everything including Nyan Cat, the rainbow trail, the pipes, and the boosters are drawn from scratch every frame using the HTML5 Canvas API.
The hardest part was getting it to actually run in the browser. I originally built it in Python with Pygame but Codespaces has no display so I had to learn how to convert the whole thing to JavaScript using the Canvas API and rewrite all the drawing logic from scratch.
I am most proud of the rainbow trail and the procedural Nyan Cat animation. The legs, tail, and body all animate using sine waves so there are zero image files in the entire project.
To test it just open the link, press SPACE or tap the screen to flap, and try to collect the boosters. The star makes you invincible, the mushroom makes you giant, the lightning bolt slows the pipes down, and the coins give you +5 points.

  • 7 devlogs
  • 9h
  • 5.18x multiplier
  • 48 Stardust
Try project → See source code →
Open comments for this post

1h 50m logged

Game start instructions: Creation of frames and layering the background: Making an RGB color-shifting background: Making score, best score, and active booster timers. : Making the starting scene

0
0
2
Open comments for this post

1h 36m logged

Making the invincible boundary for the cat : Making the pipe spawning system: Making pipe movement and scoring : Booster and pipe Collision : and pipe cleanup after it leaves the screen.

0
0
3
Open comments for this post

36m 19s logged

I was making the pipe and live update system. I noticed that I made a huge error in the code by forgetting to name a variable, and that led to quite a bit of debugging.

0
0
4
Open comments for this post

20m logged

Getting the code for the boosters finished up: Will most likely come back and add more boosters: The stars in the back are going to come out very nice

0
0
2
Open comments for this post

1h 44m 19s logged

This code handles all the basic setup and visual building blocks of the entire game. The draw_nyan_cat function makes the character form very simple shapes every frame. It also scales up and turns yellow when interacting with power-ups. Rainbow_Trail stores the cat’s last 30 positions and draws the layered color ribbon behind it. The Stars function scrolls 60 twinkling dots across the background of the parallax effect. The Pipe function draws the classic green obstacle pairs and has collision rectangles. The booster is a scrolling collectible that bobs and changes the cat’s visual structure when collected.

0
0
3
Open comments for this post

17m 1s logged

Code for the Raspberry Pi controller. There are glitches that I think will be resolved when input into the Raspberry Pi, because the Pi can download modules from the internet. However, all the code was done using AI, and i just did a few fixes to improve it.

0
0
3
Open comments for this post

58m 1s logged

Finished the go-kart. Made the Steering rack and assembly; added a steering wheel from an external website. I also added the electrical systems and decided to use a Raspberry Pi with a large LCD heads-up display to act as a speedometer and also control the motor inputs from the accelerator pedal to the motor.

0
0
7

Followers

Loading…