Saturday, February 23, 2013

Ready for showdown!

We are ready with our prototype for Rover Rescue. We have shown our prototype to the cohort 2 and they really liked it. Here are some very thoughtful comments from the cohort 2:
   
  •   The emotional connection between the player and game needs to be more stronger.
  •   It is more of a real time tactical game than real time strategy.
  •   Controlling each dog would be difficult.
  •   Better camera view so that the dogs are more visible and the player feels sad when a dog dies.

   

A lot of comments were focused on Zeph's presentation. Most of them gave advice to zeph and talked about the ways of making the presentation better. On Monday we are going to present our game to the industry panel. Waiting for it...

Friday, February 22, 2013

Graphics Assignment 6th and 5th part B



This assignment was pretty cool. Exporting the Maya models into the the project in text file was simple as all I did was parsed the code from vertexBuffer and indexBuffer into a txt file. After that the next big task was to convert the text file to binary file. I had to spent several hours to wrap my head around this concept. Doing this in c++ was really tough to grasp. I did a lot of research on Google on how to convert the file. I found some ways of doing it but when I implemented those concept, it didn't work as I was trying to take the entire file and storing it in the buffer with the help of a pointer. Then writing the entire thing to a binary file keeping ios::binary on.


     It took me around 10 hours to finish the 6th assignment.  For writing to binary file, I created a struct similar to s_vertex. I copied all the data from the text file to the struct and then wrote it to the binary file. So, now I have the data in binary file according to the s_vertex structure. In cMesh class, all did is to create a vertexData pointer of struct s_vertex and read the entire data in. Once executed, it worked like a charm.

After this I started my 5th assignment part A. I completed that with in 1 hour and as I am writing this blog its already 5:56 on clock. Time to submit.

Saturday, February 16, 2013

Graphics Assignment 4

This assignment was a nightmare. Like Seriously. But, when I was done with it I felt it was not that big of a deal. A mistake of updating all the meshes together and then drawing it together which messed up my cubes made it worse for me.

  Frankly it took me around more than 20 hours total to complete this one. First, I started creating  Parsers for the four files Effect, Material, Entity and scene. Then, I started structuring the code. I partitioned the code of renderer into cEffect which consists of the shaders and the related data. Everything related to vertex and index buffer is in cMesh.

My controls for camera are still the same, it's WASD for up, left, down, right respectively. My controls for light are still the same, it's IJKL for up, left, down, right respectively.   My controls for moving mesh are still the same, it's Num8,4,2,6 for up, left, down, right respectively.   


 I have added camera position and light details into the scene file. Other than all this, I have nothing new to write about. The major part I felt that I did was structuring and parsing. Setting Zbuffer and clearing it every draw call was something new.

PIX screenshot:




Friday, February 15, 2013

Graphics Assigment 5


I have some problems with my 4th assignment, which I am planning to submit ASAP. So, I took Vaibhav Bhalerao's 4th assignment  to do my 5th assignment on specular Lighting.


This was a simple concept and that's why I could do it in 2 hours.  I mostly tried to do Phong specular lighting. As we had already normalized light direction in the 3rd assignment getting reflected light with hlsl command reflect() was a cakewalk. Next was getting the normalized eye position. As discussed in the lecture, the last row of the worldToView matrix is the camera's or eye's translation. I just copied almost the entire algorithm from the reference.


 One thing I could not get right was the attenuation. I don't know if I was doing it right. when i tried using the attenuation value, every cube changed to white and lost textures.

  Understanding and adding the entities and textures for more cubes was fairly easy as the code that I was working on was quite well structured.

Download Link

Rover Rescue ready for show!

Working on Rover Rescue has been quite fun. We are using Unity3D for our RTS/RTT survival game. Unity3D is not the most ideal Engine to work on if your game is RTS. Unity is best for first/third person camera view as things are simplified for these camera views. For getting isometric view of RTS and building up your prototype with that view takes a little more effort. The reason we chose Unity3D is because it is a really powerful prototyping tool and developing a prototype with this engine will be easiest.
      
      I have been working on HP management of the characters. The game is based on dogs which are the main characters of the game fighting against Mars' environmental hazard to collect rover parts. While they are off collecting rover parts their food and air level reduces. For now, we are planning to keep only two HPs. As we brainstorm, we are planning to come up with more exciting and original HP levels. So, controlling every individual dog's HP level that is, food and air, is what I am working on. Whereas Yuntao is working on collecting different parts of the rover. For, now we are just going to show off the HPs by percent level in the HUD layer. 

Things I have done:

  • Ray casting for position detection.  
  • Reducing Air and food level of each dog at a constant level.
  • Increasing HP level, depending upon dogs collection of  food or air.
  • The change in speed of the dogs depending upon their air and food level.
  • Collection of resources, that is, air and food on the map.
   
   I and Yuntao, have pretty much merged our code with that of Yang's mini-map and Wang's level design. We are ready for showing our prototype to cohort 2.

Tuesday, February 5, 2013

Prototype for Cohort 2

I am finally in Zeph's group on "Mars Rovers". The team for now is Zeph (Producer), Alice (Artist), Me(Engineer), Yuntao (Engineer), Yang (Engineer) and Wang (Engineer). I picked this team because "Mars Rover" is an RTS game. I have grown up playing RTS games and I would love to contribute to an RTS game like "Mars Rovers". 

      Until a week back we were iterating on the game idea. We came up several themes and several mechanics. But, something didn't feel right as all of those themes and mechanics have been already instigated in many RTS games. I was really doubting the theme and mechanics at every stage of the iteration. I just didn't want to settle on one thing. So, we kept iterating until Roger helped us with some game theme. We again started iterating on the game idea, keeping Roger's suggestions in mind. 

   The game idea has a come long way. We now have an RTS survival game. Bringing RTS lovers and First person/Third person survival lovers together can be our research statement. 

    Since the past week we are working on the prototype that we have to show to the Cohort 2 next week. We are using Unity3D. We are using JavaScript,C# mostly to write all the scripts.

Sunday, February 3, 2013

Game pitch for IGF

    The semester has started and I just remembered (thinking about my last semester grades) that writing here is really important. So, talking about this semester we, the cohort 3, have to work on a game for almost one year and present it to the IGF mostly by the end of this year. 
   
       For this we were supposed to pitch a game idea. Everyone in the cohort 3 had to participate. We were given a week to polish our game ideas (as we were supposed to be thinking about our game idea since the first semester). I, frankly didn't have any idea. I did not want to pitch my thesis game idea of the first semester. I wanted to come up with a novel concept. I really was thinking for the big thing- the IGF.
  
    I did a lot of research on what games go into IGF and which ones really win. The whole week I just did that and was trying to think about getting a new idea, IGF-like idea. New ideas don't just pop up in your brains. They neither come when you try to copy other game ideas. As Jonathan Blow says "Let me take my deepest vulnerabilities and put it in a game". And like Tracy Fullerton says "game ideas come when you try to relate them to your own life". 
   
    It was Monday 9:00 PM and I was still not sure about what to do. I asked my classmates if I can join their group, as participation was mandatory. But deep down I didn't feel like getting into someone else' idea just because they were not mine. I decided that however bad I suck I will be presenting my own pitch the next day. The only problem was that I didn't have any thing to present.

     Keeping Jonathan blow and Tracy Fullerton in mind, I knew its inside me and I just have to take it out. I tried to think about my deepest vulnerabilities and then and there my whole game (Footprints) was right infront of me. I worked around the whole night to get it right, to eliminate all the possible flaws of the game idea. It was 5 AM when I decided to sleep.
   
     Wise men have said "Don't sleep for 2 hours when you have a presentation the next day". But I am wiser. I got up at 7 AM and started making my Prezi slides. Everything was right in time and place, except me. I felt miserable and starting doubting this whole thing and where it was going. I couraged-up and presented my game idea. 


I just have one word to say on how my presentation was- DISASTROUS. Then and there I knew that I just ruined the whole thing. 

My hidden intentions behind writing this post really detailed must be to gain some sympathy. I just know that I tried really hard to put my idea in front of the audience, regardless.




Friday, February 1, 2013

Graphics Assignment 3

 Download Code

    I found this assignment pretty easy as compared to the previous one. I have added a texture (.png) image on the cube. I used D3DXCreateTextureFromFile command to load the texture onto the device (IDirect3DDevice9 object). Then set the texture using setTexture command. In vertex shader I just set o_texture=i_texture. It didn't need any changes in vertex shader. In fragment shader, I created a sampler2D object and applied it to the o_color. Applying texture just needed a couple of LOC.

Screenshot of PIX:



Getting point light effects needed just getting the world position of the cube. In fragment shader, I normalized both the world position of the box and the point source of light. Taking a dot product and multiplying it with the o_color gave me the those light effects. I used a simple if branch command to clamp the negative value of dot  product. The light position can be changed with I[up],J[left],k[down],L[right].

I have also taken care of the linker errors in release build. Now, the project works fine in release build.