Tuesday, 23 January 2018

Final Development Log

This is the final development log for my Individual Project which I've decided to name "Transition Level". This log will be unique in that three weeks before the due date, I decided to scrap my VR game and do a non-VR version. However, after a week of work on that, I was shown various techniques that'd make doing a VR version of the game much more feasible in Unity. I decided to spend a weekend as a crash course in C# and Unity and after that I moved my project into Unity. I'll be going through step by step on how I managed to produce the Unity version of the game.

First, I needed to import all of my built levels from Unreal into Unity. I decided that if I couldn't easily do that, then rebuilding the game in Unity would be far too time consuming, as I had spent the whole week prior rebuilding levels. I found a way to export levels from Unreal into FBX and imported those FBX's into Unity as different scenes. They had to be resized with new lighting. Colliders and the like needed to be set up again, as well. But all in all, it wasn't time-consuming enough to detract from trying the Unity version.

One of the major reasons I rebuilt in Unity was to add cloth physics to the game. As I've previously outlined, I had difficulty adding cloth physics in Unreal. It was one of the things my project supervisor suggested and I really didn't want to let him down. I found out how to do it with ease in Unity and I did just that. By adding a cloth collider to the clothes I wanted to behave like cloth and a sphere collider to each of the controllers, I could easily create the effect. I merely needed to paint constraints so the clothes wouldn't fall through the level and adjust some other settings such as dampening.


The objects simply needed to be grabbable. I don't find the grabbing mechanics quite as fluid in Unity's VR Toolkit as I did in Unreal's VR Template, but I was able to adjust to them. I'm wondering if, with more time, I could've done more with these. For now though, I focused on making sure the phone worked as intended. By containing the specific audio clips that the phone would play to the phone object itself, I was able to create a speaker effect akin to a real phone, where it's more audible if you put the phone next to year ear.

One of the key differences between Unity and Unreal, is the lack of visual scripting. Unreal's visual scripting system, Blueprints, is one of the major reasons I originally chose that engine for this project. However, eventually, I realized that being constrained to Blueprints limited what I could actually do in a game. I started to learn basic C# for Unity and I was able to set up my events much easier than with Blueprints. Here's the script I used for the phone:



Level transitions were mostly handled by "locking" the door in each level until "GameController.levelconditions" had had its conditions met. In each level, these conditions might be different, but it was all still contained in that same "levelconditions" variable. In the Clothes Store level, a more specific series of tasks needed to be completed. So, the script would simply be set to wait until that final condition was met to set "levelconditions" were true, while in the Bedroom, the player merely needed to pick up the phone.

NPC's have a follow mechanic that was created by scripting a controller that followed the HTC Vive's head set around and locking the actual model into a specific axis. The rest of the animation is handled through an animation controller and runs animation I've made in Maya. Here are some quick renders of the character models from after I made and then rigged one of them:



Most of the game was simply setting up voice clips to different collisions and scripts, however, I do feel I let the game down in that respect. Due to my previous attempts at getting semi-professional or student actors to help with the project falling through, I was forced to provide the voices for the game myself. I was able to enlist my girlfriend to help, but neither of us are professional voice actors. The difficult material of the game made it hard for us to properly act out the dialogue, and I had to tone it down a bit in order for us to save it.

The last bit of development that I really want to mention is the mirror mechanic. I was most worried about failing to implement this mechanic as it was always planned to be the crux of the game. I was able to create the mirror by essentially making it an extra camera view that was showing what it was seeing. However, a mirror wasn't good enough. I needed it to not be able to see the character until the end of the game. I did this by attaching a model a script similar to the aforementioned NPCController to the headset and using a culling mask so you couldn't see the character in the game barring the mirror. Since VR doesn't tend to use character models for the playable character, it took awhile to come up with this solution.

My final thoughts on the matter are that I'm just glad to have a playable VR game. I ended up paring it down far more than I'd like, cutting out at least two scenarios and all of the "transition levels". This was due to not being able to use a VR headset until the middle of last month. Had I had more time to work in VR, I'd likely have a product closer to what I originally planned. I'm not sure this game actually does a very good job capturing my feelings of gender dysphoria and the harassment I deal with when presenting as a woman, but I am glad to have at least attempted. Below is a video of the game showcased in VR:

https://youtu.be/RJG5GquWDgU

Friday, 22 December 2017

Development Log 2

For my first transition room, I’m planning on using the trans experiences from my Trans Experience Survey to create harrowing messages that the player has to listen to while traversing a black corridor. The player's only navigation through the corridor will be words from phrases of harassment. When the player reaches the word, a memory of that harassment will play audibly. The player will be literally wading through messages in the darkness to find the light at the end of the tunnel. I decided I wanted to depict those messages audibly and physically.

For the physical portion of this room, I decided that I’d like to model key words from the experienced lines. The lines I had chosen were: “Godless heathens like you are an abomination to our Lord.”, “Ew, look at that man in a dress!”, and “Do you think it is a man or a woman?” I chose “abomination”, “it”, and “man” as the key words that’d be depicted physically. I thought they would share a common theme of the player being referred to as something they’re not (As the player character is assuming the role of a trans woman). Each line is a mixture of an answer from a survey and my own experience.

For modelling the words, I considered using Maya’s Word Art feature, however, the feature required a new download of either a 2016 Extension or a newer version of Maya. My student license allowed me access to these versions, but I was running into many frustrations in installing the new versions. Not only that, but the word art I was seeing looked generic and not quite what I wanted to go for. I could model the words by hand in Maya, but this seemed like it would be a timely process.

I eventually decided on using Google’s Tilt Brush 3D for the HTC Vive. This was commercial software that I already owned and it allowed me to create the hand-written and scratchy aesthetic to the words I was looking for. The models created with Tilt Brush 3D had a feeling of wrapping around the player due to being made in a virtual reality environment. Using this software gave me a bit of a creative spark after spending so much time with Maya and Unreal.

Unfortunately, while I could export general FBX files that worked with Unreal, more specialized tools that allowed the transfer of particle effects only exist for Unity. While there are some third-party applications in existence for using these particle effects in Unreal, they seemed spotty and cost money that I’d rather not spend on such a small part of the project (Especially not on software that might not work properly). The particle effects weren’t essential to my project, so I moved on without them.

Other recent work included another attempt at fixing my VR collision issues. I looked into a few potential methods, mostly by scouring forum posts, as again, proper documentation and tutorials are hard to come by. One thing that caught my eye was a VR Expansion Plugin for Unreal. This plugin would seemingly allow me to work in VR with development techniques that I’m more accustomed to. I attempted to install it, but ran into various issues with Microsoft Visual Studio. For whatever reason, it wasn’t generating a code version of the plugin properly. After a few hours of troubleshooting different solutions, I decided to just contact the creator of the plugin.


The creator of the Plugin helped me get it installed on my copy of Unreal. It took a lot of troubleshooting, but I got there. I was able to bypass the Visual Studio problem through a different method of installing. I’m now experimenting with the new VRCharacter options this plugin gives me. As opposed to using the default VRPawn, I should be able to now use a proper character Blueprint along with a Capsule Collider. Being stuck with the default VRPawn meant I didn’t have access to proper colliders. Now I do. However, I now have to replicate the sophisticated movement of the default VRPawn in this VRCharacter.

I continue to deal with the harsh realities of developing with VR for a one-person project. I'm especially glad I decided on a simpler art style for my work due to how time consuming creating every asset is. Coming to terms with the lack of MoCap animation for my project has been harder than I thought. I feel a lot of the reasons I chose this project are no longer valid. I still want to make a game that illustrates my experiences as a trans woman, but I also think working with VR is compromising it more than providing an enhanced experience. Also, losing the MoCap aspect is a huge blow since that's one of the few unique skills I feel I've picked up in my university experience.

Monday, 11 December 2017

Development Log 1

I've decided to start doing a development log going over specific events and issues during the development of this project. I think this will work better to illustrate my work than the more generalized blog posts I've made in the past. The brunt of my development work for the last week has been trying to figure out why things aren’t working the way I’m used to. VR development differs from non-VR development in a lot of ways that I wasn’t prepared for. I’ll outline a few of those ways and what’s gone wrong and what’s worked in this development log.

I spent a lot more time than I expected rescaling models and rearranging things to better fit the VR interface. This is something I had hoped to do weeks ago, but was delayed due to the lack of equipment. At the time being, I’ve only been able to finish this for the opening room and not the other planned rooms. Now that I better understand the proportions I need, this should go by much faster in the future.

The biggest hurdle this week was with the NavMeshBoundsVolume. This is a game object that dictates where you can and can’t move in a space. While this object isn’t exclusive to VR development, I had never needed to manipulate one in my previous games, so I was generally unfamiliar with it. I was having an issue where if the player moved on top of the bed, they wouldn’t stay the amount of space they had moved vertically. They were essentially locked to a specific set of Z coordinates that was higher than the floor, even when trying to move to a different part of the floor.

Manipulating the NavMeshBoundsVolume fixed that, but it created a new problem. In changing the range of the NavMeshBoundsVolume, the Volume now wanted to interact with objects that I didn’t want it to. This led to the events of the following GIF:



Trying to restore the Volume back to how it had been created a new movement problem. Movement wasn’t working at all. I spent the majority of a day trying to fix it until I decided the best course of action was to just rebuild the game, which I then did and was able to avoid all of the above problems, but it was extremely time-consuming.

Another roadblock I’ve ran into with VR development in Unreal is that the VR controller pawn doesn’t work like a character pawn in other Unreal templates nor like any pawns that I’ve created myself from scratch. Essentially, the VR controller pawn doesn’t create solid objects with proper collisions like a normal character pawn does. Most of the development work I’ve done in Unreal (As well as Unity) in the past has been entirely collision based. This has required me to rethink and relearn a lot of development.

Right now, I’m mainly trying to complete my game’s interactions by using these Blueprints.





These Blueprints operate the grab mechanic. I’ve been playing around with it to allow me to “activate” objects in addition to grabbing them. For example, I can grab this purse to add it to my “inventory” and I can grab this door to enter the next level. This allows me to operate most basic game logic despite the lack of proper collisions with the VR Controller pawn. I'm now trying to add variables to this operation. This rough video showcases some of these mechanics: https://youtu.be/7TruacKWJ-E

There have been multiple other issues this week, but they aren't exclusive to the VR side of things. One of those issues was an attempt at cloth physics that did not go as planed. I'm going to revisit that later in following the MOSCOW system by labelling it as a "Could Have". While I definitely want cloth physics working, especially in the clothing store portion of the game, I can't guarantee they'll work at this moment.

Three other issues holding me back this week include work on my group project (I created a procedurally generated game board for that in Unity completely from scratch, but that's not what this blog is about), personal illness (I had the flu all week), and lack of documentation for developing in Unreal. The illness made it hard to work and more uncomfortable than usual to work on a computer all day, especially since I had to attach a screen to my head and move my body around with it, but I got through it.

The more annoying thing about the illness is that I couldn't record any in-game dialogue. While I'm not going to do all of the dialogue myself, the actor situation never panned out since my contact would not reply to my emails. I do have some friends that might help me out, including one who is a professional radio DJ in New York. I can't guarantee their assistance though. Motion Capture acting will have to be entirely done with my girlfriend and a friend of mine, assuming the license I need is renewed.

The documentation issue has made me decide on Unity for the Group Project. Documentation is much, much easier to find for Unity than Unreal. However, I have less experience in Unity. I went with Unreal because I had developed similar first person experience games with the software and I figured that experience would transfer well to VR development. However, as you can see, it's required a lot of relearning. Which wouldn't be so bad, but the documentation for development in Unreal simply isn't as widespread as I'd like.

For this coming week, I'm going to record dialogue, record MoCap data (Hopefully), and build the rest of the levels now that I have level transitioning working fine. Once I have the MoCap data, I should be able to animate characters for the remaining levels. I continue to hope to have the project finished at the end of this month, however, I might edge closer to the Gold Product Deadline than I'd like. This is mostly due to the initial issues with getting software installed pushing my work back weeks.

I'm trying not to stress about this and just get on with my work, but every time something breaks, I lose hours, if not days, of time. That can be very unnerving and discouraging. I worry a lot of the creative side of this project is going to falter because of the technical issues. I'll continue to log development in an effort to properly measure the development process and the time it consumes.

Monday, 20 November 2017

Week 8 Progress So Far


Here is another progress update:

RESEARCH:

I did research on other games about trans experiences to better nail down what I want to do on the planned interlude cutscenes.

Two of those games were Clarity and Fit In. In Clarity, players transform into a magical girl at night. This represents the wish fulfillment that many trans people experience in wanting to live as our proper gender. While Fit In requires players to complete puzzles with pieces that don't fit into the standard mold. Both of these games serve as metaphors for the trans experience, and I think that'd be a great way to handle the interludes between the traditionally playable scenes.



Perhaps the most interesting game I found on the trans experience was Jennifer Raye's Boa Retina. Boa Retina uses abstract visuals to depict the messy feelings that come with gender dysphoria. I've worked with abstract visuals before to try to convey my feelings, usually in poorly drawn scribbles, as depicted below. I'm wondering if this style might be a good fit for me and a different way of expressing the feelings I'm trying to get across in addition to the traditional walking simulator.






The point of these interludes, however, was to get in direct quotes from the surveys. I could still use those during the interludes, but they might also seem out of place. I do think creating a sort of hazy dream state inbetween the traditional moments could work really well to both add to the discomfort, as well as depict feelings.

I also spent time at the Yorkshire Games Festival. This proved to be highly informative to where I took certain parts of this project. While all of the speakers recounting their experiences informed me in some way, the most useful to this project ended up being the talk on Star Wars Battlefront VR by the Criterion Games developers, Kieran Crimmins and James Scensson. I honestly didn't expect a big AAA game based on a licensed IP was going to help me very much, but in recounting their experiences in developing for VR, I learned various dos and don'ts.



Specifically, the most interesting thing I got out of the talk was how they handled a character's inner voice. This is something I'm a bit worried about. Do I give my character a voice to react to things? And if I do, how do I make it sound like it's coming from the player and not just a game character? After the panel, I put my social anxiety aside and chased after the devs to ask them about it. They told me that they made the voice sound like it was coming from inside the player's head and to not really too much on this technique for exposition, but instead for relating emotional reactions. They also told me to look into a GDC talk from a dev that worked on their audio. I will hopefully go into more detail on that in my next blog entry.

Overall, just taking the time to listen to game dev talks and talk to developers was enlightening, inspring, and immensely helpful. I'm glad I took the time out to go.

 MODELLING:




Of the modelling, most of my time was spent on toilets. I should them to peers and they thought the models were definitely recognizable as toilets. I'm considering using grimier textures on the toilets used in the men's bathroom. In addition to adding realism, I think it'll make the environment feel like a more oppressive place if the player chooses to use that restroom instead of the women's.


Some of my other models included other bathroom objects and objects for the clothes store. The cash register's detail can be a bit more difficult to make out in image form than in the game engine with decent lighting. I'm hoping to use constraining joint for the clothes on the rack so that parts will move when touched while the rest stays in place. That way the objects will feel more real, but the player won't mess up the scene touching them.


DEMO VERSION:



I made a rough demo version of the first scene, but as you'll see in the setbacks portion of my post, there's a lot I can't do with it just yet. Hoping to have something resembling my "game" by the end of the week, but it's difficult to see if that'll be possible.

SETBACKS:

There were a lot of setbacks this week and they've been difficult to deal with. I'll try to outline each one clearly, but I still worry it'll come across as excuses for falling behind.

My meeting with the lecturer I planned to discuss actors with fell through. He was sick that day, which obviously can't be helped. However, multiple attempts at emailing him have been met with no replies. I'll have to find actors elsewhere. While I could maybe find voice actors online (I have at least one friend online who is a professional radio host in New York), finding actors for authentic motion capture will be more difficult, especially since I can't use the motion capture lab during the weekend.

While the university has the HTC Vive available for students, there are no computers that I'm aware of that have the necessary software installed. I've been trying for the last three weeks to get it installed to no avail. I've been told by multiple people to go to other people who then send me back to the people I first asked. I've just emailed someone else about it and I'm hoping this goes somewhere. My computer needs a graphics card upgrade to use the Vive but for this week, I'll try using it anyway since it's the best I have.

Lastly, the worst setback over this period has been the harassment that the brunt of this game is about. On the weekends, when I'm with my girlfriend, I try to spend a portion of the time out and about as myself. The last few times I've done this, I've received some of the worst harassment I've experienced in girl mode and it has sent me into a deep spiral of depression. Two weeks ago, it was people running out of a store just to point and laugh at me. Three days ago, it was people violently yelling the "t-word" slur at me in dark area with no one around. All this while learning about new anti-trans headlines in UK newspapers every day. These experiences are why I'm making this game, but they also make the subject matter raw and difficult to deal with.

I'm setting up some peer counselling meetings with the Leeds Gender Identify Clinic which will hopefully be sooner rather than later. They'll hopefully help me learn to go forward with this and maybe provide inspiration for the project as a whole.

CONCLUSION:


I think I'm making good progress in spite of the setbacks, but the setbacks are very hard to deal with. I hope to meet with my supervisor as soon as possible to discuss how to properly manage them.

Friday, 27 October 2017

Week 5 Progress So Far

This is a quick update on all of the progress I've made thus far:

RESEARCH:

I've read the following books for my research:

Issues in Therapy with Lesbian, Gay, Bisexual and Transgender Clients by Carles Neal and Dominic Davies


TransForming Gender: Transgender Practices of Identity, Intimacy and Care by Sally Hines


The Transgender Child: A Handbook for Families and Professionals by Stephanie Brill and Rachel Pepper


Transgender Voices: Beyond Women and Men by Lori B. Girshick

These books have offered interesting perspectives on trans folks that sometimes differ from my own. However, they are very dated, dry, and hard to parse. They serve as a reminder for why intimate and personal projects like mine are important to helping people understand trans people.

I've also ran a survey about trans people's experiences. So far, the survey has 27 responses and they're very informative. Some of these experiences differ greatly from mine (Especially trans men), others hit very close to home. Examples include misgendering (Sometimes on purpose), dysphoria set off by facial hair and other body attributes, and targeted street harassment ("Look, a man in a dress!")

I am currently trying to reach out to more trans folks outside of my online social circle to get a greater variety of replies. This is a tough and personal subject and a lot of trans folks would rather not be reminded of the hardships they face. The survey link is here: https://www.surveymonkey.co.uk/r/XD7JNBB

MODELLING:

The brunt of my more "practical" work has been modeling. I have completed modeling all of the objects for the opening room. I've wrote what I'd like to appear in that sequence, so I'll hopefully be able to build that sequence in Unreal next week. Models are confirmed to work fine in Unreal, as I've tested that.

I've opted for a more cartoon style with toon shading because that style fits my personality more than more realistic styles. It also allows me to focus more on the game design side of things without having to worry about higher polycounts interfering with the VR tech. It's currently a bit rough, but I plan on polishing it in the later weeks. For now, it's important that I have functional models.

This wardrobe represents one of the player's first major decisions. The player will have to choose between two items of clothing. One a bit more daring and obviously feminine, the other a bit less so. At one point in the process, I was going to make the choice between "female" and "male" coded clothes, a bit of this idea still remains, but I felt that went against the nature of the game. One of the most difficult tasks with this game is both avoiding and embracing the stereotypical gender binary. In some respects, it's one of the only visual ways of depicting dysphoria and my experiences, on the other, it can be harmful to embrace these conventions too much.


Here is a bed that continues the overall "heart" motif of the opening bedroom. One of those conventions I've embraced a bit, is cute/pink/hearts equals a girl. This obviously isn't necessarily true, but I thought it'd be an easy way of depicting a more feminine person's room. It's a bit on the younger side, but I also like that the heart motif sort of represents the "second puberty" a lot of trans women go through when taking hormones. We also have a habit of embracing younger skewing looks to make up for our missed girlhood. You'd be surprised how many times I've visited Claire's in the last year.






Here are a few smaller objects that will be placed upon this desk in the final room. While the phone will serve as an important game mechanic, letting the player choose to accept or decline messages, the rest of these objects are just for decoration. However, I did choose the color purple for the purse, hairbrush, and lipstick to make it a bit more personal, as purple is my favorite color. Continuing with that personal touch, is this blue wig, which is based on my own.



FEEDBACK:

Supervisor feedback through emails and meetings has been very helpful and allowed me to come up with new elements of the "game" and retool some of my ideas. Notably, embracing more positive elements. These have been harder to implement, but when I think about them or someone tells me about their positive experiences being trans through the survey, I am all the more motivated to continue with the project. It can be very crushing working on something that reminds you so much of your hardships in life, especially when you already suffer from depression.






The main place I receive regular feedback is Twitter. In addition to posting images of my work so far (As shown), I occasionally bounce ideas of other folks. This has helped me come up with some of the game mechanics for the game. Here, though, we see a number of friends liking my work, and one telling me that it reminds them of another game. This serves as a helpful bit of visual inspiration moving forward.

CONCLUSION:

I'm putting close to the 40 hours a week in, although it's probably closer to 30 if I'm honest. The modeling is taking longer than I expected, but I've also started on it a bit earlier than planned. There are a few more models that came out a bit rough and some I'll be using for later portions of the game that are also finished. Collecting more survey responses has also been difficult. Social anxiety makes it hard for me to put myself out there, but I'm still managing. I've posted the survey in Discord chats and asked friends to pass it around. Unfortunately, the University LGBT meeting only had 4 other students and none of them were trans (Or at the very least, didn't say as such). That ended up being a bit of a dead end as far as the survey goes.

I'm hoping to spend some serious time next week building the first level in Unreal's VR Template. That should give me a better idea of what to do with the game. I'm also considering pursuing actors for the motion capture and voiced segments of the game.

Thursday, 26 October 2017

Introduction

This is a production blog for my individual project for my final year of university. The project is an immersive sim about my experiences as a trans woman. The final product will utilize virtual reality to create a deeper sense of immersion and unease. I will be using motion capture techniques to recreate realistic behaviours to better flesh out the experience. The project will be constructed in Unreal Engine or Unity with the HTC Vive, if able to be acquired, in mind. Other VR headsets will be considered.

I have been researching trans experiences through books and social media interaction, but primarily this simulator will be based on my own experiences. It will mainly focus on the harassment, awkwardness, and general experience of presenting myself as a woman. This includes people following me and trying to take photos, stares and confrontations when trying to use the restroom, and general harassment when walking down the street. I'll also be trying to highlight positive experiences, as well, albeit this will be more difficult. These events are things I’ve experienced in real life.

The goal of this project is to help cis (Essentially, not transgender or non-binary folks) better understand how difficult it can be to live life as a trans person. In addition to the above experiences, I’m hoping some inkling of understanding of the phenomenon of gender dysphoria can be expressed. As difficult as the above experiences are, it is even more difficult having to present myself as a man in day to day interactions. That especially is difficult to convey to people. When reading about the subject myself, despite experiencing these feelings, the words in many books felt dry and obtuse. Academic sources weren’t quite getting the feelings across.

There are pre-existing games (Such as Laura K. Buzz’s Acceptance and Anna Antrophy’s Dys4ia) on this subject, some of which I have written about for previous projects, but I believe I have my own story to tell on this subject. I also believe that VR technology can create a far more identifiable experience than these already existing games. Personally, I’d also like to work with VR because of the career and educational opportunities that it presents.

This blog will help chart my progress throughout the year in developing this project. I hope to upload a new entry every week.