Status Report 5/29

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.

Individual Report – Shuyuan Ma

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.

Individual Report – Lin Zhou

1) What were your concrete goals for the week?

  • Integrate animation into game with Haomin Wang
  • Add weapon(spear, bow and arrow) to the attack animation
  • Design different appearance for players

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?

  • Add spear to the attack animation
  • Add animation of throwing
  • Add another monster and other items

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!

Individual Report – Haomin Wang

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.

Individual Report – Tianhui Cao

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

Individual Report – Kai Li

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



Project Specification

Project Description

  • What kind of game are you planning to build?

We are planning to make an asymmetrical multiplayer survival game.

  • What are the goals of the game, how do players win, how do they lose?

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.

  • What are the interesting or unique aspects to your game?

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.

  • What are the list of features of your game? Prioritize them into at least three categories: “Must Have”, “Would Be Really Nice”, and “Cool But Only If Ahead Of Schedule”.

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

Group Management

  • What are the major roles in your group’s management?

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.

  • How will decisions be made? By leader, consensus?

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.

  • How will you communicate? Email, meetings in the lab, discussion board?

Communication is through group meeting in the lab and WeChat (a Messenger-like app).

  • How will you know when you’re off schedule, and how will you deal with schedule slips?

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.

  • Who will produce the weekly group status reports?

The PM should produce the weekly group status reports.

Project Development

  • What are the development roles and who will handle them?

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)

  • What tools will you use?

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.

  • How will you do testing?

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.

  • How will you do documentation (both internal group documentation as well as external player documentation)?

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.

Project Schedule

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.