Implementation Master Of Oreon

Mike Kienenberger

Active Member
Contributor
Architecture
GUI
Name: MasterOfOreon world management interface
Summary: Non-minecraft DF/DK-esque interface for controlling minions and managing the world
Scope: Mod building upon Miniions and others
Current Goal: Provide a useable interface that gets us away from 1st-person minecraft clone and closer to DK/DF games.
Phase: Design
Curator: MikeKienenberger
Related: Miniions

After playing KeeperRL, I realized that our current interface, copied from Minecraft, really leaves much to be desired for managing anything other than yourself.

So I shamelessly copied the interface look and feel from KeeperRL and am customizing it for our own needs as a starting point. This module will provide just the interface, leaving Miniions and other modules to implement the actual do-something-stuff. This also frees Miniions and other dependent modules from constantly trying to keep up with the latest UI changes. Instead, alternate UIs can interact with Miniions and compete for the title of "Final user interface". That, and I know that I'm more than capable of taking a good interface and ruining it, but at least we'll start off on the right foot.

For grins, here's it running under both regular Terasology and AWT:
Screenshot - design-menu.png

Screenshot - summon-menu.png
 

Marcin Sciesinski

Code ALL the Ages!
Contributor
World
Architecture
Good news. In the upcoming days I'll be moving "player health" to a separate module and make it optional. I first have to discuss this with Immortius, but I'm sure will be fine with that.
 

Naman Tiwari

New Member
Contributor
As evident from the thread's 'Inactive' label, the development of this module has been ceased for a while now, even the Miniion module on which MOO relies is deprecated. So, I would like to take up the task of renovation of this module as a GSoC project this summer. I have put together a draft proposal for the same and would love to get some feedback and suggestions for improvement. The Google Doc version of the proposal is available here.
 
Last edited:

Mike Kienenberger

Active Member
Contributor
Architecture
GUI
I've quickly read through your proposal. I think you want to reduce the scope. Many of your one-week tasks seem too large to complete in 25-40 hours. Maybe some of the other developers could also take a look at that?

I will try to find time to comment in more detail later this week, time permitting.
 

Mike Kienenberger

Active Member
Contributor
Architecture
GUI
Caveat: I have not done anything with Terasology in several years. I don't know what the current state of the engine and modules are.

Here are some thoughts about your proposal:

Behaviors for creature models and animations.
I would recommend you focus right away on learning what the Behavior module is capable of doing, and suggest you do this before you finalize your proposal. Behavior is going to be the system that makes or breaks your project, and will determine where you need to allocate your time. It was in its infancy when I stopped working on Terasology, so I don't know what the current status is.

Scenario for marking regions and attaching them to specific events in the village.
It's not completely certain to me what you're hoping to extract from Scenario (not previously familiar with that module and it doesn't seem directly applicable to your project from what I am reading), but there used to be code in the engine for selecting and highlighting block selections. I'm also not sure if that's relevent for what you are doing, but it might be a better fit, assuming it is still around.

Use the BehaviorSystem for getting the desired behavior from Oreon like when placed in a region marked for a specific job.
I think you want to break down this task into many specific subtasks. It is not likely to be something you can do in a single week, especially if you are also trying to do a second task of "Oreon animation changes to fit the ‘scenario’." I would also try to run your specific tasks by someone knowledgeable about BehaviorSystem and see if they think it will work with the current system. Doesn't look like @synopia has worked on it for awhile, but someone new to me (@dkambersky) seems like they have done a lot of work with it recently.

Implement a tutorial module and make a video showcasing various features and gameplay tactics.
I'm not sure what you are planning to use as the framework for a tutorial module, but that sounds like it could be another project in itself. You might want to try breaking this down into smaller tasks and see if it's really going to be feasible in that timeframe. A video might be a week's work all by itself by the time you decide what you are going to put in it and actually film and edit together all of the footage. @Cervator might have ideas on what's been done for tutorials in the past.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Great to see you again @Mike Kienenberger and welcome back! :D

Agreed on behaviors in all its forms being the main chunk of work that'll be involved with this project :)

The Scenario module is probably in part a third or fourth round of iterations since the olden days on the concept of marking an area then attaching some significance to it. Light & Shadow had you defining activity zones for creatures like "dig here" or "move there" then Scenario further hooked up event triggers, conditions, and all kinds of fun things. I figured it might be useful for marking rooms and such, although maybe only as sample code to look at to understand how to mark areas and hook up triggers

Tutorials in this context typically involve making a quick demo video and a few wiki pages explaining how to extend a system for a developer - less so a tutorial for helping a player learn to use the game. It still could take quite a while to do really well though!

Awesome to have some more feedback flowing around, do keep it up as time allows, very much appreciated :thumbsup:
 

Naman Tiwari

New Member
Contributor
Renovation Of Master Of Oreon
The GSoC 2018 overhaul resulted in many new features in MOO and also made it easier to implement even more. This post summarizes all that has been accomplished and that could/should be done in the future.

Accomplished :
  • Integrated the new tree based implementation for the AI/Behavior of the Oreons for acquiring various tasks and performing them.
  • Various types of tasks can now be added to the Holding for the Oreons to pick-up. These include planting and harvesting crops, constructing buildings like the Diner, Storage and the Laboratory, upgrading and guarding these buildings, performing research tasks in the lab, various attribute enhancing tasks like training intelligence and strength, some required tasks like eating in the Diner and carrying resources from the Storage to a building where they are required.
  • Implemented a health and hunger system for the Oreons. Every time the Oreon performs a task it loses health and increases its hunger level which must be taken care of by the user. Oreon would visit a Diner when hungry which must have the required crops in its chest in order to serve the Oreon, if not present the crops will be fetched from the Storage by an Oreon if available there.
  • Research task can be added by reading the recipes from the books in a laboratory and then placing the book into the pedestal in addition to the required items to be added to the building's chest.
To be done in the future :
  • Area selection does not work correctly in multiplayer. Starting an area selection on the client instance does render the selected block instead the server instance can change this selected area by moving around their camera. There is an issue for this in the MOO repository.
  • Integrating Flexible Movement in the Behaviors pathfinding logic. Currently the Oreons get stuck a lot while making their way through buildings and farms performing different types of tasks which makes them abandon an assigned task several times before they can reach the required location.
  • Currently there are three buildings with their corresponding Structure Template implemented i.e. which can be currently constructed in the village. Various buildings required by the Oreons for performing a task like the Hospital, Gym and Classroom are yet to be added. The buildings can also be upgraded, so separate STs for these upgraded versions are required too. Some other new buildings could be, Bedrooms, King's Lair.
  • New crops and other types of potion blocks are to be implemented in order to add new type of research tasks. The newly implemented crops can be obtained by getting the Oreons plant them, which would be then be harvested and stored in the Storage building's chest. New research recipes can be created using these blocks which would result in new potions. These potions can be used to enhance Oreon attributes and be required for accomplishing other tasks in the village like upgrading buildings etc. Some new crops can be,
    • Milk Plants : Used in the Diner
    • Coffee : For vigilance research
    • Walnut : For intelligence
    • Spinach` : For strength
  • This was a suggestion made by @Cervator on Slack to break down task into smaller chunks which would enhance the game-play. So, tasks like constructing buildings would require Oreons carrying resources from one place and placing them at the location required.
  • New tasks for the Oreons like a chef in the Diner, Doctor in Hospital etc. This would also require a cleaner way to select the area inside a building for the Oreon to perform a task in.
  • Other open issues can be found in the Master of Oreon repository.
So, given the current state of the module a myriad of new content like tasks, buildings, research recipes, resources to collect and potions can be created to ehance the game-play experience.

Other resources :
Blog post summarizing the work done : https://naman-sopho.github.io/2018-08-07-GSoCWrapUp/

Showcase Video :
 
Top