Final Project Review

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

 

Our game concept ended up being more simple than our initial concept. It is easy during the initial planning to come with all kinds of fun and cool features, but when it comes down to implementation and actual gameplay lots of things had to be cut not only to make sure that we could finish most of them in a reasonable time frame, but also to keep gameplay focused and fun given the demo environment. More advanced features like using units to settle new planets, separating the solar system more, and having a more complex upgrading system (among other features) all sounded great during initial planning, but as we prioritized features they were deemed less important, in part because they all slow the game pace and we needed the game to be pretty quick to stay interesting throughout the demo.

 

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

 

For all of the features that we ended up implementing, it has stayed pretty aligned with our initial design. The design of the networking code has stayed largely unchanged from initial design through to our final version. The strategies that we came up with for handling objects across the server and all of the clients has also remained largely the same. One difference for the game objects is that we initially wanted to have very basic identifying graphical information associated with the game objects across both the server and clients that the server would choose to ignore so that they could all share the same library of classes and sending typed objects over the network would be easy and no dynamic casting would be required. We ran into quite a few problems with this, mostly involving storing additional or optional graphical information, and so had to change this design which impacted how we wrote clientside code quite a bit, but left the server unchanged. One design that was changed almost completely was how the client would store the scene. We initially wanted to use a scene graph mostly just because that was how the week 1 miniature demo was written. When we started adding the network code and designing the core game object library we realized that it would be much easier to just store the matrices related to each object’s position, especially because all movement and animation was going to be done on the server side anyways.

 

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

 

Our final schedule lined up pretty well with the projected schedule for everything but the client work. Our projected schedule relied pretty heavily on the scene graph implementation and the expected visual work corresponding to our initial game concept and our planned features. We ended up going a very different direction with the client logic and we ended up cutting quite a few features and adding others that we didn’t foresee needing (such as coloring based on player, icon view, etc). This caused our actual schedule to deviate heavily. For gameplay logic the major differences ended up being features that we didn’t get to or decided to cut. For example we originally slated tech tree development to finish up during week 8, but we didn’t finalize it until the final week as it wasn’t prioritized over other features we still had left.

 

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

 

Our development workflow (github branch and pull request) ended up working extremely well. We could keep development going very consistently, no code was introduced without at least a little review, and everyone could see roughly what everyone was working on and what features were being added (meetings where we summarized our week and planned the next also helped quite a bit with this). One problem we consistently had with this was that during busy weeks, pull requests would build up quite a bit, but our mandatory team meetings would always remedy the situation. The weekly team meetings were always our most productive day of the week, and if not for scheduling conflicts I would have even liked to have a second because of the productivity it would add. Using slack also worked out quite well because everyone was generally quick to respond and helped prevent blocks. At a deeper level, separating the codebase into client, server, core library, and network code was hugely successful. People working on different parts of the code very rarely stepped on each other’s toes, and really helped push people to work together with whoever else was working on the same component that week. Merging was typically much easier as a result, and it also helped reinforce good style and design by mandating the separations we wanted between the different areas.

 

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

 

[Pereira] Fixing graphics bugs was the most difficult aspect of implementation in my experience. Getting a basic or nearly correct version was always easy, but fixing those last few bugs that sometimes were only happening on specific machines and not others was quite difficult and stretched my debugging abilities on more than one occasion. The lack of debugging support for shader code exacerbated the issue as well. Something that ended up being far easier than I expected was adding the UI. We went with the NanoGUI library and it was simple enough that UI development was extremely quick and relatively painless.

[Li] Since I have been mostly working on server end, it was astonishing to me how separate the client and server logics are. It was hard for me to find an efficient way to store and send information to the client to trigger the animation and delete the objects correctly. In order to make sure the game goes smoothly, we were trying to cut down the data volume, which required us to redesign the way we handle animation logics on both ends. It was also my first time using start pointers, which are immensely useful and sometimes a pain to manage.

[JJ] animation was definitely more difficult than I expected. I’ve done solely client side only animation, and it was quite simple to achieve, but incorporating the server logic introduced so many issues. Rotation should not take that long to implement.

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

 

[Pereira] I am particularly proud of the spatial data structure and the optimizations that go along with it. I implemented the octree, view frustum culling, ray tracing, etc at the beginning of the project in a pretty generic and extensible way, and it has served us well with very few problems throughout the quarter giving us a lot of extra optimization and utility as we implement new features and add more and more to the game world.

[Li] I am the most proud of the rotation, shooting and death animations for the units. Over a long process of developing for three weeks and multiple teammates’ effort, the unit attack look so cool and accurate. With the help of sound effects, the game felt real and playable.

[JJ] I am proud of the exploding spaceship and tracking icons simply because I never worked with geometry shaders before. To be honest, when Ethan first suggested it, I doubted the need for icons because it seemed like it would occlude the player’s view and be overkill. To resolve this, I had it as a toggle option, but still questioned it until I played the game with it and realized that it was quite helpful. I’m also proud of my teammates because they’re often and I swear that at least half of them are 10x programmers. I, on the other hand, am a -10x programmer.

 

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

 

[Pereira] Complete object selection using ray tracing was probably the most difficult single feature (excluding trying to work on stuff while sick). I have implemented ray tracing many times in the past, but never with this environment and version of opengl and so I ran into some oddities that caused me quite a bit of time lost searching for errors in the wrong places. I overcame it through extensive debugging to determine that code that I assumed was correct because it worked elsewhere turned out to be slightly off.

[Li] The most difficult problem I faced was communicating between server and client on signaling death animation when a unit dies. We also wanted to avoid sending a whole quaternion through the network each time a unit rotates. Our final solution was to keep the same copy of quaternion on both sides and made sure to update it with a rotational angle simultaneously. In order to make sure a death animation is signaled before a unit is set to idle state, we gave unit itself the power to input updates to queue on server end. This way the unit manager does not have to be overwhelmed with handling animation after an attack. It also gives us sufficient range to handle units through cities and much more.

[JJ ] Integrating with server code and knowing what to update. In addition, trajectory planning with collision detection. I noticed pretty much all the other groups implemented collision detection except ours, but our collision detection would have had to work differently. Rather than just stopping the model, or applying a simple force to it, you need to alter the path but allow the spaceship to continue to its final destination. It was not able to be overcome unfortunately. We got close (maybe 80-90%) there, but there were various issues.

 

  • 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

 

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

 

Values found using “find [code files] | xargs wc -l” in bash

 

Client – 7,478   (6,879 C++, 581 GLSL)

Core – 4964

Server – 878

SunNet – 1831

 

Total – 15,151

 

  • 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?

 

We cheated our way out of this as much as possible. The meshes in our game are either downloaded from a free online repository of models or generated directly in our code. As for workflow, for the code generated meshes we just used math to create the shapes that we wanted. As for loading models, we used the assimp nuget package (v3.0.0) and ran into relatively few issues because it directly supports the filetypes of the models and meshes that we had downloaded.

 

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

 

[Pereira] I personally prefer working from scratch. It’s very satisfying to complete a game after starting with nothing, and it forces you to learn a lot that using an engine would let you pass over. Part of me wishes we could have used an engine just so that our final product would likely be more complex / look nicer, but I think that the learning and satisfaction that comes with working from scratch outweighs that by quite a bit.

[Li] With a team of 6, working from scratch is viable and crucial towards the learning process. Even if we did not implement every fun feature that we wanted, I gained so much fun and satisfaction just by knowing that our system is quite robust and capable of expansion.

 

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

 

We used NanoGUI, which is an opengl UI library. If we had to start over, I believe we would absolutely use it again. It greatly simplified doing all of our UI work and let us very rapidly add features into the UI as we needed. A lesson that took a while to learn was that not using the form helper utility classes that are included ends up being a lot nicer because you have much more direct control and it is way simpler to create special windows by using the NanoGUI classes directly. However, for just standard windows the form helper stuff worked out just fine.

 

  • 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?

 

There will be disagreements, from high level game concepts down to specific implementation approaches. However, as long as everyone is focused on making the game as fun and good as possible then compromises and resolutions will always be found through discussion. An important lesson is also that not everyone works at the same times. At a daily level or a weekly level, people are on different schedules and have different assignments due at different times and things aren’t always going to line up. It’s important to make small bits of time to review code, answer questions, and otherwise be available even at times that aren’t optimal for you to help keep the team moving along and make sure not to block anyone.

[Li] On the other hand, teammates are also your best teachers. I have probably learnt a lot more from my teammates than some of my CSE courses (partially because I have not taken some of the core upper-division classes).

[JJ] Group culture/ambience (I am forgetting the English word I’m looking for again) is important. Being part of two group projects this quarter, I definitely felt a lot more of a bond with my CSE125 group, which motivated me more. My teammates all got along and I never felt any hostility, which definitely results in a healthier and more productive work environment.

 

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

 

[Pereira] Looking back, I wish we had had more group meetups to work, even if not everyone could come. We were far more productive working together in person, so even if only 3 or 4 people could make it, having more regularly scheduled meetups would have helped us develop quite a bit. I wouldn’t change our workflow one bit, I really liked how it worked out for us. I also wouldn’t change our game concept much at all. Though difficult and complex, the RTS genre was a great goal that really helped me learn some cool things and also develop a greater appreciation for game development, especially large scale games.

[Li] Around Week 7, we started having “Super Days” where we just sat together and marathoned codes from morning to night. Those days were the most productive that we have ever been, partly because team members got stuck easily on their own. There could be blockages by other member’s features, or codes that were not understood. By sitting together in the lab, we communicated much more efficiently. I think we could have cut the long hours of meetings where we planned too much details, and instead code together more often.

[JJ] After seeing other team’s games I wished that we had focused more on the art aspect. I guess that for our games we had different needs, but I saw how much a difference having an artist was. Each team seemed to have either an artist or someone who volunteered to learn blender. We wouldn’t have had the luxury to do that since we were always time crunched as it is, but if our group had some additional members, it would be nice to have an artist. I would do the Thursday dev days again, because that encouraged me to actually focus on the project and allowed me to get help directly from my teammates.

 

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

[Pereira] I think that CSE 190 (Demo programming with Shacham) helped prepare me the most. It was a similar environment where you develop a complete game with a team, albeit a smaller game and a smaller team. The class is also much more focused on the specifics of the ZX Spectrums and hacks and optimizations for it, but the workflow with the team is similar and the amount of work you have to put in consistently throughout the quarter in order to have a fleshed out game at the end also prepared me quite a bit for the marathon of 125.

[JJ] CSE 167 – 169 gave me a graphics foundation for the class and CSE 110 helped me with understanding concepts of software engineering such as refactoring, class design, and agile development as well as working in teams. It’s a bit post-class since I just finished 112 this same quarter, but knowing some of the lessons from that class would have been useful in setting up a pipelining/development process as well. For example, (for who knows what reason), I always had the assumption that a real programmer writes everything from scratch, but this quarter I realized there’s no need to waste time reinventing the wheel if there are already tools available to you. I was slightly unaware of model loading libraries but I remember getting ready to write file parsing and model loading code from scratch had Dylan not stopped me and suggested using ASSIMP.

 

  • What were the most valuable things that you learned in the class?

[Pereira] Modern graphics development and how to more properly use opengl were the most valuable things I learned. I have taken graphics classes and worked on my own with graphical applications, but always using older versions of opengl or very specific techniques. Getting to develop for what has to be a full game helped me learn quite a bit in that regard.

[Li] How to communicate and cooperate with people when working in a group, which I never learned from taking other classes at UCSD. This is the only class that I took where it involves both huge amount of coding and massive cooperation. As we approach to the end of our development process, no one knows everything about this game, which makes good API design and documentation extremely important.

[JJ] Pretty much anything my teammates taught me. I was glad that all my team members were smarter than me so that I could learn from them. I never knew about pull requests and how they should really work so for the first week of development, I had comments from Brandon about my huge pull request. At first I felt really guilty about it because I felt I had done something wrong, but fortunately my teammates didn’t put blame on me for it. Since then, I’ve learned/been trained in good practices for developing on small feature branches and making requests for peer review. I also learned modern OpenGL thanks to Dylan’s recommendation that we use that for our project. I don’t know if I would have taken initiative for that move if he hadn’t suggested it.

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

  • 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?

[Raj] Although it’s important not to get too bogged down in the details of software design in this course (for the sake of time and sanity), I found that the project presented a perfect opportunity to make concrete some of the abstract concepts presented in “Design Patterns: Elements of Reusable Object-Oriented Software”. The behavioral and structural patterns are particularly useful for interactions like combat. Keeping a general C++ reference manual is also helpful. I enjoyed “The C++ Programming Language” by Bjarne Stroustrup.

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

 

  • How can the course be improved for next year?

 

  • Any other comments or feedback?

 

Raj’s Update: Week 9

What were your concrete goals for the week?

For this week, I planned to get score updates sent to the client, get those updates reflected in Brandon’s leaderboard GUI, then make sure that the game gracefully ends after some player reaches a target score. After this, I wanted to work on defining the scoring rules: e.g., how should we calculate the points awarded when a unit or city is destroyed. Also, I wanted to work on getting City population to grow and factoring that into the City’s production.

What goals were you able to accomplish?

 

Early in the week, I got the leaderboard updates communicating between servers and all the clients, which worked well with Brandon’s existing leaderboard implementation on the clients. This made it possible to establish an end-game based on the player score.

I also worked on fine-tuning some key gameplay aspects. For one, I enabled disabling unit spawning when players have insufficient resources. Second, I fixed a bug in combat that would cause the server to go down when more than one unit was attacking the same target. Further, I made sure that a unit’s client window, which details the unit’s stats, disappears when the unit dies. Lastly, I acquired audio for unit shooting, UI interactions, and explosions.

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

After some discussion with the team, we decided to move our focus away from game balancing and towards fixing bugs.

What are your specific goals for the next week?

First, I plan to connect the audio I acquired to the corresponding gameplay.  Next, I want to help address the severe lag on clients that are not running on the same machine as the server. After this, I want to do some important game-balancing issues that we noticed last week. And lastly, I want to play the game as many times as I can so I can weed out any latent bugs.

What is your individual morale?

My morale is high! Not panicking! Let’s finish this off strong!!!

Brandon’s Update: Week 9 (06 June 2017)

Concrete Goals

This week, my concrete goal was to make the game feel better while playing. This involved working on UI elements, making movement smoother, finalizing unit orientation, lasers, and attack sounds. I prioritized fixing game-breaking bugs and stabilizing features. I was not inclined to try anything super ground-breaking.

Accomplished Goals

I accomplished pretty much all my goals for the week. I solidified unit orientation, laser-attacks, attacking sound, and many other stability fixes. I was also able to add in new UI elements for units and cities, as well as create a new UI for the research system, which Ethan will be able to utilize.

Unaccomplished Goals

I think I accomplished all of my goals (and then some!) – I would consider this past week to be extremely productive. Plus, I got to relieve some of that CSE125 stress

Next Week’s Goals

Only a few more days left. I learned a lot about the current state of our game during the Dry Run. This week I’m a little busy do to both CSE125 and CSE191, but I plan on fixing the bugs revealed during the dry run. The most pertinent is a framerate issue for remote clients. We have gathered a list of issues on GitHub that I am going to address.

I’m also going to do my best to constantly battle any thoughts of new features that the team (including myself) might have. We need to focus on ‘MVP’, not ‘OMF’!

This Week’s Learnings

This week I learned a little bit about particles, how the FMOD library works, and more about how our orientation systems work. Other than that,  I can’t say that I learned that much. I was just chuggin’ along, as usual.

Morale

My morale was a little low at the beginning of the day. I was pretty apprehensive about how our game would compare to other teams’ demos. However, seeing how much fun my team had playing our own game definitely raised my morale. It’s all about the learning and fun, it’s not a competition. only slightly a competition.

I’m super excited for the demo day ^_^

 

Team Updates Week 9

 

We worked on dishing out the Trade UI so that we would have a trading component in our game. In addition, we added some cherry on the top features such as finishing up music integration and highlighting of selected units. The planet bloom which was taken out was also readded into the game.

Ethan’s much desired Tech Tree was flushed out with UI included.

Lots of merging for branches that were overdue also happened on Thursday, and now there is actual rotation and laser shooting in our game.

As of the weekend, we put a freeze on new feature development to work on making sure that the demo branch is good to go on Friday afternoon. Our current state includes a master branch and a demo branch, which is our “save” for Friday.

The overall team morale seems to be apprenhensive as we pray that the demo gods will be in our favor. We’re also all awaiting Dylan’s healthy recovery, the main Trello card that’s been in progress.

Sylvia’s Updates

Ethan’s Update

Jessica’s Updates

Raj’s Update

 

 

Ethan’s Update: Week 9

1) What were your concrete goals for the week?

My goals were to finish up tech tree implementation (last week’s version wasn’t really completed), music playing, implementing buildings and settlers.

2) What goals were you able to accomplish?

I completed the tech tree implementation and got it ready to be integrated with tech tree UI. I also finished up music player, which loops through the sounds loaded, and allows user to adjust volume with left/right bracket.

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

Obviously there were too many goals for me to finish this week, but building implementation is mostly done, and we’ve decided not to implement settlers anymore (which would be a non-attackable unit used for settling, and can be taken by another player if not protected). Instead, we will have a settlement limit to limit the number of cities a player can settle, which will increase as player progress through tech tree.

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

I aim to finish up building implementation, and settlement restriction. Possibly adding a menu/lobby to the game as well. That’s really all we can do before the demo. I won’t be working on debugging a lot given that I’m mostly working on last-minute features.

5) What did you learn this week, if anything (and did you expect to learn it?)

Didn’t really learn anything technically, but I did realize how good design makes development easy. Most of our design in this game are pretty good and were aiming for good extensiblility, which makes last minute features easy to implement. Good logging practice and error handling is really important for debugging as well. The project also starts to emphasize documentation and encapsulation. As the game grows larger, it’s hard for every team member to fully understand how other parts of the game work, which makes good interface design and documentation critical. I’m glad that I did a pretty good job in that respect.

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

As the demo is approaching, I guess we are at our most productive moment. I’m pretty excited for the demo this Friday, and I am confident that we can deliver a good game.

Jessica’s Updates Week 9

1) what were your concrete goals for the week?

My goals for the week were:

  • replace the bear model so that the heavy unit is actually a spaceship
  • take highlighting selections off of dylan’s hands since he’s sicky
  • getting the obstacle avoidance to work
  •  breaking the game

2) what goals were you able to accomplish?

Replacing the bear model and highlighting were done quite quickly since they were simple tasks.

Obstacle avoidance semi works, but sadly did not make it into the final game.

Sadly, breaking the game succeeded.

 

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

After several implementation attempts, obstacle avoidance finally seemed to be working 85% of the way, but I guess it just wasn’t clean and accurate enough with slight delays since it’s not calculated until the bounding boxes actually intersect rather than by using a lookahead method.

 

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

Debugging the game and fixing things such as not letting the users scroll out to infinity

5) what did you learn this week, if anything (and did you expect to learn it?)

Everything I touch breaks or dies.

 

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

My morale is anxiety because to took two goonies into Atkinson Hall with me on Sunday to test out the game on the demo machines, but everything was breaking and the servers kept crashing.

Sylvia’s Update: Week 9

What I Planned

To catch up on this week, I will dedicate all my energy to trading user interface and make sure that it works. This includes the aesthetic UI, the function set resource types and amounts to sell and buy, and the ability for player to accept and decline trade. If there are more time, I will add the function to do counter-offer.

What I Have Accomplished

  • A fully functional and displayable trading system
    • the ability to establish trade
    • select any online player (except himself or herself) as a trade partner
    • establish trading resource type and amount, both for selling and buying
    • the receiver can either accept or decline a trade
    • a player can only receive one trade at a time. If more than one offer is provided, any old offer is overwritten

The Unexpected Factors

There are not many unexpected factors this week. It took a long while to develop the trading UI due to the learning curve for nanogui, but after some read-up on the documentation, I was able to implement the feature without much issue.

For the Future…

This is the last week before the demo! Time flies by so fast… Most of us agreed to stop implementing new features and focus on making the game more robust, aesthetically pleasing and user-friendly. This will include fixing the fps lag and other bugs. If people agree on having more time, we can work on adding some icons to help users identify where their cities/units are, and adding a small guide.

What I Gained

Looking at other people’s game today made me realize on how far everyone have progressed in the past 10 weeks. All groups have done a wonderful job, and we may inevitably compare ourselves to others’ graphics or game play. However, I am very happy with how far our game has come. It ran relatively smoothly and did not break at all. The members enjoyed attacking each other’s units and found small, hilarious bugs, such as having no resources to build extra ships.Overall, we learnt a lot from the dev weeks, and I’m proud of what we have accomplished.

How I Felt

I am feeling both nervous and excited. While I was deep-diving on my own feature for the past week, I was able to enjoy our current game play on demo branch for the first time today. With some small tweaks, we believe that the game will be significantly smoother and more fun!

Raj’s Update: Week 8

 What were your concrete goals for the week?

For this week, I planned to work on getting resources on slots and having those slots yield players a resource instance incrementally over the course of a game (as I mention in the next paragraph, Brandon already finished this the week prior). Also, I planned on tying up city and unit combat, getting city destruction working on the client-side.

What goals were you able to accomplish?

I got back from my interview on Wednesday morning, so my week was a little shorter. I was able to finish city destruction on the client-side and get it merged into master: so, units can now target and destroy other players’ cities, rather than just attacking other units. This finalizes the core of combat, as any new unit or city types will use the same fundamental combat logic.

Regarding resource allocation: Brandon finished this last week, which — being preoccupied with preparing for my interview — I was unaware of when writing last week’s update. Thus, I worked on getting player score updates to the client, efficiently. We only want to send these updates when the score has been changed, but also don’t want the server to be explicitly checking for changes on each tick. Thus, I’ve worked on a solution that mirrors what we are doing with combat updates: having the player tell the game server when its score has changed through a PlayerManager. I’ll be continuing this effort for this week.

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

I was able to meet the city destruction goal, but not the score updates. I’m planning on getting the latter up by tomorrow night though.

What are your specific goals for the next week?

For the upcoming week, I plan to get score updates sent to the client, get those updates reflected in Brandon’s leaderboard GUI, then make sure that the game gracefully ends after some player reaches a target score. After this, I want to work on defining the scoring rules: e.g., how should we calculate the points awarded when a unit or city is destroyed. Also, I want to work on getting City population to grow and factoring that into the City’s production.

What is your individual morale?

My morale is still high! I got the job! Now, I’m looking to put in extreme focus this and next week to finish our backlog!

Jessica’s Updates Week 8 20170529

1) what were your concrete goals for the week?

Ethan insisted on taking on sound, so I was supposed to make different players have different colored units and cities so they could be distinguished and finish my my obstacle avoidance.

2) what goals were you able to accomplish?

I was able to assign the different colors, but by the time I was going to merge into master, there were a lot of changes in the code and currently I have to rewrite it. I am also trying to test it out, but the program keeps crashing each time I spawn a unit.

For the obstacle avoidance, I switched to an aabb implementation, but there are still some server issues. The unit won’t fly into obstacles, but once it avoids it, it doesn’t continue on its path.

 

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

For obstacle avoidance,

  1. I had a misconception about how one of the methods for moving the unit worked, but Raj helped clarify for me.
  2. After attempting a way around it so that I could continue in unit trajectory, the server kept crashing and I have yet to figure out why

For not meeting things in general, a wave of to do lists suddenly came crashing down on me this weekend.

I had about 60+ programming assignments to grade with my professor pressuring me to get it done asap, but I couldn’t really do anything about that until the head TA responded to me about what I should be grading.

In addition, I jumped from documentation to help out with the front end role on my team for 112, but it seemed like I had to take on the main portion of the tasks due to my experience level compared to my teammates. I had expected backend to help me link up stuff with the UI, but that turned into what seemed like a solo battle of me trying to do everything by myself since the only information provided to me was that we were using google analytics.

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

Assuming, I don’t get it done after typing the report tonight, I need to figure out why my player assigned colors are crashing now and merge it in, and I need to hopefully figure out why the server is crashing for my obstacle avoidance when I try and add a force component.

5) what did you learn this week, if anything (and did you expect to learn it?)

I learned that I’m not good at managing stress. My personality starts to change when I’m under pressure and I started unintentionally snapping at my friend (who is also my team leader for 112) because I was frustrated with trying to finish my tasks, and then snapping at my brother because he was telling me to eat dinner when I wanted to skip it to finish things up.

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

My morale is slightly in the middle. I thought I was getting stuff done and then Sunday + Monday turned into me trying to do 4 different things at the same time, which I found was not very efficient.

 

Sylvia’s Update: Week 8

What I Planned

I am heading home for Memorial Day weekend, and I plan on finishing up user interface for trading system, at least on the aesthetic part. I also wish to finish integrating animation with master branch.

What I Have Accomplished

  • Getting animation up-to-date with master
  • Have a basic trading UI branch on remote

The Unexpected Factors

After bringing the animation branch up-to-date, I realize that the turning animation did not account for movement only activities. It only works when a spaceship is selected to attack. Thankfully, my teammate caught the error and remind to fix it.

For the Future…

I MUST get the animation branch merged into the master. Besides finishing the aesthetic part of the trading user interface, I want to catch up with the team on the general progress of the game before making a decision on what to work on. We are probably lacking some aesthetic elements for tech tree and scoring systems, so I can potentially work on those.

What I Gained

To be really honest, I did not dedicate enough time to the project this week due to the itinerary. My weekend was quite overwhelmed by events, and thus I was trying to finish as much feature before the trip as possible. I am really glad that my team supported me and got my back this week. For the next two weeks, I promise to put all my effort to the project to make up for the time loss.

How I Felt

I am feeling neutral this week because I did not get time to work with the team during our usual meetups. However, I am grateful that my team understands my trip and prep to take over my role when I am absent.