Posts

Wrapping It All Up

Image
 And just like that — the project is (finally) complete. Looking back, this was way more than just a game demo. I started with a rough idea, explored different engines, built 3D scenes, added interaction, experimented with video transitions, teleportation, puzzles… and dealt with more bugs than I can count. In the last stretch, I focused on writing my final report and putting together the presentation slides. The report covers the whole development process — from concept sketches to technical challenges — while the slides highlight key features, visual style, and player experience. There are still things I’d like to polish, but overall, I’m proud of how far it’s come. I learned a ton, solved real problems, and actually made something I can show and play. Time to hit submit!

The Puzzle Piece Dilemma

 After discussing it with my instructor, I decided to add a new gameplay mechanic to my project: collecting puzzle pieces and completing a jigsaw puzzle. The original plan was simple: Each of the three scenes would contain two puzzle pieces , and since the player can use portals to move between them, they’d be able to gather all six pieces across scenes and then complete the puzzle in a final UI panel. It sounded pretty fun in theory. But then I ran into a major issue. When the player used a portal to travel between scenes, the puzzle progress reset — all collected data was lost. The pieces you had found were gone after loading into a new scene. So I asked ChatGPT for help. One solution it suggested was to move the puzzle system (UI, scripts, collected data, etc.) into the first main scene and keep it alive throughout all other scenes. Technically possible — but when I tried it, things started breaking fast. The problem? All my other UIs disappeared. Each sub-scene has...

UAT

Image
 After putting together a playable build, I sent it to my teacher for a quick UAT (User Acceptance Test). I wanted to get an outside perspective before moving further — and, as expected, I got a bunch of really helpful feedback. 1. The Main Scene Looked… Too Cyberpunk? The first piece of feedback kind of caught me off guard — apparently, my main scene background looked too cyberpunk . It had dark neon colors and heavy lighting, which gave it more of a futuristic vibe. That wasn’t really what I intended — I was going for something more historical or immersive-fantasy. To fix this, I swapped out the background image with something warmer and less stylized, something that hinted more at a mystical, historical world. I also toned down some of the lighting and post-processing effects. 2. Character Designs Got a Makeover Another comment was about the character designs . Some of the NPCs didn’t quite match the tone or art style — they felt a bit flat or too serious. My teacher actu...

Highlighting Interactables

Image
  Now that the portals and transitions were stable, I wanted to start adding more interactions to each scene — little moments where players could explore and examine the world more closely. One of the first features I built was a simple highlight-and-prompt system . Basically, when the player gets close to a certain object (like an image or artifact), it lights up slightly, and a small on-screen prompt appears: “Press E to View” How It Works Each interactable object has a trigger zone around it — usually just a small invisible collider. When the player enters this zone, a script checks for the player's tag, then: Highlights the object (using an outline shader or just a subtle glow) Enables a UI prompt on screen Waits for the player to press the E key Once E is pressed, a larger version of the image appears on screen, kind of like a zoom-in or close-up gallery view. Small Touches That Help I added a short delay before the highlight disappears when the player wal...

Background Music and the Right Vibe

As the scenes started coming together visually, I realized something was still missing: sound . Specifically, music — the kind that sets the tone and pulls you into the world without you even noticing. The Opening Video: A Soundtrack Starter I started by adding background music to the intro video . Since the video is the player's first impression of the world, I wanted the music to feel atmospheric but not distracting — something cinematic but subtle. After some digging through royalty-free music libraries, I found a track that fit perfectly: slow build-up, ambient textures, just the right amount of mystery. Music Controls – Pause and Play Of course, not every player wants constant music, so I added a simple UI button in the top right corner of the screen: Pause / Play BGM When the player taps the button, the music pauses or resumes. It’s a small feature, but it gives the player more control over their experience — especially helpful if they just want to focus on environmental ...

Portal3

 So after getting scene transitions to technically work, I ran into another unexpected (and honestly kind of funny) issue: the player was getting stuck inside the portals . Here’s what happened. The Problem: Portal Ping-Pong The player could walk into a portal, and it would successfully load the next scene — great! But then, immediately after arriving, they’d be spawned right inside another portal , which triggered another scene load. Sometimes they’d bounce back and forth, like ping-ponging between dimensions. Other times they’d just freeze or clip into the floor. The problem? I never told Unity where to place the player after loading a scene. The Fix: Adding Landing Points To solve this, I created a set of invisible landing points — basically empty GameObjects that marked the exact spot where the player should appear after entering a portal. For every scene, I placed one landing point per portal, usually just a few steps away from the actual doorway. That way, when the...

Portal2 & Player Setting

 So after getting the portals to look good, I moved on to making them actually work — meaning: when a player walks into a portal, it should load the next scene. Simple, right? Kind of. First Attempt: One Player Per Scene (Disaster) At first, I had a separate player prefab in every scene. It made testing easier, especially for checking colliders and first-person movement. I was focused on making sure the mesh colliders and terrain felt right under the player’s feet. But once I added actual scene switching , everything broke. Whenever I moved between scenes, Unity would load the new one with its own player object — meaning I suddenly had two players in the same project, sometimes both active. It led to all kinds of bugs: camera confusion, overlapping controls, audio source conflicts… total chaos. The Fix: Keep the Player in the Main Scene I turned to ChatGPT (again) and followed a smart suggestion: only keep one player , and manage it from the main scene. Now, instead of...