Gameplay Foundations

The very first thing I tried to do was figure out a way to have fog (exponential height fog) outside but not inside, which was a lot harder than I thought it would be?
I tried to implement a system using an invisible trigger box where if the character went close to the window, the fog would generate, and if you stepped away, it would go away, which actually did work; however, the fog would still generate in the loft which was kind of a waste of time for me, although I guess I did learn a lot lol.

node system for the trigger box for the fog system
setting fog density to 0 so when the box is triggered, it would change the value to 2

The door problem

Since I had collisions done, you could no longer just walk through the walls. I wanted to figure out a way to get the player to go to different rooms in the level. At first, using what I’d learned with the fog system, I tried to implement a similar feature where if you stepped on a trigger box, you could teleport to the next room, and again, this did work! I even figured out how to add a sound effect and a nice fade animation to transition nicely; however, it just felt off.
First of all, I had to set up two points to teleport into and out of the room, so I put them logically right in front of the door on both sides. However, it meant the character couldn’t be imported directly in front of the door as that would automatically trigger the second teleport feature, and I didn’t think it made sense to be teleported to the middle of the room continuity-wise.
I also had to add the coordinates for each destination by hand; the whole system felt really clunky, so I just decided to find a different way.

original teleporter door with trigger box in front
node setup to get it to function

E to Interact

I decided to try to implement a press “E to interact” interaction system, which was more complex to do, but thankfully there was so much information on how to do it that I had no real issues setting it up. It was quite a lengthy process and if I’m being honest idk if I have the bandwidth to type it all up lol. A really key part of it is this line trace system which is connected to the third-person camera. Which essentially is how UE5 is able to determine where the player is looking. I also had to create an “Interact” script and add “E” to the “master list” of movement controls as part of the process of setting this system up

Interactions with line trace

and now I have a good foundation for interacting with objects for the whole game. I also set it up so the interact button only pops up when you look at an interactable object.
I had slight issues the first time I tried to animate the door, it simply didn’t work but I came across another method which involved creating a pivot point and parenting the door to that point and animating it that way which worked perfectly. I also added a door frame to the wall the doors were on just to make it look a bit better and yeah everything works great.

Door with pivot point attached
nodes for door animation
door animation timeline

I made the crosshair really quickly in Photoshop; initially, it was meant to be like a circle, but I think the E was a bit clearer. I might also add a pop-up of text that says, “Press E to interact.”

original crosshair

functioning button popping up
door is open

Please ignore the fact the door technically opens the wrong way if you look at were the handle is placed, for some reason when I changed the pivot point to the other side to make it more technically accurate it messed up the animation speed and I couldn’t figure out why and didn’t want to spend a huge amount of time trying to fix something that was more of an aesthetic issue soooo I decided to leave it alone.

I also did a bit of a clean-up for the lighting trying to make things look a bit prettier (the lens flare might be doing a bit too much but I like it) removing weird light points shadows, etc but this is mainly personal aesthetic stuff I might talk about in another post.

Another slight change I made was to how Eve moves around the room. She was running by default but I felt that didn’t make sense. (Who just casually runs around their home?) so now she walks around the space instead.

setting up the walk animation blend space
updating the animation graph to the new blend space

Building the sets, pt. 2

The next set was the loft. This is where the majority of the game will take place.
As I pondered on how long it would take me to build the set, something that felt like a divine intervention occurred, and I came across a YouTube video that showed how to carry over scenes exactly how they look in Blender to UE5 using a feature called “Universal Scene Description.”. and I had also come across a creator that built blender scenes for Sims players, and I immediately felt a sense of clarity. Before I paid the £4 for the building, I tested out the method with a free set in an older project I had, and it worked perfectly, so I thought everything would be fine, but when I went to do the real thing, I encountered a HOST of issues.

test scene
Loft used in the game

Although everything looked fine in Blender once I carried it over to Unreal, the scene itself was technically there, but there were no textures. I looked high and low for a solution but no one seemed to have one 🙁

Error message about the materials

Now I eventually did figure out how to get the textures back after hunting around in the material nodes for Unreal and figured out it was because “UseBaseColorTexture” was turned off in the materials for each item. So I had to painstakingly go through and turn it on for EVERY SINGLE ITEM IN THE SCENE. which just felt like a waste of time for such a large scene so I explored other methods of importing the scene.

UE5 Materials tab

I was advised to try the plug in “better FBX exporter” by the CG supervisor of the company I work for, and he sent me the add-on and made a quick tutorial on how to use it. It did work… kind of.. like it’s definitely good to know, but for some reason, it imported the walls really strangely. A section of the roof was missing and the walls went see-through when you went into gameplay mode. I tried to just rebuild the walls but building in UE5 is honestly hell IMO so I tried one more thing. which was exporting the file as a GLB file and that worked perfectly!

scene imported with the better FBX addon
FINALLY SUCCESSFUL IMPORT

I still had some work to do. I began by fixing the windows in the scene and making the material work like glass. I then started adding lights into the scene and building a city landscape outside for continuity and immersion.

creating new glass material
cityscape outside the loft
adding lights to the loft

And then of course, additional things like cutting holes in the walls were doors are supposed to go and setting up collisions for all the objects so the characters can’t just walk through the couch or walls. A tedious but necessary task.

setting up collisions for the main shell of the loft

Building the sets

I worked out that I’ll only need 2 sets (the city and Nathan’s loft) and thankfully was able to find cheap assets to work with!

The City

I feel like I should probably come up with a name for the city lol. But anyway I really just wanted a vibey industrial cyberpunk vibe, loads of purple, neon, holo billboards etc. I followed a tutorial initially to get me going

I began by creating the base for the hologram billboards. As part of my vision, I wanted to have an ad that was specifically showcasing the Eve dolls, so I got to work on that. I shot the footage for the ad in Sims 4 It was the easiest and quickest way I could do it. I also found some additional gifs from giphy of existing media that I felt matched the vibe.

Sims created and captured in the sims 4

Everything was then added into Adobe After Effects, where I did some extra work on the colours and made them transparent to get them ready for importing into UE5. I had to import them out as image sequences rather than videos.

After Effects timeline showcasing Eve doll ad
After Effects timeline showcasing gif from the film Cool World

I then began actually constructing the city scene. I ran into some trouble right off the bat trying to get the assets working in my project but I figured out that I needed to migrate the assets from the project file that came into my project. I also kept getting frequent crashes, but I figured out I just needed to change the graphics API UE5 was using to DirectX.

Building up the city was actually quite easy and a little therapeutic, lol. I added a camera and added assets to suit the camera angle I wanted. I added lighting, fog, and of course, my holograms to the scene after converting them to sprite assets.

shot of the city in the UE5 viewport
shot of the city through set up camera actor with first lighting idea
shot of the city through set up camera actor with second lighting idea
shot of unlit city scene

I’m really happy with how it all turned out 🙂

final scene ready to be rendered

The storyboard vs final render

Storyboarding

I created a little storyboard to give me a bit of guidelines for creating the opening cutscene

for the game, I tried to keep things as simple as possible because it occurred to me that I am not the best animator and I don’t have access to an extensive library of free 3d animations that work with my characters, and I just don’t want to spend a lot of time trying to figure out extra character animations. So I thought more about camera placement and how to convey the scene with as little as possible. Sometimes less is more, lol.

Scriptwriting and Ethical Thoughts

I’ve been using a program called Drama Queen to write my script, and there have been numerous iterations of even just the intro.

snippet of the intro sequence script

I’ve been getting thoughts and input from other people based on what I’ve told them the project is about and trying to work all my ideas into the writing.

Feedback on Whatsapp from a friend

I will say I’ve struggled a bit with writing about the actual abuse. As someone who is lucky enough to have never been in an extremely violent abusive relationship, I didn’t want to feel like I was exploiting or making light of a subject matter that is so serious. Especially in light of recent events like the video of Diddy beating up his ex-girlfriend Cassie Ventura at a hotel and people making jokes and memes of women like Tina Turner or Whitney Houston who have suffered abuse by their partners. On the flip side I also don’t want anything to feel gratuitous like a lot of r*pe revenge films will have very long extremely graphic portrayals of sexual assault that always feel a bit unnecessary and shot in questionable ways…. I think the fact that nothing extremely graphic abuse-wise will actually be displayed helps with that.

A lot of the experiences Eve goes through are heavily inspired by real-life stories from women who have experienced abuse and had the courage to tell their stories to the public. The aforementioned Diddy and Cassie video is one of them as Cassie also mentioned a similar situation when she filed a civil suit against Diddy a couple months back.

I’m also thinking of the ethical implications of utilising AI text-to-speech for voice acting as I just don’t think text alone can deliver what is needed and due to time and budget constraints and me constantly going back and forth on the writing I just don’t think it’s feasible for me to find and direct 2 voice actors 🙁

Plotting and Planning

These are some notes that I put down during my initial “conception” stage, trying to think about things like what to call the main character, how I’d like to open the game, and world-building, where I wanted the main parts of the game to be, etc. Just a little brainstorming here and there. This is where I decided on Eve being the name of the character as a reference to Adam and Eve (the original woman).

Notebook notes 1
Notebook note 2
what is my core notes

Utilizing the tips that I learned from this LinkedIn game design course I decided to do a little more thinking about how I would like the game to play and what kind of game mechanics I could add.
The biggest thing I got from the course was essentially building your game around its “core”. It really made me think, about the core of my game. I settled on the word empathy. The goal of this experience, I guess, is to get people to understand the feelings of being trapped, afraid, and not having agency. Even though Eve is technically not a real person, they should still have empathy for the situation he is in and women who experience abuse in general. Maybe even think about what makes us human in the first place.
In any case, once the core was established I began to think about how to create the feelings I wanted through potential gameplay mechanics.

There was also the idea of the core loop which is like a series of actions to keep the players engaged in the game. This was a bit trickier for me to think about and to be fair in the course they did give examples of games that didn’t technically have a core loop or just had one general one so for example Minecraft = creativity. Writing a core statement out was also super helpful for me mentally as it really made me think about how to actually express this goal.

core loops notes
core statement notes

I also remembered a game I really love that is also a huge source of inspiration for the updated gameplay mechanics. It takes the trope of the captured princess and hero who saves her and rather than playing the hero, as per usual we are actually put in the princess’s shoes. It’s deeply harrowing.