Postmortem
We have been given about 3 extra days to finish out the project and the end product turned out decently well. There were some parts that I would have liked to spend more time on, but for the most part it looks good.
As for the work that I've done in the days since Sprint 5 was completed, I have been making sure the stuff in Unity works. This includes the Maya FBX imports, prefabs, item functionality, interactives, script hook-ups, and lighting. I also was responsible for the submission of the assignment, making sure the files had the right naming conventions and so forth.
Here are some GIF's of things that I have worked on over the entire duration of the sprint.
| Fire particles that I created and set up |
| Ghost throwing nearby items at you |
| Overview of the terrain |
| Light interactions |
| Dropping items and picking them up |
| Items and their interactions |
Over the duration of this project, I have learned both technical skills and had hands-on experience with what it feels like to deal with last-minute submissions. As for technical skills, I think I had gained more experience working with Git and environmental tools. I had to use Git LFS because we had a lot of texture files that exceeded the 100mb limit of GitHub Desktop, so figuring that out was a wacky experience. I also learned more about creating atmosphere for a game, and how to utilize fog to enhance the overall aesthetic of the scene. I learned about how to set up the fog, water, and skybox settings across multiple scenes.
The other things that I have learned through this project was less technical and more about working with people. I got all the prefabs and models that I had to work with from my other teammates within the final 2 working days of the project, and it was not a fun experience. I had to work with FBX files that were not programmer friendly at all, and other models that had doors combined with the model itself so that I could not move the door separately. I also realized that my door script didn't work well on bigger doors. So by the time I get the models for the big gate and doors for the building areas, I realized that my method of moving a door based on a hinge worked terribly, and even reversed some of the ways the doors opened. All of this combined with the fact that I had to organize all the project files myself within a mere 24-36 hours was a nightmare, but I at least was able to pull through and finish the project for the team.
| Door dragging on a door that was not so fussy. Note that you must look to the left, or right of the hinge to be able to move the door. |
I spoke to my producer about this to figure out what I could do the next time a problem like this happens, and here is what I think I will do next time. First, I will address procrastination or other last minute tendencies as soon as possible. I was afraid to do so at first because I did not come off as rude or unprofessional, but speaking to my producer made me realize that it probably is not as long as you talk with a calm state of mind and presence. By addressing the problem early on, it allows me to set deadlines or schedules for my groupmates to provide me with the necessary models to work with in a timely manner and overall create a less stressful environment. And by creating a less stressful environment, it will help keep me in a calm state of mind to address any issues that arises without coming off as aggressive or hard to work with.
Overall, this has been a pretty big learning experience when it comes to work with others with procrastinating tendencies. Although the journey might not have been enjoyable, I do believe walking around and taking in the destination was certainly soothing for my state of mind. Thank you for reading my blog post, and I hope you'll check out my future projects.
Sprint 5
This sprint, I mainly worked with getting items into Unity and working. A lot of my cards were blocked because my modelers / texturers did not get the models I planned to work on in Unity yet, but I still got some meaningful work done.
As for the models I imported, they were all the models I textured last sprint. I set up all the box colliders, and got the door for the portapotty to work.
| Door of the portapotty working in my personal Unity scene + all the props I worked on |
Another thing I spent a decent amount of time working on is the campfire particle effects / lighting. I got the functionality working with the player being able to turn it on. The only thing that is missing is that I need the lighter model so that the player can turn it on using that instead of being able to turn it on at any time.
I also added a skybox that I found off of the Polyhaven website, which had really nice stars and lighting to go with our scene. All I did was adjust the brightness after importing it, and I think it matches really well with the fog.
| Skybox of a starry night sky |
I also made other items that my team made interactable so that it can be thrown by the ghost or picked up / dropped by the player.
The last main thing I worked on was light switch animations + testing out to see if my light script could work with multiple light objects. Turns out, it did and it worked pretty well for the most part! I might adjust the blinking to instead phase the brightness in and out to make it look better, but we'll see.
| Light switch animation + lights |
I also added an Easter Egg that will be towards the end of our scene. It is a simple crate model that we made near the start of our journey here at CADG, and we believed that it would be a fun little thing to add some more life and lore to our scene :)
| Little Easter Egg that's going to be added in our scene |
Sprint 4
This sprint I did a mix of terrain in Unity and texturing in Substance painter on models that I have worked on. For the terrain, I used free assets from the asset store which took me a while because of reasons I shall explain in a bit. The texturing was a smooth process, and the decal projection was simple to implement once I got a hold of the images themselves.
The terrain system took a while because I had to implement Git LFS, something like an extension of Git or at least to my knowledge. Basically, I had to push 2.5gb worth of files over to our GitHub repository so I decided to spend $5 to buy 50gb worth of storage for our project just for it to refuse to get pushed to the server. The problem did not lie in how I set up Git LFS, but just my internet source was not compatible with the cloud service it was being pushed to.
| Error message I kept getting while trying to push 5+ times. |
Anyways, for the features I did in the terrain was that I used 3-4 terrain textures, all of which provided by ALP on the unity asset store: 1 for the path, 1 for the coast, 1 for the base ground layer, and one for the grassy parts of the terrain. I also added trees on the outer skirts of the main area from an asset pack provided by Unity which can also be placed individually within the camp when we get to that.
| Terrain with layout toggled on and off to show where our buildings will be |
The last thing I did in Unity this week was implement decals using the built in HDRP Decal projector objects and PNG files that I created on Photoshop.
| Bloody handprint + blood splatter projected onto the wall. |
As for the textures I did, I textured the portapotty, docks, cloth barrier, picnic table, and BBQ grill.
| Portapotty |
| Docks |
| Picnic table |
| Cloth barrier |
| BBQ grill |
Sprint 3
For this sprint, I actually worked mostly on models. The only things I really did in unity was improve the hover script, add water graphics, and some ghost interaction. For modeling, I made a park BBQ grill, towel cover, dock, and a portapotty.
The water physics were pretty easy to implement since it is built into Unity HDRP. I am able to control the speed and height of the waves as well as how far the water goes.
| Water physics |
For the ghost event, I decided to go with the ghost throwing items towards the players. It takes the nearest 3-5 items not held by the player, and basically pushes the rigid body of the items towards the player's position. The period in between the throws can be adjusted, and the power can be tweaked as well.
| Ghost event where the items are thrown at the player |
The last little thing I did in Unity was change the player cursor to show all the time. The color changes to red every time it is hovering over something or when the player is dragging a door.
As for the models, I spent the most time making the bathroom because I also had to make the interior of the bathroom. I included a toilet, sink, interior walls, and poop pipe in the inside the portapotty. As for the docks, I made only half of the dock so that I could copy and paste the other half, since I noticed that they did that for the original game as well. Here are the photos.
| Cloth barrier for the player to hide behind |
| Picnic grill |
| Half of a dock |
| Portapotty |
Sprint 2
Again, for this sprint, I mainly worked in Unity. The main features I worked on were lighting and door functionality. The smaller features I worked on were ambient audio, a picnic table model, and an EMF reader.
For the lighting, I was tasked with making the generators work in the game, as well as light switches or triggers to toggle on / off the lights. The lights can be toggled on and off, but must have the generator turned on. I have not added any visual or audio that indicate whether the generator is turned on, but I plan to add lights and audio to tell the player when it is on.
The next main thing that I worked on is doors. Basically how they work is you click on them, and you are able to drag them in the direction you want them to be. Some doors will be locked however, and will require keys in order to unlock their functionality. For now, you can tell if a door is blocked by if it has the (Locked) text next to it. This definitely has been the most difficult feature I had to implement, I ran into so many issues with player positioning and positional control in general. To solve these, I used dot product to figure out if the player is in front of or behind the door, and swung the door accordingly.
| Locked Door Functionality |
| A cursed door |
I also made an EMF reader, which lights up more lights the closer you are to a certain point. It goes all the way from 0 - 5
| Getting closer to the glow lights up more notches on the EMF reader. |
The other things I worked on included ambient audio and a picnic table.
| Audio settings for ambient sounds |
| Picnic Table |
Sprint 1
Hello, my name is Kanyon Nguyen and I am working as a programmer in a group of four named Phasmo working to recreate the map 'Maple Lodge Campsite' from Phasmophobia, a cooperative horror game. We are doing Agile Development to complete this project, aiming to create an interactive environment which showcases our scene building skills. For this sprint, I mainly worked on getting Unity set up as well as some basic systems for our scene.
| Image of Maple Lodge provided by the Phasmophobia Wiki |
The main thing I worked on this sprint was the inventory system. This is a inventory system where you can carry up to 3 items, and access them by using the keys 1-3. You can use items you are holding by pressing 'f' on your keyboard, and drop them by pressing backspace. The only available items I have added as of now are the flashlight and key items, and I plan on adding the EMF reader next. The flashlight is able to be toggled on and off, as shown by it turning yellow and red while the key is able to open locked doors.
In Unity, I have also created a block out scene in order to walk around and get a feel for how big our map is going to be. I used a block out image that my lead designer found on the internet, and color coded the main things we will need in the scene.
- Pink walls = invisible boundary walls
- Giant grey blocks = main buildings and the van
- Little green blocks = generators that the players must activate in order to turn on light switches
- Cyan blocks = small tents
- Dark blue ones = bigger tents
- Yellow blocks = canopies
- Red Spheres = campfires
Lastly, I messed around with the volumetric fog and was able to get it running in my test scene.
Overall I think the sprint was a solid start for Unity, and am excited to see what happens next!
Comments
Post a Comment