Thursday, May 2, 2013

Cool Scene

For making this cool scene, I had ideas of making a farm but I could not find good free assets online. So I decide to make this room. This is how it looks. Hope you like it. :)


Here's the link to my code: Download Code

Graphics Assignment 12

So much satisfaction after seeing the shadows work properly. I did face some problem but luckily they were small mistake which JP helped me figure out.

For doing shadows, I created a texture and a surface. This was used to create a shadow map. A shadow map is basically depth map with respect to the light. This shadow map is used to figure out which point on the map is closer to the light.

For doing shadows, we pass the view position and projected position of the pixel in light's space. Then the z value of the view position in light space is compared with the value which is looked up in the shadow up. The projected position of the pixel in the light space is used as texture co-ordinates for looking up the value in the shadow map.

Here are the screenshots of my Renderer and Shadow Map.



Here's the link to my code: Download Code

Wednesday, May 1, 2013

EAE Day

We had a build running on the EAE for the people to play. There were many industry professionals playing our alpha version of the game. We got a lot of valuable suggestions for improving the game.

Our graphics professor JP has some valuable inputs too. He said the Point Man lacked control. It seemed like he was taking orders from the hacker and not able to play his own game. We had this problem since the prototype itself but we could not find a good design solution. We surely added things to the Point Man after the prototype but that was not enough. We will look into this after we start the development process again after the semester is over. JP also said that the Hacker side lacked thrill which the Point Man had.

All the inputs that we got during the EAE will be considered during our design discussions.

I am sure that The Co-Signers is going to be a really good game. Lets see how the development process goes after this.


Scrum - Week 2 and 3

Our engineering team was very much stuck to the schedule. We were done with all the task assigned for the two weeks. 

In the second week, I worked on the Guard chasing the player. Guard's vision was implemented by Kiran. I just had to make the Guard chase the player when he saw the player. This was an easy task for me. I completed it quickly so that I could have time for handling my other programming stuff.

We decided to make the game feature complete in the 3rd week itself so that all the engineers can have more time to work on the assignments that we were lagging on.

I took lot of work in the 3rd week. I did the EMP implementation and the Power Node implementation on both, the hacker and thief side. Before this time, I did not work on the Hacker side at all. So I knew very little about it. I sat with Max, Nikhil and Chris to understand how exactly the hacker side works. 
While doing so, we got into a discussion about how the states of the nodes on the hacker side works and we came to know that we surely need to change the implementation of it when we are done with the alpha. 

My task in the 3rd Week was hardly anything from the Point Man side. It was a lot of work on the Hacker side. 

EMP implementation:

EMP is a trigger which releases all the network connections in a certain radius.

1) Point Man triggers the EMP.
2) Network is notified about this event.
(Thanks to Max's work on the Networking System. This was not too hard.)
3) Network tells the Hacker Side that EMP has been triggered at x,y,z position.
4) All the nodes surrounding this position in a particular radius are released.

Power Node Implementation:

Power Nodes are the nodes which have to be powered on by the Point Man for the Hacker, so that the hacker can hack it.

I know this does not sound very difficult but there are so many states for a node which makes it kind of complicated. 

At the end of the 3rd week, all the engineers met for making a final build for the EAE day. We remained at the lab almost till the midnight for combining the code and bug fixing.

With the end of that day. Work on Co-Signers for the semester was over :).

There starts SCRUM

When we met after GDC, the producers were finalizing the design of the game and all the engineers were designing a well formed architecture for the game. Since we had two sides working together, synchronicity between the two sides was very important and for that to happen a proper structure and interaction between the Hacker side, the networking and the Point-Man side was necessary. We decided the architecture and all of sat to decide how should the alpha be made.

We had 4 weeks to pull off an alpha (Less time than what we had for making the prototype). So we had 4 sprints. Each of one week in length. We made the tasks as short as possible so that each engineer can work on a unique task.

In the first week, I worked on making the Guard Overlord System. The Guard Overlord System was basically a manager between all the AI entities on the Point Man side. So if something happens in the world then this information won't go to the guards directly. This information would be sent to the Overlord. The overlord will decide which guards should be affected by this event.

So in the first week I created this basic Guard Overlord System. This will be expanded during the development process later.



Back from GDC...Engine Decided

After we came back from GDC, we had a meeting for deciding what engine we were going to use. Everyone of us agreed that for the game to be good and complete as per schedule we should use Unity.

We talked to people at GDC and the thing that was important were playable demos, something that someone has done on their own and good programming skills. Experience in UDK might be important but for the game Unity was important. Hence we finalized Unity4 and decided to meet next morning during our projects class to finalize the progress of our game.

I will make something in UDK on my own whenever I get time. More on that......when I start making something ;).


And, This is what happened at GDC.....

This was my first GDC and I was so excited for everything. Meeting people, talking about games, talking about work that's happening around, listening to the talks of big people. Everything was overwhelming.

On the first two days of GDC, I attended various sessions. Sessions on Math for Game Programmers, Physics for Game programmers and especially the AI summits. I got to know a lot about lots of stuff. Also, the other important thing to do at GDC was networking. I was finding it difficult initially to approach people and talk to them. But as time passed, I started getting into the groove ;).

I wanted to know few important things from the people, especially engineers working in the industry and I wanted to talk to people about that. I always thought that as an engineer it is very difficult to portray how good of an engineer you are from your resume. So I asked a lot of people about what could  be done regarding this. I got a lot of valuable information. Most of the stuff that people told me was to create a website, portray work on the website, have code samples, have playable demos on the website.

I also talked to people about how can I develop myself in the one years time that I have before I graduate. I got various kinds of answers for this question. Few people said that work on some technical stuff and create something that could be awesome like an AI technique or a good collision system and few people said that they just look into the playable demos of the games. I will be concentrating on all the things that I have learnt from all the big people and that will surely make me stand better in the crowd next year.

One of the many other reasons to be at GDC was to try and get an internship opportunity. I was talking to  people, especially near the job pavilion  regarding this and most of the companies did not have internship positions. But I was amazed by the number of people out there looking for jobs. That was a real eye opener. I was living in this shell of University of Utah. I surely understood that this is not easy industry to get into.

When we apply for a job, there are thousands other than you applying for the job. So even if I am a really good engineer, getting someone's eyes on my Resume is really hard and that is when I understood the importance of networking. If I know someone and I am in contact with them, they know whether I am a good engineer or not. They can at least forward my credentials to the HR. By doing this, at least I have someone reading my Resume and that's mostly what I aim for.

How can I make good relations with someone by talking to him/her for 5 minutes?
I cannot. But at least while I am talking I can make a mark so that they can remember me. Even if they don't I get their contact information so that I can ask them for help regarding my Resume and who knows while helping me they might find a good candidate for their open positions.

During the interview, it's completely my battle. I will be responsible for winning or losing the battle. That is the time when I can show the interviewer how could of an engineer I am. But getting into the battle is really tough and that's what networking in GDC has helped me to do.

I might not have got responses from everyone. I am not even saying that I have 10 internships lined up for me. But I surely got some valuable advice on my Resume and on my website (Yes. I created a website as soon as I came back from GDC. Here's the link: vaibhavbhalerao.com. Take a look. All your suggestions are valuable too. :D)

Going to GDC was an amazing experience. I have learnt so much from GDC. Not just about programming. But also about how to present myself in front of people. And I think, that's an very important lesson.