Skip navigation

 

EAEOHSlider

This week we have two major events. First, EAE day which we had on Tuesday, and next We have our thesis defense on Thursday and Friday.

EAE Day

It was a long day, and it began with me showing up, at our lab, at-least half an hour early. I along with Mark started tearing down some of the computer systems needed for showcasing our game that day. All the computer equipment was moved to a different building where people from the salt lake city were invited to play our games. Among the public were some industry professional from companies such as Disney, EA, etc. Though the event ran from 11am to 5pm, but the actual event started at 2pm when people outside of the university started showing up.

Up until 5pm, our game booth was teeming with people – kids daring each other to play our horror game, grown men jumping out of their seat at the sound monsters in our game (not kidding at all), etc. It was an excellent opportunity for us to promote our game which we utilized to the max. There were also reporters from news channels covering our games. I met some old friends, people I have interviewed with, and my teachers, all in all it was an excellent day albeit quite tiring.

Thesis Defense

The only thing left before end of the semester is our thesis defense. It is essentially a presentation where every team will talk about their journey through the game development process. First producers on the team will give an detailed overview of the project and then each person on the team will talk about their contribution to the project. Two out of the four games – 404 Sight, and Point and think will be presented on Thursday. Then next day, rest two games will be presented – All is Dust and Hostile territory. Though the word “defense” does instill some kind of fear in me, but since I like presentation I think I will do good.

Well this is going to be my last post until I decide to write again. I must say past two years have been a hell of a ride, and I am too misty to write any more words. At the end, I would like to thank my parents, colleagues, and teachers for providing me with this wonderful journey.

Signing off

Gagan a.k.a. Sky

 

This week I was away for my on-site interview with Zenimax Online, Maryland. I was flown-in a day before the interview. I stayed a night at a nice hotel, all arranged by Zenimax Online. The whole meeting consisted of 3 mini interviews and a lunch with the different members of the team. I think it went pretty well. In the interview, I talked about my work on my thesis project, the advance graphics class I have been taking, problem solving in general, various projects I have worked on, etc. I should be hearing back from them in week or so , hopefully with a good news.

Next week we have our EAE day, where we will be showing our game to the public among other games from our cohort as well as the next cohort, GAPP Lab projects and capstone games from undergrads. I have been told by my teammates that there were some problems with the occulus and that’s what they have been for the past week.

This week we also had a dry run of our thesis defense which I sadly missed because of the interview. And that reminds me, I have yet to complete my slide for the presentation, so I will talk to you in the next post.

This semester is almost over and so is our project. Since the AI problem, which I dealt with last week, I haven’t had much to do except for some minor fixes here and there. I did work a little bit on the puzzle part of the third night level of the game. Earlier, the puzzle would require players to remove two stones from a pile of stones to topple a cauldron sitting on top of the pile, but now it has been reduced to just one. We made the change because most of the time players would completely miss the fact they have to remove two stones/rocks. This was partly because there wasn’t any discernible feedback (for the action of player moving the stoned) except for a sound and a result they would end up blindly mashing buttons in frustration. Sound effect could have been helpful if it wasn’t getting muddled because of all the chaos around the player in the final section of the game. There is also a small animation of stone falling in some random direction but that isn’t much noticeable because of darker environment of night 3.

Two more weeks to go… Woohooo

Unity 5

Unity 5

Last week, I worked on some of the problems that have been plaguing the AI since upgrading to Unity 5.
One of the problem was because Unity’s NavMeshAgent API has changed a little. Earlier, to start or stop an agent you would have to call a method called Stop with true or false as a parameter. But, now Unity 5 has introduced two separate methods, aptly named, Stop and Resume. Once I updated my code with the new API the errors were gone but the monsters weren’t still moving.
As it turns out, the reason for monsters refusing to move was the Stop method, the one I talked about in the previous paragraph. It appears that Stop method is behaving in a slightly different way. Previously, if a Stop(true) was called on an NavMeshAgent, it would stop instantly. However, with Unity 5 if a Stop method is called on an NavMeshAgent, it would stop only when it has completed travelling to the last location set by SetDestination method of the NavMeshAgent. Once I figured out the problem, I was able to solve it by calling SetDestination with position of the AI agent itself, just before calling the Stop method. This doesn’t feel right, but given the amount of time left, I think this is a good enough solution.
For those of you who are curious about the changes (as of 4/5/2015), go to the following link http://unity3d.com/unity/whats-new/unity-5.0

Last week, Swapnil, our lead engineer, upgraded our project from unity 4 to unity 5. As a result of that two things (out of many other) have happened. First, the game looks really good, thanks to Unity’s new global illumination rendering system. Second, the AI portion of the game is completely broken.

Let’s talk about global illumination first. Global illumination is an advance lighting technique which goes beyond a simple Phong lighting model. Here’s what Unity 5 is now capable of-

Just a few weeks back, I was having a conversation with Swapnil regarding how bad Unity’s lighting look in comparison to say Unreal. At the time, we tried turning few knobs in hopes of some magic, but lighting looked as it always had – lifeless and boring. Fast forward to last week, when we upgrade our project to Unity 5, our game has never looked this good. The particle effects, shading on the terrain, trees, spot lights, etc., look really good.

Now about the AI, the nav mesh and monster’s state machine are not working. A quick search on the internet produced a dozen results with people having similar problems with new navigation system which includes nav mesh, and nav mesh agent. I was able to solve the nav mesh problems by regenerating a new nav mesh, but monsters are still not moving. The Debug log hasn’t been helpful because according to logs AI state machine is switching states properly, and yet monsters refuse to move. I have been unable to solve the issues, hopefully I will be able to make some progress next week.

We are back from GDC with lots of great feedback. Since next week is a spring break, team has decided to mostly work our way through all the feedback and make plans for future. Jinghui, our lead designer, had prepare a nice document with all the positive and negative feedback. Each team member was provided with a copy of the said document, and asked to write their solution/suggestion for the issues. For me, personally, this was a bit of a tricky job, because all the negative feedback doesn’t necessarily mean something is wrong with the game, but I did my best.

Following were some of my suggestion to the problems.
One of the issue a lot of people complained about was – “they don’t know where to go”, despite having a map. For this, I suggested improving the visuals of the map, perhaps using contrasting color to make target mark more visible. Another related feedback was – “map made the game too easy”, as map removed any incentive to explore the area. To solve this problem, I suggested marking large areas as a “point of interest” as opposed to a single point (showing precisely where player has to go) on the map.

Here how the map is currently.
map_cross
My suggested solution

map_suggestion

By marking large areas as a “point of interest”, we can solve both problems. First, it tells the player a general direction for progressing through the game. Second, it allows for some exploration as this method doesn’t exactly points where to go next.

A lot of people also expressed that world felt empty at times. Pretty much whole team agreed with that. We talked about multiple ways to solve this issue with the time and resources we have. Finally, we decided that we will add more interactive items which tie into the narrative. Most of the items will be optional to the story line, but they will reward players who want to explore the map.

Though everyone was bubbling with ideas to improve our game, we decided not to start on anything new before the spring break. For now, everybody is looking forward to the spring break, visiting their families and friends. I, for one, will be working on my tight sleep schedule 🙂

Last week has mostly been about polishing our build for GDC 2015. Our focus has been to dish out a quick and simple experience for an audience at GDC. Though suggested playtime per person is around 5 minutes, but because of the the narrative sections of our game’s playtime is around 10-15 minutes. This isn’t a bad thing, we just have to make sure that people are having fun while playing out game.

Regarding progress on the game development.

There were couple of issues with occulus, but they have been resolved. As for the AI, I have made minor tweaks to the response behaviour of the monsters so that monsters are a bit easy on a new player. Recently, I also implemented a feature where if player gets near a monster, the monster will disappear in cloud of dust. This was done with respect to aesthetics of the game as we don’t want players hanging around close to monsters. GDC would be a good opportunity for us to get feedback regarding this new feature.

At GDC, every team from our cohort has to present their respective games at our EAE booth. Every team member will have to spend an hour or two on the booth – talking about our games, helping players with our games, and most of all impressing our potential employers! I have volunteered for two days (an hour each day), and now I need to oil my public speaking skills.

This week I implemented a little feature which I like to call “Long Freeze”. It augments the AI behavior so that longer the player looks at the monster, the longer it takes for monster to recover from the frozen state (of course with an upper bound). The idea for Long Freeze emerged while having a discussion about how players sometimes feel completely helpless because they cannot fight back at all. The Long freeze gives players a little bit of a fighting chance by allowing them to force longer duration of frozen state. The way this feature has been implemented, it is up to the player to stumble upon it.

The Team is working hard to get a build ready for the GDC. We have made some excellent progress with the story scenes for the game, too.

First, please have a look at some new screenshots from our game.

Corn with new shader

Corn with new shader

Inside the car

Inside the car

This week was pretty light in terms of work load. Other than a few bugs with the puzzle which I made last week I had nothing much to work on or at least that’s what I thought. On Thursday, while testing the final level of the game we (myself, Swapnil, and Jinghui) noticed that there was a major drop in fps because of all the fire effects going on in the level. To remedy the problem we decided to disable the particle effects which are not close to the player, this improved the situation quite a bit. But as soon as the player would enter the final zone of the level which has fire all around it, fps will drop again. To fix the problem, I wrote a simple script which would basically unload every object from the scene which is not visible ( or important) from the final zone. This not only freed up resource held by 3d models and textures but also disabled some of the scripts attached to those objects.

From next week, my team will be working on getting a build ready for upcoming GDC 2015.

Just an off topic update, this week I found out that our next assignment in advanced computer graphics class will be to implement reflections and skyboxes. Woohoo!!

Just a quick updated on what I have been working on this week. The team decided to have monster’s behavior tweaked so that when a player would approach a monster (it will be in frozen state because player will be looking at it), it would disappear depending on the proximity. And as player moves away from the spot, where monster disappeared, the monster will reappear while player is not looking at it. This feature gives the player a bit of pseudo fighting chance against monsters.

To make disappearance and reappearance as light weight as possible on the system, I made use of coroutines to iterate through all the meshes (and sub meshes) of the monster model and make them disappear. This prevents the system from having to handle large amount of data in a single frame.

Here’s a screenshot of our first cutscene.

story1