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

-Sophie-

@-Sophie-

Joined June 6th, 2026

  • 23Devlogs
  • 3Projects
  • 2Ships
  • 17Votes
tryna get good 🥸
Ship

# Suiheisen
This is Suiheisen, a 2.5D game meant to be paired with my own custom macropad (SuiheisenPad) that features four keys.

## Backstory
You're a Korean salaryman and you escape your chaebol office building to just run and chase the horizon. You don't know where your legs are taking you, but you don't care as long as it's far away from your dreaded cubicle. But obstacles wait for you on the road...because the universe just LOVES you. (or maybe it's the chaebols sending the obstacles?? :0)

## Controls:
- z -> dodge left
- x -> OK/enter
- c -> duck
- v -> right

I hope you have fun! I apologize that it's really unpolished but I think it's an MVP and I'm looking forward to future projects I have piled up!
This honestly took me so long but I had a lot of fun learning how to make an infinite scroller in 3D! This was my first 3D game by the way :) (though it's more like 2.5D)

Excited to see all the feedback you guys give!

  • 13 devlogs
  • 17h
Try project → See source code →
Open comments for this post

1h 24m 39s logged

Audio + Speed scaling + Pause menu

Audio

Took sounds from freesound.org that had CreativeCommons0 licenses and used them in my game! it makes it feel so much more alive :)

Speed scaling

Now the game is harder because the obstacles move back faster as the game progresses. I used an autoload Timer for this and it works surprisingly well!
I hope you guys get to try my game out! I’m shipping it rn!

Pause menu

Now if someone calls you in the middle of you playing this game you won’t rage quit lol

0
0
4
Open comments for this post

2h 1m 37s logged

Buildings added

Buildings

I modeled them in blender and stuff and made them modular. There are 5 types of buildings in total currently and 4 building chunk modules.

Spawn tweaks

I tweaked some spawner settings bc the more u got into the game the more weirdly the spawning would be like bursts of difficulty instead of constant accelerated difficulty. so fixed that :)

Future additions

  • roads and buildings get faster so you feel how everything is getting faster
  • audio
  • basic pause menu
    after i finish those future additions I’ll finally ship Suiheisen’s first addition :D
0
0
4
Open comments for this post

1h 51m 52s logged

Sky and more obsacles added

I added the limbo obstacle and now obstacle modularity is completely finished so i can just model obstacles and plug them in really easily. I also added a tutorial at the start for keyboard users.

0
0
2
Open comments for this post

2h 25m 25s logged

obstacles + more!! :DDDDD

Obstacles

now there is:

  • sawhorse barricade
  • ‘road work ahead’ sign
  • traffic cone
    all art and modeling and coloring etc done by me :D
    and i made the obstacle adding system modular so it’s really easy to add more obstacles as needed
    collisions are also all fine tuned to minimize rage quit lol

Player adjustments + bug fixes

Fixed a bug so now start screen fade out animation works as expected
the player’s height and camera was adjusted so obstacles are better seen and scaling is more realistic

future additions

  • proper limbo obstacles and separating them from regular obstacles
  • adding a pixelated sky texture via aseprite and godot worldenvironment
  • sfx possibly
  • buildings to surround the road to make it more lively and realistic
0
0
2
Open comments for this post

38m 37s logged

IT WORKS

Finally made modules for road terrain so now it looks like the thing is an actual infinite scroller now 😭 😭 😭 yessssssss

Art

  • I had to draw aseprite road textures myself
  • I also imported them in blender and after a lot of finessing I got them to this size. i actually might resize because it makes the player look super tiny lolll

scripts

I just made an array of the Node3Ds that had MeshInstance3Ds of each kind of road and made the spawner terrain controller thing alternate between them two :))

0
0
1
Open comments for this post

1h 50m 49s logged

i’m losing my mind…

i’m trying to figure out how to make an infinite scroller in 3d godot but since it’s not like 2d u can’t just put parallax… u need to actual write a script to generate the mesh and get rid of them accordingly while moving all the mesh towards the player. and my tiny brain cannot wrap my head around it. so here’s what it looks like so far before i find out how to do this infinite 3d scroller thing :’)

0
0
3
Open comments for this post

56m 40s logged

Finished start screen!

Art

Art for the background of the start_screen and the blinking is done ! this took me hours holy moly

Animations

Coded and configured AnimationPlayer node to create this cool set of events when u boot the game
Basic code overall but super time consuming

0
0
3
Open comments for this post

1h 7m 32s logged

Added footer + more

I added a footer to the home page to make it feel more complete

Number animations

now the number statistics animate when you scroll upon them. so i attached a video to show u what that looks like. I used the NumberFlow React library–it was pretty intuitive itself but then i had to use useState, useEffect, and useRef hooks and understand how to use those and how to defer the useEffect until the window detects it 😭 😭 u can do it with the native .getBoundingClientRect tho and u have to do it to an element you want to be the trigger, in my case i made the card the trigger, so if it shows then the animation will happen. and then make sure it’s less than window.innerHeight and element’s position.bottom must be greater than 0, which means that the element is below the top edge of ur screen
holy yap but this is how i teach myself bc that was something new for me 😭

0
0
2
Open comments for this post

1h 10m 41s logged

Game Over screen polished

Game over graphics

now the game over scene has a cool cubicle graphic (i drew it on aseprite all graphics here are custom-made) and it blinks. the instruction to go back to the start menu looks like that because this game is supposed to pair with my SuiheisenPad micropad (like an arcade machine)
The cubicle changes depending on the message that the game chooses

Player collision bug fixes + movement fixes

Now the player goes still when the game is over and it’s fading out, and the player’s side dodge collisions aren’t spheres but custom convex 3D shapes so that they can’t dodge the limbo obstacle

Fade out animations

now when game over happens the main scene fades out to black and game over fades in
yippee

0
0
2
Open comments for this post

28m 53s logged

game over messages + more

asset update

I made the running animation look less cut off on the sides
I made the dodging animations more polished with outlines

game over scene

when the horizon bar is at 0 the game over scene is cued

game over messages

now there’s a randomization of 4 messages, them being

  1. it looks like you’re working overtime…
  2. it was worth a shot i guess?
0
0
2
Open comments for this post

21m 15s logged

Horizon concept

Horizon bar added

I added the horizon bar, which is basically this game’s version of a health bar. It’s to fit the concept tho. Basically, the premise of the game is that this office worker is trying to escape his mundane office life running towards the horizon. (wants to chase the horizon and touch it) so yeah that’s why the bar is a sky themed thing–it’s to represent the horizon almost.

0
0
4
Open comments for this post

1h 55m 25s logged

FINALLY difficulty progression + points registering system

This took me way too long to figure out

Difficulty progression

the obstacles spawn more frequently by 1% every 3 seconds
spawning cap and cooldown for spawning are safeguards so that the game isn’t impossible

Points registering

If the player successfully avoids the obstacle, points are registered. If not, then points are not registered (soon there will be a consequence implemented as well.)

0
0
3
Open comments for this post

45m 2s logged

Obstacles and Collision

Player collision

Player collision optimized so that people don’t rage quit while playing lollll I had to make custom convex CollisionShapeD for limbo and regular running position

Player movement

Player now is forced to return to the running position after 0.5 seconds! unless you spam the button–in that case the player will remain in that position.

Obstacles

Obstacles now spawn randomly with a slightly higher weight for the limbo obstacle (1.2x more likely to pop up, tentative number)
Collisions are looking good so far! I will update them accordingly if they’re not accurate but they’ve been through like 10 rounds of optimization atp lol

0
0
4
Open comments for this post

45m 15s logged

Basic movement and collision established!

Scripts / spawners and collision

As you can see, I also assigned CollisionShape3D based on the character’s position. So when the player doesn’t dodge this left obstacle that is repeatedly spawned after 3 seconds, it will print “OI HIT” but if the player dodges to the right then it won’t collide. Obviously I’ll replace this OI HIT printing with actual game logic, namely losing a life.

Art

I made a basic running animation as well as dodging animations to accompany it. I stupidly made an idle animation and quickly realized I wouldn’t ever use it but whatevs.

0
0
112
Open comments for this post

38m 30s logged

Added card types and prop types to specify the kind of card design you want

I added different card types, and so now you can switch between them. So CardGrid is extra reusable LOL
This is through capitalized variables that I just learned! I could work logic between choosing components using a capitalized variable (yk the one that uses PascalCase)

0
0
6
Open comments for this post

22m 9s logged

Reworked some card grid component logic

I heard it’s better to create an array of the props rather than an array of the cards, so after struggling a bit I got to do it the conventional way with array mapping!
Not entirely sure what the individual mapping keys are for but I will look more deeply into that. It says online that you have to keep keys stable so that React knows which item you’re referencing but don’t totally understand why it would need to know that lol

0
0
3
Open comments for this post

51m 5s logged

Card Component + Card Grid

Both are reusable!

Card Component

I create InfoCard.jsx component which makes these light blue cards. I used props for the first time, so you can pass in an argument making these components completely reusable across the platform!

Card Grid

I created an array of cards and then passed them through the Card Grid. I made it so that the cols prop you pass in leads to the amount of columns created with Tailwind CSS by assigning 1 to “grid-col-1” etc etc in an object and then using that for part of the Tailwind CSS for the Card Grid. super simple logic but im still proud nevertheless LOL

0
0
2
Ship

This is a basic movie searcher made with simple HTML, CSS, and JS. You type in the name of a movie and the title, date of release, and a corresponding poster appears. You can also search with a keyword to get 10 related movies back in the same format in a grid.

I'm proud of building this because I used an external web API for the first time (OMDb) and I made an async/await function for the first time as well. I'm getting more comfortable with the concept of Promises, Requests/Responses and I'm very comfortable with DOM manipulation now :D

To test my project just go to the README of the github repo; the link to the deployed project is there.

  • 3 devlogs
  • 2h
  • 3.83x multiplier
  • 8 Stardust
Try project → See source code →
Open comments for this post

1h 20m 18s logged

I implemented Splide JS into the website so it could create this photo gallery carousel!! i’m so proud of it! and the syntax for Splide was surprisingly easy and intuitive–I followed a tutorial on Medium to understand how to use it. The home page is already looking more polished.

0
0
1
Loading more…

Followers

Loading…