GSoC 2018 - Renovation of MasterOfOreon

Naman Tiwari

New Member
Contributor
#1
This thread serves as an overview for all the work being done towards the MasterOfOreon GSoC Project.

Summary : Renovation of Master of Oreon is an extensive refactor of the current Master of Oreon module. The vision behind MOO is to create a game-play scenario akin to a mixture fortress management of Dwarf Fortress and wizard research in Dungeon Keeper, which will be made available through this project.
Mentors : mkienenb, arpan98, vampcat, smsunarto, iojw, gabrielxia
Student : Naman Tiwari(Naman-sopho)
Slack : Naman-sopho, #master-of-oreon
Github : Project Board
Blog : naman-sopho.github.io
 
Last edited:

Naman Tiwari

New Member
Contributor
#2
Week 1
Blog Post
  • What have you achieved in the last week?
In the past week I removed the dependency of MasterOfOreon on the Miniion module. It was a minor code change though, just deleting the concerned code and replacing them with comments for better understanding later. I also implemented a resource consuming spawn for Oreons through a portal placed in the world. This involves a UI screen popup which is activated when the player interacts(pressing `e`) with the portal. The player can then choose from among the three types of Oreons available to spawn, based on the availability of required resources in the player's inventory the Oreon is spawned in the world. But the Oreons spawned in the world don't do anything for now, they just stand in the portal after spawning.​
  • What are you currently working on?
I am currently working on modifying the Oreon prefabs and the behavior files to use the new behavior trees implementation. The behaviors of the Oreons should modify based on the task assigned to them and also if they have a requirement like low health or hunger. After the behaviors are correctly implemented the Oreons would walk around after spawning, yay :).​

  • What problems are you currently facing?
None right now.​

  • Is anything blocking you from making progress?
Nope. :)

  • List of PRs and opened/closed Issues
PRs :​

Issues :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
    2018-05-14-204720_1920x1080_scrot.png
    2018-05-14-204954_1920x1080_scrot.png
 
Last edited:

Naman Tiwari

New Member
Contributor
#3
Week 2
Blog Post
  • What have you achieved in the last week?
The last week was all about getting the Oreons to "behave". The Oreons now use the new behavior tree implementation, they follow the critter while looking for a task to perform every second, if a task is found in the Oreon's Holding, it moves towards the target and the perform_task node of the BT kicks in, which is just a placeholder for now. In order to test if the behaviors were actually working, a basic implementation of the Task System and the Holding System was also done. The Task System looks for a task in the Oreon's holding and assigns it one, when requested. Task system is also responsible for adding new tasks to the correct Holding. The new task addition involves using the Selection Tool to mark an area, which then triggers an UI popup from which a task can be selected for the area. The Holding System, can be thought of as a information center consisting everything there is to know about a village, currently it consists of a queue of all available tasks.​

  • What are you currently working on?
I am currently working on a feature to make the area texture persist after task assignment, until the task is completed. This week's agenda also includes implementation of a eating task, a task which the Oreon would perform if it is free and is "hungry".​

  • What problems are you currently facing?
Trying to get the block selection to render correctly in multiplayer is what I am stuggling with right now. The current implementation of the BlockSelectionSystem does not work correctly in multiplayer, I tweaked it a bit by adding replicate annotations where required and adding NetworkComponent to all necessary entities. But, so far the area only renders in the client for a while and then vanishes. Also, the CameraTargetChangedEvent is sent by a localPlayer after the selection process is begun but still this is attached to the host client's held item, so if a connected client tries to start a selection, the area of the selection can be changed by the host client by moving their camera.​

  • Is anything blocking you from making progress?
Yep, the battle with the multiplayer implementation :)

  • List of PRs and opened/closed Issues
PRs :​


  • Something else (pictures of new content, code snippets, new wiki content, …)
Here is a 'crude' gif which I recorded while trying to implement a suitable UI for task selection(sorry about the noob standard of the gif, used byzanz for the first time)​
 
Last edited:

Naman Tiwari

New Member
Contributor
#4
Week 3

  • What have you achieved in the last week?
This week I implemented some advanced tasks for the Oreons, which would be taken up by them when none of the primary tasks(plant, build, guard) are available. These tasks include eat and sleep. After performing every task the Oreon's hunger increases and if no other task is available it looks for a Diner in the village and walks to it. Similarly if no task is available for the Oreon at night it goes to sleep​

  • What are you currently working on?
Currently I am working on some more tasks that can be taken up the Oreon while idle, like training for increment in different attributes. Also, I am trying to integrate the WorldlyTooltip module to render the different Oreon attributes in the tooltip.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​


  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​
 
Last edited:

Naman Tiwari

New Member
Contributor
#5
Week 4
See this blog post for a detailed description.​

  • What have you achieved in the last week?
    • Oreon training for improving their attributes Strength and Intelligence.
    • Delayed Notifications, so that the player is not notified of missing buildings every time the Oroen's BT is run.
    • Tooltip for the Oreons.

  • What are you currently working on?
Currently I am working on the health system for the Oreons, this would handle scenarios like deteriorating the health of an Oreon after it has been hungry for a while.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​
 
Last edited:

Naman Tiwari

New Member
Contributor
#6
Week 5
See this blog post for a detailed description.​

  • What have you achieved in the last week?
    • Reduction in Oreon health if it has been hungry for a while.
    • DeathSystem for the Oreons to play the death animation and destroy its entity when Oreon reaches zero health.
    • Added name tags to the Oreons and used this name in the notifications.
    • An Oreon which cannot reach its assigned target now abandons a task, which is then added back to the holding.

  • What are you currently working on?
Currently I am working on the task performance logic i.e placing the blocks in the worlds corresponding to the task assigned.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​
 
Last edited:

Naman Tiwari

New Member
Contributor
#7
Week 6
See this blog post for a detailed description.​

  • What have you achieved in the last week?
    • Blocks are now placed in the world after the Oreon finishes a task.
    • At work animations for the Oreons are now played while it is working.
    • Added a Diner building using the StructureTemplates which is placed at the end of a build task

  • What are you currently working on?
Currently I am working on building upgrade system.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​
 
Last edited:

Naman Tiwari

New Member
Contributor
#8
Week 7
See this blog post for a detailed description.​

  • What have you achieved in the last week?
    • Buildings can now be upgraded
    • Added a new type of Resource `Cookie Crops`
    • A Diner now requires Cookie Crop to be present in its chest to serve an Oreon
    • A new Storage building where the player can drop blocks to store them in a chest in the building

  • What are you currently working on?
Some bug fixes here and there.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​
 
Last edited:

Naman Tiwari

New Member
Contributor
#9
Week 8 & 9

See this blog post for a detailed description.
  • What have you achieved in the last two weeks?
    • Area selection texture is now rendered according to the task assigned.
    • Implmented a new `Task` object.
    • Implemented type handler for `Queue` and the new `Task` objects.
    • Fences are now constructed around the selected area.
  • What are you currently working on?
Research task implementation.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​
 

Naman Tiwari

New Member
Contributor
#10
Week 10

See this blog post for a detailed description.
  • What have you achieved in the last two weeks?
    • New Laboratory building
    • Research task logic
    • Animated ST construction
  • What are you currently working on?
An overview system for the village, which would display all the village related information in one place.​

  • What problems are you currently facing?
None​

  • Is anything blocking you from making progress?
No​

  • List of PRs and opened/closed Issues
PRs :​

  • Something else (pictures of new content, code snippets, new wiki content, …)
See this blog post for further details.​