GSOC 2019 - Light And Shadow Remastered

darshan3

New Member
Contributor
This thread is for the GSoC '19 Project: Light and Shadow Remastered.

Summary: The aim of this project would be to complete the basic gameplay mode which would be a fast-paced Capture The Flag set up in the Dark Fantasy world of Light and Shadow where you have to choose between the game’s two major factions and try to capture opposition's flag. The gameplay will also include features like in-game shop and magic wands.
Student: @darshan3
Mentors: @Skaldarnar, @SuperSnark, @Lucas Lima Vieira, @Iaron da Costa Araújo, @Nihal Singh, Cervator
Github: Project #17
Slack: #light-and-shadow
Blog: https://darshan3.github.io/
Proposal: https://docs.google.com/document/d/1oCJkH3_xWyyEUc85LJE6sklgDZvNIcZU2DI0OT5pz98/edit?usp=sharing
 

darshan3

New Member
Contributor
Minutes of the Meet 0 (26/05/19):

Github Board

The GitHub board was finalized. It was decided that cards with multiple subtasks will be broken down into smaller cards with individual subtasks as I work on them. A detailed plan for each week will be discussed in the weekly meetings.

Discussion of work done
The Light and Shadow repository contains two folders because of varying gameplay styles and old code. It was decided to merge both the codes and if needed, delete the files/code not being used. PRs #79 and #80 were reviewed.

Work to be done
It was decided to start working on this card. Weapons will be dropped when a player dies and destroyed after some time. Flag, if held, will be dropped and teleported to base after some time.

Game restarts
When the game gets over, there will a 60 seconds countdown before the start of next game. The host will have an override button to restart it manually.

There was also some doubt clearance on how to make the client-authority system to work.
 

darshan3

New Member
Contributor
GSoC Week 1 (27/05/19 - 02/06/19):

Blog post: https://darshan3.github.io/gsoc-week-1/

What have you achieved in the last week?

Player respawns at its base on dying. Inventory items and flag (except magic staff) are dropped at the dying spot.

What are you currently working on?
Handling Game Restart and Stats System

What problems are you currently facing?

None

List of PRs and opened/closed Issues:
Player falls in play area before selecting teams #81
Respawn and heal player on death #82
Handle inventory on death #83
 

darshan3

New Member
Contributor
Minutes of the Meet 1 (02/06/19):

How to handle Multiplayer:

Read code for JoshariasSurvival and its dependencies. Read this wiki.

Statistics and Restart System:
There was a lot of discussion for this. There are two possible options, implement a component and update it for all clients or implement a single entity which gets replicated for all clients. I have to look into the systems in place currently (the F2 one specifically) and see how replicate works internally. Make a list of possible design choices and share it with everyone before I start working on it.

Work to be done:
Work on this card.
 
Last edited:

darshan3

New Member
Contributor
GSoC Week 2 (03/06/19 - 09/06/19):

Blog post: https://darshan3.github.io/gsoc-week-2/

What have you achieved in the last week?

Added Statistics and Restart System. Setting Player Skins using SkeletalMesh instead of creating a new Entity.

What are you currently working on?
Fixing bugs in restart and statistics for multiplayer.

What problems are you currently facing?
Understanding how the events work in multiplayer. entities.getComponentWith(...) returning wrong entities.

List of PRs and opened/closed Issues:
Added Statistics and Game Restart Systems #88
Changing player skins through skeletal mesh #80

Minutes of the Meet:

entities.getComponentWith(ClientComponent.class) not working:

Try with other components and see what is exactly happening.
Check ThirdPersonRemoteClientSystem and ensureClientSideEntityOnHeldItemMountPoint systems.

We can create an API for custom characters so that HumanoidCharacters and LaS both depend on it to change skin, rather than using the same code twice in both places.

Other stuff for merging existing PRs was discussed.

Work to be done:
https://github.com/orgs/Terasology/projects/17#card-22550695
https://github.com/orgs/Terasology/projects/17#card-22550728
 

darshan3

New Member
Contributor
GSoC Week 3 (10/06/19 - 16/06/19):

Blog post: https://darshan3.github.io/gsoc-week-3/

What have you achieved in the last week?

Corrected incorrect setting of VisualEntities. Health Hud Fixes. Correcting Restart and Statistics implementation.

What are you currently working on?
Handling flags on drops and restarts.

What problems are you currently facing?
None

List of PRs and opened/closed Issues:
Fix for Incorrect VisualCharacter entity #3686
Fix getText() function in UIText #3689
Health hud fix for reconnects and restarts #90
Game Restart Implementation #91
Player Statistics Implementation #92

Minutes of the Meet:

Discussion on why many things broke due to single trailing \n character.
Currently flags are drops only on throwing with q and not in other cases. Look into a general approach.
Make the sun never set.
Discussion for what happens at evaluation.

Work to be done:
https://github.com/orgs/Terasology/projects/17#card-22550728
And look for general approach for dropped items.
 

darshan3

New Member
Contributor
GSoC Week 4 (17/06/19 - 23/06/19):

Blog post: https://darshan3.github.io/gsoc-week-4/

What have you achieved in the last week?

Handling flags on drops and restarts.

What are you currently working on?
Display restart buttons only to clients.

What problems are you currently facing?
Permission manager is not whitelisted.
Not being able to rotate the player after teleporting.

List of PRs and opened/closed Issues:
Teleport flag after delay on drop #93
Clear game over screen on close #95
Teleport Held Flags on Restart #96

Minutes of the Meet:
Try something like impulse event to rotate? Or see if something can be done through CharacterStateEvent.
Put TeamBalance to Backlog.
How to implement Towers? Check GooeyDefence code and see how it's done.

Work to be done:
Restart Permission and read about Towers.
 
Last edited:

darshan3

New Member
Contributor
GSoC Week 5 (24/06/19 - 30/06/19):

Blog post: https://darshan3.github.io/gsoc-week-5/

What have you achieved in the last week?

Restart button now shows only to those with permission. Fixed VisualEntityTest. Merged old PRs.

What are you currently working on?
Global Entity System and Towers.

What problems are you currently facing?
Permission manager is not whitelisted.
Not being able to rotate the player after teleporting.

List of PRs and opened/closed Issues:
VisualCharacterSystemTest Fix and Whitelist PermissionManager #3695
Restart permission #97

Minutes of the Meet:
The game needs a GlobalEntity to save game statistics and stuff.
The tower system needs to be tweaked to handle everything on one block because at the moment it won't. It's also a bit of work to extract the towers into their own module because a lot is tied to other GD stuff.
What sort of towers should I aim for, multi block and big towers? I was more inclined towards using Rooks as towers, just buy them and place them.
We also discussed skeletal mesh only towers and how tough it would be to implement them.
nihal111 suggested: There is a block out of which the tower grows out. Damaging and destroying the block in effect destroys the entire structure.

Work to be done:
Global Entity implementation.
For towers:
Check multiblock and how it works. For growing towers, check Traps.
 
Top