This week, we made some progress towards creating a minimal working version of the game.
We started to migrate to using forge, merge the garphics code with the networking code, seperate different
class
structures and build 3-D models in Blender based on the concept art design.
Group Morale
As a group, our progress is a liitle bit behind the proposed schedule due to issues we
encountered when mergeing the graphics and networking code. With every member of our group
falling into our prescribed roles very well and taking ownership of each of our parts of
the video game, we are confident that we can get the issues solved soon and catch up with
our proposed schedule.
Showing Off Our Screen Shots!!
3-D Models in Blender
Forge is working as intended
Individual Updates
Charles
Last Week’s Goals:
Work with Aditi to refine server/client communication and implement player movement across the connection
Completed Goals:
Cleaned up the netcode Kevin, Jimmy, and Hao wrote a bit and abstracted it into separate classes, got some work
done on player movement
Unmet Goals:
Didn't manage to complete player movement because we realized we still needed a scene graph on the client's side
and we were missing a camera object. We wrote shells for other game objects in the meantime.
Next Week’s Goals:
Finish up player movement and camera control and get that working across the server/client connection, implement
other gameplay objects
What I Learned:
There's a lot of gray area when it comes to what's graphics vs network vs gameplay. Making sure that when the
player presses w, they move forward sounds like gameplay, but how about communicating that across the network?
And what about reflecting that on screen? Even in something so simple, a lot of fields are involved.
Individual Morale:
I feel a little disappointed that it's week 3 and we haven't at least gotten player control working, but once we
have a good foundation with the scene graph and good network communication, the rest of the gameplay code
shouldn't be too bad.
Jimmy (Jiajian)
Last Week’s Goals:
Work with Kevin and Hao to put the network code and graphics code together.
Completed Goals:
Setup the netcode with basic structure. and was latter refined by Charles and Aditi.
Unmet Goals:
Haven't figure out how to do multiple client and server communication.
Next Week’s Goals:
Finish up multiple client and server communication. Planning to do a multithread server side that handle each
client input on each thread and each thread manipulating the global structure that encodes the state of the game
What I Learned:
I was completely inexperienced on computer graphics and I thought we will just use a regular compiler like g++
to compile the graphics code. But, in we were actually using visual studio and the built in Microsoft c++
compiler to build the whole graphics side.
Individual Morale:
I feel like I was a bit behind on this week that we didn't get the graphics and networking integrated. But
Charles and Aditi get them to work on their machines which is good. I'm worried that I couldn't load the obj
files on my machine, which might cause many problems when I need to test the code. And I don't have any
experience with openGL. I hope this can be solved after we replace openGL with the Forgre.
Esther
Last Week’s Goals:
Learn how to use Blender and start modelling the three basic components (one unit, base female/male characters,
one tower). I also planned to design more variations of character, towers, and units. Lastly I planned to come
up with some sort of backstory for the game.
Completed Goals:
Learned how to use basic Blender functionalities through watching online tutorials. I was able to model a unit
and female character and added some preliminary materials to the models. That's pretty much all I accomplished
because using Blender is trickier and more time consuming than I expected.
Unmet Goals:
I think I overestimated my goals for last week, because I definitely did not complete all the goals I had in
mind. I did not design more unit/character/tower variation concept art and did not come up with a lore. I had a
difficult PA due for another class this past week so I think I managed my time poorly.
Next Week’s Goals:
To not overestimate my goals again, this week I plan to complete the unmet goals from this previous week. Also I
plan to export my models so that Kevin can test out rendering them on the client side.
What I Learned:
I learned that Blender has a pretty large learning curve given how many features and capabilities it has. Humans
are hard to model... Respect to all the people that do this as a full time job in animation studios! I can't
imagine how long it takes to create models for games like Final Fantasy, etc. I also learned from Kevin that I
should anticipate animation when modelling the joints of our characters. I probably took 10x longer than an
expert at Blender to do the same thing. Blender was kind of frustrating to use because I kept accidently hitting
hotkeys that I was unaware of, and making things disappear from the UI and I had to keep googling how to fix my
problems. Also there were some things such that I knew what I wanted to do, but didn't know how to do it. So
again, I looked up youtube tutorials. In the process I learned a lot about building models and how to be more
efficient with the different tools that Blender offers!
Individual Morale:
It's great. I think getting things started is always the hard part, but now I've gotten past the blank canvas
and that stage of knowing nothing about Blender and now have some decent looking models. Nevertheless, I'm
excited to create more models this week now that I've gotten some practice and experience. It's time consuming
but fun. I think it'll be easier when I finish the characters (human) and start modelling more geometric things
like towers.
Kevin
Last Week’s Goals:
For this past week, I aimed to work with Jimmy and Hao on merging graphics and network, and complete a forge
prototype.
Completed Goals:
I was able to meet with the networking team to merge code. I was also able to successfully create a forge
prototype that closely emulates the OpenGL prototype.
Unmet Goals:
I wasn't able to get the merged code to work on my computer. There was an issue with an "accept()" function not
returning on my machine only, which I will need to resolve. On the graphics side, there are still some
unresolved memory leaks.
Next Week’s Goals:
Replace OpenGL code with Forge code and set up scene graph and more robust model loading system.
What I Learned:
I learned a lot about how descriptor sets worked in The Forge's framework.
Individual Morale:
I'm feeling pretty middling right now. On one hand, I'm glad the forge is working, but I'm concerned about why
the networking code doesn't work on my computer.
Aditi
Last Week’s Goals:
Work with Charles to clean up code for the server and client as well as implement some of the player logic.
Completed Goals:
Abstracted out the server and client classes and got some of the famework laid out for player logic.
Unmet Goals:
Did not finish fleshing out all player/game logic because of some uncertainties on the graphics side. Should
make more progress on that next week.
Next Week’s Goals:
Finish designing player and gameplay logic after clearing up confusion on graphics stuff.
What I Learned:
I learned a great deal from studying the server and client code about how our framework is going to look and got
a better picture of what it's going to take to finish up player and game logic.
Individual Morale:
Progress was a little slower this week than expected but we are getting into the nitty gritty and getting our
hands dirty in all of the technical work, so there aren't any blockers and I think most of the learning curve
should be overcome by next week. I'm feeling good about our progress!
Hao
Last Week’s Goals:
Work with Kevin and Jimmy to put the network code and graphics code together.
Completed Goals:
We are able to integrate the networking code into the grahics code.
Unmet Goals:
After we merge the code and testing, accept() always got blocked. We are not sure if it's a connection issue or
a issue with our code. We need to take a close look into it.
Next Week’s Goals:
Modify the existing code to accomendate multiple clients and add multiple threading features.
What I Learned:
I never had experience with computer graphcis in the past. This week, while we are working together, Kevin
walked us through the graphics code so I got a general idea about the graphics part of the project.
As I went over the code from groups in Spring 19, I learned how to set up multiple clients and multithreading
stuff.
Individual Morale:
I felt a little bit stressed when we cannot get the code working earlier this week, but thanks to Atidi and
Charles that they refactored our code later in the week and got more stuff working. Now I'm feeling more
optimistic that we have such a great team and we have each other's back.