CSE125 SP21 Group1

Kaihan Zhu

Week 2

1. What were your concrete goals for the week?

Get to know networking libraries. Settled on Asio.
Get to know server client TCP communication. Think about the structure of the message.

2. What goals were you able to accomplish?

Settle on a library, Asio, and build all the messaging on it.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

I was surprised that g++ on Windows is surprisingly complicated, but thanks to existing tools like MinGW, it is much simpler.
Also, the configuration of build tasks in VSCode took much longer than expected, including figuring out library issues and compiler parameters.

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

I am aiming to complete networking and make all the communication structured. For example, I plan to package networking into one class, make sure clients send inputs to the server and server can correctly cache these inputs, and implement threading and locks for accessing cached inputs.

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

I learned how to use networking in games.

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

Good.

Week 3

1. What were your concrete goals for the week?

I am aiming to complete networking and make all the communication structured. I packaged networking into one class, make sure clients send inputs to the server and server can correctly cache these inputs, implement threading and locks for accessing cached inputs, and server can correctly distinguish different clients.

2. What goals were you able to accomplish?

All of them.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

Goals are met.

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

Work on the server side more. Add the gaming logic and states to the server. Correctly process inputs from clients, update states, and send states back.

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

I learned the use of classes extensively and new concepts in C++ such as shared_ptr, lambda functions, super simple mutex, and different initialization syntax. I did not expect to learn them as either they were never used previously or used at a more lower level in C, which is more complicated.

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

Good.

Week 4

1. What were your concrete goals for the week?

Work on the server side more. Add the gaming logic and states to the server. Correctly process inputs from clients, update states, and send states back.

2. What goals were you able to accomplish?

All of them.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

Goals are met.
One problem is that the game logic right now only involves 4 players moving around. It is very minimal and requires a lot of improvements in the future.

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

Build up the essential game logic. This includes moving players, player items, generating maps, and bombing.

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

As I was integrating graphics with the client, I revised my understanding of coordinates in graphics. I also learned how to get OpenGL going on windows with all the library files and the difference between statically linked and dynamically linked. I did not expect to learn this.

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

Good.

Week 5

1. What were your concrete goals for the week?

Add the gaming logic and states to the server.

2. What goals were you able to accomplish?

Add the gaming logic and a better way to send state to the client. The client now shares the state class with the server so that the client can utilize the same structure of information to render the graphics.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

Goals are not met entirely. I expect more to be done, for example, the bombing logic and track the time for it to go off.
One problem is that I had two midterms.

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

Build up more game logic, the classic bomb, flying weapons, and detonation.

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

I revised the C memory and pointers. I simply turned the memory into a character string and sent it over to the client. The client receives the string and simply copies this data into the state object. This requires the use of char arrays instead of strings as strings would recognize null char as terminal characters, char array can specify a size to send and receive.

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

Good.

Week 6

1. What were your concrete goals for the week?

Work on the bombing logic and the board generation.

2. What goals were you able to accomplish?

All of them. I also had an ASCII version of the game that is playable.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

I encountered the issue of networking and it delayed the process a bit. Thus, I was not able to get too much on the board generation.

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

Make the weapons work and combine graphics and client.

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

I learned more about networking and timing management for bombs.

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

Good.

Week 7

1. What were your concrete goals for the week?

Work on the bombing logic and the board generation.

2. What goals were you able to accomplish?

None of them.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

I helped out the graphics with the library compilation and linking. I also have a midterm this week…

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

Make the weapons work and combine graphics and client. I am aiming to have a normal game ready.

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

The CMake, g++, linking, and libraries.

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

Good.

Week 8

1. What were your concrete goals for the week?

Help out the gaming logic and make the models smaller.

2. What goals were you able to accomplish?

I looked into making models smaller but have no success with it. The tutorials are not really working out. I also helped out the audio.

3. If there were goals you were unable to meet, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. So answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.

I helped out the audio library and the compiling issues, which took a very long time. The compiling was very hard as we need to check into different libraries, different versions, the availability of MinGW versions, and the compatibility of APIs. In the end, we discovered that the C API compiled for Visual C++ is compatible with MinGW’s g++. Thus, we are able to play some sound in the end.

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

To make sure that everything works on demo machines.

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

More compilation, linking, difference in compatibility for C and C++ between VC and MinGW.

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

Good.