Welcome to the blog for 5 Second Rule’s CSE 125 game. We are Zach Johnson, Kyler Schwartz, Jacob Maskiewicz, Sean Hamilton, Amy Chandler, Shazzy Gustafson, and Matheus Ferreira.

Final Report

13 Jun 2014

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

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

Most of the initial game concept made its way into what we implemented. Due to time constraints some of the features and game mechanics weren’t implemented, most notably the inner tube mechanics we wanted to implement. We also wanted to implement more power-ups, like a shooting one for example or a shield. However, we were able to apply good enhancements as animations, bump mapping, and AI.

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

The game design, just like the game concept, didn’t change much from our initial design. Some key aspects that didn’t get implemented were a menu system in which the user could view an instruction screen for goal and controls. An end state was also not implemented, so the winning state was simply being the last one standing and the game continued going on. We had some initial code for a win state, but it was causing issues and so it didn’t make it into the final build.

Schedule: How does your final schedule compare with your projected schedule, and what are the reasons for the differences, if any?

The schedule did not change much from the originally proposed one. The milestones stayed where they were originally proposed and met on time or close to on time. The schedule’s specification was general enough that it afforded us enough flexibility for moving things around when needed and still served as a guiding set of goals up till the very end even though some features did not make it in the demo version.

B. Then address these more general questions:

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

A layered approach to separating areas of concerns worked well for us. Following a strict object oriented design paradigm also worked out very well and lead to clean, readable, and manageable code. As far as group mechanics go, having design meetings in the lab with all the pertinent members of the team for the area being designed seemed to work well. We were originally going to have sync posts in our facebook group 3 times a week, but those ended up not really happening much, except during crunch time. It probably would have been a good thing to keep those up throughout the quarter.

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

Sometimes dealing with code conflicts and making sure everyone was on the same page was a little harder than expected, especially when we were working more remotely. But we worked through the problems and ended up with something good. Also, finding tasks that didn’t depend on things not implemented yet became a little harder as time progressed. Kyler: Out of the aspects that I worked on, I found that getting models and textures implemented was more difficult than I expected. This was a result of some of the more simple methods that were present before in Direct X being deprecated and thus integrating a library from Microsoft was necessary (in regards to textures) and for models it was mostly trying to find a well-supported file type to use for the models. The easiest part I would say was implementing the shaders. Although it took some experimentation, I already had experience writing shaders and so this was pretty easy.

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

We’re really proud of how it turned out graphically. Jake: I’m also very proud of how well we were able to maintain a desperation of concerns and keep the engine very game-unspecific. Although things began to creep into each other toward the end, it felt like we had some really strong modularity in our game and engine components. Kyler: I am particularly proud of the animations I was able to implement for the different characters through only vertex shaders. Although I am sure its been done before, this was something I had thought of and decided to implement on my own and couldn’t be happier with the end result. I am also proud of the code I wrote to construct the tube the characters swam through. It made it simple to design and create a new track and, although it had a couple graphical hiccups, I think it came out looking great.

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

Kyler: The one difficult problem I remember facing was trying to implement animations through fbx files. After analyzing the methods through which this was meant to be done (skeletons and skinning), it seemed like this would greatly hinder our game in both loading and implementation. The way I overcame the problem was by implementing the animations of our characters through vertex shaders. I realized that most of our characters were very spherical in nature, or at least symmetric in some regard. The animations we would want also involved a lot of wiggle motions which I realized could be done with sine waves and such. This is why I decided to implement the animations through vertex shaders, and not only did they come out great, they also didn’t involve loading time and so ran much faster than I believe animations parsed from the fbx files would have been. Matheus: Testing the AI was kind of a challenge, it is particularly difficult to stop in a breakpoint and try to find the root of a logic problem. The better approach is make sure to test each component separately and I could do that in a more practical way inserting a command line interface to change the state of objects on the fly.

If you used an implementation language other than C++, describe the environments, libraries, and tools you used to support development in that language. What issues did you run into when developing in that language?

Would you recommend groups use the language in the future? If so, how would you recommend groups best proceed to make it as straightforward as possible to use the language? And what should groups avoid? Finally, how many lines of code did you write for your project? (Do not include code you did not write, such as library source.) Use any convenient mechanism for counting, but state how you counted.

We implemented our project in C++. We ended up with 75,122 lines of code across 457 files.

Counting lines in powershell:   
Get-Content (Get-ChildItem -Include *.cpp,*.h -Recurse -Force) | Measure-Object -Line
Counting files in powershell:   
Get-ChildItem -Include *.cpp,*.h -Recurse -Force | Measure-Object -Line

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

The characters were modeled using maya(1000-8000 triangles was the range for the characters, but most averaged at 2,000 polys). A combination of reducing triangles and smoothing normals in maya allowed us to have high res looking models but with a low poly count. The models were then exported and textured and UV mapped using Zbrush. Zbrush UV maps the models with a press of one button, then from zbrush it was exported back into maya just to make sure everything mapped correctly and then exported as an .obj or .fbx format. Zbrush is amazing, but It is usually used for modeling for movies were polycount doesn’t matter so that was a huge learning process, but its awesome to paint your models with. The 2D graphics were all done in photoshop. Other textures that were used were found online with a corresponding bump map.

For loading in meshes and models, we used both an obj loader and an fbx loader. The obj loader simply amounts to code that counts up the number of vertices, normals, and texture coordinates, and then fills in arrays with their data reading down the file (based on if the line starts with v, vn, or vt). The last part of the obj file are faces, which have three points. Each point is in the format x/y/z, where the x represents what number vertice was listed, y stands for the texture coordinate, and z is the normal. Since these counts start at 1, you should subtract 1 from the value when referencing your arrays. The fbx loader came from code found for the fbx file. The logic is similar to an obj loader, except it has functions for getting the index for a polygon and then the vertex and vertexnormal for the polygon. We added code to calculate the center of the model and adjust the points so that they were centered at 0, but other than that, no real troubleshooting was done. While the obj loader was really straight forward, we wouldn’t recommend the fbx file type since it contained quite a lot of extra information and we had one file that for an unknown reason seemed to take longer to load even though it was smaller and simpler than the other models.

The other piece of code we needed was the DDSTextureLoader from Microsoft. This was needed because they deprecated the other functions that were used to load textures and so this loader was needed to load in the textures. The textures had to be in DDS format for this to work. We found converting the textures to DDS in Visual Studio worked the best and had no problems. Other than that, it simply involved using the DirectX::CreateDDSTextureFromFile() function call which Microsoft provides details for. Although it did require adding outside code, the DDSTextureLoader was easy to use and would be recommended if you are using the latest version of Direct X.

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

We prefer to work from scratch. While using a game engine might help with some issues or lead to a better looking game, it also creates its own issues. Basically, rather than spending time implementing your game, it results in spending time trying to learn the engine. Also, since we didn’t create it ourselves, we are more likely to mess up some aspect of it or be unaware of some of it’s features and end up doing things the hard way. For this reason, we would still choose to start from scratch if given the choice again. It was also a better learning experience starting from scratch on the game in understanding all the intricacies and complexities of a game engine design.

The RakNet question

We didn’t use a network library or a physics engine. Only one group used a physics engine (bullet) and we could tell it gave them some issues. Some of our team members have used bullet before and know that it can be frustrating to get working properly with what you want to do. For this reason, we wouldn’t recommend using a physics engine and implement one that fits your needs. This falls under similar problems of using a game engine where you have to learn to use it before being able to make progress and can implement it wrong due to being unaware of features or nuances.

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

Kyler: In terms of what I worked on, namely shaders, animations, and the tube, I believe I would do those again in the same situation. I enjoyed getting those to work properly and liked the visual nature of being able to see the results. As for something I would do differently, I would have spent more time early on to familiarize myself with how our game engine worked. In the last few weeks of the project, my unfamiliarity with the specifics of how the game engine worked lead to a few miscommunications and misunderstandings on what I should be doing and how I should implement things. It also would have allowed me to help even more during the debugging stages where the bugs were occurring in the engine rather than the graphical components. Jake: I would have made more effort to keep the entire team caught up on the architecture decisions. Towards the end, the lack of caught-up-ness really hindered our ability to move quickly.

It would have been nice to spend a little more time on the actual gameplay aspects. We spent a lot of time building a solid foundation, which isn’t necessarily apparent from the users POV during the demo. Overall, the game was fairly solid by the end, but lacked.. I don’t know. A little something more.

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

CSE 131 was useful for getting practice with a larger very interconnected software project before 125. Kyler: CSE 167 and 190. CSE 167 helped give me the basis for graphics and trained me to think in 3D better in regards to matrices and rotations. The GPU Programming CSE 190 course focused a lot on shaders, which greatly helped in implementing the shaders for this project and also probably helped inspire me to use the shader for the animations.

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

Implementing a networked game is much harder than an offline game and having a good team makes the creation process easier and more fun.

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

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?

Kyler: I didn’t use any books. I did find some of the recommended online tutorials helpful, like those at directxtutorial.com and rastertek.com, since I didn’t have the experience using Direct X. Jake: I used one of the DirectX 11 books and loved it so much I bought a copy for my kindle at home.

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

Sean: Start early as possible on the project. Have a set of goals in mind to work towards each week. Make sure you have a well rounded team; graphics, networking, game mechanics, and artists and all with sound programming experience. This same well rounded team should easily be able to move and assist on other areas as well. Leave lots of time for integrating the separate pieces of the system because it will not go as intended. Start to design the different pieces to talk to one another early on. Use assertions and exceptions early on to help with troubleshooting. Learn how to use the graphics debugging tools that are available as they will greatly simplify debugging bugs dealing with graphics and rendering. Start early on working 2D interface feature into the rendering engine. It worth take a look in the course books to help in design decisions. For example, Game Engine Architecture, Jason Gregory, probably will give you some insights of components that are worth to implement, advantages and disadvantages of each approach - one example in C++ is alternatives to the use of pointers such as handles. Buckland AI book can also inspire some game play logic not hard to implement - and no previous experience required. Depending on the game style it can be useful have a command line interface and make the renderer support generate primitives and texts; those can be a good alternative to game play testing and debugging.

How can the course be improved for next year?

week 9 group report

02 Jun 2014

Overall Status

Game is coming along, pieces are being integrated together. We’ve added lighting to our models and currently integrating it fully to the game. Player select screen has been implemented, making sure each player has a unique character. The adrenaline power up has been integrated into the game, as well as the white blood cell AI. Also, the control scheme has been updated.

The following things still need to be implemented: - Heads up display - Dying, Winning - Start of the racing game intro (3,2,1 countdown) - Final winning screen which allows you to restart the game - Red blood cells floating around

Group Morale

A little bit of hell, but doable..

Shazzy Gustafson Week 9 Report

02 Jun 2014

What were your concrete goals for the week?

  • Create in game 2D art (deaths, powerups)
  • Model Blood Clot
  • Find sounds for intro, collisions etc with Sean

What goals were you able to accomplish?

  • Create in game 2D art (deaths, powerups)
  • Find sounds for intro, collisions etc with Sean

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

  • Wasn’t able to model the blood clot just didn’t have time to get around to it

What are your specific goals for the next week?

  • Keep finding some sounds depending on how the current ones sound
  • Work on a controller screen (intro screen to explain the controls, power ups etc)
  • Work on a final ‘Winner’ Screen
  • Work on blood clot model

Sean Hamilton - Week 9 Report

02 Jun 2014

What were your concrete goals for the week?

To implement a revised control scheme, tune audio so that sounds are not played to quickly in row and fade off volume with distance. Fix memory management issues we had.

What goals were you able to accomplish?

The new control scheme is in place and the memory management was cleaned up as well. The audio fade volume by distance is in place but I have not rate limited playing of audio clips yet.

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

Most were met despite the reports due for CSE237B and CSE244A.

What are your specific goals for the next week?

None for next week but by the end of this week I want to have all audio portion in place, fine tuned the control scheme, and characters dying and a winner being determined.

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

It is crunch time… I feel god still but I feel like there might be a couple late nights this in my future

Matheus Ferreira - Week 9 Report

02 Jun 2014

Goals From Last Week

  • Have the management of objects and have autonomous objects bothering the players like crazy.

Accomplished Goals

  • I implemented a AI manager that manage the resources of white and red blood cells for each player. The red blood cells are just a distraction while the white blood cells pursuit the players trying to delay them.

Problems with Meeting Goals

  • None but I would like to enhance the AI to make the race more challenging.

Goals for Next Week

  • Try to find the best configuration to the physics and AI
  • Finish the game
  • Do a reflection

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

Tired but excited with the demo.

Kyler Schwartz - week 9 report

02 Jun 2014

Goals From Last Week

  • Get the player control working really well (also with the controller?). This would involve getting the logic for rotations working properly, having forward and side movement based on heading to avoid the player getting turned around. Implement acceleration and deceleration.
  • Implement logic for player respawning when they die (location, speed, direction, etc.).

Accomplished Goals

  • Implemented a new control scheme (and camera logic) that made it much easier and clearer to control the player. Also mapped the new control scheme for the Xbox controller.
  • Implemented multiple light source logic so that each character (or other sources) emit their own color light with a radius that dies off with distance^2 logic.

Problems with Meeting Goals

  • For the new movement scheme, the input values for a controler’s analog stick results in smooth turning, but this means that the distinct 0 or 1 input of the keyboard reults in jumpy looking rotation. It still plays similarly but it is much better control with the controller.
  • The lighting can be integrated, the logic for getting the light positions to match to the lighting system needs to be added.

Goals for Next Week

  • Help get all the last states for it to be a game working:
    • Start Screen.
    • Race Countdown state.
    • UI on screen (death count, power-ups)
    • Death working (shrink animation).
    • Respawn logic.
    • Multiple light model fully integrated.
    • Winning state.

Jacob Maskiewicz - Week 9 Report

02 Jun 2014

What were your concrete goals for the week?

I wanted to do powerups.

What goals were you able to accomplish?

I ended up trading with Zach, and he did powerups while I worked closely with Amy to get game states and the selection screen working. After many long nights and the hackiest code I’ve committed to the repo this quarter, we got it working.

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

N/A (thank god!)

What are your specific goals for the next week?

We need to merge all of our branches to get the features we’ve already implmented working together. Then we only have a few things left. My plan is, like last week, to bounce around to whoever needs help the most with the last few features, and giving that extra bit of polish to the game.

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

I’m feeling really good. We managed to finish grading all of the HW2s for CSE 127 in addition to me having plenty of time to work on the game this weekend, and we have all of the core features implemented (mostly). Once we get everything merged, we’ll be at a good “worst case scenario” presentation point, where we could present what we have as is and be okay, which is a really good place to be in. The rest of this week will be getting everything to work together smoothly and present well.

Amy Chandler - Week 9 Report

02 Jun 2014

Concrete goals

  • Thoroughly test and refine game state transitions and UI

Accomplished goals

  • Greatly with the help of Jake, the game state transitions are functioning well and unique character selection is finally synched!

Problems with meeting goals

  • None, though I would have struggled immensely without Jake’s help!

Goals for next week

  • Render a loading screen, possibly a help screen
  • Now that players can die, accurately show death count
  • Make things prettier fullscreen.
  • Not collapse from exhaustion before Friday

Morale

  • Good!
  • Anxious!
  • But good!
  • Can we present next week?! :(

Zach Johnson - week 9 report

30 May 2014

Concrete goals

  • Finish white wall of death (WWOD)
  • Merge into selection screen stuff
  • Get game fully working

Accomplished goals

  • Finish white wall of death (WWOD) {finished}
  • Merge into selection screen stuff {finished}
  • Get game fully working {almost there}

Problems with meeting goals

  • time, AHHHHHHHHHHHHHH

Goals for next week

  • Finish game
  • Demo game
  • Write reflection

Morale

  • {tired, still hopeful, still excited, #timecrunch AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH}

Screenshots - Advertising

30 May 2014

Zach Johnson - week 8 report

26 May 2014

Concrete goals

  • White wall of death (WWOD)
  • Loading variable radius tube (once Kyler has it generating)
  • Make tube flow force based

Accomplished goals

  • White wall of death (WWOD) {basic implementation, constant (slow) velocity}
  • Make tube flow force based {done}

Problems with meeting goals

  • Loading variable radius tube (once Kyler has it generating), didn’t sync with Kyler yet. This should be trivial to do.
  • Waiting to figure out what’s changing player-wise for the selection screen, to build off of for the WWOD

Goals for next week

  • Finish white wall of death (WWOD)
  • Merge into selection screen stuff
  • Get game fully working

Morale

  • {tired, still hopeful, still excited}

Week 8 Group Report

26 May 2014

Overall Status

We’re almost to a state where we have a game working. Camera has been tuned to follow the player better, there is some rudimentary player control as well as some initial logic for the white wall of death, and there is a flow through the tube that will move the player. Some 2d images have been made for death icons and power ups as well as some sounds for stuff like collisions. The scene selection has some basic logic worked out but not that much progress has been made. Our goal for next week is to be play testing the game near the end of the week. The following tasks are needed to reach that state:

  • Selection screen + start game logic (countdown, make sure everyone starts at same location and same time)
  • Complete the white wall of death
  • Respawning
  • Player state (life count) properly tracked
  • Fine-tune control / camera
  • Power ups (though not necessary to play test)

Group Morale

We feel like a ~ / MAX_ASCII. The game is progressing and we have hopes to be play testing it by the end of the week. Some all-nighters are in our future though.

Shazzy Gustafson Week 8 Report

26 May 2014

What were your concrete goals for the week?

  • Create in game 2D art (deaths, powerups)
  • Model Blood Clot
  • Find sounds for intro, collisions etc with Sean

What goals were you able to accomplish?

  • Create in game 2D art (deaths, powerups)
  • Find sounds for intro, collisions etc with Sean

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

  • Wasn’t able to model the blood clot just didn’t have time to get around to it

What are your specific goals for the next week?

  • Keep finding some sounds depending on how the current ones sound
  • Work on a controller screen (intro screen to explain the controls, power ups etc)
  • Work on a final ‘Winner’ Screen
  • Work on blood clot model

Sean Hamilton - Week 8 Report

26 May 2014

What were your concrete goals for the week?

Get sound effects and game mechanics in place. Start major play testing to work out kinks and start to settle on how the game will work.

What goals were you able to accomplish?

Sound effects are working and generalized mechanics are in place to easily add more sounds and different sound tracks. Still working on selection screen mechanics and starting games.

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

The selection screen and starting the game is taking more time than expected, plus Memorial Day weekend also occurred. The control mechanics are still being worked so play testing has not occurred yet.

What are your specific goals for the next week?

Start major play testing to work out kinks and start to settle on how the game will work.

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

Moral is still good but I am feeling crunch time with all my course having things due these next couple of weeks.

Matheus Ferreira - Week 8 Report

26 May 2014

Goals From Last Week

  • Insert functionality of create autonomous objects on the fly.
  • Insert commands of change object state in the command line.

Accomplished Goals

  • I implemented the functionality to create autonomous objects but it still needs better management to avoid that a great number of object are created and impact the performance.
  • I improved the command line. It is working with regular expressions to make it more flexible. It now can set configurations, flags of objects, and I implemented a dictionary of game objects. With this dictionary is possible do things like set the position of object A equal the position of object B entering with the command: “set -p B.position -n A”.
  • I did some changes in the physics to make the control easier and make the fluid force variable with the distance from the center of the tube - further from the center smaller the force applied.

Problems with Meeting Goals

  • The creation of autonomous objects need better management, right now it can get control of how many objects were created in the world and make the simulation too heavy.

Goals for Next Week

  • Have the management of objects and have autonomous objects bothering the players like crazy.

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

I had a great week with some opportunities of work for the summer popping up. I could do some good advances with the command line what allowed me better test the AI now that we already have the tube.

Kyler Schwartz - week 8 report

26 May 2014

Goals From Last Week

  • The graphical components of the game are to a point where game logic comes first, so until we have working game logic, I don’t believe any more rendering progress will be done (beyond possibly a lighting system but not right now).
  • While I will be assisting with the player movement in the tube, we decided that I will be working on generating a tube that can vary in radius as well as produce a path that will include this data so that it will work with collisions.
  • If I get this done early, then I will be assisting Jake and Zach to get the motion logic working for the player ie: motions relative to the characters facing direction, forces being applied in the direction of the tube to make the player move in the blood “flow.”

Accomplished Goals

  • Got the tube being generated with varying radii as well as having the output path include the radius information.
  • Implemented logic to interpolate between three path points to prevent the camera and player from having jumpy movement.
  • Implemented camera logic to follow behind the player while also staying within the pipe’s radius.

Problems with Meeting Goals

  • With the player control’s not worked out fully yet, it was a little difficult making sure the jumpy camera wasn’t a result of that instead of due to the path points.
  • Camera logic doesn’t set the up vector yet so every now and then the camera jumps when changing its up vector although it still continues to keep the player in view.

Goals for Next Week

  • Get the player control working really well (also with the controller?). This would involve getting the logic for rotations working properly, having forward and side movement based on heading to avoid the player getting turned around. Implement acceleration and deceleration.
  • Implement logic for player respawning when they die (location, speed, direction, etc.).

Jacob Maskiewicz - Week 8 Report

26 May 2014

What were your concrete goals for the week?

My plan was to get movement working.

What goals were you able to accomplish?

Currently rudimentary movement is implemented, but I’d like to have it be a little more robust

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

I was depending on having Friday and the weekend to work on 125, however due to the call for papers deadline for Woot being extended, I had to spend more time working on my research paper for the Mouse project. That along with grading for CSE 127 is eating up all of my time, and I’m going to have to spend some late nights making up for it this week.

What are your specific goals for the next week?

I’d like to get powerups working.

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

See my unmet goals section. Feeling really stressed out. Just not enough time in the day.

Amy Chandler - Week 8 Report

26 May 2014

Concrete goals

  • Implement various game states, including selection, title, gameplay
  • Implement player objects including model selection, death count, and power ups
  • Draw gameplay UI based on player object

Accomplished goals

  • At the time of writing this this post, I have unfortunately not been able to meet any of my goals this week.

Problems with meeting goals

  • I was out all weekend for a wedding in PA and got home within the hour of writing this post. I thought I would have more time to get work done than I ultimately actually did, and spent what I could of my nights working on other projects and homework. Planning on yet another long Monday night to get things done.

Goals for next week

  • Thoroughly test and refine game state transitions and UI

Morale

  • Exhausted.
  • Excited.
  • I love my group.
  • I miss my bed.

Zach Johnson - week 7 report

19 May 2014

Concrete goals

  • More getting game up and running
  • Finish collisions with objects and the tube
  • Tune camera following

Accomplished goals

  • More getting game up and running {mostly, moving objects following}
  • Finish collisions with objects and the tube {Jake took this on}
  • Tune camera following {basic version working}

Problems with meeting goals

  • Not too much really, mostly putting in the time I guess. I feel like I didn’t contribute as much this past week but working on making sure I contribute well.

Goals for next week

  • White wall of death (WWOD)
  • Loading variable radius tube (once Kyler has it generating)
  • Make tube flow force based

Morale

  • {tired, still hopeful, still excited}

Week 7 Group Report

19 May 2014

Overall Status

We’re exactly where we want to be. Collisions, track following, bump maps, and now sound are all working. Our goal for next week is to have the most basic form of a real game working. We want to be able to win and lose, select characters, and start a new game. The concrete tasks we need to complete that are:

  • Game state management
  • Camera Tuning
  • Steering behaviors
  • The White Wall of Death

Group Morale

We feel mildly char[]d. But overall pretty kickass. The game is going great!

Shazzy Gustafson Week 7 Report

19 May 2014

What were your concrete goals for the week?

  • Finish the intro screen
  • Finish player select screen

What goals were you able to accomplish?

  • Finished intro play screen
  • Finished player select screen & created seperate components for Amy to use

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

  • Met both goals for this week (kept them realistic )

What are your specific goals for the next week?

  • Create in game 2D art (deaths, powerups)
  • Model Blood Clot
  • Find sounds for intro, collisions etc with Sean

Sean Hamilton - Week 7 Report

19 May 2014

What were your concrete goals for the week?

The goals for this past week were to have collisions with the wall and other player characters, track following for the camera down the tube, character selection and start screen, and sound.

What goals were you able to accomplish?

All the goals were met except character selection and start screen are still works in progress. There is more work to do on sound to support triggered sound effects over the network but sound track is working.

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

The start screen and character selection backend mechanisms are turning out to cause more changes to the architecture than orginally expected and have taken longer than predicted.

What are your specific goals for the next week?

Sound effects and game mechanics in place. Start major play testing to work out kinks and start to settle on how the game will work.

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

I think morale as a group is good now that we have a lot more coming together

Screenshots Week 7

19 May 2014

Matheus Ferreira - Week 7 Report

19 May 2014

Goals From Last Week

  • Make the objects follow the direction of the tube with velocity variable according with their distance from the center.
  • Create group behaviors
  • Work on input commands from the server prompt to change parameters at run time

Accomplished Goals

  • We have an object following the path.
  • Groups behaviors was implemented in the AI module.
  • We have a command line that so far can list objects and set the position of an object.

Problems with Meeting Goals

  • The physics in the follow path still needs some improvement.

Goals for Next Week

  • Insert functionality of create autonomous objects on the fly.
  • Insert commands of change object state in the command line.

Kyler Schwartz - week 7 report

19 May 2014

Goals From Last Week

  • Get bump mapping working properly on tube.
  • Get animation for Ecoli working.

Accomplished Goals

  • Bump mapping is now working properly on tube. The light source is currently set to be the camera, but we plan to move that to the individual players.
  • Added an Ecoli animation that animates both his tentacles and body.

Problems with Meeting Goals

  • Ran into a few problems getting the bump map to line up correctly with the texture, but upon realising that the tangent pointed in a way that was non-traditional, this was resolved.
  • Had to experiment a bit with values to start getting the Ecoli animation working properly since I discovered that the Ecoli model’s center of mass is not near the center of the model.

Goals for Next Week

  • The graphical components of the game are to a point where game logic comes first, so until we have working game logic, I don’t believe any more rendering progress will be done (beyond possibly a lighting system but not right now).
  • While I will be assisting with the player movement in the tube, we decided that I will be working on generating a tube that can vary in radius as well as produce a path that will include this data so that it will work with collisions.
  • If I get this done early, then I will be assisting Jake and Zach to get the motion logic working for the player ie: motions relative to the characters facing direction, forces being applied in the direction of the tube to make the player move in the blood “flow.”

Jacob Maskiewicz - Week 7 Report

19 May 2014

What were your concrete goals for the week?

We planned to have collisions and track following.

What goals were you able to accomplish?

ALL OF THE ABOVE. BOOYA!

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

We got a lot done this week, and I’m super satisfied with where we’re at.

What are your specific goals for the next week?

I’m going to work on the white wall of death. In other words, we need to calculate when a player falls behind, and kill them accordingly.

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

I’ve had a great week. Managed to get everything I wanted to work on done, finished the hard part of my mouse-exploit research (the exploit), had a great Sun God, and managed to put a lot of time into DEFCON Quals over the weekend.

Amy Chandler - Week 7 Report

19 May 2014

Well, in my report last week I reported that I hoped to finish the character selection screen by the end of the night. I spent the night going down the rabbit hole of our renderer and DirectX and was unfortunately unable to accomplish it. My week this week was interesting. The San Marcos fire (later called the Cocos fire) was fairly close to my home. I spent a night watching the fires, and ended up being evacuated the next day as the fire spread into Escondido. (The fire itself ended up within about a mile of my home, but luckily, very few houses were actually burnt). So, half of my week was gone to the fire. Since Friday evening, I have spent approximately 25-30 hours working on the character selection screen, both trying to render 2D objects with the existing graphics framework within the renderer itself in order to learn how to properly draw items to the screen, and then in learning the fine details and the ins-and-outs of the engine and game repos and client-server communication in order to properly communication the selection screen and state across the network to all clients. Not having a selection state, it won’t be perfect this week. Over the weekend and throughout our meeting tonight, I’ve been picking the brains of my group members for how to best finish the communication for the selection screen and accomplish my tasks for next week.

Concrete goals

  • Finally get that character selection screen done!

Accomplished goals

  • Local wireframe for UI gameplay
  • Local character selection screen
  • Client-server character screen selection to be finished tonight!

Problems with meeting goals

  • Delayed due to fire and code complexity

Goals for next week

  • Implement various game states, including selection, title, gameplay
  • Implement player objects including model selection, death count, and power ups
  • Draw gameplay UI based on player object

Morale

  • Tired. Does that count as morale?
  • Frustrated with our game design and how complicated it feels.
  • Mildly frustrated with group communication, though our meeting tonight was much better
  • Excited after seeing the Ecoli animation and the tube tracking!

Zach Johnson - week 6 report

12 May 2014

Concrete goals

  • Get basic game up and running
  • Object delete sync
  • Collisions with objects and the tube

Accomplished goals

  • Get basic game up and running {in progress}
  • Object delete sync {in progress}

Problems with meeting goals

  • Collisions with objects and the tube, need visual tube in game so working on that first

Goals for next week

  • More getting game up and running
  • Finish collisions with objects and the tube
  • Tune camera following

Morale

  • {tired, still hopeful, still excited}

Week 6 Group Report

12 May 2014

Overall Status

We were having some issues with the tube, which slowed development in other areas (e.g., camera-tube tracking, tube-object collisions, tube track, and model-track orientation). We were definitely anticipating more progress in week 6, but saw an additional decrease in activity due to classes and other responsibilities. Overall, our progression could be a little bit better. With the tube mostly in place, we hope to see some of this functionality drop into place quickly. Despite two meetings a week, we have had some communications issues that have likely impacted progress and need to be resolved. In order to get on track we need to group up, closely examine the tasks we have left and delegate them properly. We may hold each other more strictly accountable, as it will result in faster progress and possibly donuts.

On the upside, our art is still arting nicely.

Group Morale: The group overall is feeling.. alright. We’re feeling the pressure of Week 7 and are ready to kick it into high gear.

Shazzy Gustafson Week 6 Report

12 May 2014

What were your concrete goals for the week?

  • Finish Ecoli Model
  • Create Power Ups
  • Work on Player Select + Title Screen

What goals were you able to accomplish?

  • Ecoli is finished
  • Created the adrenaline power up
  • Mocked up a player select screen and working on the title screen (need to include characters)

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

  • Some trouble figuring out how to import 3D models into photoshop and how to make 3D text had some debugging problems

What are your specific goals for the next week?

  • Complete the player select screen and work with someone to integrate the 2D layout into the game
  • Create another power up
  • Finish the title screen and make misc. pieces (blob explosions, game score etc)

Sean Hamilton - Week 6 Report

12 May 2014

What were your concrete goals for the week?

Moved serialization and deserialization into comms processor. Added multiple character types with animation into game. Reworked event system with Jake. Load track object into game.

What goals were you able to accomplish?

I was able to accomplish everything but everything so far but the load of the track item into the game

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

Notthing was impeding the meeting of my goals other than the one task is not ready to be integrated.

What are your specific goals for the next week?

Loading the track and implementing collision detection

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

Morales alright

Screenshots Week 6

12 May 2014

Matheus Ferreira - Week 6 report

12 May 2014

Goals From Last Week

  • Create behaviors of blood cells trying to block the players and persecuted projectiles.
  • Simulate the objects being dragged by the tube path.

Accomplished Goals

  • The objects can follow a path of points
  • Behaviors of follow and pursuit objects are working.

Problems with Meeting Goals

  • I still was not able to make the objects follow the direction of the tube just go in direction of points along the way.

Goals for Next Week

  • Make the objects follow the direction of the tube with velocity variable according with their distance from the center.
  • Create group behaviors
  • Work on input commands from the server prompt to change parameters at run time

Kyler Schwartz - week 6 report

12 May 2014

Goals From Last Week

  • Get the tube generation program working correctly so we can have a track to move the players along.
  • Implement any more animations (like one for the Ecoli model).
  • Get the animation loading working properly with the engine ( this might be done by tonight :D ).

Accomplished Goals

  • Tube is being generated with texture mapped to it (may need to fine tune tube more).
  • Animation and bump map unfortunately weren’t able to make progress on due to 127 project.

Problems with Meeting Goals

  • Tube generation is working, however there are a few spots where the tube’s wall is a little corkscrewed. Need to figure out why that is occuring. Also bump mapping ran into a little bit of trouble but I have some ideas to get it to work.
  • Tried different logic for generating the tube which could correct the above problem but the generated tube looked horrible so that was reverted.

Goals for Next Week

  • Get bump mapping working properly on tube.
  • Get animation for ecoli working.

Jacob Maskiewicz - Week 6 Report

12 May 2014

What were your concrete goals for the week?

We planned to have players following a track with basic collisions implemented.

What goals were you able to accomplish?

There’s a tube model now.

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

I spent ~15 hours this week refactoring our game and engine code. Among other things, I changed the event system so that serialization and construction code wouldn’t have to be maintained in several places. I also decoupled the physics from the AI, and moved various parts of the project into common repositories.

All of this was supposed to happen in parallel with the implementation of the tube and collisions, but looking at the git logs, it appears that the only things that got worked on were the tube model itself and controller input (a nice to have on our original list).

What are your specific goals for the next week?

I’m planning to start implementing the track steering and collisions so that we can meet last week’s deadline.

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

I’m a little bit frustrated with the team, and I’m very stressed out. I had two finals, Junkyard Derby, and research deadline pushes last week, and I still put many hours of coding into the game, and I’m feeling a bit alone in that.

Amy Chandler - Week 6

12 May 2014

Concrete goals

  • Finalize mockups for additional UI screens: tutorial(?)/scores(?)
  • Implement wireframe for gameplay UI
  • Create character selection screen with start button, unique character selection

Accomplished goals

  • As of yet, I have mostly accomplished research for the UI implementation (as DirectX and 2D objects are both newer to me). By the end of the night, I hope to have both of my goals accomplished:
  • Implement wireframe for gameplay UI
  • Create character selection screen with start button, unique character selection

Problems with meeting goals

  • Inexperience! Though hopefully reconciled tonight. :)

Goals for next week

  • Unfortunately, I had to miss tonight’s group meeting. Before our meeting tomorrow morning, I hope to talk to a couple of group members to discuss the best plan of attack for the week.
  • My (albeit generic) current goal for next week is to help out the group to ensure we’re where we want/need to be

Morale

  • Good, although starting to get anxious about the approaching deadline!

Zach Johnson - week 5 report

05 May 2014

Concrete goals

  • Get input finalized, pushing between server and client
  • Get event framework finalized
  • Get client able to run game locally or on server (w/Jake)
  • Get more game level stuff going

Accomplished goals

  • Get input finalized, pushing between server and client {done}
  • Get event framework finalized {pretty much done}
  • Get client able to run game locally or on server (w/Jake) {mostly done}
  • Get more game level stuff going {sorta done}

Problems with meeting goals

  • Time commitments, other midterms and projects

Goals for next week

  • Get basic game up and running
  • Object delete sync
  • Collisions with objects and the tube

Morale

  • {tired, still hopeful, still excited}

Week 5 Group Report

05 May 2014

Overall Status

We have our demo with one player being controlled through the server. The client send events from the keyboard to the server. The object in the server handles the events, it does the updates and sends back the updates to the client. There is a state machine to handle events and do the updates of its object owner when requested. The objects can also be controlled by an AI module. We will work in collision detection and more than one client in the network. We are also working the animation of the models. The art is also coming along, now moving on to making power ups and intro screens.

Group Morale: We are feeling pretty with the demo.

https://www.youtube.com/watch?v=moSFlvxnbgk

Shazzy Gustafson Week 5 Report

05 May 2014

What were your concrete goals for the week?

  • I wanted to finish up another character model ( the white blood cell this week, I wasnt pleased with previous versions of it)
  • Finish Ecoli model
  • Start on designing 2D versions of the characters
  • Decide on a font that will be used on the intro screens

What goals were you able to accomplish?

  • I was able to finish the white blood cell model + texture it
  • I created just black and white 2D images of the bacteria
  • Found a font that matches the feel of the game

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

  • Didnt get to texture Ecoli, it is texture mapped but It just needs eyes and a mouth, just didnt have time

What are your specific goals for the next week?

  • Be done with all character models
  • Start working on power ups and weopons

Sean Hamilton - Week 5 Report

05 May 2014

What were your concrete goals for the week?

To pass movement and other action events from client to server and update the object on the server and send the updates to the clients.

What goals were you able to accomplish?

We have movements, shooting, and other events that are sent from the server. Updates are calculated on the server sent back to clients.

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

Some source controls issued cause a slight set back while sorting out but otherwise this weeks goals were obtained

What are your specific goals for the next week?

Further refine the event message passing system and have a working track with multiple clients racing down a track.

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

I’m alrigt so far

Screenshots Week 5

05 May 2014

Matheus Ferreira - Week 5 Report

05 May 2014

What were your concrete goals for the week?

  • Create state machines
  • Implement AI steering behaviors
  • Work on Physics

What goals were you able to accomplish?

  • Create state machines I implemented a state machine to moving object with three states: stop, move and break. In the demo it was implemented the move state that handles action events of move.

  • AI steering behaviors It was implemented behaviors of seek, flee, arrive, pursuit, evade and wander. We applied the behavior of wander in the demo that makes the player walk alone around the space.

  • Physics I inserted in the simulations a friction force to make movements smoother.

What are your specific goals for the next week?

I will work on more events and obstacles of blood cells trying to catch the players and persecuted projectiles. I will also work more in the physics, simulating the objects being dragged by the blood.

Morale?

Feeling awesome.

Kyler Schwartz - week 5 report

05 May 2014

Goals From Last Week

  • Get animations working

Accomplished Goals

  • Implemented 3 different animations through use of specific vertex shaders (also integrated simple timer for this).
  • Almost finished implementing a program that when given points we want the track to go through, will generate an object file for a tube that goes through each of those points (obj file is currently being made and the path is correct, just some fine tuning regarding the faces and such).

Problems with Meeting Goals

  • Upon further look at the fbx file’s format for animation, and based on Shazzy’s feedback received from her professor, the effort required to get animations working using skeleton structures is not worth the time especially considering the types of animations applicable to our characters. As a result, I looked into and implemented programatic animations via the vertex shader.
  • Faces are coming out strange for the tube, but more testing will undoubtedly fix this.

Goals for Next Week

  • Get the tube generation program working correctly so we can have a track to move the players along.
  • Implement any more animations (like one for the Ecoli model).
  • Get the animation loading working properly with the engine ( this might be done by tonight :D ).

Jacob Maskiewicz - Week 5 Report

05 May 2014

What were your concrete goals for the week?

We wanted to get to our Alpha deadline, which we did, and we wanted to get several objects moving around in 3D space

What goals were you able to accomplish?

We got to alpha the night before our meeting last week, but we only have one object moving around in 3d space over the network. Two should work in theory, but we haven’t tested and debugged it yet.

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

It’s been a really busy week in every other class because of midterms, but now I’m feeling the crunch, so I’m gonna put a lot of hours in this work.

What are your specific goals for the next week?

I want to have the most basic form of the game working. I want 2 or more objects steering through 3d space in some form of tube.

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

I’m feeling the burn. Tonight I’m going to pull a late night and get as much work done as I can.

Amy Chandler - Week 5

05 May 2014

Concrete goals

  • Complete UI requirements
  • Finalize mockups w/ group
  • Control handler for game engine
  • Controller input

Accomplished goals

  • Completed UI requirements
  • Finalized mockup for gameplay view w/ group
  • Control handler for game engine (will be finished by the end of the night)
  • Controller input (hope to be finished by the end of the night)

Problems with meeting goals

  • All goals should be met by the end of tonight, but delays are attributed to the Cinco de Drinko party I was dragged to

Goals for next week

  • Finalize mockups for additional UI screens: tutorial(?)/scores(?)
  • Implement wireframe for gameplay UI
  • Create character selection screen with start button, unique character selection

Morale

  • Hungry, though mood greatly improved by Shazzy’s animation imitation dance
  • Feeling good about the game!

Zach Johnson - week 4 report

28 Apr 2014

Concrete goals

  • Finish integration between engine and renderer and networking
  • Push basic app from renderer up into engine layer
  • Push basic app from engine layer into game layer

Accomplished goals

  • Finish integration between engine and renderer and networking {mostly}
  • Push basic app from renderer up into engine layer {done}
  • Push basic app from engine layer into game layer {done}

Problems with meeting goals

  • On the integration side, need to get more game architecture up. Also need to get input stuff finalized. {work in progress}

Goals for next week

  • Get input finalized, pushing between server and client
  • Get event framework finalized
  • Get client able to run game locally or on server (w/Jake)
  • Get more game level stuff going

Morale

  • {tired, still hopeful, still excited}

Week 4 Group Report

28 Apr 2014

Overall Status

We have the network integrated into the engine core and the engine core integrated into the client and the server. The game core now handles events and object updates. However, the integration is not 100%, there are a few battles going on between different parts. Our models are being loaded and texture mapped beautifully, also we have some nice shader effects added to them. The art is also coming along, now moving on to making power ups and intro screens.

Group Morale: We are feeling pretty…and hungry. Mush On.

https://www.youtube.com/watch?v=L7BQRGXFLJs

Shazzy Gustafson 4 Group Report

28 Apr 2014

I ART, THEREFORE I AM

The 3D models are almost all complete, I had to re do some of them and texture map them. Im building the models in maya and then exporting to zbrush to texture map them. Also working on powerups and intro screen (2D art), which will be used as billboards, and also creating some bump mapping for the red blood cell.

Sean Hamilton Week 4 Report

28 Apr 2014

Concrete Goals

We are currently working on serialize and deserialize architecture and hope to have that done by Monday night.

Accomplished Goals

The CommsProcessor and Socket classes have been integrated into the engine core.

Engine core is not linked against in the real client and server and they are passing information back and forth.

Problems with Meeting Goals

None yet

Goals for Next Week

Full synchronization between client and server

Morale

11

Screenshots Week4

28 Apr 2014

Matheus Ferreira - Week 4 Report

28 Apr 2014

What were your concrete goals for the week?

  • Setup the configuration system.
  • Create the event manager.
  • Create the machine state.

What goals were you able to accomplish?

  • Configuration The configuration is integrated to the game-engine and the game-core is already capable of access and modify it.

  • Event manager The event manager was inserted in the game-engine, so it can receive events from the game-engine and the game-core. The event manager was inserted in the game-engine because it would allow the receiving of events from the network that would be integrated in the game-engine. The event manager access resources from the game-core, so we have to think what classes of the game-engine can access the event manager to avoid binding errors. The events manager has a public method that allow receive events from any object to any object. An event can also has a delay or extra data that will be useful to handle it. An event is inserted in a queue ordered by the dispatch time. This way, the game-engine allows dispatch events that we want to be handled in the future.

With that in mind I thought in an animation with Shazzy using the event manager. When a player dies he will break in pieces. Each piece will run away from a point (at the same time it follow the blood flow) with a velocity v. At this time events are inserted in the event queue to be handled 5 seconds that will just invert the direction of the velocity vector. Another event is inserted in the queue to be handled 10 seconds later, where the player is resurrected with its pieces together with ultra velocity and invulnerable.

  • State machine (SM) Reading Programming Game AI by Example, Mat Buckland I found and interesting design pattern to do the event handling. Each object in the game has the design pattern state machine that will be responsible for handle events and the frame update. The state machine store the current state, a global state and a previous state. The global state allows the SM to handle events that will have common behavior over all the possible current states. The previous state member allows an object to return to a previous state. The states are singletons and are shared between objects (it avoids memory management of state instances). The states does not store any specific data to handle events. The SM store a pointer to the states and when the public method handle event is called a pointer to the owner of the SM is passed to the state object. So, any data needed is accessible and can be altered each frame from into the state.

The state class is a generic interface. Any state class should implements it. The state machine is also a generic class that can only store states of the same type. This way the machine state can be used by any class not only game objects. All the system together can have a machine state to differ its actual state, such as, at settings screen, loading, etc…

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

Reading Buckland gave me really good ideas that allowed me to do more than I had in mind for this week.

What are your specific goals for the next week?

I want to implement AI behaviors (Steering Behaviors) to objects as blood cells that will works as obstacles during the race and will be useful in other animations like cups of coffee running away from players. I plan to think in do some state machine diagrams of some objects.

Morale?

Really excited, and making plans for the summer :]

Kyler Schwartz - week 4 report

28 Apr 2014

Goals From Last Week

  • Get the textures mapping properly
  • Implement a shader loader

Accomplished Goals

  • Texture maps correctly and normals work for lighting
  • Shader loader is implemented so that different models can be assigned different shaders and they can be changed at runtime.

Problems with Meeting Goals

  • No problems in meeting these goals.

Goals for Next Week

  • Get animations working (Shazzy will meet professor on Wednesday).

Jacob Maskiewicz - Week 4 Report

28 Apr 2014

What were your concrete goals for the week?

We planned to integrate all the parts. We wanted to get the renderer hooked into the engine, and the engine plugged into the network so that we can get models on screen communicating with a server in order to get updates.

What goals were you able to accomplish?

We definitely got the renderer hooked in, and added several features into the renderer, including textures, shader selection, and basic blinn-phong lighting. However, we’re not quite there with the full engine-network communication. The parts are all together, but some event glue is still needed to get it all working, and Zach and I plan to tackle that this evening.

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

The network code was much lower level then I thought. I spend a lot of time on the renderer this week, and I’m not exactly sure what the exact speedbumps were, but we’ve gotten ahead of plan on the renderer, which is good news.

What are your specific goals for the next week?

I intend to finish up the Alpha deadline, and then start writing gameplay code. My immediate next goal is to setup the engine in such a way that it is easy to rapidly prototype (we can run updates locally, and plug into server code at a later time). Once that is up, I’ll be able to add game features very quickly and easily, and our game will grow fast.

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

I’m feeling good. A bit frustrated that no one told me we were behind schedule on the engine integration until this weekend, but that’s what I get for not asking. I’ll be paying much closer attention to development that’s not mine in the following weeks.

Amy Chandler - Week 4 Report

28 Apr 2014

Concrete goals

  • Determine requirements for UI & plan out UI data gathering
  • Paper mockups of various UI screens

Accomplished goals

  • Some requirements for UI determined
  • Paper mockups of various UI screens

Problems with meeting goals

  • Input refactoring took time

Goals for next week

  • Complete UI requirements
  • Finalize mockups w/ group
  • Control handler for game engine
  • Controller input

Morale

  • Feeling good!

Zach Johnson - week 3 report

21 Apr 2014

Concrete goals

  • Finish getting engine and renderer to basic working state
  • Do as much as I can to contribute to getting basic game up and working

Accomplished goals

  • Finish getting engine and renderer to basic working state {partly}
  • Do as much as I can to contribute to getting basic game up and working {partly}

Problems with meeting goals

  • Other things took higher priority during Easter weekend

Goals for next week

  • Finish integration between engine and renderer and networking
  • Push basic app from renderer up into engine layer
  • Push basic app from engine layer into game layer

Morale

  • {still hopeful, still excited}

Week 3 Group Report

21 Apr 2014

Overall Status

The group is still going strong to meet our Alpha Milestone at the end of Week 4. Things are on track so far, but we know how easy it is to slip, so we’re working hard to keep eachother focused.

The renderer has an obj loader and has textures being mapped, but a current issue with the texture coordinates is being worked on. The engine has made progress and will be integrated this coming week. The network server has been improved to include timeouts, waiting for server announce, client heartbeats, and a sample client has been created for testing. An input capture for controls for Win32 has been implemented and a small sample input handler has been created. The concept art and models continue to look fabulous.

Group Morale

We’re all feeling good. On a scale from 1 to awesome, we feel like a 0x38.

Shazzy Gustafson Week 3 Report

21 Apr 2014

MORE LE ART UPDATES

Now all the models are being made in maya (yay < 2k triangles). Models Completed -Ecoli -Syphilis -White Blood Cell -Red Blood Cell

Also, have downloaded some free models to play with (pills, Mace, grenade)
Each character also has a skeleton that can be animated. Ecoli has one limb animated to
try to get it to work in directx. Currently working on creating two more bacterias (Common cold + Herpes), more weapons, and also 2D Choose Player screen. Current difficulties faced: Texture mapping/ UV mapping 

Sean Hamilton Week 3 Report

21 Apr 2014

Concrete Goals

  • Sample Client
  • Server Announce
  • Client Wait for Announce
  • Client Heartbeat
  • Server Monitor Heartbeat

Accomplished Goals

  • Sample Client
  • Server Announce
  • Client Wait for Announce
  • Client Heartbeat
  • Server Monitor Heartbeat

Problems with Meeting Goals

Some work schedule conflicts and other class assignments

Goals for Next Week

  • Refactor CommsProcessor into CommsProcBase class, ServerCommsProc and ClientCommsProc sub-classes
  • Recieveing Actions from Clients and sending world updates to clients

Morale

Not too bad; I have food, coffee, alcohol, a bed, the internet, and no one is shooting at me. I have dropped CSE110 as of 21st of April.

Screenshots - Week 3

21 Apr 2014

Matheus Ferreira - Week 3 Report

21 Apr 2014

What were your concrete goals for the week?

  • End the implementation of data structures.
  • Work in object queries.
  • Set up the engine configuration.

What goals were you able to accomplish?

  • The data structures of the engine were create.
  • For queries of objects there is collections of objects of different groups.
  • The engine configuration is working with yaml.
  • A chain of responsability was create to handle events.

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

Still need to insert configurations for the rendering, animation and network.

What are your specific goals for the next week?

Connect the engine with the rendering and the game-core. Set up the configuration system to receive data from other parts of the system.

Morale?

Good.

Kyler Schwartz - week 3 report

21 Apr 2014

Concrete Goals

  • Expand on the FBX parser to include texture coordinates, as well as possibly normals
  • Implment an object loader for models that won’t have animation and make the load function file smart.

Accomplished Goals

  • FBX parser now includes texture coordinates and normals
  • OBJ loader created and it includes texture coordinates and normals as well
  • load function is file smart such that you don’t specify FBX vs OBJ
  • Implemented texture class that passes a texture to the pixel shader and is applied to model

Problems with Meeting Goals

  • Texture Coordinates Problem
    • Upon mapping the texture to the texture coordinates on the model, it became apparent that either loading the texture or loading the texture coordinates has an error. Need to verify the texture coordinates.

Goals for Next Week

  • Get the textures mapping properly
  • Implement a shader loader

Jacob Maskiewicz - Week 3 Report

21 Apr 2014

What were your concrete goals for the week?

We planned to bring the render into a finished state. That is to say that it would implement the following features:

  • Model Loading
  • Texture Loading
  • Moveable Camera and Objects
  • Generic Input Handling

What goals were you able to accomplish?

We got them all done! Input still needs a bit of coercing to be perfect, but we can currently move a textured model around in 3d space using the completely abstracted interface of the renderer.

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

The input layer is not exactly in a perfect state (because Easter), but it should be all fixed by the end of the night.

What are your specific goals for the next week?

We want to integrate all the parts. We’re going to plug the renderer into the engine, and plug the engine into the network, and by the end of the week, we’d like to see two models on the screen controlled by seperate clients, moving in 3d space.

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

I’m feeling good. I’ve got some of my Research projects picking up this week, which means I’m getting busy, but it’s a good kind of busy; there’s always something to be working on.

Amy Chandler - Week 3 Report

21 Apr 2014

Concrete goals

  • Actually implement controls
  • Determine requirements for UI
  • Main menu
  • Player selection
  • Gameplay UI
  • Plan out UI data gathering
  • Begin paper mockup of various UI screens

Accomplished goals

  • Implemented input capture for controls for Win32
  • Small sample input handler created

Problems with meeting goals

  • Mostly time management (on a personal level)

Goals for next week

  • Complete remaining goals from previous week:
  • Determine requirements for UI & plan out UI data gathering
  • Paper mockups of various UI screens

Morale

  • Still feeling good!
  • Hoping to plan out my week better this time!

Zach Johnson - week 2 report

14 Apr 2014

Concrete goals

  • Get engine and renderer to a basic working state
  • Familiarize myself with DirectX 11
  • Read up on gamma correction

Accomplished goals

  • Get engine and renderer to a basic working state (partly done)
  • Familiarize myself with DirectX 11 (partly done)
  • Read up on gamma correction

Problems with meeting goals

  • Getting engine and renderer to a basic working state
    • Those of us working on these things seemed to have some scheduling problems this week so we weren’t able to sync until the later part of the week. Progress should proceed better next week.
  • DirectX 11 familiarization
    • Aided by helping debug the some of the existing rendering file, but I still feel there is a lot to learn so that is why I am marking that as still incomplete.

Goals for next week

  • Finish getting engine and renderer to basic working state
  • Do as much as I can to contribute to getting basic game up and working

Morale

  • {hopeful, excited}

Week 2 Group Report

14 Apr 2014

Overall Status

The group is going strong! We’re dividing up tasks for our Alpha Milestone at the end of Week 4. Things are on track so far, but we know how easy it is to slip, so we’re working hard to keep eachother focused.

The renderer is working at it’s most basic capacity. The engine structure is mapped out. The network server can run standalone and pass data to itself. The concept art is looking fabulous.

Group Morale

We’re all feeling good. On a scale from 1 to awesome, we feel like a 0x37.

Shazzy Gustafson Week 2 Report

14 Apr 2014

LE ART UPDATES

After playing around with the different modeling softwares, I created two different models (a white blood cell and an Ecoli). I created the white blood cell in zbrush and exported it to Maya to then be converted to FBX format to be able load the file. After realizing that the white blood cell model was giant….. (1 million triangles haha), I had to create a new model. My ecoli model has about 12k triangles which we are now trying to load. Both models also have UV textures created with them also. Currently working on other character designs and weapons/power ups

Sean Hamilton Week 2 Report

14 Apr 2014

Server and Communications Update

A CommsProcessor class was developed which abstracts the threading and delivery of updates and processing of other message types for both clients and server.

A Socket class was developed to abstract the network communication symantics and to provide a universal interface to CommsProcessor for both WinSock or POSIX sockets.

An abstract Serialize class was developed to enforce a formal protocol for classes that can be serialized over the network.

The skeleton of the server was written to initialize the CommsProcessor object, provide a queue of client updates and send updates to clients.

Screenshots - Week 2

14 Apr 2014

Matheus Ferreira - Week 2 Report

14 Apr 2014

What were your concrete goals for the week?

My goals for this week was create the basic data structures and the object’s message and event system.

What goals were you able to accomplish?

The GameObject class was create. To avoid problems with pointers a handler was create that will work like smart pointers to GameObjects. Every object created has an unique ID. A pointer to the object is inserted in a global array of GameObjects. When a reference to an object is needed it actually receives an GameObjectHandle that stores the index in the table and the ID of the object. When the handler will be dereferenced it will check in the table, using the index stored in the ObjectGameHandle. It will check if the pointer is not null (it means the object was removed) and, if it is not, if the ID is equal to the ID stored in the GameObjectHandler. If it is not, it means that the GameObject into that index was removed and replaced by a new one. With this we will avoid problems that can arise with objects that have already being removed. To avoid use of data structures of STL, I started to create some data structures that will be usefull to the perform object queries, like map and binary tree. I create a class to encapsulate the objects’ messages, but it lackes more expecific implementation. We need to think in more expecific details for the engine and the gameplay.

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

None specific message pass between objects was create yet.

What are your specific goals for the next week?

Continue the implementation of data structures, and work in object queries.

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

I had some problems with class schedule what made me fell bad but I’m arranging this and fell better.

Kyler Schwartz - week 2 report

14 Apr 2014

Concrete Goals

  • Familiarize myself with DirectX 11
  • Decide on a 3d model format that will suppport animations and familiarize myself with it
  • Implement the parser for loading the model

Accomplished Goals

  • Familiarize myself with DirectX 11 (partly)
  • Decided on using FBX file format for models with animation and partly familiar with format
  • FBX parser currently loads vertices and indices

Problems with Meeting Goals

  • Learning DirextX 11
    • Followed a few tutorials to get the shape rendered on the screen but still have much more to learn, thus the reason for partly accomplished.
  • FBX file format
    • Got the vertices and indices loaded, but haven’t been able to figure out where the texture coordinates are stored.
  • Parser Implementation
    • Supports vertices and indices but dimensions of models have boundaries that will be solved once camera and perspectives are implemented. Still need to account for FBX right-hand rule vs DirectX left-hand rule.

Goals for Next Week

  • Expand on the FBX parser to include texture coordinates, as well as possibly normals
  • Implment an object loader for models that won’t have animation and make the load function file smart.

Jacob Maskiewicz - Week 2 Report

14 Apr 2014

What were your concrete goals for the week?

My plans for the week were to get a working renderer that can read in model files and display them on the screen. Additionally, I wanted to have a basic set of shaders running that would interpret the camera and view matrices, and do the bare minimum Blinn-Phong lighting model.

What goals were you able to accomplish?

We now have a renderer that can read in models and display them on screen, but they’re currently flat and colorless, and they have to be scaled awkwardly to fit them on screen because we don’t have a camera-view matrix.

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

We don’t have a view matrix or a camera matrix, which is something which would have been nice to have by now. We also lack a lighting model or textures, so everything is simply the colors we pass into it.

What are your specific goals for the next week?

I plan to finish up the renderer’s core functionality and get a working bare minimum engine core. We’re meeting tonight to break the engine into parts, and hopefully by the end of Week 4, we can get an Alpha running.

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

I’m feeling really good. I’ve got my schedule all worked out, and it has plenty of time to work on the game without missing out too much on other life things.

Amy Chandler - Week 2 Report

14 Apr 2014

Concrete goals

  • Map out controls for both controller and keyboard/muouse
  • Learn how to actually implement controls
  • Implement controls after basic rendered completed

Accomplished goals

  • Controls mapped out
  • Read some on how to utilize the Microsoft PC/Xbox 360 Controller for Windows

Problems with meeting goals

  • Illness
  • Wedding planning madness

Goals for next week

  • Actually implement controls
  • Determine requirements for UI
  • Main menu
  • Player selection
  • Gameplay UI
  • Plan out UI data gathering
  • Begin paper mockup of various UI screens

Morale

  • Feeling good, despite the occasional wedding related panic
  • Looking forward to seeing how the game progresses