Here is the link to our final report: https://gdoc.pub/doc/e/2PACX-1vTAQfRXDrrY6YFPRf_ndb3XceSw4gm2w7RVebLHgC8-uB38bgCHsRsgMBxoQoTVuTpTxkxBMu_EGMAV
It’s been a great quarter. Thank everyone for supporting us! đ
Check out the latest progress of our game design!
Here is the link to our final report: https://gdoc.pub/doc/e/2PACX-1vTAQfRXDrrY6YFPRf_ndb3XceSw4gm2w7RVebLHgC8-uB38bgCHsRsgMBxoQoTVuTpTxkxBMu_EGMAV
It’s been a great quarter. Thank everyone for supporting us! đ
A lot of progress was made this week. We had a very solid, rich, and yet simple enough gameplay. Now the goal for the survivors is to destroy the tower in the center of the map. The tower will spawn monsters randomly on the map, and the probability of spawning increase linearly to the time has passed. The godâs goal is to protect the tower by killing all the survivors, which can be achieved by placing monsters and trees (to block survivors) strategically.
We are in the final polishing stage and aiming for the demo on Friday. We will have a significant UI update and a better lobby and end page.
There are three classes that the survivors can choose. They all can shoot bullets to attack by using the first ability. They have different roles and have different initial stats (damage, move speed, etc.).
Besides, we finally made our animation system work and we also added a simple audio system.
1) What were your concrete goals for the week?
Animation, audio, finish gameplay.
2) What goals were you able to accomplish?
All above.
3) If there were goals you were unable to meet, what were the reasons?
No. I am quite happy with the last week. We have made significant progress. Now all that is left is to beautify the game and play test for the demo.
4) What are your specific goals for the next week?
Finish the final report.
5) What did you learn this week, if anything (and did you expect to learn it?)
Not much.
6) What is your individual morale (which might be different from the overall group morale)?
Enjoy the experience.
1) What were your concrete goals for the week?
2) What goals were you able to accomplish?
3) If there were goals you were unable to meet, what were the reasons?
Adding other items; reason: change in priority
4) What are your specific goals for the next week?
5) What did you learn this week, if anything (and did you expect to learn it?)
Teamwork and more devoted time on the game brings it alive; expected
6) What is your individual morale (which might be different from the overall group morale)?
Excited for the final completed version of the game and canât wait to see what other groups have accomplished in this amazing quarter!
1) What were your concrete goals for the week?
Make some adjustment and improvement on the animation system.
2) What goals were you able to accomplish?
Added new functionalities that allow certain animation to be played only once(like player death animation) and allow us to color animations without textures.
3) If there were goals you were unable to meet, what were the reasons?
For now I think I finished my work. However, I will keep working if necessary.
4) What are your specific goals for the next week?
This is the last week.
5) What did you learn this week, if anything (and did you expect to learn it?)
I learned something about how our client works and how models and animations are used in our game.
6) What is your individual morale (which might be different from the overall group morale)?
So far so good.
1) What were your concrete goals for the week?
Adjust gameplay, add central tower, fix bugs
2) What goals were you able to accomplish?
The gameâs winning condition is adjusted to destroy tower at the center. Add functionality that monsters could randomly spawn on map. Fix multiple bugs including the melee/chase functions.
3) If there were goals you were unable to meet, what were the reasons?
We achieved the gameplay as what we as a team discussed after last weekâs meeting.
4) What are your specific goals for the next week?
Change the lobby and add control guidance before demo day.
5) What did you learn this week, if anything (and did you expect to learn it?)
I didnât really learn anything technical this week but was considering what we could have done better during the quarter after I saw other teamsâ fabulous games and learned from other teams. I feel our gameplay is robust in essence but our graphics including UI and animation definitely need more improvement. It might be a good idea if we chose to use more online model resources instead of creating our own when one teammate dropped the class. In that way, we would have two people fully work on the graphics early on.
6) What is your individual morale (which might be different from the overall group morale)?
80% satisfied.
1) What were your concrete goals for the week?
Added more skills and fixed some UI. Polish some details.
2) What goals were you able to accomplish?
All above.
3) If there were goals you were unable to meet, what were the reasons?
None. It has been very productive
4) What are your specific goals for the next week?
Finish the game!
5) What did you learn this week, if anything (and did you expect to learn it?)
Not much.
6) What is your individual morale (which might be different from the overall group morale)?
Enjoy it!
Itâs been a relatively less productive week. We have finished the item loot system and the notification system. The animation engine is not yet finished. The skeleton movement is working but the texture rendering is not. Without the animation engine, we canât proceed forward with any significant graphics updates and the audio system.
The infrastructure of the gameplay aspect is mostly built, and we have made solid decisions about more features in terms of game design.
The time is tight but we still feel confident that we will make it a fun game.
1) What were your concrete goals for the week?
Help get the animation integrated with our graphics engine.
2) What goals were you able to accomplish?
Added more features to the gameplay and attack system.
3) If there were goals you were unable to meet, what were the reasons?
The animation system is still not 100% working. Haoming said he would finish the system by last Friday and I was expecting to help review, refactor, and integrate it into the main system. Unfortunately he is still working on it and I couldnât help much.
4) What are your specific goals for the next week?
More features, make the game winnable for survivors, hopefully get the animation done.
5) What did you learn this week, if anything (and did you expect to learn it?)
Itâs hard to help or get help on development if we donât code in a readable and modular manner.
6) What is your individual morale (which might be different from the overall group morale)?
Enjoy the experience.
1) What were your concrete goals for the week?
2) What goals were you able to accomplish?
Design different appearance for players
3) If there were goals you were unable to meet, what were the reasons?
Add weapon to the attack animation, reason: trip to SF and other coursework
4) What are your specific goals for the next week?
5) What did you learn this week, if anything (and did you expect to learn it?)
Nothing in particular
6) What is your individual morale (which might be different from the overall group morale)?
Spend more time this week to catch up! Keep working and trying!
1) What were your concrete goals for the week?
Finishing the animation system.
2) What goals were you able to accomplish?
FInished the animation a lot later than I expected, tried several Collada parsers during the process. Finally choose http://rmx.github.io/collada-converter/preview/examples/convert.html.
Now finishing an animation system that can play skeleton animation, adjust speed and play only a part of it.
3) If there were goals you were unable to meet, what were the reasons?
I thought I could complete it much earlier, but turns out that I couldn’t fully understand the json file generated by the previous parser I used. Spent a lot of time trying to figure out connections between converted json and the original Collada.
4) What are your specific goals for the next week?
Help Shuyuan to integrate the animation system if no other instructions.
5) What did you learn this week, if anything (and did you expect to learn it?)
I can pretty much understand every line of a Collada file now after so much research. Didnât really expect that.
6) What is your individual morale (which might be different from the overall group morale)?
Desperate for the weekend because I promised to finish last Friday. Still feels good when I finally see the correct animation instead of messed meshes.
1) What were your concrete goals for the week?
Finishing item system
2) What goals were you able to accomplish?
Now the slimes would drop items randomly when dead. Survivors could pick up the item to buff themselves. I am still polishing the godâs attack pattern as well adding a feature to allow god to create tree to block survivors.
3) If there were goals you were unable to meet, what were the reasons?
I was planning to adjust some functions to better match with the animation once the animation system is completed. Since animation is delayed, I couldnât quite move on if I donât know how the animation system would behave.
4) What are your specific goals for the next week?
Adjust existing features to better match with animation and perform final polish to ensure the whole game work from the beginning to end.
5) What did you learn this week, if anything (and did you expect to learn it?)
We shouldnât underestimate animation and we should have let an extra person to help Haomin when we thought he was stuck.
6) What is your individual morale (which might be different from the overall group morale)?
âItâs the endgame now.â
1) What were your concrete goals for the week?
Polish the details.
2) What goals were you able to accomplish?
Added UI for items, notification UI and a charge system for skills
3) If there were goals you were unable to meet, what were the reasons?
None.
4) What are your specific goals for the next week?
Keep working on details, polish more.
5) What did you learn this week, if anything (and did you expect to learn it?)
None
6) What is your individual morale (which might be different from the overall group morale)?
Work Harder
With most of the underlying systems done, we did a lot of refactoring and content filling for the server this week.
We reanalyzed the time remaining and the technical difficulties of remaining goals, and decided to change the game design to more combat focused. We canceled the crafting system and the idea of building towers to overthrow the god. Instead, the survivors kill monsters to gain progress and finally will confront the god himself in combat. The god player wins if all survivors die, or the survivors win if they can finally defeat the god. We plan to add a rouge-like item loot system to allow the survivors grow in strength to confront the overpowered god at the endgame.
However, the animation system is still going slowly. Weâre hoping to finish it by the end of this week. And after that, we might arrange someone to shift job and help with the modeling and animation.
1) What were your concrete goals for the week?
A lot of small pieces. Refactor the skill system. Refactor our files. Display teammates and their health. Add visual effect to indicate a player has died. Add an item system, and enhance the player when they pick up items. Add a notification system. Detect wins.
2) What goals were you able to accomplish?
Everything except for the notification system are done. Some small details still need to be improved.
3) If there were goals you were unable to meet, what were the reasons?
Notification system is not done yet because lack of time. Looking forward to finish it ASAP
4) What are your specific goals for the next week?
Not sure yet. Depends on how everything goes. We have a barebone version already, so more likely will need to polish all the details. One thing for sure is to finish the part where God will show himself and the survivors can beat him.
5) What did you learn this week, if anything (and did you expect to learn it?)
None.
6) What is your individual morale (which might be different from the overall group morale)?
Work harder and learn more!
1) What were your concrete goals for the week?
Review and refactor pull requests. Implement the on-click skill/shooting system. Zooming cameras. FPS viewpoint.
2) What goals were you able to accomplish?
All above, plus reassessing the progress of the project and changing the game design.
3) If there were goals you were unable to meet, what were the reasons?
I wish we could finish the animation integration, but it turns out the standard formats of .dae files are not well supported by some of the parser we found online, or at least we havenât figured out how to use them correctly.
4) What are your specific goals for the next week?
Help get the animation integrated with our graphics engine.
5) What did you learn this week, if anything (and did you expect to learn it?)
Good documentation is priceless. Some external JS libraries can be a nightmare to work with, especially when there are no better alternatives.
6) What is your individual morale (which might be different from the overall group morale)?
Enjoy the experience.
1) What were your concrete goals for the week?
Finish walk and attack animation, static dead position, export to expected format and work with Haomin Wang to put the animation into the game
2) What goals were you able to accomplish?
3) If there were goals you were unable to meet, what were the reasons?
4) What are your specific goals for the next week?
5) What did you learn this week, if anything (and did you expect to learn it?)
Exporting animation from Blender (expected)
6) What is your individual morale (which might be different from the overall group morale)?
Looking forward to a great improvement in the game UI with integrated animation! Keep working and trying!
1) What were your concrete goals for the week?
2) What goals were you able to accomplish?
Item/buff system is still in progress. Other than quaternion, everything is achieved.
3) If there were goals you were unable to meet, what were the reasons?
I researched online about quaternion and its usage in cannon js but wasnât quite able to use it without causing any incorrect side effects. So right now I still calculate the attack region by treating the player body as a sphere. If time is available I will look into this issue more but would finish item/buff system first.
4) What are your specific goals for the next week?
Finish item/buff system, possibly work with the graphics to incorporate the animation for each attack or item usage.
5) What did you learn this week, if anything (and did you expect to learn it?)
Application of 80/20 rule and making tradeoff, in the sense that I spent so much time looking into the advanced feature of cannon js, (handling collision and behavior of sphere or cylinder) but it turns out box works the best. The only thing remaining in the physics engine is whether we want collision between survivors and slimes.
6) What is your individual morale (which might be different from the overall group morale)?
Unlike last week when I felt no progress was made, I feel more achieved during this week. Feel the hope now and especially look forward to the animation.
1) What were your concrete goals for the week?
Finishing the animation system and make it work together with our code and dae files.
2) What goals were you able to accomplish?
I have successfully render an animation using a dae found online.
3) If there were goals you were unable to meet, what were the reasons?
The dae parser I am currently using seems to have problems when loading our dae files. I am currently working on solving that.
4) What are your specific goals for the next week?
I will finish animation system ASAP. Not sure what to do after that, maybe working on performance of animation rendering.
5) What did you learn this week, if anything (and did you expect to learn it?)
I am currently looking at the dae files and learned something about how data are stored in dae files.
6) What is your individual morale (which might be different from the overall group morale)?
Still trying to figure out the difference between dae files. Hopefully I can get this soon.
1) summarize your overall status for the week
Reworked and optimized the graphic engine. Now models, materials, textures, and lighting works properly with much better performance–fps now can easily reach the highest refresh rate of the monitor.
Optimized both the server and client. Now only necessary data will be sent through network IO, and CPU usage drops significantly.
Modeling and skeletal animation is slowly progressing.
A profession (class) system has been added, more game design is needed for this system.
A basic monster chasing AI is implemented. The slime now chases the closest survivor and will explode upon collision.
2) include both the week # and the date of the meeting
Week 6, 5/10 Friday: Reviewed and integrated the monster AI system, profession system.
Week 7, 5/14 Tuesday: Merged the reworked graphic engine and the optimized server/client.
3) add a statement summarizing the group morale (feel free to be creative in expressing your morale)
The game is coming together and we are quite excited.
4) add at least one of your latest screenshots to your group page
1) What were your concrete goals for the week?
Get the graphics working and look into skeletal animation.
2) What goals were you able to accomplish?
I first tried to optimize the graphic engine then I found some major flaws in the engine, so I ended up reworked it completely. Itâs now rendering correctly with lighting added, and with much better performance.
I reviewed and helped with the chasing AI system by Tianhui and the optimization of server/client by Kai.
3) If there were goals you were unable to meet, what were the reasons?
I didnât look into the skeletal animation part specifically. I did some research and found some blogs about the topic and send them to Zhou Lin. Haoming now is working on importing animations into our graphic engine, and Tianhui showed strong interests in the model and animation development, so I let them do the work.
4) What are your specific goals for the next week?
Add the terrain to the physics engine using height map. Design more monsters and skills for different professions.
5) What did you learn this week, if anything (and did you expect to learn it?)
I used to review and refactor group membersâ pull requests alone and many times I have made major structural changes to the codes based on my own judgement. It is kind of arbitrary and thoughtless, and turned out to cause trouble if they are to continue working on the same branch. From now on I will try my best to review and refactor codes during a face-to-face meeting, or at least to make sufficient communication before I made changes.
6) What is your individual morale (which might be different from the overall group morale)?
Learn and try to be a good PM.
1) What were your concrete goals for the week?
To optimize package sent by server during each server loop. Also to incorporate a profession system that let players pick different profession.
2) What goals were you able to accomplish?
Package optimization is done. Right now we donât send anything if nothing happens, and we only sends if status changes. The profession system is on the way. Now user can pick different profession, and I have some UI up and running for it.
3) If there were goals you were unable to meet, what were the reasons?
I was thinking about finishing the skills for each profession, but then I was assigned to optimize the package thingy, so this task was postponed. But I will finish it eventually.
4) What are your specific goals for the next week?
For next week I will finish the skills for each profession, which requires me to add a lot of game logics. Also keep updating the UI.
5) What did you learn this week, if anything (and did you expect to learn it?)
How javascript stringify works.
6) What is your individual morale (which might be different from the overall group morale)?
Work harder and learn more!
1) What were your concrete goals for the week?
Simple walk/run and attack animation of the player
2) What goals were you able to accomplish?
Simple walk cycle animation of the player
3) If there were goals you were unable to meet, what were the reasons?
Complexity with rigging and weight painting, and to resolve them, had to change the player model, which results in redo of texturing
4) What are your specific goals for the next week?
Finish walk and attack animation, static dead position, export to expected format and work with Haomin Wang to put the animation into game
5) What did you learn this week, if anything (and did you expect to learn it?)
Animation using keyframes in blender
6) What is your individual morale (which might be different from the overall group morale)?
Spend more time, and start early!
1) What were your concrete goals for the week?
A client-side animation system that is able to load and display dae animation.
2) What goals were you able to accomplish?
For now I am able to render the keyframes separately.
3) If there were goals you were unable to meet, what were the reasons?
I still havenât finished the implementation of updating each joint using the time and keyframes, I think a linear interpolation will do.
I took some time to compare and choose from several ways to play dae animations. Eventually I chose to convert dae file into json using collada-dae-parser then write the whole animation system myself.
4) What are your specific goals for the next week?
Finish the animation system, perhaps try to test it with animations created by Lin Zhou.
5) What did you learn this week, if anything (and did you expect to learn it?)
Working with collada-dae-parser, I am able to play keyframe animation using a different(and simpler) way.
6) What is your individual morale (which might be different from the
overall group morale)?
Busy week, but there are some progress.
1) What were your concrete goals for the week?
Generalize the melee/shoot function so that both player/survivors could use it. Spike on applying collisionResponse or other approaches to avoid unwanted collision.
2) What goals were you able to accomplish?
Now there are three types of slimes able to perform explosion, shoot, melee respectively.
3) If there were goals you were unable to meet, what were the reasons?
4) What are your specific goals for the next week?
Finish unmet goals mentioned in 3.
5) What did you learn this week, if anything (and did you expect to learn it?)
Last week I felt I had become more familiar with Cannon.js. But this week what I have realized is that many features for example colliders, common in implementing attacking, are not yet supported in Cannon.js although some sites suggest the author has implemented similar feature in his 2d physics engine.
6) What is your individual morale (which might be different from the overall group morale)?
Very frustrating during this week since I made few progresses and couldn’t find many useful online resources. Hope life would become better đ
1) summarize your overall status for the week
We have finished the skill system, which now includes the ability of spawning monster for the god player. The attacking system now supports shooting bullets and melee attacks (no animation yet). Objects will die after their health go to 0.
The texture, lighting, and shading are still in progress.
2) include both the week # and the date of the meeting
Week 5, 5/3 Friday: Finished the cursor tracing, assign tasks for weekends.
Week 6, 5/7 Tuesday: Reviewed and integrated the attack system and spawning system.
3) add a statement summarizing the group morale (feel free to be creative in expressing your morale)
GLHF ( with the midterms D: )
4) add at least one of your latest screenshots to your group page
1) What were your concrete goals for the week?
To incorporate a skill system and to make better looking UI.
2) What goals were you able to accomplish?
Skill system is working and has cooldown checking. Skills are defined on the server(only one skill yet). Also cooldown has animation on the client.
3) If there were goals you were unable to meet, what were the reasons?
None.
4) What are your specific goals for the next week?
For next week I think I will add more UI and more skills to it. Specifically for skills that affect the surrounding of the player, which is more difficult than just spawning monsters at a given point. Also on the game logic we could add things like AI of the monsters, world tiles generation.
5) What did you learn this week, if anything (and did you expect to learn it?)
None
6) What is your individual morale (which might be different from the overall group morale)?
Work harder and learn more!
1) what were your concrete goals for the week?
Attack system and spawning system.
2) what goals were you able to accomplish?
Both of the systems. Kai Li built up the UI and network IO for the skill system, I integrated it with the cursor tracing system and hooked up the game logic. Tianhui built the attack system and I reviewed and merged it with the skill system.
3) if there were goals you were unable to meet, what were the reasons?
Not really unfinished, but this week most of our group members have midterms to study for, so they wonât have too much time to work on the project at the first half of the week.
4) what are your specific goals for the next week?
Get graphics working for sure. Look into skeleton animation with Lin Zhou and how to import it to the game client.
5) what did you learn this week, if anything (and did you expect to learn it?)
Ray tracing is a cool technique. I used its algorithm for the purpose other than graphical rendering.
6) what is your individual morale (which might be different from the overall group morale)?
GLHF.
1) What were your concrete goals for the week?
Make texture and lighting works. Working on particle system.
2) What goals were you able to accomplish?
I fixed problems on texture so multiple objects now can be rendered with different textures, with or without material. I finished a phong shading for the whole scene. I made some test using models, material and textures made by Lin Zhou.
I am currently implementing particle system for fire simulation based on a 2D fire simulation I found, I want to try to make it 3D.
3) If there were goals you were unable to meet, what were the reasons?
I havenât finished a demo of particle system. Fixing all the problems took me more time than expected.
4) What are your specific goals for the next week?
Before I get any assignments, I will be working on making a demo of fire simulation. I might still have to adjust some parameters for the shaders after we have more models.
5) What did you learn this week, if anything (and did you expect to learn it?)
Learned more about how sampler works in WebGL while debugging.
Learned about how particle-based fire simulation works.
Pretty much expected both.
6) What is your individual morale (which might be different from the overall group morale)?
Good, the texture and shading part works in general and I am going to learn about particles.
1) What were your concrete goals for the week?
Building attack system.
2) What goals were you able to accomplish?
I followed Cannon.js demo to create a ball-shooting attack mechanism in our game. Also I used bounding box to represent each melee attack for collision detection.
3) If there were goals you were unable to meet, what were the reasons?
I had a midterm on Tuesday so I didnât have enough time devoted to the project this week. Most of the work is done on Friday and Saturday.
4) What are your specific goals for the next week?
Resolving bugs and working on item interaction, such as cutting a tree.
5) What did you learn this week, if anything (and did you expect to learn it?)
More knowledge on how javascript callback should work and how to use incorporate it into physics engine mechanism.
6) What is your individual morale (which might be different from the overall group morale)?
Feel the pressure as we have four weeks left. More effort is needed.
1) What were your concrete goals for the week?
2) What goals were you able to accomplish?
Texturing for player
3) If there were goals you were unable to meet, what were the reasons?
Midterm and other coursework
4) What are your specific goals for the next week?
Simple walk/run and attack animation of the player
5) What did you learn this week, if anything (and did you expect to learn it?)
Blender texturing and rigging (expected)
6) What is your individual morale (which might be different from the overall group morale)?
Work more often, game is getting into shape!
1) summarize your overall status for the week
We have finished setting up the basic physics engine. Now playersâ movements are computed by the physics engine and jumping is enabled. Graphics engine partially works with texture loading, but there are still bugs. 3D modeling is going well. Skeleton animation is partially done. A fundamental UI based on HTML and Javascript is working.
2) include both the week # and the date of the meeting
Week 4, 4/26 Friday: Reviewed the multiplayer sandbox together. Assigned tasks to group members for the weekend.
Week 4, 4/23 Tuesday: Finished the new physics engine together.
3) add a statement summarizing the group morale (feel free to be creative in expressing your morale)
GLHF
4) add at least one of your latest screenshots to your group page
1) what were your concrete goals for the week?
Graphics engine should work with texture. Physics engine should work. Attack interaction should work (based on physics engine). Basic UI.
2) what goals were you able to accomplish?
Reviewed and integrated: UI and the physics engine.
3) if there were goals you were unable to meet, what were the reasons?
The graphics engine turns out to be complicated, and also the physics engine. The texture can be loaded but the rendering process is disorganized. The delay on physics engine delayed the development of attacking events.
4) what are your specific goals for the next week?
Help fixing the graphic engine. Make attacking works. Add the spawning function for the god player.
5) what did you learn this week, if anything (and did you expect to learn it?)
Physics engine is complicated and fun to play with.
6) what is your individual morale (which might be different from the overall group morale)?
Explore more tools and engines, and have fun developing the game.
1) What were your concrete goals for the week?
Work on physics engine and quadtree, and finish basic attack system so that player could attack other items.
2) What goals were you able to accomplish?
With the use of cannon.js, one physics engine in JavaScript, players could perform the movement same as without the use of the physics engine and could collide with other items, but the actual attack system is yet to implement.
3) If there were goals you were unable to meet, what were the reasons?
Shuyuan and I worked on Cannon.js together this week. However, our progress is slowed down since (1) the API of cannon.js has already assumed we have enough knowledge in physics engine (2) we were stuck on whether the type of player object should be dynamic or kinematic (3) I am still a bit confused about the relationship between physics engine, quadtree and bounding box, and I need to discuss this on Thursday.
4) What are your specific goals for the next week?
Catch up on the progress and finish attack system and physics engine.
5) What did you learn this week, if anything (and did you expect to learn it?)
Some knowledge in physics engine
6) What is your individual morale (which might be different from the overall group morale)?
Calm down, think more and work harder
1) What were your concrete goals for the week?
2) What goals were you able to accomplish?
Build 3D environment with simple water, grass and rock texture and varying height
3) If there were goals you were unable to meet, what were the reasons?
4) What are your specific goals for the next week?
5) What did you learn this week, if anything (and did you expect to learn it?)
Create simple environment with heightmap in blender (expected to learn it)
6) What is your individual morale (which might be different from the
overall group morale)?
7/10, getting more familiar with powerful Blender, but should spend more time playing around with it.
1) What were your concrete goals for the week?
Finish material and texture rendering, implement lighting, start particle systems.
2) What goals were you able to accomplish?
I am able to read and render obj model together with the mtl file or textures. I packed the loader and renderer into a class for convenience. I also wrote a simple phong shading.
3) If there were goals you were unable to meet, what were the reasons?
Some problems on texture when rendering multiple objects at the same time. Have found the reason is because WebGL store all the textures together, currently trying to find a way to solve it.
I have just take a look at some examples of particle systems, havenât really start implementing it.
4) What are your specific goals for the next week?
Right after I fixed everything for texture problem, I will start the implementation of particle system.
5) What did you learn this week, if anything (and did you expect to learn it?)
Get some review on light shading and understand more about how WebGL works.
6) What is your individual morale (which might be different from the overall group morale)?
Lots of problems came out during this week, but eventually able to figure them out, feels good.
1) What were your concrete goals for the week?
To complete a status bar.
2) What goals were you able to accomplish?
Status bar is done. It has some non-ugly ui. Health bar has animation. Health bar updates when stats in the server updates
3) If there were goals you were unable to meet, what were the reasons?
None.
4) What are your specific goals for the next week?
I will make the game look better next week. Also I will try to randomly or algorithmically generate random monsters on the map.
5) What did you learn this week, if anything (and did you expect to learn it?)
I have learned more CSS in the past week, mostly to make the status bar looks better
6) What is your individual morale (which might be different from the overall group morale)?
Work harder and learn more!
1) summarize your overall status for the week
We have finished the multiplayer sandbox, where players can move around and see each other. We have decided to make our game a 45-degree fixed angle top view. Lin Zhou has designed a player model and a slime model. And we are still working on how to load and render models with textures/materials.
We are now working on some of the basic game logics, including the overall data structure, the map, the interactable classes, attack events and other interactions.
2) include both the week # and the date of the meeting
Week 3, 4/19 Friday: Assigned tasks to group members for the weekend.
Week 4, 4/23 Tuesday: Checked progress. Reviewed the PR for the new fixed angle camera and multiplayer support.
3) add a statement summarizing the group morale (feel free to be creative in expressing your morale)
GLHF
4) add at least one of your latest screenshots to your group page
New fixed angle camera with rotation:
Added avatar:
Multiplayer support:
1) what were your concrete goals for the week?
Complete the sandbox, multiplayer support, data structure and map implementation, basic game logics.
2) what goals were you able to accomplish?
Sandbox and the multiplayer support.
3) if there were goals you were unable to meet, what were the reasons?
The game logic is still in progress, and I am positive that we could finish our goals by the end of this week.
4) what are your specific goals for the next week?
Different camera view for the God player. Zoomable camera. Attacking events, where players or slimes will die.
5) what did you learn this week, if anything (and did you expect to learn it?)
External libraries sometimes donât function as expected. I need to read the source code to figure out their behaviors.
6) what is your individual morale (which might be different from the overall group morale)?
Since our âsenior engineerâ has quit, I shall expect more technical obstacles and more time spent on them. I should speed up the development correspondingly.
1) What were your concrete goals for the week?
Build 3D model for player and simple environment items
2) What goals were you able to accomplish?
Build 3D models for player, slime and a simple tree with blender
3) If there were goals you were unable to meet, what were the reasons?
Unfamiliarity with Blender
4) What are your specific goals for the next week?
5) What did you learn this week, if anything (and did you expect to learn it?)
6) What is your individual morale (which might be different from the overall group morale)?
7/10, happy to see our own player model come to life and excited to further dive into more game logic and setting specifics
1) What were your concrete goals for the week?
Learn transformations used in graphics and finish synchronizing playersâ positions on backend.
2) What goals were you able to accomplish?
I looked at several Professor Ramamoorthiâs online lectures on Youtube, got familiar with glMatrix and is now working on the attack system of players. Playersâ positions are now synchronized.
3) If there were goals you were unable to meet, what were the reasons?
I am having some trouble implementing the attack system, especially regarding how players should detect the enemies standing in front of them without looping through and checking all enemies on the map. I am thinking about an efficient way to detect only positions within the attack radius. However this approach complicates more as playersâ face directions could point to any position, not necessarily perpendicular to any tile edge.
4) What are your specific goals for the next week?
Finish basic attack system (hit, slash, etc) and ideally showcase health bars.
5) What did you learn this week, if anything (and did you expect to learn it?)
Transformations in graphics and related matrix knowledge.
6) What is your individual morale (which might be different from the overall group morale)?
Thrilled to see that now players can see each other moving on the screen and excited to implement the attack system.
1) What were your concrete goals for the week?
Figure out how to add color and textures to loaded model.
2) What goals were you able to accomplish?
For now, I am able to add textures by texture coordinates or simple materials using content of mtl file.
3) If there were goals you were unable to meet, what were the reasons?
I am still having trouble figuring out how to render different materials on one objects, especially when there are different texture images for different parts of an object. The obj loader we are using do not have any documentation on material loading and rendering, so I have to check their source code and tests to figure it out myself, which took me a lot of time. Also, I have to make many changes to the shader to render texture and material.
4) What are your specific goals for the next week?
I am still working on the texture and material and hopefully I will have something works perfectly soon. After that I will take a look at how to make particles effects using WebGL, such as fire.
5) What did you learn this week, if anything (and did you expect to learn it?)
I got a review about how texture mapping work with shaders. Besides, I learned about the format of mtl file and obj file to understand how they work together and what is the meaning of each line of an mtl file. I didnât expect to learn this much, I thought using texture coordinates was enough to render texture correctly.
6) What is your individual morale (which might be different from the overall group morale)?
Itâs kind of tiring to figure out a functionality without documentation. I spend a lot of time yet I havenât made this works correctly. Still, I learned and reviewed a lot on shaders, obj and mtl processing.
1) What were your concrete goals for the week?
My goal this week was to learn some computer graphics because I had no experiences with it. And also to implement a timer for the game, as well as the status bar for the player.
2) What goals were you able to accomplish?
I have only done learning some computer graphics
3) If there were goals you were unable to meet, what were the reasons?
I am too busy, donât have time. There is 1 project due and 1 midterm. But I will have more time next week and I should achieve more next week.
4) What are your specific goals for the next week?
Finish timer and status bar. Start working on something else if I have time
5) What did you learn this week, if anything (and did you expect to learn it?)
Some computer graphics, like translation matrix, rotation.
6) What is your individual morale (which might be different from the
overall group morale)?
I want to achieve more next week! Learn more and do more!
1) summarize your overall status for the week
We are aiming to complete Phase 1 of our project, which is to build a basic sandbox where a camera can move around and view static objects in the world. We are on track and have completed the graphic engine, camera, obj model loading, server setup, client integration with IO and graphic engine.
At the end of this week, we should hook up the server and client, and let the server decide the movement of the camera.
2) include both the week # and the date of the meeting
Week 2, 4/12 Friday: Assigned tasks to group members for the weekend.
Week 3, 4/16 Tuesday: Checked progress. Reviewed the PR for the server setup, graphic engine, and camera.
3) add a statement summarizing the group morale (feel free to be creative in expressing your morale)
GLHF
4) add at least one of your latest screenshots to your group page
1) what were your concrete goals for the week?
Build 3D models for 3 players and god
2) what goals were you able to accomplish?
Build simple cubic 3D models for players and god
3) if there were goals you were unable to meet, what were the reasons?
4) what are your specific goals for the next week?
5) What did you learn this week, if anything (and did you expect to learn it?)
How to create cubic art, which I expected to learn
6) what is your individual morale (which might be different from the
overall group morale)?
6/10, getting more involved in the game as we start to discuss the core logic and settings
1) what were your concrete goals for the week?
Finish networking, construct classes to represent players, items, etc, show playersâ positions on map
2) what goals were you able to accomplish?
The networking infrastructure has been built up, thanks to socket.io. Basic classes have been built but currently only very instance variables are included. Besides the goals, I also built a basic start screen and loading screen so that four players could enter the game screen simultaneously.
3) if there were goals you were unable to meet, what were the reasons?
One reason is that since I lack graphics background, I donât quite know what kind of data graphics need in order to render playersâ positions for example. I could have created more appropriate instance variables if I have some background. Another is regarding the software/game design. For example, regarding showing playersâ positions on map, it is easy to print it out the arrays representing the map on the console. What troubles me is how the arrays would actually be representative of the actual map (does each element represents a tile on the map?), what should be the appropriate size of the arrays and whether I actually need to create arrays on the server side or the positions are already representative?
4) what are your specific goals for the next week?
I need to talk with Shuyuan to determine the tasks for next week. Personally I would look into playersâ position and related game logic.
5) what did you learn this week, if anything (and did you expect to learn it?)
Socket.io is really convenient (unexpected). CSS is hard (expected).
6) what is your individual morale (which might be different from the
overall group morale)?
Excited to see our baby game is growing up. Will become a bad parent who forces his child to turn into someone he likes.
1) What were your concrete goals for the week?
My goal is to get familiar and write demo with WebGL and several libraries we are going to use for Graphics, including gl-Matrix for calculation, Cannon.js for physics and webgl-obj-loader for model loading.
2) What goals were you able to accomplish?
I was able to complete a demo. It has a camera that is able to be controlled by mouse and keyboard. It uses Cannon.js to simulate a scene of a cube hitting the ground, and it is able to load and render .obj format models.
3) If there were goals you were unable to meet, what were the reasons?
The code was a bit messy and the camera movement is not fluent enough. Also I only used a few basic functions of the libraries. We are going to need some more complex functionalities like collision of different models and load obj file from server.
4) What are your specific goals for the next week?
The specific goals are TBD. For now I think I will try to write some more complex demos that make use of some advanced functionalities of the libraries, especially Cannon.js.
5) What did you learn this week, if anything (and did you expect to learn it?)
This is my first time to ever implement graphics program using WebGL and related libraries. So I learned a lot from everything I did this week.
6) What is your individual morale (which might be different from the overall group morale)?
Iâm glad that we decided to use WebGL for development because everything about it is new for me. I am currently enjoy learning new stuff and it always feels great when I see the rendering succeed.
1) what were your concrete goals for the week?
Get the team to complete Phase 1, where a camera can move around in the game world and view static objects. My jobs are to assign tasks, keep track of progress, review and test pull requests. The development tasks includes:
2) what goals were you able to accomplish?
All above except the server loop and serializer.
3) if there were goals you were unable to meet, what were the reasons?
The server side development takes longer than what we expected, and we were not clear on what serializer we should use.
4) what are your specific goals for the next week?
5) what did you learn this week, if anything (and did you expect to learn it?)
Json might be enough for the scale of our game in terms of serialization. 3D models have many different standard formats and require a lot of effort to load them in.
6) what is your individual morale (which might be different from the
overall group morale)?
This is my last quarter at UCSD and I am fully dedicated to this project. I love games. I love indie games. I would like to experience what is like to develop one our selves.
1) what were your concrete goals for the week?
My goal is to write a serializer that compresses data to improve network efficiency, and a deserializer that recovers the data.
2) what goals were you able to accomplish?
I have finished an early and working version of serializer. And still working on a more compressed serializer.
3) if there were goals you were unable to meet, what were the reasons?
I was going to accomplish more⌠But I donât have enough time, and that I still have to learn the technology(Javascript) to finish my work. Also, our data structures and not determined yet, so I have to wait to start designing my serializer.
4) what are your specific goals for the next week?
Itâs yet to be determined⌠But I think next week I and other teammates will need to design our data structures and I could improve my serializer accordingly. Also next week I will pick up some tasks to help finish the game world and server communication.
5) what did you learn this week, if anything (and did you expect to learn it?)
I learned about javascript classes and also javascript function prototypes. These are very interesting and very different from other programming language. I didnât expect to learn it, but obviously for my serializer to work I have to learn about them.
6) what is your individual morale (which might be different from the overall group morale)?
My individual morale is that I try to finish my work on my own without needing people to help. This can reduce a lot of wasted time on communication and improve the efficiency of my team as a whole.
We are planning to make an asymmetrical multiplayer survival game.
The players will have two roles to play: God and Survivors. In each single match, there will be exactly one God and many Survivors. Survivorsâ goal is to cooperate to build the Tower of Babel and overthrow the God. Godâs goal is to stop Survivorsâ attempt by whatever means. For Survivors, the game will be similar to Minecraft and Donât Starve, where they need to find food, build shelters, fight monsters, and try to build the Tower of Babel at the same time. For God, the game will be similar to a RTS type of sandbox simulator and Plague Inc., where he/she could spawn monsters on the map and cast natural disasters to stop Survivors from their reckless goal.
Our game will combine the elements of survival and strategy, and provide an innovative gameplay experience. God canât fight Survivors directly, but only through strategic planning.
âMust Haveâ features: Survivorsâ survival system, including the vital status, the combat system, and the crafting system. The geographic features and resources system for the map/environment. Godâs skill system including placing monsters on the map to attack Survivors and casting natural disasters on the map with cooldowns and some restrictions. Monster AI.
âWould Be Really Niceâ features: Sanity and disease system, where instead of having cooldowns on Godâs skills, God can charge up his/her skills by collecting the suffering of Survivors. Rouge-like loot system, where Survivors gain random loot by killing monsters. Tutorial.
âCool But Only If Ahead Of Scheduleâ features: VR mode. Story. NPC and side quests.
Our group would mimic team settings in workspace. Major management roles of our group include a project manager and a senior engineer. The project manager is in charge of project planning, maintaining communication, and keeping track of progress. The senior engineer is in charge of designing the architecture and providing technical support for all group members.
The decisions shall be essentially made by all group members. Practice-wise, the PM shall collect ideas and consult with the senior engineer for technical analysis, and then assign tasks to group members. Engineers are encouraged to participate in and contribute to the discussion.
Communication is through group meeting in the lab and WeChat (a Messenger-like app).
The PM is responsible for checking the status of all group members, notifying obstacles, and arranging solutions by consulting with the senior engineer or corresponding group members. Developers should also not be hesitant to actively communicate with PM or other group members to resolve schedule conflicts or seek technical help.
The PM should produce the weekly group status reports.
Development roles include Gameplay Design, Graphics Engine, Networking API, Server-side Logic, Client, UI Design and Modeling/Art/Audio.
Gameplay Design: Xiaofan Lin, Shuyuan Ma
Graphics Engine: Xiaofan Lin, Shuyuan Ma, Haomin Wang
Networking API: Kai Li, Shuyuan Ma, Tianhui Cao, Lin Zhou, Xiaofan Lin
Server-side Logic: Kai Li, Tianhui Cao, Lin Zhou
Client: Tianhui Cao
UI Design: Lin Zhou, Haomin Wang
Modeling/Art/Audio: Tianhui Cao (Interested, but no experience)
We will be using JavaScript (ES7) as our main programming language. The server runs on Node.js and the client runs on web browsers. We will use the Net library (https://nodejs.org/api/net.html) of Node.js for socket level API, WebGL as the graphics engine, and ammo.js (https://github.com/kripken/ammo.js) for the physics engine.
Given the scale of our project, the language features, and the size of the team, we decided that we will not have a standalone QA nor use unit tests as our testing scheme.
We use Object Language structure to assign tasks as classes to each team member. Within a class, they will implement their own logic. When it comes to integration, we will make a temporary meeting with the persons who are part of the integration process and discuss about the use of the class and interface. Small logics should be tested by the person who is in charge of the class. Complicated logics should be tested by the temporary team.
At the base line, all functions must have a high-level description of its functionalities, logic, input, output, and error conditions. After testing and integration, we will collect them and organize them into a collective API document.
External player documentation (tutorial) is less important in terms of development. It should be done in the final stage and be ready before the demo.
Define a set of milestones with a specific definition of what each milestone is, what it means to complete each milestone, and when you expect to complete them. Define the milestones at two scales, a high level set of key milestones like integration and design freeze, and a low level set of weekly milestones.