Wednesday, December 11, 2013

Post MortemEach member of the group was tasked with posting their thoughts about the good and bad aspects of this term. There is of course additional feedback (view-able below), but the summarized version of these results are as follows:

The Good

Dylan Yates - The entire team has agreed that Dylan was definitely one of the biggest factors leading to the success of this project. He did a disproportionally large amount of work, and that was due to our extreme confidence in his ability to use Unity. Without him, the project just wouldn't be what it is now, and we owe him big time.

Steady progress, regardless of setbacks - We had a new build each week that was noticeably improved over the previous week's. Regardless of assets being late or not turned in at all, we were able to push forward. This gave us a huge confidence boost as we moved forward. This was definitely the result of good team work and time management on an individual level, as well as group-wide.Good overall team flow - This is broken up into a few categories.

Casual communication - Our group seemed to meld together very well. It didn't seem like anyone was afraid to put their voice into the project, and we were able to communicate well because of this. There were some issues, as any group will face, but we were able to overcome them and deliver a great final product.

Group diversity - We had a large enough group to give each person a specialized role. This allowed everyone to contribute their best skills to the project instead of having to take time to learn something they weren't necessarily as comfortable with. In a fast paced project like this, we didn't always have the luxury of spending a week or two to learn something new.

Individual Cooperation - Our team did a pretty good job working together and getting stuff done for most of us having not worked with one another before. There were of course issues at times, but even then the issues didn't completely stop the flow of workand could have been much worse. For the most part, we met all of our deadlines and provided high quality work, and we are proud that our team was able to do that.

The BadLevel Design and Audio - We didn't have a designated level designer or sound person. The level design was mostly a team error, with no one wanting to take the lead on it, but we were not assigned a sound person and had to find someone outside of the class. Due to the lack of a dedicated game designer, the final game level is a little dry. Without a dedicated audio designer, we also missed out on a lot of atmospheric tension.Management and team consistency - This is more of an overall disappointment in Evan and myself rather than the rest of the team. There were times earlier on where we think we didn't micromanage as much as we should have, and it may have ended up hurting the quality of the project at times. This is could be due to our inexperience with managing, but personally there were times when I didn't want to push other teammates to the point of them getting frustrated with me. I thought that this would break the flow of the team and be detrimental to our success. We now know that that is the curse of being in a management position, however, and we definitely stepped up our game towards the end of the term.A few things that should have been stressed early on:

Naming conventions - Most of the people ignored the naming conventions that we agree on. It didn't show the downside now, because we don't have too many assets. It would become more and more of a problem as the project goes on.

Strict deadlines - There were issues with getting things turned in on time to the point where a formal policy had to be written up. This led to situations where code might not work with the newest assets. Path-finding was a large problem, with Ryan rarely having enough time to re-calibrate after new level designs were made. This left Dylan with barely enough time to pump out a build, and even less time for playtesting and creating presentations based on the results.

Communication - This was one of our biggest problems early on. At times, it wasn't clear what people were supposed to be working on and when it came to the time it was due, nothing was handed in. Eventually we figured out that all of our communications needed to be posted publicly so everyone knew what needed to get done.

Distributing work - It seemed at times that not everyone was putting in the same amount of time and effort into the project. This may have been due to an individual just not performing as well as they could, but there was also a lack of even distribution. This is not entirely due to the group communication, there were just times when something came up on the fly and it was just decided by someone to do it themselves rather than send it to someone else in the group.

Git - We had our fair share of technical difficulties with Git and Unity. Doing pretty much anything with Git would involve the repository getting messed up and we were forced to re-clone it. There was also the issue of Git not knowing how to handle merging Unity binary files Each time someone wanted to work on the project they had to notify everyone else to make sure no one was working on it, then they had to manually download the latest version, make their edits, and re-post. Git worked well for scripts, but since Dylan and Ryan's work rarely overlapped, we didn't get to leverage that. Git also worked very poorly for models, given the nature of their file structure.

Overall, the group agrees that we worked together well. And even though we had our issues, it was definitely as great learning experience for all of us.Moving Forward

Our group met up for a discussion on what we would like to see moving forward.Administrative

Spend a week going through the project to clean everything out and fix up any inconsistencies.

Master asset list.

Team communications need to be improved.

Stricter deadlines.

Plan for when people miss deadline.

Stronger structure.

Teamwork PM rather than Facebook.

Art

Art "manager" to ensure consistent art direction

Naming conventions need to be followed.

Programming

A list of what we need to program to distribute work better.

Comment code.

General

Have the Creature setting "seeds" or something to that effect, making it evident to the player that they are trying to cultivate the station for themselves to live in.

Puzzles.

More interesting environments.

Multiple monster types.

Better "cat and mouse" mechanics

Audio! Consistent and higher quality audio. We need a full audio director/engineer.

The creatures will have six limbs, not including the tail. The two closest to its head will operate primarily like arms and be used for attacking while the hind four will be used to scurry around the station. It will be able to raise its head to approximately 8’, or keep it low to the ground. This variety should add tension as the creatures is able to raise its head to spot the player, or remain low and out of sight as it searches. It was modeled in Modo with an emphasis on modelling for animation. Edge-flow allowed for proper deformation in all six extremities as well as the two torsos. Revisions had to be made to shorten the back section of the monster in order to work with the pathfinding programming. This ended up helping to reduce polycount which was another issue that arose during development.For future work, creating character sets to allow for all animation to be brought into a single file will be considered from the start. I was unaware of this technique until the issue of having multiple animation files arose at the. There are other ways around it but they were not compatible with the programming structure in place.

Tuesday, December 10, 2013

Talented Technicians- Our comp sci. team was quite a talented bunch and managed to implement a variety of features and consistently make them work. Dylan Yates and Ryan both did an impressive job. I'm not positive of Cory was a coder as my work rarely coincided with his but if so no doubt he did an admirable job as well.

Solid Art Style- Between Don's research into modular level design, solid hallways and rooms, Jon's awesome monster, Miguel's well textured light emitting device and my rooms and assets we had a really good style and atmosphere that I think was one of our strongest suits when combined with the powerhouse programming and game design.

Good Management- Cory Dylan and Even were fantastic managers and did a great job maintaining a steady stream of communication in terms of what needed to get done when.

The Bad

Timing- This term took place in the middle of coop season for many of the students within the class and I believe that contributed to at least for parts of the term some people being less dedicated than others. Interviews also slowed down our progress over the last few weeks of the term

Level Design- We didn't have a clear lead level designer because no one stepped up to the mantel for whatever reason. I hope to be able to work on this if we continue to move the project forward. Dylan Yates gets mention for doing a damn fine job anyway despite that he was doing so much programming.

Audio- We also lacked a solid committed audio designer. We made due still, but missed out on a lot of atmosphere and tension that could have been utilized.

Monday, December 9, 2013

Things are coming to a close this week and it's time to do a brief personal postmortem. We decided each person should individually write a mini version, and we'd bring together our ideas for a longer one.

The Good

Not being overly ambitious: Early on, we took a pragmatic approach with what we could and couldn't do in ten weeks. This paid off big time. We didn't over-promise too much, and we defined an idea that we could - and did- build.

Regardless of short term setbacks, we improved: Each week, we had a new build that was noticeably improved than the previous. Regardless of assets being late or not turned in at all, our weekly build improved.

Dylan Yates: He did an unproportional amount of work, and without him the project wouldn't be what it was. Dylan, if our project moves forward, I promise this will be fixed!

The Bad

Management: This is more of a disappointment in myself rather than the rest of the team. There were times where I didn't micromanage enough and it ended up hurting the quality of the project at times.

Not having a (used) master asset list: This would have been helpful to have for obvious reasons. I created a master list late in the project, and it was unfinished and unused. We should have created and maintained a list earlier in development. This is necessary should our project move forward.

Deadlines being missed: This was stressful for a few reasons. When things are late, I had to go find out the reason why and when they'd be in. When it became a problem, I had to be Mr. Manager and give serious talks. That wasn't fun.

We have pretty good turn out over last 11 weeks. We started from a vague idea of making a horror game to fully developed vertical slide. There were definitely things worked well and things to improve. Personally, I'm glad that I can deliver an art style that is not what I would usually do and still appropriate to the concept of the game.

The Good:

1) We have steady progress on our game each week. Each week we have more about our game to show and each week the game gets better. It's definitely the result of good team work and good time management on individual level. It also give us confidence as the project moves forward.

2) We spend enough time making the actual in-game assets, which also result in a better developed visual. It relates to the point above. I researched on modular environment design and decided it would be the best solution to deliver a large and explorable environment with less work on making the actual 3d models. We spent 4 weeks on making the 3d geometries and 4 weeks on texturing and 1 week or so on lighting. It's a pretty good scheduling.

The Bad:

1) Name conventions. Most of the people ignored the naming conventions that we agree on. It didn't show the downside now, because we don't have too many assets. It would become more and more of a problem as the project goes on.

2) Game design. We don't have a dedicated game designer on the team, which result in the final game is really dry. With that said, maybe we have some resources inefficiency issues, too. Since some teammates only committed no more than 3 hours of their time some of the weekly.

The Good...

We had enough people to give each person a specialized role. This allowed everyone to contribute their best skills to project instead of people having to take time to learn new skills. In a fast paced project like this we didn't have the luxury of spending a week or two to learn new skills.

Our team actually did a pretty good job working together and getting stuff done. That wasn't true all of the time but things could have been much worse, especially when you look at some of the other groups. For the most part we met all of our deadlines and provided high quality work, and I'm proud that our team was able to do that.

The Bad...

Communication was one of our biggest problems early on. It wasn't clear what people were supposed to be working on and when it was due so we ran into a few situations where work didn't get done. Eventually we figured out that all of our communications needed to be posted publicly so everyone knew what needed to get done.

Not everyone put in the same amount of effort into this project. Some members of the team were very passionate about the project and went above and beyond to make the game better. Others only did the bare minimum of what they were assigned to do or submitted substandard work. It would have been nice to see each member of the team put in a comparable amount of effort into this.

We had our fair share of technical difficulties with Git and Unity. Doing pretty much anything with Git would involve the Git repository getting messed up and being forced to reclone it. Also we weren't able to use the main purpose of Git since we cannot merge Unity binary files. Every time someone wanted to work on the Unity project they had to notify everyone else to make sure no one else was working on it.

The Good

C#

I was concerned about writing this project in C#, because previously I had only coded Unity projects in Unityscript, and didn't know C#. However, the anecdote of "if you know Java, you know C#" was true, and we were able to write much more robust code by using C#.

The Playtesting

We did a great job of iterative design and responding to frequent player issues. Many of the final "variables" such as player speed, sprint behavior, and enemy speeds were all perfected by playtesting. Other features that were inspired heavily by playtesting results include the voiceovers, the tutorials, and some of the configuration options.

The Process

Code goes in on Sunday, Assets go in on Tuesday, Playtesting build goes up on Wednesday. It was a tight schedule and it didn't leave too much time for wiggle room, but we were consistent, we followed it, and we made it work.

The Bad

Git

The choice to use Git was largely my fault, because the rest of the team was largely inexperienced with using any source control, and I made the decision to work with Git because it was the only one I was familiar with (and I have heard bad things about Perforce). Git worked well for the scripts, but since Dylan and I rarely had work that overlapped, we didn't get to leverage that. Git also worked very poorly for scenes and models, given the nature of their file structure. Because the team as a whole lacked experience with Git, we frequently had to re-clone the repository, and couldn't simply check in and check out the project.

The Schedule

Often times, the code was handed in on Sunday, but the assets and levels were not made until Tuesday. This led to situations where code might not work with the newest assets, or something might not look right (a prime example of this was pathfinding, I would rarely have time to recalibrate it after new level designs were made)

Windows 8.1

Partway through the project, I upgraded to Windows 8.1. This tanked compatibility with Unity 4.2, and made progress much slower. Eventually, I upgraded to 4.3, not realizing it would break backwards compatibility, and forcing other teammates to upgrade as well.

Thursday, December 5, 2013

Mostly minor things. General feed back was that the game looks really good.

Sell Presentation:

Elaborate more on audience

Why should someone play our game vs other games?

Possibly go from demo to more detail about the game

Talk about future plans

Address replayability and game time

Talked about LEG before it was introduced. Stop that.

And stop saying gun.

Add to intro slides "All you have is a flashlight"

Address why the player isn't shooting the Alien in the demo. Say this in presentation.

Almost too easy to power Reactor, add more of a challenge.

More creature noises. We don't want them sneaking up from behind.

Scrum:

Sound is weak, improve both effects and as a mechanic (not for next week, but term)

GDD isn't just what you've done, but where you're taking the game. What enhancements are coming?

Address player feedback in the presentation. Give summaries of feedback, and tell us where the game is going.

Note: Maybe we could make it so that the Creature hates light and wants to destroy it/put it out? This would explain why he follows light orbs. We could eventually have an animation of a creature ripping a power station out of the wall. That would be cool.