Workshop I PPJs
WARNING - Long post. This is an archive of all of my personal production journal entries from my six month workshop project last year. I might make some mentions to images or other media that was included in the original incarnations of these posts, but have since been lost to time.
This post is from the first half of the project - Fall 2016
So I think we made really good progress these last two weeks. Even though we didn’t have class on Monday, I think everyone still worked as if we did. Our productivity and time-line seem like they’re still on track.
Personally, I think I got a lot done in terms of the build:
Character Controller – I think this is the most important addition I made. I got a brand new character controller with the switching and basic follow AI all set up! I actually modified Unity’s “Third Person” standard asset that is included in Unity 5 (which Brian told me about), so on top of having a working controller, we also have an animator set up!
It took some time to understand the script and the rotations of the characters in relation to the camera, but I eventually got it… for the most part. The switching was easy to add, but the following was much harder.
Ability 1 – Torch / Break – I also got started on programming the abilities for each character. I started with the easiest, which just so happens to be the two abilities that we all agree are the most important. The man spawns a light source (torch) for his ability, while the bear breaks down certain structures.
The torch is just a parented object the gets toggled on/off on button press.
The break was pretty simple. If the bear is a certain distance from the door and presses the ability button, the door will destroy. I will later on add a raycast to check if the bear is facing the door.
Camera Movement – The camera has been giving me some problems since the tech demo. We’ve decided on having a locked-perspective for each room/stage/puzzle, and that works fine for one axis. But as the player progresses the camera has to follow, so that’s one axis that has to move. And then I ran into the problem that, when the player enters an enclosed space, like a cave, they will need to be able to lower the camera to see. So that’s a second axis. Well, I made a script that allowed the player to change the camera angle within a certain range on the Z-axis, and for now that’s working pretty good. The next step is to make the camera move down if it angles up, so that the player is still in frame. Then I’ll just have to decide on a good control layout for camera movement.
Well, that’s pretty much the important stuff I did these two weeks. Next week I want to add two more abilities and implement all of the environment assets we have built! Lookin’ forward to it.
In the time since my last PPJ, a lot has happened! The game is progressing well, but it’s time to give it the final push it needs to get it ready. Since my last PPJ I’ve gotten a lot of programming done and added many of our core gameplay features.
Enemy AI – This was probably my biggest accomplishment of these last two weeks. To keep our project within scope, we decided on having only one enemy character — the wolf. This enemy is a proximity enemy: the level will start with the wolf sleeping in a start position. This will be it’s idle state. There is a red ring around the wolf that indicates its trigger. If either player character enters this ring, the wolf will wake up and attack! This is its attack state. The wolf is a navmesh agent, so once it attacks, it’ll follow the players around any obstacle until they exit the ring. Once both characters exit the ring, the wolf will slowly return to its original position. This is its return state. Once there, it will reenter its idle state.
The AI works well and I’m proud of how it came out. I’m extremely happy that I taught myself how to use navMesh agents. Now all to do is add animator prompts for wolf animations!
Climb / Swim – I also got both of the hunter and bears passive abilities implemented. Again, to keep with scope, we decided to give the hunter and bear one active and one passive ability each, at least for the prototype. The swim one was pretty easy, and so was the tree climbing in the end. The climbing took a bit more work, but works pretty well now. It’s a little finicky to try to get on the tree, but I think we need to move forward.
Controller Support – The game works with a controller now! I always felt that the controls on a keyboard felt a little wonky, so I spent some extra time giving our game support for the PS4 controller. It feels SO much better. I want to include xBox 360 support as well, but I don’t know if we have time to mess with cross-platform integration problems, so that’ll have to be on the back-burner for now.
Now, I want to focus entirely on implementing assets, no more gameplay programming. Especially for the alpha I want to have all models in with animations for AT LEAST the man. I want to have the UI (a draft) in by next week as well. Lvl 1 is coming along great, and we planned for 2 levels for the final, so I could see us potentially getting 4 levels if we keep a good pace.
I find myself getting pretty nervous about meeting deadlines, or if we’re doing enough, but I think we’re doing a great job keeping to our tasks so far. Hopefully we’ll keep at it.
So wow, this week was pretty rough. Not really a specific reason, but it just felt like all of my work for this quarter was crashing down on this week. I felt pretty sick most of the week too, so that didn’t really help, but oh well.
What Went Well:
Finished man and bear rigs – the man and bear are both rigged and ready to animate!
Got some bear animations churned out – Weidi got the idle and walk for the bear done and I messed around with importing them into Unity. Since it’s a quadruped, there is some added difficulty, but I at least know what not to do.
Finally added loading screens – Yep, got those bad boys made. Not much on them, but they work and adding graphics to them is the easy part.
Tweaked the pre-level – Changed up some of the design and made the prelevel a bit more dynamic.
What Went Wrong:
Not a lot got added – we made a lot of stuff, but it was all made so late in the week that I didn’t have time to actually get it into the build. I’ve made sure to stress to the team that this upcoming week I need stuff done quick so that I have time to actually get everything into Unity and working.
Animations are hard – the animations are not reading properly, but I think this will be solved with more research and trial-and-error. Just needs more time.
CS is kicking my butt – I had a lot on my mind besides this project this week as I was struggling with my other hard course, CS265. It sucks, but I’ll continue to work through it.
All-in-all, we’re so crazy close. We only have a few weeks left and the second level and all animations are the only roadblocks left in our way. We just have to continue to push through till the end, especially with the end of the term sapping away at everybody’s energy.
EDIT: Oh my god I completely forgot about last week. Well, the main accomplishment from last week was getting the new cinematic video in, setting up a menu system, building the AI, and getting level one implemented. Lots the build progressed a lot last week, then kind of slowed down this week as stuff was being created rather than implemented.
Well, we’re nearing the end of the term and, as such, the end of Workshop 1. This quarter has been rough and VERY busy, and this project has definitely had its ups and downs. So, as my last PPJ, I’ll look at some of what I think went wrong and what went right.
First, what went wrong:
- Format. Early on we decided that we wanted to make a 3D game. This proved to be difficult MANY times through-out production. It was my first time programming in a 3D environment, no one on the team had any character modeling experience, and the pipeline is much longer in some aspects then 2D. Oh, and rigging. No one was super confident in our rigging abilities, so I recruited my friend, Andrew Bishop who loves rigging (bless his soul). It worked out, but it really sucked to have to rely on outside help and Andrew’s schedule to move on with our own production.
- Design. Again, very early on we decided that we wanted to progress Kyle’s idea of a two character puzzle game. This was, again, a first for all of us: we had never made a puzzle game before. It’s really easy to put of puzzle and level design to the last minute, and I think that we experienced this first hand a little bit. I think this could have been fixed in a number of ways. First, we could have spent more time and effort on refining our core game idea. Second, we needed to start puzzle design on the first week of development. All-in-all, I’m actually very happy with the game and the levels we have, but I know there was room to grow. I suppose over-scoping could go in this section, but I know that I will always over-scope, no matter how careful I am.
- Time Management. This was both a personal and team problem. Despite my efforts to start my work on Tuesdays each week (which I held myself to every week), I still had trouble finding time for all of this quarters work, largely due to CS265. CS took SOOOOOOOOOOOOOO much effort and was ridiculously hard and time-consuming. I always put “Unexpected Allies” first, but I still had other things to do. In terms of the team as a whole, everyone did a pretty good job of getting their stuff done early up until about Alpha week (wk 8 – 9). People (myself included) began losing steam and the past few weeks I’ve been struggling to get all of the changes to the build made each week because I haven’t been getting assets until late Saturday or Sunday. It was hard to do my portion well when I wasn’t getting the assets I needed to work with until Sunday each week. We still pushed through the end really well though.
Alright, and now the good!
- Format. Yep, this is a good and bad aspect for me. As much as I bashed our decision to make a 3D game earlier, I think the pros outweigh the cons by a ton. As I said earlier, this was my first major exposure to 3D development and programming. I learned A LOT about Unity and development in general. I am so incredibly happy with how much I personally learned and the final product that we actually created. All of my cons aside, I am very happy with the 3D game we created in the end.
- Communication. I have worked on plenty of team projects. I know everyone else has as well. I have never had a team that has communicated as well as this one has, especially not a team of this size. I know other workshop 1 teams struggled a ton with meeting and communicating and I can honestly say that we never had any problems. We had some miscommunication, but no one ever tuned out or fell off the grid. Everyone communicated and participated well in meetings and on the GroupMe.
- Production. I hope I get my thoughts across correctly on this one, but I’m really glad with how much work we actually did. Even though there are plenty of things we could change and could’ve done better, we stuck to our plans and made (at least to me it feels like) a lot of content. We made a ton of art, got a ton into the build, and have a decent degree of polish on the game as well (story, collectibles, menus, loading screens, etc). All of our physical work and assets eventually came together and I’m really happy with how it looked.
All-in-all, I am really happy with the final product of “Unexpected Allies.” I know there will be a ton to fix even after next week, and I really look forward to possibly being able to make the game better and longer.