Difference between revisions of "Final Project Review"

From Group 5
Jump to: navigation, search
(Created page with "http://cse125.ucsd.edu/cse125/2013/final.html Game concept: How and why did your game concept change from initial concept to what you implemented? KHANH- Our game orig...")
 
Line 1: Line 1:
http://cse125.ucsd.edu/cse125/2013/final.html
 
 
 
     Game concept: How and why did your game concept change from initial concept to what you implemented?
 
     Game concept: How and why did your game concept change from initial concept to what you implemented?
 
  
 
KHANH-
 
KHANH-
 
 
Our game originally was focused on the idea of an asymmetric battle between 3 weaker players and 1 stronger one. That central idea remained constant although many details were lost and gained along the way. We varied powerups, weapons, and map plans until it transformed into a SWAT themed shooter, to a magic and fantasy setting. Our idea was initially very elaborate, but as the deadlines loomed closer we were cutting several components, one of which was animations for the characters.
 
Our game originally was focused on the idea of an asymmetric battle between 3 weaker players and 1 stronger one. That central idea remained constant although many details were lost and gained along the way. We varied powerups, weapons, and map plans until it transformed into a SWAT themed shooter, to a magic and fantasy setting. Our idea was initially very elaborate, but as the deadlines loomed closer we were cutting several components, one of which was animations for the characters.
  
 
ZHEN:
 
ZHEN:
 +
Our game changed a lot as the quarter progressed. Initially we were going to make a FPS based on the MAFIA game. However, we decided to change the concept around week 3 or 4 because we could not think of a good game mechanic to separate the players. how the game is an asymmetric game of 3v1 in a dynamic map with different powerups and weapons.
  
    Our game changed a lot as the quarter progressed. Initially we were going to make a FPS based on the MAFIA game. However, we decided to change the concept around week 3 or 4 because we could not think of a good game mechanic to separate the players. how the game is an asymmetric game of 3v1 in a dynamic map with different powerups and weapons.
 
 
 
    Design: How does your final project design compare to the initial design, and what are the reasons for the differences, if any?
 
  
 +
Design: How does your final project design compare to the initial design, and what are the reasons for the differences, if any?
  
 
KHANH-
 
KHANH-
 
 
I think the core idea of the asymmetric battle was achieved. Visually, the game was not everything it could be, but we surprised ourselves in how good some aspects developed. Specifically the HUD, which was a collaboration between artist and programmers turned out very well. Player role, magic, health, weapon type, charge time, and even a radar all made the game intuitive and easy to read. The lack of fully fleshed out player animations is a shame, but the environment, skybox, and moving wall mechanics worked flawlessly during the demo. Our gameplay remained interesting, generating genuine panic and adrenaline in the guiest players who were stuck battling the “Bad Guy”.
 
I think the core idea of the asymmetric battle was achieved. Visually, the game was not everything it could be, but we surprised ourselves in how good some aspects developed. Specifically the HUD, which was a collaboration between artist and programmers turned out very well. Player role, magic, health, weapon type, charge time, and even a radar all made the game intuitive and easy to read. The lack of fully fleshed out player animations is a shame, but the environment, skybox, and moving wall mechanics worked flawlessly during the demo. Our gameplay remained interesting, generating genuine panic and adrenaline in the guiest players who were stuck battling the “Bad Guy”.
  
 
Zhen:
 
Zhen:
 +
I agree with everything Khanh has said. The core idea of the game is accomplished and we actually have a very cool HUD and mini-map. I think we were hoping to have a more sophisticated animation system but we encountered a lot of problems along the way.
  
    I agree with everything Khanh has said. The core idea of the game is accomplished and we actually have a very cool HUD and mini-map. I think we were hoping to have a more sophisticated animation system but we encountered a lot of problems along the way.
+
Schedule: How does your final schedule compare with your projected schedule, and what are the reasons for the differences, if any? (You should be able to glean this from your status reports.)
 
 
    Schedule: How does your final schedule compare with your projected schedule, and what are the reasons for the differences, if any? (You should be able to glean this from your status reports.)
 
 
 
  
 
KHANH-
 
KHANH-
 
 
As far as graphics, there was many of bumps we encountered along the way. I found myself re-doing several models, animations, and riggs over and over due to technical problems either transporting the files over, and the issues with the animations reading in the code. Although the “Bad Guy” model turned out very complex, we needed extra time to animate, rigg, and translate the animations into the game. I think Alex described Khanh’s workflow the best when he said “He spent more time redoing things than actually doing” I attribute this to my lack of experience with 3DS, not modeling in a way suited to uploading into code, and my underestimation of the number of road bumps we would encounter along the way.
 
As far as graphics, there was many of bumps we encountered along the way. I found myself re-doing several models, animations, and riggs over and over due to technical problems either transporting the files over, and the issues with the animations reading in the code. Although the “Bad Guy” model turned out very complex, we needed extra time to animate, rigg, and translate the animations into the game. I think Alex described Khanh’s workflow the best when he said “He spent more time redoing things than actually doing” I attribute this to my lack of experience with 3DS, not modeling in a way suited to uploading into code, and my underestimation of the number of road bumps we would encounter along the way.
  
 
Zhen:
 
Zhen:
 
+
I think our initial and actual schedule is way off. Everything that was listed for networking was done very early on during the quarter. Also there were many things that was off schedule. We did not anticipate how difficult graphics  and collision will be. Also there was issues with the SFML’s TCP packets that caused a bit of delay toward the end of the quarter.
    I think our initial and actual schedule is way off. Everything that was listed for networking was done very early on during the quarter. Also there were many things that was off schedule. We did not anticipate how difficult graphics  and collision will be. Also there was issues with the SFML’s TCP packets that caused a bit of delay toward the end of the quarter.
 
  
 
     What software methodology and group mechanics decisions worked out well, and which ones did not? Why?
 
     What software methodology and group mechanics decisions worked out well, and which ones did not? Why?
Line 41: Line 30:
  
 
Zhen:
 
Zhen:
 
+
I think the weekly group meetings worked pretty well. It force everyone to try to stay on track and not be the lagger. One thing that I think did not work quite so well was when we decided something very quickly and then implement it just to find out it doesn’t work well with our game.
    I think the weekly group meetings worked pretty well. It force everyone to try to stay on track and not be the lagger. One thing that I think did not work quite so well was when we decided something very quickly and then implement it just to find out it doesn’t work well with our game.
 
  
 
     Which aspects of the implementation were more difficult than you expected, and which were easier? Why?
 
     Which aspects of the implementation were more difficult than you expected, and which were easier? Why?
 
 
 
KHANH-
 
KHANH-
 
Getting the model to look right in 3DS MAX is totally different than getting it to look that same way in the game. Axis rotations, bone names, animation issues, EVERY. SINGLE. THING. that could have been an issue became an issue.
 
Getting the model to look right in 3DS MAX is totally different than getting it to look that same way in the game. Axis rotations, bone names, animation issues, EVERY. SINGLE. THING. that could have been an issue became an issue.
  
 
Zhen:
 
Zhen:
 
+
I think gameplay was a lot easier than I anticipated because once we had the basic gameplay, it was very easy to expand upon it. I think the C++ compiler and syntax gave me more trouble than anything else such as circular dependency.
    I think gameplay was a lot easier than I anticipated because once we had the basic gameplay, it was very easy to expand upon it. I think the C++ compiler and syntax gave me more trouble than anything else such as circular dependency.
 
  
 
     Which aspects of the project are you particularly proud of? Why?
 
     Which aspects of the project are you particularly proud of? Why?
 
  
 
KHANH-
 
KHANH-
 
 
The HUD turned out spectacularly. The magic, health, icons, aiming cursor, all worked together intuitively and shared an aesthetic that lend itself to the theme of the game.
 
The HUD turned out spectacularly. The magic, health, icons, aiming cursor, all worked together intuitively and shared an aesthetic that lend itself to the theme of the game.
  
 
Zhen:
 
Zhen:
 
+
I think the HUD was super awesome. I think we also did a great job of making a fun game.
    I think the HUD was super awesome. I think we also did a great job of making a fun game.
 
  
 
     What was the most difficult software problem you faced, and how did you overcome it (if you did)?
 
     What was the most difficult software problem you faced, and how did you overcome it (if you did)?
 
    sfml or animations?
 
  
 
KHANH-
 
KHANH-
Line 73: Line 53:
  
 
Zhen:
 
Zhen:
 
+
I think the C++ compiler is the most difficult software problem I encountered. I relied on Google, Matt and Bowen for help.
    I think the C++ compiler is the most difficult software problem I encountered. I relied on Google, Matt and Bowen for help.
 
  
 
     If you used an implementation language other than C++, describe the environments, libraries, and tools you used to support development in that language. What issues did you run into when developing in that language? Would you recommend groups use the language in the future? If so, how would you recommend groups best proceed to make it as straightforward as possible to use the language? And what should groups avoid? Finally, how many lines of code did you write for your project? (Do not include code you did not write, such as library source.) Use any convenient mechanism for counting, but state how you counted.
 
     If you used an implementation language other than C++, describe the environments, libraries, and tools you used to support development in that language. What issues did you run into when developing in that language? Would you recommend groups use the language in the future? If so, how would you recommend groups best proceed to make it as straightforward as possible to use the language? And what should groups avoid? Finally, how many lines of code did you write for your project? (Do not include code you did not write, such as library source.) Use any convenient mechanism for counting, but state how you counted.
 
  
 
Zhen:
 
Zhen:
 
+
We used C++ and I believe Matt said we have over 11k lines of code.
    We used C++ and I believe Matt said we have over 11k lines of code.
 
 
 
  
 
     In developing the media content for your project, you relied upon a number of tools from the DirectX/OpenGL libraries to modeling software. And you likely did some troubleshooting to make it all work. So that students next year can benefit from what you learned, please detail your tool chain for modeling, exporting, and loading meshes, textures, and animations. Be specific about the tools and versions, any non-obvious steps you had to take to make it work (e.g., exporting from the tool in a specific manner), and any features or operations you specifically had to avoid — in other words, imagine that you were tutoring someone on how to use the toolchain you used to make it all work. Also, for the tools you did use, what is your opinion of them? Would you use them again, or look elsewhere?
 
     In developing the media content for your project, you relied upon a number of tools from the DirectX/OpenGL libraries to modeling software. And you likely did some troubleshooting to make it all work. So that students next year can benefit from what you learned, please detail your tool chain for modeling, exporting, and loading meshes, textures, and animations. Be specific about the tools and versions, any non-obvious steps you had to take to make it work (e.g., exporting from the tool in a specific manner), and any features or operations you specifically had to avoid — in other words, imagine that you were tutoring someone on how to use the toolchain you used to make it all work. Also, for the tools you did use, what is your opinion of them? Would you use them again, or look elsewhere?
 
  
 
The workflow we finally used to get animated models into the game was. 1. Animate in 3ds max 2013, 2. export as collada (.dae) (with baked animations). 3. import into 3ds max 2012 4. export as .X (with full matrix key frames) 5. Fudge the ground position in the game. We would not recommend anyone else using this workflow. We never figured out how to solve the final positioning problems, along with several of our animations exporting with bone weights set incorrectly. If we were to continue development on the game, we would probably look for an alternative to 3ds max for modeling and animating and then test several file types and export options before continuing. Also, having Y-up rather than Z-up sometimes makes things easier.
 
The workflow we finally used to get animated models into the game was. 1. Animate in 3ds max 2013, 2. export as collada (.dae) (with baked animations). 3. import into 3ds max 2012 4. export as .X (with full matrix key frames) 5. Fudge the ground position in the game. We would not recommend anyone else using this workflow. We never figured out how to solve the final positioning problems, along with several of our animations exporting with bone weights set incorrectly. If we were to continue development on the game, we would probably look for an alternative to 3ds max for modeling and animating and then test several file types and export options before continuing. Also, having Y-up rather than Z-up sometimes makes things easier.
Line 94: Line 69:
  
 
Zhen:
 
Zhen:
 
+
I think working from scratch was definitely worth it. I learn so much by doing it ourselves.
    I think working from scratch was definitely worth it. I learn so much by doing it ourselves.
 
  
 
     For those who used a networking library (e.g., RakNet), would you use it again if you were starting over knowing what you know now? Describe any lessons you learned using it (problems that you had to troubleshoot and how you addressed them) for future groups who may use it. If you did not use a library, judging from the experiences of the groups that did, would you have used it in retrospect?
 
     For those who used a networking library (e.g., RakNet), would you use it again if you were starting over knowing what you know now? Describe any lessons you learned using it (problems that you had to troubleshoot and how you addressed them) for future groups who may use it. If you did not use a library, judging from the experiences of the groups that did, would you have used it in retrospect?
Line 109: Line 83:
  
 
Zhen:
 
Zhen:
 
+
I think it would have been great if we had a working game earlier. One problem we had was not playing the game enough. We were making modifications down to the very last minute so it was very hard to balance the game.
    I think it would have been great if we had a working game earlier. One problem we had was not playing the game enough. We were making modifications down to the very last minute so it was very hard to balance the game.
 
  
 
     Which courses at UCSD do you think best prepared you for CSE 125?
 
     Which courses at UCSD do you think best prepared you for CSE 125?
  
 
Zhen:
 
Zhen:
 
+
I think CSE 100, CSE 131, and CSE 190 (android development) help prepared me the most because those classes taught me a lot about C/C++ and what it is like working on a large project.
    I think CSE 100, CSE 131, and CSE 190 (android development) help prepared me the most because those classes taught me a lot about C/C++ and what it is like working on a large project.
 
  
 
     What was the most important thing that you learned in the class?
 
     What was the most important thing that you learned in the class?
 
  
 
KHANH-
 
KHANH-
Line 125: Line 96:
  
 
Zhen:
 
Zhen:
 
+
I think the most important thing I learned from this class is working in such a large team and how to delay with conflicting interests.
    I think the most important thing I learned from this class is working in such a large team and how to delay with conflicting interests.
 
 
 
    Please post final screenshots of your game on your group pages for posterity.
 

Revision as of 22:29, 13 June 2013

   Game concept: How and why did your game concept change from initial concept to what you implemented?

KHANH- Our game originally was focused on the idea of an asymmetric battle between 3 weaker players and 1 stronger one. That central idea remained constant although many details were lost and gained along the way. We varied powerups, weapons, and map plans until it transformed into a SWAT themed shooter, to a magic and fantasy setting. Our idea was initially very elaborate, but as the deadlines loomed closer we were cutting several components, one of which was animations for the characters.

ZHEN: Our game changed a lot as the quarter progressed. Initially we were going to make a FPS based on the MAFIA game. However, we decided to change the concept around week 3 or 4 because we could not think of a good game mechanic to separate the players. how the game is an asymmetric game of 3v1 in a dynamic map with different powerups and weapons.


Design: How does your final project design compare to the initial design, and what are the reasons for the differences, if any?

KHANH- I think the core idea of the asymmetric battle was achieved. Visually, the game was not everything it could be, but we surprised ourselves in how good some aspects developed. Specifically the HUD, which was a collaboration between artist and programmers turned out very well. Player role, magic, health, weapon type, charge time, and even a radar all made the game intuitive and easy to read. The lack of fully fleshed out player animations is a shame, but the environment, skybox, and moving wall mechanics worked flawlessly during the demo. Our gameplay remained interesting, generating genuine panic and adrenaline in the guiest players who were stuck battling the “Bad Guy”.

Zhen: I agree with everything Khanh has said. The core idea of the game is accomplished and we actually have a very cool HUD and mini-map. I think we were hoping to have a more sophisticated animation system but we encountered a lot of problems along the way.

Schedule: How does your final schedule compare with your projected schedule, and what are the reasons for the differences, if any? (You should be able to glean this from your status reports.)

KHANH- As far as graphics, there was many of bumps we encountered along the way. I found myself re-doing several models, animations, and riggs over and over due to technical problems either transporting the files over, and the issues with the animations reading in the code. Although the “Bad Guy” model turned out very complex, we needed extra time to animate, rigg, and translate the animations into the game. I think Alex described Khanh’s workflow the best when he said “He spent more time redoing things than actually doing” I attribute this to my lack of experience with 3DS, not modeling in a way suited to uploading into code, and my underestimation of the number of road bumps we would encounter along the way.

Zhen: I think our initial and actual schedule is way off. Everything that was listed for networking was done very early on during the quarter. Also there were many things that was off schedule. We did not anticipate how difficult graphics and collision will be. Also there was issues with the SFML’s TCP packets that caused a bit of delay toward the end of the quarter.

   What software methodology and group mechanics decisions worked out well, and which ones did not? Why?

KHANH- 3DS MAX gave us many issues. Although it is a fine modeling program, texturing and unwrapping these models took time and was much less intuitive compared to other programs. Exporting was always a pain, and crashes became unavoidable, and counterproductive. There were also issues working in-between versions of 3DS MAX that we had in the lab and the ones we had available to download. We ended up having to export through various versions, which only added to the amount of time between graphics and coders.

Zhen: I think the weekly group meetings worked pretty well. It force everyone to try to stay on track and not be the lagger. One thing that I think did not work quite so well was when we decided something very quickly and then implement it just to find out it doesn’t work well with our game.

   Which aspects of the implementation were more difficult than you expected, and which were easier? Why?

KHANH- Getting the model to look right in 3DS MAX is totally different than getting it to look that same way in the game. Axis rotations, bone names, animation issues, EVERY. SINGLE. THING. that could have been an issue became an issue.

Zhen: I think gameplay was a lot easier than I anticipated because once we had the basic gameplay, it was very easy to expand upon it. I think the C++ compiler and syntax gave me more trouble than anything else such as circular dependency.

   Which aspects of the project are you particularly proud of? Why?

KHANH- The HUD turned out spectacularly. The magic, health, icons, aiming cursor, all worked together intuitively and shared an aesthetic that lend itself to the theme of the game.

Zhen: I think the HUD was super awesome. I think we also did a great job of making a fun game.

   What was the most difficult software problem you faced, and how did you overcome it (if you did)?

KHANH- We never finished uploading animations into the game. Although we could, there were issues with scaling, speed, and positioning of the models. In the end there were no animations for the “Good Guys” and there were no first person animations to simulate a swing of a sword or wand.

Zhen: I think the C++ compiler is the most difficult software problem I encountered. I relied on Google, Matt and Bowen for help.

   If you used an implementation language other than C++, describe the environments, libraries, and tools you used to support development in that language. What issues did you run into when developing in that language? Would you recommend groups use the language in the future? If so, how would you recommend groups best proceed to make it as straightforward as possible to use the language? And what should groups avoid? Finally, how many lines of code did you write for your project? (Do not include code you did not write, such as library source.) Use any convenient mechanism for counting, but state how you counted.

Zhen: We used C++ and I believe Matt said we have over 11k lines of code.

   In developing the media content for your project, you relied upon a number of tools from the DirectX/OpenGL libraries to modeling software. And you likely did some troubleshooting to make it all work. So that students next year can benefit from what you learned, please detail your tool chain for modeling, exporting, and loading meshes, textures, and animations. Be specific about the tools and versions, any non-obvious steps you had to take to make it work (e.g., exporting from the tool in a specific manner), and any features or operations you specifically had to avoid — in other words, imagine that you were tutoring someone on how to use the toolchain you used to make it all work. Also, for the tools you did use, what is your opinion of them? Would you use them again, or look elsewhere?

The workflow we finally used to get animated models into the game was. 1. Animate in 3ds max 2013, 2. export as collada (.dae) (with baked animations). 3. import into 3ds max 2012 4. export as .X (with full matrix key frames) 5. Fudge the ground position in the game. We would not recommend anyone else using this workflow. We never figured out how to solve the final positioning problems, along with several of our animations exporting with bone weights set incorrectly. If we were to continue development on the game, we would probably look for an alternative to 3ds max for modeling and animating and then test several file types and export options before continuing. Also, having Y-up rather than Z-up sometimes makes things easier.

   Would you have rather started with a game engine like Ogre or would you still prefer to work from scratch?

Working from scratch is definitely more fun when it actually works and definitely deeply maddening when it doesn’t.

Zhen: I think working from scratch was definitely worth it. I learn so much by doing it ourselves.

   For those who used a networking library (e.g., RakNet), would you use it again if you were starting over knowing what you know now? Describe any lessons you learned using it (problems that you had to troubleshoot and how you addressed them) for future groups who may use it. If you did not use a library, judging from the experiences of the groups that did, would you have used it in retrospect?

We used the network library of SFML along with its other components. SFML was very convient for our cross platform methodology as it handled the byte order corrections for many common types. The only problem we ran into was because we used an uncommon feature of SFML, non-blocking TCP, we ran into a bug late in development that wasted 2 full days of our tenth week. Using a low level networking library is definitely a good idea but remember, all software has bugs.

   Looking back over the past 10 weeks, how would you do things differently, and what would you do again in the same situation?

Have more than one guy on graphics for the whole quarter and have everyone on graphics work the same amount so they all understand the system and can then split the work. Make everyone in the group learn C++ (including all the pitfalls and weird corner cases) first before the quarter starts so we don’t waste time on basic stuff.

KHANH- Lower expectations, simply designs to it’s core essentials. Details tend to get lost the closer the deadline comes to approach. DON’T ANIMATE FABRICS.

Zhen: I think it would have been great if we had a working game earlier. One problem we had was not playing the game enough. We were making modifications down to the very last minute so it was very hard to balance the game.

   Which courses at UCSD do you think best prepared you for CSE 125?

Zhen: I think CSE 100, CSE 131, and CSE 190 (android development) help prepared me the most because those classes taught me a lot about C/C++ and what it is like working on a large project.

   What was the most important thing that you learned in the class?

KHANH- Simplifying my design from the get-go and lowering expectations to what could be accomplished would have worked may have yielded a complete set of animations. I should have planned for my plans not to have worked.

Zhen: I think the most important thing I learned from this class is working in such a large team and how to delay with conflicting interests.