Browsed by
Category: Uncategorized

Final Report

Final Report

A. In the project review document, start by addressing these main questions:

1. Game concept: How and why did your game concept change from initial concept to what you implemented?
We mainly stuck to our original game concept of fat chickens participating in a game of capture the flag. The game concept as a whole remained intact throughout the project.

2. Design: How does your final project design compare to the initial design, and what are the reasons for the differences, if any?
We originally wanted the chickens to parachute down from the sky. Since this was a “nice-to-have” feature rather than a “need-to-have,” our actual end result was to have chickens fall from the sky instead due to time constraints. We wanted mounts, but we couldn’t make it that far. We dismounted the mount idea. We also wanted a bean stalk where we could have gone to like, another field in the sky. Barbara’s hot tub was stationary, we envisioned it to float higher and to move around.

3. 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.)

The whole team was really behind schedule. I think we simply overestimated everything and miscommunicated too much. I think we planned to have like, moving object block visually present and connected to the server by week 3 or 4 but didn’t get it until week 5. Everyone was still learning how to get things working and I would say that was the slowing point of the project. Animations took a lot longer than we had hoped. Miscommunication of graphics and network side cause some problems. Merging was always a hassle because sometimes we stray away from master branch. Early on, some of us weren’t too pressure and probably didn’t put in 100% work power so some slack built up.

B. Then address these more general questions:

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

We used JIRA, which was helpful for the first half, but as time went on we neglected it. While we used it it was useful to see what everyone was working on, but also to know what we each needed to get individually.

We also used git for our source control, keeping master as the working branch (most of the time :^) ). We also tried to use pull requests as our Code Review, but no code review was actually done and pull requests weren’t a good platform for that either because you can’t really inspect the exact lines of code for good/bad code.

2. Which aspects of the implementation were more difficult than you expected, and which were easier? Why?
[Matt] I ran into a couple issues when implementing animation; I certainly expected it to be a lot easier than it was. One issue was figuring out how to get a file format that would load into our project. Another was the lack of much code implementing animation in Modern OpenGL. When things went wrong I wasn’t sure if it’s because the tutorial was bad or I was doing something wrong in my pipeline so I had to check all my bases. Also it’s stupid that people use row-major matrices. 
Also, adding shadows was more difficult because I had trouble with using multiple shaders. Modern OpenGL was a lot more difficult than expected, because I knew nothing about shaders.

[John] Bullet had its ups and downs. We had a disaster just before our demo because of the Bullet mesh objects. Collisions with those mesh objects caused our server to crash and David had to hard code our physics objects as static objects really quickly.

[David] Trying to figure out the Bullet physics engine with poor documentation was rather bothersome and took longer than estimated.  Unexpected behaviors of the engine caused various problems throughout the project duration, but overall I think the engine really helped with 3d collision detection and handling.  Additionally, it was quite an educational experience to write both client and server side projects that were connected through networking.  Because of the complexity, team communication and collaboration were definitely more difficult than expected.

[Brian] I think the idea of having two parts to the game (Server/Game) made it really difficult to debug. Networking team didn’t touch the graphical things too much until later on in the quarter. That meant when we started hooking up the two worlds and if bugs were to appear, we would doubt whether it was our networking or graphical. We had a bug that made the bullets graphically appear farther away from us then it was supposed to. We were fairly certain it was network problem but it turned out to be graphical in a spot that John and I would have never looked.

[Phoebe] Animation took way more work than I expected because there weren’t many resources available online to help and it was difficult to debug the shaders we were using. The UI portion of the game also took more than I expected because I used LearnOpenGL to learn how to render text, but the text rendering originated at the bottom lefthand corner of the screen rather than the top left, so I had to spend a lot of time figuring out how to change the vertices matrices so that it would render the way we wanted. I didn’t want to have to use two different coordinate systems for text and 2D sprites because that would get real crazy, real fast.

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

In terms of graphics: animations! They make the game feel more realistic and fun to watch. It also allows you to have the fun of taunting. Also the shadows for the same reason of realism.

[Matt] An object that I really like is the corn maze because it’s a fun location to fight around and hide in.

[John] Other than the whole thing, I like some of the weapons that I implemented. The teleport gun and the egg mine were really cool to do and Bullet actually made the teleport gun really easy to create. There were a lot of other weapon ideas that I had that I didn’t have time for though.

[Brian] I really enjoyed doing the network and actually utilizing CSE 123 in something practical like making a game. Coming up with map ideas was also really fun.

[David]  I really liked how the server-side physics was set up with field detection and general collision detection.  Also, getting the vertical rotation working so that the player could aim was a nice touch, considering the differences of the camera angle to the chicken.

[Phoebe] I’m super proud of our animation! 🙂 It brings so much more life and character to our game.

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

[John] Bullet’s mesh objects crashed our server right before our demo. David had to hard code the physics objects super quickly to get our server stable again. The last hour of making everything stable again was really stressful. We were also stress testing the server and squashing out the last of the crashing bugs while David was getting the physics reimplemented. As that hour of fixing was coming to a close, we just threw David’s stuff in along with our modifications and some of Matt’s modified sound stuff and prayed that it would work during the demo.

[Brian] ^What John said.

[David] It definitely was stressful to deal with the last minute physics engine issue with imported meshes.  The clutch fixes with music and hardcoded physics objects were definitely a relief and arguably the most difficult problem given the time span.

5. 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?

N/A

6. 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.

src: 519

src/Audio: 212

src/Basic: 46

src/Client: 4324

src/Graphics: 1957

src/Graphics/Animation: 1850

src/Graphics/Objects: 1842

src/Graphics/Shaders: 984

src/Network: 0

src/Server: 1244

src/Engine: 3899

Total: 16,877

We used wc -l on all files, subtracting files that were totally or mostly unwritten by ourselves.

[Matt] I edited/rewrote a lot of the files that I got from OGLDev because it was terribly written or didn’t fit in our pipeline, so I included that as the count as code I wrote.

7. In developing the media content for your project, you relied upon a number of tools ranging 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?

[Animation, Matt] Models were rigged and animated in Maya, then were exported as FBX files. In our code we loaded the animation files with Assimp, but had to compile it on our own rather than using Nuget’s package of assimp which could not load FBX files. I think we got the latest version of Assimp from their repo (https://github.com/assimp/assimp), using CMake to get our Visual Studio project file. For some reason CMake didn’t work the first time I tried, but it did another day. I don’t know why. Afterward I parsed the Assimp scene into my own AnimatedModel/AnimationPlayer/AnimationMesh classes to handle multiple animations because I don’t think you can put multiple animations in one FBX without some manual delineations for which seconds belong to which animation.

[Textures] Models were created in Maya and exported as OBJ files.

[Modeling, Matt] One issue we had was trying to display our models at a certain location, but it didn’t seems to be there and that was because the models were not centered on the origin, but offset for the sake of creating a map. Translate models in your model matrices.

[Audio, Matt] I used Simple and Fast Multimedia Library (SFML) for audio. It was simple and fast, but I needed my audio to be in wav/ogg format and in mono rather than stereo in order to have spatialized sounds.

8. Would you have rather started with a game engine or would you still prefer to work from scratch?
[Michelle] I liked that we worked from scratch because we learned how to do everything from the ground up.

[John] I’ve never used a game engine, so I have nothing to compare this experience to, but I would think that there are advantages to both. Building from scratch is a ton of work, but it’s easier to do what you want since you’re building the framework. Using an engine can cause trouble since the engine might not let you do what you want to do and you would have to fight against the engine. I would just say it depends on what kind of project I want to do.

[Matt] Working from scratch is a lot of work, but rewarding. At the same time you get some messy code that could be written and designed better and unless you’re really good you’ll need to refactor your pipeline, which could be painful.

[Brian] I think working completely from scratch was very difficult and confusing at first. I like how we ended up doing things and it worked out well in the end. I wouldn’t mind seeing how the game engine scene would work so I utilize it in the future if necessary.

[David] I think that it was very rewarding to work from scratch and have more customizable choice in the physics and graphics portions.  Doing this project definitely gave me an appreciation for what game engines provide, and so I’m very glad to have experienced working from scratch;  I would still prefer working from scratch for the experience and customization power.

[Phoebe] I love that we were able to start from scratch and really understand how the whole system works in a networked game, but if I were to make the game again or make a new game, I’d use a game engine because it’d allow us to do so much more in the same amount of time, not having to reinvent the wheel.

9. For those who used a networking library (e.g., RakNet or Boost) or physics library (e.g., Bullet), 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?

[Brian] For networking, we used WinSock which was provided as a skeleton code by the professor. I personally would use the WinSock code again. We had to set up packet types and structures which was really interesting. John and I learned this from 123 which was really helpful. After the initial setup of WinSock, we really didn’t know how to have code to actually work over the internet like using sockets and IP. The skeleton handled that really well for us. I would like to learn how to set that up myself eventually and get it to work on other operating systems. After working with the physics engine Bullet, it made it easy to see how stuff should be done like handling physical objects like planes or rigid bodies. I originally wanted to start with a self built physics engine, but we defaulted to bullet. It has brought a lot of insight and would love to make our own in the future. For bullet, don’t use mesh objects to represent OBJ files.

10. What lessons about group dynamics did you learn about working in such a large group over an extended period of time on a challenging project?

We had all taken CSE 110: Software Engineering in which we developed a mobile application in a team of 10, so we had each worked in a large group before. However, this experience was better because we have now developed different skill sets from classes (graphics, networks, etc) and could bring a lot more to the table prior to the start of development. We learned that when there are subteams working on different parts of the game (server side and client side), it’s important to often go over each part so that we can integrate them seamlessly. At times, there were delays in integrating branches (such as between physics & graphics, and

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

[John] Where do I even start? There are a lot of things I would do differently. I’ll just mention one thing. The server side architecture wasn’t planned out very well and we kind of put hack on top of hack when building it. It made things difficult to do without refactoring. We had some god classes that had methods that could have been and should have been modularized. I would say planning is the biggest thing that we lacked and it came back and bit us.

[Brian] When John mentioned how he planned everything out from the very beginning for a separate project and how well it flowed out throughout the project’s span, I would have had a solid plan and map of how everything should have been laid out. I suppose it would have been hard if new ideas were to pop up though if we spent a solid time talking about it then it would have been better.

[Matt] A lot of me is frustrated that animation took so long and part of me thinks that it was because Phoebe had no background in graphics (though I appreciated her work), but as she tried to debug it it wasn’t getting better, and maybe worse. So I wish I could have worked on animation first.
[Michelle] I would have scheduled more team meetings to work together in the lab.

[Phoebe] I agree with Matt that it wasn’t the best to have me work on getting animations running since I had no experience with graphics – it would’ve been better if Matt or Michelle had been tasked with that responsibility. I think we would’ve saved a lot more time.

[David]  I think communication and a solid understanding of the project goals could have been improved.  Certain design decisions were implemented without additional features in mind that were decided or imagined later.  Having a more set and defined project idea would have helped initial implementation of the classes, and would have made later work much easier.

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

[Michelle] CSE 167, 168, and 169 prepared us for implementing graphics into our game.

[Matt] +1 to Michelle’s response. Also for the experience in writing C++ code.

[Brian] CSE 123 really helped with the networking aspect of our game. I thought it was

really helpful to set up the network and understand packet structures. I suppose CSE 110 could

be helpful if you had an nice experience with it for a team.

[John] 123 was helpful for networking. 120 helped with identifying and dealing with any race conditions due to the networking.

[Phoebe] CSE 120 and 123 was useful for the networking side, and COGS 121 helped with our UI and menu design and working on a project at an extremely fast pace.

[David] CSE 123 helped with my understanding of networking, CSE 131 helped me deal with horrible Bullet documentation, and some aspects of CSE 110 and 120 helped with semaphores and design decisions.

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

[Brian] The power of friendship.

[John] The power of planning and the lackof.

[Michelle] The power of coffee. [John] I didn’t drink any coffee. I am powerless 🙁 .

[Matt] How to learn. <- That’s actually a real answer. I think it was good to take on challenges that I didn’t know how to solve and be okay with going into it.

[David] Becoming comfortable with not knowing what you are doing, but learning and doing it anyways.  I think it’s a good life lesson that could be applied to a lot of things.

[Phoebe] The power of chickens (and teamwork).

14. Please post four final screenshots of your game on your group pages for posterity. I will display them on the group web page.

EggScramble EggScramble2 Untitled2 Untitled3

C. Finally, if you wish, I would appreciate any feedback on the course (entirely optional):

1. What books did you find helpful that were not on the recommended list but should be? What books were on the recommended list but were not useful and should be removed?

We didn’t really use any of the books :(.

2. I will be teaching this course next Spring. What advice/tips/suggestions would you give students who will take the course next year?

Plan out your software architectures and make sure to communicate between your subteams. Miscommunications made it tricky to merge stuff sometimes and some things were implemented twice because of it.

Sit down, spend a good day or two (More if you need to) and plan everything out your map design (allow room for change, but don’t plan on it), physics structure, weapon hierarchy, everything possible that you can think of. Worst mistake you can make is to think: “We can think of this later when we actually start implementing it.” <- Biggest lie you’ll tell yourself.

Don’t get far from the working branch. If you are, be conscious of what is out of date and what you’re adding. You’ll make merging really difficult if you don’t do that and no one wants to go through that.

[Matt] Also, don’t suck at C++ coding/object oriented design (use keyword “override” when overriding a base class function, delete dynamically allocated memory/use smart pointers, “Don’t repeat yourself” e.g. call your other constructors in your constructors, forward declare classes as much as you can to prevent circular dependencies/long build times, etc.).

3. How can the course be improved for next year

[John] I love how the course is run already. Maybe more guest lectures?

[Brian] The freedom of the course made it really nice. In the beginning of the course, other than the two requirements (3D and multiplayer), nothing else was needed. The support provided via Piazza, in person help from Prof. Voelker and TA, other teams’ help, and books in the cabinet are all helpful. Nothing really needs to be changed in my opinion.

[Matt] I was kind of looking forward to guest lecturers more.

[Phoebe] I think it’s already great. 🙂

[David] I enjoyed the freedom given in the course to succeed and fail on our own, but also the amazing help provided when asked for.  If anything to improve, more guest lecturers would have been nice to give ideas or perspectives of relevant projects.

4. Any other comments or feedback

Thanks Prof. Voelker and Ruiqing for the awesome experience! We appreciate the patience and kindness in the food provided to the extra time to fix our code during the demo 🙂 Stay awesome.

[Brian] I love you all.

[David] Thank you so much for this amazing experience to attend the class and work on our own video game project.  This really made an amazing last quarter and a huge impact on my entire college career.  

Week 9

Week 9

Overall Status:

  • Network: Animations are networked. Reduced the amount of packets being sent.
  • Graphics: The chicken animates! Getting the map set up (have a corn field) and putting real shading in on the objects. Also have a death animation.
  • Gameplay: Players die and respawn
  • Input:
  • Art:

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Monday, Thursday, and Saturday for graphics team
  • Tuesday and Sunday for networking team

Group Morale:

UP

Screenshots:

Some new features into out map. Need to add textures to them.

This picture has a house, a building under construction.

13340582_1167859626591491_1489802037_o

This picture features a windmill and a maze made of corn.

13334267_1167859633258157_1097903860_o

Some random features we threw in for fun. I think that’s a boat and a hot tub.

13313619_1167859629924824_95483624_o

Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?

This week I wanted to game the game to synchronize correctly between all players and with different amounts of players. I also wanted to get some game play stuff done too with win conditions and what not.

2) What goals were you able to accomplish?

I was able to get the network to be more stable and got the game to sleep after the update to make sure that regardless of the amount of players, it wouldn’t be slower or faster. Thank you Professor Voelker!!!!!! We couldn’t have done it without you. Along with that problem, I spent some time adding some game features like a world clock to keep track of time. I also fixed that made it so we glide if we jumped in the air and moved around. I spent some time tuning the world to make it seem smoother. That part still needs to be edited later on when we add more stuff. Lastly, I noticed the way we spawn and how the eggs behave when exploding from a dying chicken and made it so that it should behave as expected. The eggs and chicken would only spawn in one quadrant of the map but it was a simple fix.

3) If there were goals you were unable to meet, what were the reasons?

I was able to meet all my goals as expected this week. We are running into a bug that would crash the client sometimes even when idle. I’m not too sure if it’s a network or client side thing. It could be that the client is getting overworked and just crashes. We’ll look more into that these last few days.

4) What are your specific goals for the next week?

Finish the game! Specifically, get the kinks out of the network. Add the power ups and fine tune the world more if needed.

5) What is your individual morale (which might be different from the overall group morale)?

It’s been real great seeing everything being done. I love the animations and all the graphics along with the weapons added. I can’t wait to finish the game and see what the final product looks like.

 

David:

1) What were your concrete goals for the week?

Add more weapon types into game play that use field detection and other aspects.  Fix the collision handling bug that caused the server-side to crash on occasion and fix bullet handling to shoot farther without detecting immediate collision with the environment.  Also look into setting the server to update the client at a fixed rate.

2) What goals were you able to accomplish?

I was able to implement a melee weapon that made use of field detection, fix the collision handling bug, fix the bullet handling bug by redesigning the map boundaries, and added a preliminary grenade launcher type weapon.  With the field detection code implemented, other weapon types that use fields can now be implemented.

3) If there were goals you were unable to meet, what were the reasons?

We were unable to implement mounts just yet, and pushed it till next week.

4) What are your specific goals for the next week?

Finish all weapon types.  Get mounts implemented and working with client-side.  Implement the physical objects in the map once its design is finished.

5) What is your individual morale (which might be different from the overall group morale)?

At a good state.  The final creative stretch!

John:

1) What were your concrete goals for the week?

Tie in more features that people have implemented.

2) What goals were you able to accomplish?

Got the game to a state where you can start a match and play until a player wins. Merged in animations into the network. This includes death animations and I also made a way to respawn gracefully to accompany this. Not sure if merging in UI stuff was this week. Improving the network by reducing the amount of packets needed to be sent.

3) If there were goals you were unable to meet, what were the reasons?

There are still some stability issues that might be network related. Sometimes the client just crashes. Not sure why yet. We still have a ways to go before the game is a finished product. There’s a strange lag that occurs when objects are spawned. I have an idea of what this is after talking to AJ from group 3 or 4 about it.

4) What are your specific goals for the next week?

Finish the game.

5) What is your individual morale (which might be different from the overall group morale)?

Tired but feeling great.

 

Matt:
1) What were your concrete goals for the week?
Get the player animated, add shading to the world, and then shadows.

2) What goals were you able to accomplish?
I got the player animated and added shading. Working on the shadows; hopefully that’ll be done by the morning.

3) If there were goals you were unable to meet, what were the reasons?
Shadows. I got stuck on a stupid typo, but also on Uniform Buffer Objects which would have been much more optimal, but still don’t have that working.

4) What are your specific goals for the next week?
Improve the model loading/using process, make sure the character pipeline works well, see what needs to get done for power-ups/weapons, and ideally mounts.

5) What is your individual morale (which might be different from the overall group morale)?
A little bothered that I got stuck for so long on certain things, but feeling pretty good to see that chicken walking around, jumping, and dancing.

Michelle:

1) What were your concrete goals for the week?

Finish map.

2) What goals were you able to accomplish?

Increased the map size, added many more models to the scene including a corn maze, instance rendered pumpkins, and structures such as construction sites and a house.

3) If there were goals you were unable to meet, what were the reasons?

Need to texture some of the buildings.

4) What are your specific goals for the next week?

Finish the game! Once the map is entirely finished, I’d like to help with getting mounts implemented.

5) What is your individual morale (which might be different from the overall group morale)?

Looking forward to demoing but also anxious about finishing with the time we have left.

Phoebe:

1) What were your concrete goals for the week?

2) What goals were you able to accomplish?

3) If there were goals you were unable to meet, what were the reasons?

4) What are your specific goals for the next week?

5) What is your individual morale (which might be different from the overall group morale)?

 

Week 8

Week 8

Overall Status:

  • Network: Merge Merge Merge Merge. Mostly connecting all the parts that people from different subteams have been working on.
  • Graphics: Got grass rendering along with barns, silos, tractors, tables, textured eggs. Better system for shaders
  • Gameplay: we can (double) jump!
  • Input: Xbox Controllers now work with our game, using a config file to map button -> event
  • Art:

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Monday, Thursday, and Saturday for graphics team
  • Tuesday and Sunday for networking team

Group Morale:

 

Screenshots:

Week8 World

Individual Progress Reports:

Brian:
1) What were your concrete goals for the week?
This week, my main goal was to get jumps working along with adding more physical and graphical models.

2) What goals were you able to accomplish?
I was able to get jumps working and correctly showing for multiplayers. I realized how we were initializing players and objects and that we needed to restructure that. I changed up how the server initialized players and was able to get multiplayers with different skins and for it to show respectively for each player. I was also able to make packets bullet packets sent to the server, but nothing has been acted upon it.

3) If there were goals you were unable to meet, what were the reasons?
Getting side tracked with the spawning restructure, I didn’t get most of the models loaded because I put more attention into other parts of the game.

4) What are your specific goals for the next week?
My goal for next week is to get smoother game play which I believe is a networking problem. The world moves really fast for one player, but slower and more players and it’s a little funky. Lastly, we should have game play finally done.

5) What is your individual morale (which might be different from the overall group morale)?
I’m feeling pretty good with the work the team and I have done. We’re pretty much at the point where we can start messing around and fine tuning it.

 

David:

1)  What were your concrete goals for the week?

Add weapon and power up boxes to be collected in the world.  Get weapons and player death working with collision detection handling.  Connect more physics gameplay aspects with the client-side graphics.

2)  What goals were you able to accomplish?

I coded the back-end physics handling of power-up boxes and weapon collection.  I got bullets to spawn and shoot symbolically, as well as delete upon collision.  I got field detection working and is ready to be connected further with the chickens for peck and other field detections.  Jump and firing was connected through networking, but the graphic bullet spawning isn’t quite there yet.  Death kind of works, but it’s confusing why the bullets are hitting the ground at y=.99.  Maybe the Sphere objects can be at minimum a .5 radius.

3)  If there were goals you were unable to meet, what were the reasons?

Certain connections between graphics and physics were not finished just yet, with some tasks taking more time than expected and still unforeseen bugs.  But we’re making progress!

4)  What are your specific goals for the next week?

Hopefully mounts.  Definitely different weapons, a fixed map, and game states!

5)  What is your individual morale (which might be different from the overall group morale)?

Tired, but still very excited!

 

John:

1) what were your concrete goals for the week?
I don’t really remember to be honest. I think we wanted to get the game to a state where you can start and play it until you win

2) what goals were you able to accomplish?
Merged in menu and lobby UI. Set up a config file to set properties on server and client easier. Merged in a lot of the physics stuff David had. Solved some bugs related to rotations. I think I merged some graphics things in too? I don’t really remember if that was this week.

3) if there were goals you were unable to meet, what were the reasons?
Couldn’t get the game to a state where you can play until someone wins. A lot of bugs came up while merging. There was a rotation bug for a while.

4) what are your specific goals for the next week?
Merge more. Get David’s weapon code in. Get Matt’s animations in. Get UI stuff from Phoebe. A lot of the parts are there, everything just needs to be pieced together.

5) what is your individual morale (which might be different from the overall group morale)?
I’m exhausted right now, but my morale is at an all time high.

 

Matt:

1) What were your concrete goals for the week?
I think it was to work on UI, map, and player pipeline.

2) What goals were you able to accomplish?
My goals changed as I went into the week. I got the Xbox controller input in fairly easily, then played around with using the config file system made in this week as well. Used the config file for a shader system as well so we’re not duplicating shaders across the same objects.

3) If there were goals you were unable to meet, what were the reasons?
I wasn’t really able to work on the project until last Saturday. In the meantime Phoebe started working on UI and Michelle did stuff on loading more objects. I wanted to get an objective map for both client/server, but figured some sort of config file would be important for that so I was waiting for that. Also had early issues with networking state being in a sort of buggy state so I couldn’t reliably test character pipeline/animations. Also just got held up in helping fix bugs other bugs, such as those in merging.

4) What are your specific goals for the next week?
Work on getting a map for both server and client to load.

5) What is your individual morale (which might be different from the overall group morale)?
Just jumping back into the project is a little odd, but I’m figuring out how to do things that we need done.

 

Michelle:

1) What were your concrete goals for the week?

2) What goals were you able to accomplish?

3) If there were goals you were unable to meet, what were the reasons?

4) What are your specific goals for the next week?

5) What is your individual morale (which might be different from the overall group morale)?

 

Phoebe:

1) What were your concrete goals for the week?

I wanted to get the lobby finished, working , and into the game.

2) What goals were you able to accomplish?

I was able to accomplish my goal, and I merged everything into master. I also started rendering ui elements in the actual game mode and working on making the game winnable

3) If there were goals you were unable to meet, what were the reasons?

n/a

4) What are your specific goals for the next week?

display eggs, health, etc above each player by next week, and make the game winnable by hopefully tonight.

5) What is your individual morale (which might be different from the overall group morale)?

great 🙂 the game is really coming together !

 

 

Week 7

Week 7

Overall Status:

  • Network: Multiplayer functionality works now!
  • Graphics: Got some other models loading in (tractor, barn). Working on character pipeline for using the animated model to walk, jump, etc.
  • Gameplay:
  • Input:
  • Art:
  • Audio:

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Tuesday and Sunday for networking team
  • Monday for a combination of some networks & graphics

Group Morale:

Screenshots:

underground_chicken 13249441_10209664117986017_1108508618_n13242105_10208718193541192_144909507_o.png


Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?

Multiplayer functionality was the main goal for this week. We wanted to get players to see each other, move around, and collect eggs respectively while updating the scene whenever and event happens.

2) What goals were you able to accomplish?

Multiplayer works now and for the most part, everything is working. I was able to find part of the bug that made the chicken turn upside down and fixed that. More physics objects have been implemented such as bullets.

3) If there were goals you were unable to meet, what were the reasons?

As shown in the picture, the chicken spends most of it’s time upside down. I was able to to fix that so that when rotation starts, it will turn up side down briefly but then go back up and everything is normal. I believe it’s how we’re handling the quaternions that’s a little whackey. But that shouldn’t be too hard to fix.

4) What are your specific goals for the next week?

I hope to get jumps working and to get the other world objects such as hay bales and barns up and about.

5) What is your individual morale (which might be different from the overall group morale)?

It’s pretty good. Cool to see the chickens run around and rotate on each other’s screens. Can wait to get that animation added!

David:

1) What were your concrete goals for the week?

Get more gameplay mechanics implemented and connected with client-side.  Work on getting weapon fire rate, projectile spawning, and damage working smoothly and with correct object ids.  Implement a field object in the physics engine to do field damage effects or vehicle mounting.

2) What goals were you able to accomplish?

Re-organized server-side dynamic objects to spawn from a singleton spawn class, all under the super class Entity and placed in a map to more easily send client side updates.  Also created a singleton fire rate class that controlled the rate of generic weapon use per time;  waiting correctly resets the weapon to be of immediate use.  Bullets spawn dynamically with a scaling object id for an indefinite amount of time, decrements player health.

3) If there were goals you were unable to meet, what were the reasons?

I was unable to connect that many server gameplay mechanics to the client-side.  I focused more on re-structuring and adding server-side code for weapons and spawning.

4) What are your specific goals for the next week?

Add more weapons / powerups to be picked up, both melee and ranged.  Work on getting the maps designed and set on the server-side.  Get mounts working once the fields get figured out.

5) What is your individual morale (which might be different from the overall group morale)?

More of the program structure is really coming together; necessary preparations for the final sprint.

John:

1) What were your concrete goals for the week?

I wanted to fix up multiplayer functionality. We had a hacky version of it that broke when the network got more complicated. I also wanted to get more gameplay stuff hooked up to graphics.

2) What goals were you able to accomplish?

Multiplayer has been fixed. Planned out some more of the architecture of the gameplay/server side with David.

3) If there were goals you were unable to meet, what were the reasons?

Rotational information was the most important part of hooking up the gameplay stuff to graphics, since we’ll be launching projectiles and projectiles need a certain direction to be launched in. As you can see in the screenshot, rotational information isn’t correct yet. Movement does consider the direction that the player is facing, but for whatever reason, the models are upside down right now.

4) What are your specific goals for the next week?

Fix this rotation bug, get projectiles going, get player deaths going. Want to just build up on this baseline right now.

5) What is your individual morale (which might be different from the overall group morale)?

Pretty good, looking forward to some of the gameplay stuff like projectiles and items that David’s been implementing, but we haven’t been able to integrate yet.

Matt:

1) What were your concrete goals for the week?
To get the animation actually integrated into the player and start looking into the networking/server backend involved in gameplay.

2) What goals were you able to accomplish?
I started learning about the networking required for spawning objects, and worked a little on getting the player to animate.

3) If there were goals you were unable to meet, what were the reasons?
This week was a really busy week for me and so I wasn’t really able to work on the project.

4) What are your specific goals for the next week?
I want to get the player animated as we move around. Then maybe look into textures as a small aside. I also want to start getting into gameplay such as attacks or mounts.

5) What is your individual morale (which might be different from the overall group morale)?
Hard to say since I didn’t do much work this past week.

Michelle:

1) What were your concrete goals for the week?

I had planned to work on UI, but I believe Phoebe and I have a similar eye for these things. I decided to work on building up our scene more while she works on the menu.

2) What goals were you able to accomplish?

I expanded our world and added a barn, silo, tractor, and bench into the scene and am now currently working on implementing instance-rendered grass.

3) If there were goals you were unable to meet, what were the reasons?

I wanted to get grass finished by now, but am running into an exception that’s breaking my program. On Tuesday we plan to do a long coding session, during which I should be able to finish debugging that.

4) What are your specific goals for the next week?

Finish grass, implement physical boundaries in our scene such as a fence to blockade players from venturing too far. Add in fields, etc. Work with the physics side to get collision detected for the inputted objects recognized. Also design eggs, add in more lighting, work with Phoebe to get more UI done.

5) What is your individual morale (which might be different from the overall group morale)?

Not too bad since it’s coming together! Just need to rev up the pace since demo day is around the corner.

Phoebe:

1) What were your concrete goals for the week?

I wanted to have a working game lobby so we can transition smoothly between game states.

2) What goals were you able to accomplish?

I was able to get font rendering working and put together a menu with 2D sprites. I’m currently in the middle of debugging sprite selection, because there seems to be something wrong with my shader.

3) If there were goals you were unable to meet, what were the reasons?

I wasn’t able to get the game lobby working yet because I ran into issues with detecting sprite selection. Also, the font and 2D sprite rendering took longer than expected because our original shader class had some issues that we found while working on the menus.

4) What are your specific goals for the next week?

Hopefully I can work with matt to figure out my shader issue since he has more knowledge of OpenGL than I do. Once that’s fixed, and element selection is working, it should be simple to finish the rest of the menus. I also hope to do the animation for the melee chicken attack.

5) What is your individual morale (which might be different from the overall group morale)?

I’m glad that I was able to render fonts and menus on my own, and I’m excited to get the game lobby finished 🙂 Hopefully I don’t run into any more hiccups.

Week 6

Week 6

Overall Status:

  • Network: We’ve bridged graphics and physics!! Eggs can now be collected in both worlds.
  • Graphics: Added abilities to add and remove entities from the scene. Got animation working with appropriate materials and an animation player that should work well with a character pipeline (yet to be created).
  • Gameplay: Can pick up eggs
  • Input:
  • Art:
  • Audio:

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Tuesday and Sunday for networking team
  • Monday for a combination of some networks & graphics

Group Morale:

I think we collectively feel behind schedule, though on the brink of getting real gameplay going.

Screenshots:


Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?
My goals this week was to update graphics to represent the physics world. More specifically, we already had the chicken in the physical world detect collisions with walls and eggs (flags) and we wanted the graphics side to reflect that.

2) What goals were you able to accomplish?
We were able to get the graphics to update correctly and we can now spawn eggs and the chicken in the world and go around to pick them up thanks to the new API’s provided by the graphics team. We also had to change some of the network side by adding new packet types and actions.

3) If there were goals you were unable to meet, what were the reasons?
We were able to get our immediate goals done but we did run into some troubles with off by one errors with our object IDs but that was fixed after some mild debugging.

4) What are your specific goals for the next week?
We hope to get the multiplayer working next where we can have 2 or more players control their own chicken while collecting the eggs across the world. That would take some more consideration into the structure of our network side to avoid any race conditions and to make sure that all the correct information is being sent to the clients.

5) What is your individual morale (which might be different from the overall group morale)?
My morale is pretty good right now. It was really cool to see the eggs being picked up after colliding with it. I can’t wait to get other players in the world to see a bunch of chickens run around.

David:

1) What were your concrete goals for the week?
Helped connect the physics API and the graphics side with the networking team.  Starting to implement additional game logic elements on the server side, fixing the symbolic map walls, implementing the jump reset, spawning and handling projectiles to do player damage.

2) What goals were you able to accomplish?
Helped finish connecting server player movement and egg collection with the client graphics.  Fixed the physics map walls, jump reset, spawning and handling projectiles, as well as worked on restructuring classes with class and object ids.

3) If there were goals you were unable to meet, what were the reasons?
Finished the main goals I wanted to accomplish.  Restructuring with class and object IDs helps dynamic object spawning, but slowed extra progress.

4) What are your specific goals for the next week?
Get rotation, jump, and bullet firing connected with graphics.  Implement different weapons or powerups, maybe with a type of grenade effect.

5) What is your individual morale (which might be different from the overall group morale)?
Seeing the player pick up eggs is a really nice moral boost.  Feeling time slip by though, wanting to pick up the pace

John:

1) What were your concrete goals for the week?
I wanted to bridge the physics and graphics worlds so that we can pick up eggs upon collision.

2) What goals were you able to accomplish?
We can now pick up eggs on collision

3) If there were goals you were unable to meet, what were the reasons?
Movement isn’t perfect right now since we’re not sending orientation of the object yet. We’re only sending position. This is problematic because “forward” for the player is always in a specific direction regardless of where they’re facing.

4) What are your specific goals for the next week?
Refine movement, do more basic gameplay stuff, specifically bullet logic.

5) What is your individual morale (which might be different from the overall group morale)?
I’m glad we have something now haha.

Matt:

1) What were your concrete goals for the week?
Get animation working and once that’s done to place it in a usable structure for multiple animations on events. Maybe also to work on UI.

2) What goals were you able to accomplish?
Got animation working and it’s in a fairly good structure. Materials for objects work so the coloring is right.

3) If there were goals you were unable to meet, what were the reasons?
Not fully sure how to put the character pipeline in in regard to walking, attacking, idle, etc. but I think that’ll come a little later. I wanted to make a better system for events so when the server tells us to move, we’ll change coordinates and play the walking animation (which I guess is character pipeline) or similarly on dance to play the animation and music. Didn’t get to that because parsing over the animation to a better structure took a little longer than expected. UI was not touched at all in terms of menus or health bars.

4) What are your specific goals for the next week?
We need to create a game lobby to connect to server. If we can include graphics in it, that would be good, but not sure how long that will take to research and implement. Would like to start working on the map and creating a world to play in. Also need to correct camera/model coordination and make the player use our animated model instead of the static one as well as fix the coordinate space movement.

5) What is your individual morale (which might be different from the overall group morale)?
Very happy I have animation done 🙂 I want it in a usable state, but not sure if that’s good to do now. Do indeed feel behind, but now that animation’s done I should be able to put much more time toward the gameplay or something of the sort.

Michelle:

1) What were your concrete goals for the week?

Work on UI and add lighting/shaders.

2) What goals were you able to accomplish?

Restructured the storage of objects from vectors into a map to now keep track of each object using a class ID and an object ID. Created adding and removing entities and helped merge with networking so that physics can be represented in our world. A collision with an egg can now be detected and registered as “collected.”

3) If there were goals you were unable to meet, what were the reasons?

Didn’t get to UI or developing more advanced lighting/shaders yet since there were higher priorities, but will definitely get to them next week.

4) What are your specific goals for the next week?

See above, UI (menus, health bars, etc). Now that animation and physics are working, we can work on more gameplay and scene design.

5) What is your individual morale (which might be different from the overall group morale)?

We definitely need to pick up the pace but we are setting ourselves up in a good position to do so. A hackathon session next week would be good.

Phoebe:

1) What were your concrete goals for the week?

I wanted to finish up multiplayer controls and fix some bugs we were having last week in regards to that.

2) What goals were you able to accomplish?

I managed to fix get multiplayer controls up and running (on master), and I also started working on managing our game states and creating menus so that we can do a game lobby to create teams.

3) If there were goals you were unable to meet, what were the reasons?

N/A

4) What are your specific goals for the next week?

Next week, I’d like to have a working game lobby where we can create our two teams and be able to transition between menus/play state smoothly.

5) What is your individual morale (which might be different from the overall group morale)?

I’m optimistic and hope to push through the coming weeks to make some awesome gameplay 🙂

Week 5

Week 5

Overall Status:

  • Network: There wasn’t much work to be done on the networking. We went to work on physics with David instead.
  • Graphics: Working on displaying eggs and running animations. Eggs can be added, and different textured chicken models can be used for players.
  • Gameplay: Moved player around to collect flag objects
  • Input:
  • Art:
  • Audio: Is working on SFML, though it’s not currently useful.

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Saturday for graphics team
  • Tuesday and Sunday for networking team
  • Monday for a combination of some networks & graphics

Group Morale:

I think we collectively feel behind schedule, though on the brink of getting real gameplay going.

Screenshots:

PlayerVelocitySuccess

PlayerAcquiresFlag


Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?
This week, we wanted to get a successful world set up where players can spawn and run around and pick up eggs. In order to do this, we had to first get collision detection working.

2) What goals were you able to accomplish?
We were able to get Bullet pretty much integrated into our network code with some bugs that need to be fixed. We believe we have most of the physical world set up. As for multiplayer, on the Client side of things on another branch, things seems to be more functional but not complete yet either.

3) If there were goals you were unable to meet, what were the reasons?
We weren’t actually able to get both sides merged yet as to difficulties with Bullet. We believe that we just don’t fully understand the library as we had hoped in the beginning. As mentioned before, we have physical objects for players and eggs, but it seems like movement and collision detection is a little weird. We believe it might be pointers are going around correctly or maybe we aren’t setting the correct values.

4) What are your specific goals for the next week?
Once we get these bugs fixed, we hope to actually merge both the graphics side and the client side again to get the players running around collecting eggs. I believe it isn’t that much further as soon as we fully grasp Bullet.

5) What is your individual morale (which might be different from the overall group morale)?
I’m feeling slightly frustrate because I can’t seem to follow everything that’s happening in Bullet, but I am starting to get it more, so I hope once everything becomes clear, I can get everything set up and ready to go.

David:

1) What were your concrete goals for the week?

My goals were to further implement the game logic with the physics engine; to implement movement, flag/egg collection, jump, and other game play mechanics with the physics library.

2) What goals were you able to accomplish?

After debugging an issue that prevented physics objects from being updated, we now have the player able to move around and collect randomly spawned eggs/flags.  Most of the issues were with the unforeseen prevention to object updates, but with that solved, everything should work a lot smoothly.

3) If there were goals you were unable to meet, what were the reasons?

Extra game play mechanics of bullet spawning and angle of fire have been delayed to fix general movement and flag collection.  Debugging the updating issue with the physics object took time and was the main reason.

4) What are your specific goals for the next week?

Finally connect the game logic with the graphics team and start working on combat game play.  At least get bullets to spawn and deal damage.

5) What is your individual morale (which might be different from the overall group morale)?

Got frustrated since I thought I understood Bullet better, but after solving the update issue, things aren’t so bad.

John:

1) What were your concrete goals for the week?
Get the chicken to pick up eggs through collision detection. We wanted this to be reflected in both the physics world and graphically.

2) What goals were you able to accomplish?
We set up the physics world with Bullet. We’re at a point where we can see some collisions, but movement is buggy right now, so we can’t run the chicken into an egg yet.

3) If there were goals you were unable to meet, what were the reasons?
We can’t pick up eggs yet because of the issues with movement right now.

4) What are your specific goals for the next week?
Get these bugs sorted out. Finish collision detection, which would let us collect eggs. I feel like we’re so close to getting it to the point where we can almost call it a game.

5) What is your individual morale (which might be different from the overall group morale)?
Pretty average. I feel like we’re behind, but we’re also meeting more often now.

Matt:

1) What were your concrete goals for the week?
Get animation working.

2) What goals were you able to accomplish?
I was able to add the newest version of Assimp to load in fbx files and start testing the animation code.

3) If there were goals you were unable to meet, what were the reasons?
I was unable to get the animation working. I think there’s a combination of complexity in switching from OpenGL 1.2 to Modern OpenGL that makes this more difficult, but also trying to use a tutorial’s code which is quite complex in itself. If the tutorial’s code is supposed to work on it’s own, I’m not sure why it doesn’t, so everything is suspect for bugs at the moment.

4) What are your specific goals for the next week?
Animation. But also, again, if we can quickly provide what the other teammates need in terms of client-side graphics, then Michelle and I can start looking into UI/menus or terrain.

5) What is your individual morale (which might be different from the overall group morale)?
It’s pretty mediocre, but not terrible. At least at this point the issue isn’t trying to get the libraries to work, but rather doing something that I know how to do and debug.

Michelle:

1) What were your concrete goals for the week?

Try to get animation working and also put some eggs in the scene for the networking and physics team to try collision detection with.

2) What goals were you able to accomplish?

Took a break from animation to let Matt take a stab at it. Created an Egg class to easily add eggs into the scene, and also wrote a function to easily change the texture of the chickens which will come into play when we have different players with different chicken textures, as well as when the chickens change texture in response as a result of picking up an item.

3) If there were goals you were unable to meet, what were the reasons?

Animation has been a huge roadblock thus far. We are conversing with other teams about it, which has helped make slight progress, but we are still unsure where the bug lies since it is modern OpenGL and we are still learning as we go. There are lots of other tasks to do besides animation, so working on other things seems like a better option for now.

4) What are your specific goals for the next week?

UI, build a more finalized scene that we will use for our demo, add lighting/shaders, possibly environment mapping. If we begin to see a slow in performance, we can use the following week to optimize.

5) What is your individual morale (which might be different from the overall group morale)?

I think we need to meet more as a team, not only for productivity reasons but also for morale reasons. I agree with the group morale. This week Phoebe had to go to the hospital for internal bleeding which was frightening 🙁 She is healing now and I hope she feels better soon!

Phoebe:

1) What were your concrete goals for the week?

I had wanted to get all the multiplayer controls, spawning, and picking up eggs completed.

2) What goals were you able to accomplish?

Unfortunately, I wasn’t able to meet any of my goals.

3) If there were goals you were unable to meet, what were the reasons?

On Tuesday I spent the afternoon trying to fix a networking bug created by our merge. Late that night, I had severe abdominal pains and I had to go to the ER after vomiting and blacking out from the pain. It turns out I had a ruptured ovarian cyst that caused severe internal bleeding, and I had to stay in the hospital for a day to monitor my blood pressure/blood count. I was prescribed narcotic pain medication that left me unable to do anything for the entire week while I healed.

4) What are your specific goals for the next week?

Next week, I hope to complete my goals from this week and help out wherever the team needs me.

5) What is your individual morale (which might be different from the overall group morale)?

I feel horrible for setting my team back 🙁 I had really wanted to work from bed but my medications kept me knocked out and I gave up trying to stay awake.

Week 4

Week 4

Overall Status:

  • Network: The network infrastructure is pretty solid now. We improved the packet system to use a byte buffer so we can be flexible with the data we’re sending.
  • Graphics:
  • Gameplay:
  • Input:
  • Art:
  • Audio:

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Saturday for graphics team
  • Tuesday and Sunday for networking team
  • Monday for a combination of some networks & graphics

Group Morale:

 

Screenshots:

 


Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?
To get the client to update based on what the server had sent back. Also, we worked on the new packet structure changing it from a set structure to something more like a byte buffer of some sorts.

2) What goals were you able to accomplish?
We got the client to update accordingly to the server and what it sent back instead of just doing everything client side. The packet structure was also changed into a byte buffer which allows for multiple structures of packets to be sent back and forth.

3) If there were goals you were unable to meet, what were the reasons?
We got everything done for the week and functioning. We did run into trouble of how we initially imagined the byte buffer. We had hoped it to be a packet with a variable buffer length. We soon found out that storing a pointer to a buffer and sending that pointer to a client won’t mean anything so we ended up having a fixed length buffer of the biggest object needed to send back and forth instead of a ridiculously large buffer which causes excess data to be sent back and forth.

4) What are your specific goals for the next week?
Now that we got a hopefully nice buffer working, we plan to start working more on game logic thus allowing us to expand on the types of objects and structure of the network when sending packets back and forth.

5) What is your individual morale (which might be different from the overall group morale)?
It’s pretty good right now. Interesting things are being done with our group and it’s cool to see the world we made interact on two different computers.

David:

1) What were your concrete goals for the week?
My concrete goals were to fix the Visual Studios issues with the Bullet Physics installation, get symbolic objects for Player, Map, and Bullets, as well as connect networking to the physics engine

2) What goals were you able to accomplish?
I was able to fix the Visual Studio installation issues with the Bullet Physics engine, and have continued implementation of the game physics objects.  I have been implementing the game logic as an API that the network update method can call.

3) If there were goals you were unable to meet, what were the reasons?
We have not yet connected the network update to call the Game Physics API just yet, but we are ready to.  We will do so during our next meeting

4) What are your specific goals for the next week?
Further implement the game logic in adding health calculations, angle of fire, different weapon types, and flag pickups.  See if components can be utilized in game implementation.

5) What is your individual morale (which might be different from the overall group morale)?
After fixing the Visual Studio issues, I feel like I better understand the IDE and can focus more on game implementation.  More hopeful

John:

1) What were your concrete goals for the week?
I wanted to improve the packet structure to use a byte buffer so that we could send more general packets between the client and server.

I wanted to merge the networking side with David’s game objects this week so that we’d have a fully integrated graphics/network/game-physics into a “game”.

2) What goals were you able to accomplish?
I implemented the packet improvements and started a pattern for object serialization/deserialization. We only have one type of object so far that contains positioning info, but as we go along, we can just use this pattern for (de)serialization.

3) If there were goals you were unable to meet, what were the reasons?
Met up with David to try to start integrating his game objects, but we were running to some issues with bullet and Visual Studio. We managed to get those issues resolved, but didn’t have the time to start the integration.

4) What are your specific goals for the next week?
I’ll be working with David on the game objects, physics, and gameplay since the networking side is pretty solid now. I’ll still keep an eye out on improvements we can make to the network infrastructure though.

5) What is your individual morale (which might be different from the overall group morale)?
I’m feeling pretty good since the networking side of things is laid out now. I’m also a bit nervous since we delayed our merge meeting a bit and haven’t done it this week. Everyone seems to be far from master, so things might get a little messy. We’re hoping to merge before or after our meeting with Prof. Voelker tomorrow.

Matt:

1) What were your concrete goals for the week?
I wanted to get a better structure for objects in the Scene to be able to add them more robustly. I also wanted to get animation working.

2) What goals were you able to accomplish?
I made fair headway on the structure for the scene, creating a superclass for objects

3) If there were goals you were unable to meet, what were the reasons?
I got more involved in animation this week and found some problems such as Visual Studio’s version of assimp not loading fbx files, nor multiple input files for formats such as md5. Started looking into other formats/loaders. I also got a little stuck on design patterns in regard to having an Entity superclass and which classes should subclass, etc.

4) What are your specific goals for the next week?
I want to read more on design patterns for video games to have cleaner code. Aside from that, having the game in a state where we can pick up eggs is important and continuing to look into more graphics improvements will be beneficial along the way. Particularly need to look into UI such as health bars, name tags, etc.

5) What is your individual morale (which might be different from the overall group morale)?
A little tired to that animation keeps sucking up time without having obvious answers. If I didn’t think about it I feel like there’d be a lot more progress toward other goals.

 

Michelle:

1) What were your concrete goals for the week?

2) What goals were you able to accomplish?

3) If there were goals you were unable to meet, what were the reasons?

4) What are your specific goals for the next week?

5) What is your individual morale (which might be different from the overall group morale)?

Phoebe:

1) What were your concrete goals for the week?

My goals for this week were to create more animations and create an engine on the server that will handle any manipulations we need to do from client packets.

2) What goals were you able to accomplish?

I made animations for jumping and pecking, and I got the client to update based on packets sent from the server. I also created an engine on the server that holds a virtual representation of our world and holds the positions/states of all the objects. Data from this virtual world is now used to update the view in the clients. I created a function in the engine to generate random locations for any type of object, but I haven’t applied it to the actual game yet because I’m in the middle of finishing up multiplayer controls.

3) If there were goals you were unable to meet, what were the reasons?

There’s nothing I wasn’t able to meet, as I got further than I expected to this week.

4) What are your specific goals for the next week?

Next week, I want to finish multiplayer controls, integrate random spawning, and implement picking up eggs. I expect multiplayer controls to take up a bulk of my time since I’m likely to run into bugs with current server/network implementation.

5) What is your individual morale (which might be different from the overall group morale)?

I’m very optimistic about the actual engine, but worried for the animations side since the graphics experts weren’t able to complete animation loading this week.

Week 3

Week 3

Overall Status:

  • Network: Improved some of the network infrastructure from last week. Server and Client can now communicate in reaction to events.
  • Graphics: We have the player (camera + model) moving around a basic world with a skybox! Animation is in progress.
  • Gameplay: TBD
  • Input: TBD
  • Art: Textured chicken and skybox in the scene. Also have a floor with a shader.
  • Audio: Have a sound working on Mac.

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Saturday for graphics team
  • Tuesday and Sunday for networking team
  • Monday for a combination of some networks & graphics

Group Morale:

Screenshots:

Flying chicken!
Flying chicken!

Week3 Chicken

 


Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?
To get the game to take in a command, wrap that up in a packet, send it to the server, and have the server process it, and send it back out to the client. More specifically, create new method to send packets, a method to register the object movement, and basic structure as what to keep for each player object.

2) What goals were you able to accomplish?
We were able to get the basic things working. We just need to link main parts of the client and server together real quick. The game does everything by itself like register key movements. The server gets the key movements in the form of packets, registers, and updates the server and sends it back out. We’re just missing the quick step of processing the return packet and acting upon it.

3) If there were goals you were unable to meet, what were the reasons?
We were able to get pretty much everything except that small thing mentioned above. We believe that should take no more that a 30 minutes to place in. We slightly underestimated the work and it just took a tad longer than expected along with the unsatisfying amount of work put in by myself.

4) What are your specific goals for the next week?
Fix that problem mentioned above. We hope that implementing the Server/Client loops won’t be too hard and then implement multiple players in respect to the network side of things.

5) What is your individual morale (which might be different from the overall group morale)?
It’s neutral right now because I didn’t get much done this week. But he Graphics team made such a cool game so far and it’s nice to see it all in production so that’s real swell.

David:

1) What were your concrete goals for the week?

My concrete goals were to get the Bullet physics engine installed and added to our game project.  I was also tasked to implement symbolic shapes for players, environment, and bullets that will be used to calculate position, speed, collisions, and other general physical calculations.  The map is initialized with a plane, obstacles with static various objects on the plane.

2) What goals were you able to accomplish?

Got the Bullet physics engine installed for the most part; ran into some slight issues with Visual Studio, but should be ironed out.  I coded a rough draft of the physics implementation of map, player, and bullet objects.

3) If there were goals you were unable to meet, what were the reasons?

The issues with Visual Studio slowed down progress of testing bullet collision detection and collision override method with other objects.

4) What are your specific goals for the next week?

Fix the issue with Visual Studio, as well as connect networking and graphics together with the physics engine.  Get visible players moving, map initialized, and bullets fired with the physics engine.

5) What is your individual morale (which might be different from the overall group morale)?

Excited to connect everything together and see our game come to life

 

John:

1) What were your concrete goals for the week?
This week I wanted to send meaningful packets between the client and server. I wanted to be able to update the view on the client based on the info that the server sent back.

2) What goals were you able to accomplish?
I created a rough idea of how our packets would look and got a system working to send packets containing actual information between the server and client. I figured out a way to extract this information.

3) If there were goals you were unable to meet, what were the reasons?
The goal of updating the view was a bit misplaced. I think I needed some game logic objects first, like a data structure to represent the world and some other object to represent the chicken.

Also I feel like the way I designed the packet structure may be problematic in the future. I’m not sure if this is the best way to do things. As just a command line application (as far as networking goes), I don’t think we ran into any latency issues just yet. I need to improve upon this current system I’ve set up.

4) What are your specific goals for the next week?
Get to updating the view based on packet information. That being said, some of that work will probably leak into game logic since we’ll need some logic constraints to do things related to the view, like keeping the chicken within the boundaries of the world.

Less specifically, I’ll keep close attention to the performance of the network and will always be thinking about how to improve it.

5) What is your individual morale (which might be different from the overall group morale)?
To be honest, I feel a little down about the past week since I didn’t put as much work into the project as I had hoped. On the other hand, I feel very motivated to step up.

 

Matt:

1) What were your concrete goals for the week?
My goal for this week was to have a world that we could test moving a “player” around in and then to implement the player which would be composed of the camera and a model. I also wanted to figure out how to easily add objects to the world so that less knowledge of graphics would be necessary.

2) What goals were you able to accomplish?
I got the most basic world in with a square ground. Michelle was working on the skybox which we got to work late last night. I also got the player/model to move together and rotate kind of as desired. The objects and scene data was refactored to be a little cleaner, but could still use work.

3) If there were goals you were unable to meet, what were the reasons?
I wasn’t really able to get adding objects to the world to a workable place. Working on the player took longer than expected because I was working at hours when my mind just wasn’t thinking well. I also got stuck on trying to get the animation/audio code to compile on Windows, which I never did.

4) What are your specific goals for the next week?
If it’s easy I’d like to fix the camera rotation when looking down and up so it swivels around an arm rather than a “ball-joint.” I want to continue to refactor objects so that it can be robustly added to the scene where others can use it. I would like to get the audio/animation code to compile and work after that. An added bonus would be to use a config file for input -> logical event and continue learning more about advanced Modern OpenGL techniques.

5) What is your individual morale (which might be different from the overall group morale)?
Individual morale is mediocre. I’m glad I got the player done, but it took way longer than it should have and getting stuck on trying to compile other code was really frustrating. I never got it to compile and don’t really know what the issue is so that’s a problem.

 

Michelle:

1) What were your concrete goals for the week?
Create a textured skybox, begin implementing scene graph structure so that camera is positioned behind and following the player, and work with the networks team so that we can send packets to make the model move. Also want to begin implementing animation of the chickens using the file Phoebe created.

2) What goals were you able to accomplish?
I implemented a textured skybox into our scene, which surprisingly took longer than expected. Note to self: Do not send texture image files through Facebook Messenger…
We opted out of creating a scene graph structure, and Matt finished positioning the camera behind the player so that it follows it.

3) If there were goals you were unable to meet, what were the reasons?
Phoebe, Matt, and I have been looking into animation, but as of now have not been able to get it showing in the world. I am currently debugging and hope to get it working asap this upcoming week. The networks team is also working on the packets so we are getting close to syncing with model movement.

4) What are your specific goals for the next week?
Successfully read in animation files, place eggs in scene and register “picking them up.” Begin implementing combat abilities and UI.

5) What is your individual morale (which might be different from the overall group morale)?
Not too great because I did not complete all of my goals for the week. It will be higher once I see the chicken animated in our world!

Phoebe:

1) What were your concrete goals for the week?

I wanted to get animations working on the client this week.

2) What goals were you able to accomplish?

For the animation portion, I managed to get bone and mesh data successfully loaded into the client in appropriate data structures. I also got audio working and created a config file system that would allow us to change network and game configurations without the need to recompile. We plan to improve the config file system as we go along and figure out exactly what our needs are for the config file. As an added bonus, I also animated our chicken to do the chicken dance. 😀

3) If there were goals you were unable to meet, what were the reasons?

I’ve been having trouble getting the animations to actually display in the client because I have minimal experience with graphics. I was hoping to start small on the graphics side but ended up responsible for animations, which was pretty overwhelming. Michelle and Matthew were busy with their own tasks, so they weren’t able to help me much on the animation side, but I think for next week it would be better if one of them were allowed to focus more on animation, since it’s a more advanced task and they have way more experience with graphics than I do. :3

4) What are your specific goals for the next week?

Matthew hasn’t been able to get the audio libraries to compile on windows, so next week, I want to help him figure that out. I also want to get animations working, and further develop gameplay and the map design. Animations seem to be our biggest hurdle right now, and if we can get past it, we can really get started on gameplay.

5) What is your individual morale (which might be different from the overall group morale)?

I’m honestly really burned out and stressed from working on the animations non stop for the whole week. It was kind of frustrating not being able to get the animations to display without really knowing how to debug OpenGL. I really hope we can get someone more experienced to help finish up the animations, and if we do that, I’d be really optimistic going forward haha.

Week 2

Week 2

Overall Status:

  • Network: Simple server and client can communicate with each other on Windows
  • Graphics: Setup basic cube object with camera, can translate/transform
  • Gameplay: Using w,a,s,d to control the object
  • Input: Mouse and keyboard
  • Art: Chicken model with different textures, walk animation made in Maya

Meeting Dates:

  • Every Tuesday and Thursday morning for all team meetings
  • Monday, Thursday, and Saturday for graphics team
  • Tuesday and Sunday for networking team

Group Morale:

11693600_986196994733999_1371862878_n

Screenshots:

12988004_10208437329799774_1226510791_n
12980472_10208437329839775_448498078_n
12980570_10208437329919777_1052180650_n

Autodesk Maya 2016 - Student Version: :Users:phoebe:Develop:CSE125:assets:chickens:chicken.mb* 2016-04-11 12-10-50

12992377_10208470763195588_1892752439_n
So majestic

 


Individual Progress Reports:

Brian:

1) What were your concrete goals for the week?

Wanted to minimally get a simple server going where packets or data can be sent back and forth between the client and server. If that was done, then combine graphics side with simple server. Extra time was allocated into getting server to work on Mac.
2) What goals were you able to accomplish?

Server was set up along with simple communication. Packets are sent back and forth without any evident problems.
3) If there were goals you were unable to meet, what were the reasons?
Complications due to Winsock’s incompatibility with MacOSX was more complicated that had expected. Trying to use one OS specific library made it more difficult. It isn’t as necessary though have cross platform but if we have ample time, we might revisit it.

4) what are your specific goals for the next week?

Set up the Client and Server loop correctly for the networking side and the graphics side. It would be nice to have at least the game motions and actions registered and can be detected via our server set up. It might be nice to start on the physics side of the networking part of the game too if time is available.

5) what is your individual morale (which might be different from the
overall group morale)?

It’s looking good for me. The networking group is working well together and we’re having fun. It’s cool see a game in the works. I can’t wait to get the basic requirements done!

David:

1)  What were your concrete goals for the week?

My goals for this week were to help get the simple server/client up and running for both Mac and Windows, as well as start to brainstorm on the Game Object organization.

2)  What goals were you able to accomplish?

I helped some with the server setup, but also worked and finished a possible layout of the Game Objects – how some game objects can be initialized with a config script and how they could be handled and accessed with our future physics engine.

3)  If there were goals you were unable to meet, what were the reasons?

There were more issues than expected in getting the simple client server to work with the MacOSX socket library.  Once the project has gone further underway, maybe we will come back to work on the MacOSX compatibility.

4)  What are your specific goals for the next week?

My goals for the next week would be to work on implementing the Game Objects and look further into how the Physics Engine can be implemented.  I would also work with the Client and Server loop to figure out object movement messages.

5)  What is your individual morale (which might be different from the
overall group morale)?

I’m very excited to be working on the game object design and networking.  It’s fun to set aside time to make my own large-scale game with a team.

John:

1) what were your concrete goals for the week?

Wanted to get a simple server/client up and running for both Mac and Windows. The server should just bounce back any packets that the client sends. The packets didn’t have to have any meaningful information yet.
2) what goals were you able to accomplish?

The server and client are working. They send a bunch of packets back and forth in a “game loop”.
3) if there were goals you were unable to meet, what were the reasons?
Achieving cross platform might be more difficult than we thought. The skeleton code that we’re using uses Winsock which is a Windows only thing. We weren’t able to set up networking for Mac and it isn’t necessary. I don’t think we’ll be spending too much time on getting it to work cross platform since that’s not necessary, though it’s something that would be nice to have.

4) what are your specific goals for the next week?

Send meaningful packets. To do this, we also need to implement a simple game logic data structure on the server and client. Then on key or mouse events, we’ll send actions to the server, have the server update the data structure, then send back the update, and then the client will modify the view. I want to set up a simple version of this by next week.

5) what is your individual morale (which might be different from the
overall group morale)?

FeelsGoodMan – looking forward to this next week. We have some simple graphics to work with as well as input reading. This will help in sending meaningful packets.

 

Matt:

1) What were your concrete goals for the week?
My goals for the week were to get a simple scene up and running in modern OpenGL with the ability to control a “player” moving around a basic world.

2) What goals were you able to accomplish?
I learned a lot about modern OpenGL and got the cube with its shaders to work. I ported over a scene graph, but I’m still not sure if that’s the best way to go about this.

3) If there were goals you were unable to meet, what were the reasons?
I wasn’t able to test the scene graph nor consequently get a player with an attached camera/model moving around. I think it was largely due to learning how modern OpenGL works, which took longer than expected on a bug that really wasn’t a bug.

4) What are your specific goals for the next week?
I want to get graphics to a place where the rest of the team will be able to add their own objects and models without too much hassle and we can work on the base game objectives. This would mean getting a simple world (like a flat square) with at least one player walking around and then creating an example for an object class with a model. I also want to test the scene graph/think about whether that’s a good way to go.

5) What is your individual morale (which might be different from the
overall group morale)?
Overall good. I’m still excited to work, but I feel like I need to relax a bit in how much I work on and think about the project. Still seems like there’s a lot more to do, though.

Michelle:

1) What were your concrete goals for the week?

Set up camera to view scene, create an object loader, display a simple object into the scene for the rest of the team to be able to work with once the client/server is set up, and implement keyboard/mouse input.

2) What goals were you able to accomplish?

We currently have a cube as our model in the scene with lighting and shading. We also have keyboard and mouse input to move the camera around the scene on a click. We also have written an object loader which Phoebe tested and was able to load her chicken model.

3) If there were goals you were unable to meet, what were the reasons?

Met all of this week’s goals, but I need to read up more on modern OpenGL.

4) What are your specific goals for the next week?

Create a textured skybox, begin implementing scene graph structure so that camera is positioned behind and following the player, and work with the networks team so that we can send packets to make the model move. Also want to begin implementing animation of the chickens using the file Phoebe created.

5) What is your individual morale (which might be different from the
overall group morale)?

Eggcellent. Looking forward to getting more done next week 🙂

Phoebe:

1) What were your concrete goals for the week?

Add some initial models that we can start testing the graphics engine with.
Create the chicken model and rig it for animation.
Get the graphics branch running on Xcode.

2) What goals were you able to accomplish?

I added initial models, created the chicken model, rigged the chicken model, and I managed to create a “walk” animation for our chicken. 🙂

I got our graphics code to compile and run successfully on Xcode and figured out how to set up all the OpenGL libraries correctly.

3) If there were goals you were unable to meet, what were the reasons?

N/A 🙂

4) What are your specific goals for the next week?

Next week, I want to be able to load in the object models into the client to actually create the game map. I also want to get our code running on mac since a lot of our group members are working on macs when we’re at home.

5) What is your individual morale (which might be different from the
overall group morale)?

I’m having fun learning the graphics side of things and learning to do 3D modeling 🙂 Maya had a high learning curve, but I’m getting the hang of it.

Project Specs

Project Specs

Project Description:

What kind of game are you planning to build?

A “capture-the-flag”-esque game. It will have team PvP combat.

What are the goals of the game, how to players win, how do they lose?

The goal of the game is to gather all the flags while preventing the other team from obtaining the flags. A team wins by acquiring all the flags or having more flags when the timer runs out.

What are the interesting or unique aspects to your game?

As opposed to typical capture the flag, flags aren’t ever “locked in” and can be lost upon player death. We are thinking of having players drop in from the sky instead of having fixed spawn points. The location of the flags will be randomized to some degree to add variation.

What are the list of features of your game? Prioritize them into at least three categories: “Must Have”, “Would Be Really Nice”, and “Cool But Only If Ahead Of Schedule”.

Must Have:

  • Chickens (with walking animation)
  • Guns/Attack items or abilities
  • Flags
  • Teams
  • Map
  • Minimap
  • Menu / Pregame-lobby
  • Spawn location choice
  • Health System
  • Basic Sounds

Would Be Really Nice

  • Drop-in Spawn
  • Side-objectives
  • “Fog-of-war”
  • Air-drops
  • Terrain
  • Slow-down per flags gathered
  • Music

Cool But Only If Ahead of Schedule

  • Game modes/variable teams
  • Complex items/power ups
  • Different birds
  • Vehicles
  • Legendary things (item? Vehicle?)

Group Management:

What are the major roles in your group’s management?

We can take turns leading stand-up.

How will decisions be made?

Decisions will be made through consensus/majority in project-wide decisions. In individual tasks freedom is encouraged.

How will you communicate?

We will have twice a week stand-ups to check in on progress. For other communication, we will use Facebook Messenger.

How will you know when you’re off schedule, and how will you deal with schedule slips?

We are using JIRA as our project management software. We will deal with schedule slips by either changing our specs or working more.

Who will produce the weekly group status reports?

Each person will contribute to the weekly report what has been developed.


Project Development:

What are the development roles and who will handle them?

  • Gameplay – Everyone
  • Networking – Brian, David, John, Phoebe
  • Graphics – Matt, Michelle
  • Physics – Brian, David, John
  • UI – Everyone
  • Audio – David
  • Art – Michelle

What tools will you use?

  • JIRA
  • Visual Studio/XCode
  • GitHub
  • Maya

How will you do testing?

Testing during and after every Sprint completion.

How will you do documentation (both internal group documentation as well as external player documentation)?

  • We will document our progress publically using WordPress and Team Website.
  • JIRA will keep track of internal documentation on tasks.

Project Schedule:

  • Basic Map with Character moving around, networked (1.5 weeks)
  • Teams obtaining flags with basic combat/heath (1 week)
  • UI – minimap, health bars, menu/lobby (1 week)
  • Models/terrain/sound (1.5 weeks)
  • Items/abilities (2 weeks)
  • Drop-in spawn
  • Balancing Vehicles and everything else