GSOC 2019 - Metal Renegades: World

AndyTechGuy

New Member
Contributor
This forum post will act as a weekly log for this project, along with matching posts on the blog.

 

AndyTechGuy

New Member
Contributor
May 18th - May 25th, 2019

  • What have you achieved in the last week?
This week was primarily a preparation week. The github project board was filled with tasks according to the proposal. This post was created, along with a blog to provide extensions on the information provided here.
  • What are you currently working on?
Now that the initial planning is done, a finalization into a realistic order of tasks needs to be completed. As well, the "Metal Renegades" project is being shared by two developers, so this final order must be agreed upon by both parties.
  • What problems are you currently facing?
None right now :)
  • Is anything blocking you from making progress?
The organization between me and Wabadump is the next major hurdle before work can begin.
  • List of PRs and opened/closed Issues
N/A
  • In the weekly meeting
In the meeting, it was discussed how to handle the issue of world generation, and in a broader sense the entire project, being split between two parties. It was eventually settled that both developers will continuously make PRs to the same module, and keep in communications that way. As well, there was a doodle poll made to change the meeting time for next week.
 

AndyTechGuy

New Member
Contributor
Week 1: May 26th - June 5th, 2019 (meeting time changed & meeting skipped)

Blog Post
  • What have you achieved in the last "week"?
I have started work on the AI system. A stand-in gooey model has been imported and programmed with a simple behavior, to follow any player that passes nearby. Work has also started into AI integration with DynamicCities, starting with finding building positions for AI spawning. As well, behaviors that are day-night cycle sensitive have been started.
  • What are you currently working on?
I am continuing work on completing the AI system basics, including spawning within cities, and some basic behavior 'building blocks' to build more complex behaviors later on.
  • What problems are you currently facing?
I had expected it to be simpler to extract the positions of buildings from DynamicCities, but this turns out to be more of a challenge then I thought. This will require a PR against DynamicCities itself in order to work properly.
  • Is anything blocking you from making progress?
Nothing at the moment :thumbsup:
  • List of PRs and opened/closed Issues
https://github.com/Terasology/MetalRenegades/pull/3 "Add base AI characters" [WIP]
  • In the weekly meeting
In the meeting this week, the problem with building positions was discussed. It was concluded that out of the fired events listed here, BuildingEntitySpawnedEvent can either already provide building position, or DynamicCities should be altered to provide position in this event. After this, we discussed about the potential of the AI agents in cities, most prominently the idea of having each agent claim a building as their 'home', where they return to at night. At the end of the meeting, the possibility of replacing the gooey stand-in model with an actual robot model was discussed.
 
Last edited:

AndyTechGuy

New Member
Contributor
Week 2: June 6th - June 12th, 2019

Blog Post
  • What have you achieved in the last week?
    • AI system work has continued, with the original gooey model & behavior becoming split into four separate behaviors and appearances.
    • An integration with OreGeneration has been added to the dynamic world generator
    • The issue of finding building locations has been solved, with the addition of a LocationComponent to building entities upon generation.
  • What are you currently working on?
    • Development of time-based behaviors is still in progress. A component allowing characters to gather time data has been added, but a proper implementation of this in a behavior logic switch is still in the works.
    • Currently gooey spawning is based on the time cycle. I am working on making each gooey have 'ownership' over an individual building instead.
  • What problems are you currently facing?
    • There are no major problems currently
  • Is anything blocking you from making progress?
    • There are also no major roadblocks at the moment
  • List of PRs and opened/closed Issues
 
Last edited:

AndyTechGuy

New Member
Contributor
Week 3: June 13th - June 19th, 2019

Blog Post
  • What have you achieved in the last week?
    • Agents can now spawn inside buildings! Every building in the city can provide shelter for 1-5 characters inside, which spawn on building creation.
    • A bug with one of the city buildings was fixed, the mining buildings now spawn properly.
    • A pull request for time-based behaviors has been made, adding the component needed for time tracking.
  • What are you currently working on?
    • Now that characters spawn within a defined building, I'm now working on having these characters interact with the city and with each other.
  • What problems are you currently facing?
    • An oddity was discovered with the 'stray' behavior tree, where each character interferes with every other character. It causes characters to have a very unnatural studdering motion.
  • Is anything blocking you from making progress?
    • The problem mentioned above makes it very difficult to develop behavior further, as the 'stray' behavior is a common building block for more complex behaviors.
  • List of PRs and opened/closed Issues
 
Last edited:

AndyTechGuy

New Member
Contributor
Week 4: June 20th - June 26th, 2019

Blog Post
  • What have you achieved in the last week?
    • Agents spawning pull request was finalised and merged.
    • Time-sensitive behaviors pull request is now at a mergable state, with the return home behavior added to all gooey characters
    • The addition of nocturnal gooey, which only comes out at night.
    • Slight performance tweaks to spawning, increasing the gap between spawn checks and reduces spawn buildings to exclusively residential buildings.
  • What are you currently working on?
    • The next step in AI development is need-based behaviors, which will drive characters to interact with parts of the city, the world, and with each other.
  • What problems are you currently facing?
    • The Terasology/MetalRenegades module itself seems to be suffering from performance issues, which seem to go up over time. It is unknown wheter this is due to DynamicCities, Behaviors, or another module. It is very noticable on my laptop, which is less powerful than my computer.
  • Is anything blocking you from making progress?
    • Not at the moment :)
  • List of PRs and opened/closed Issues
 
Last edited:

AndyTechGuy

New Member
Contributor
Week 5: June 27th - July 3rd, 2019

Blog Post
  • What have you achieved in the last week?
    • The approach to time-sensitive behaviors has been changed based on review, now works with an action/system rather than component/system.
    • The implementation of final characters has begun, with a needs-based behavior approach. These characters have replaced the earlier five characters inside of the spawning system.
    • The need for food has been added to these characters, which is satisfied by moving to the closest marketplace. These marketplaces are identified via a 'FoodSourceComponent'.
    • A vertical offset has been added to character spawning, preventing them from spawning in the ground.
  • What are you currently working on?
    • Continuation of needs-based behaviors, each of which will be satisfied by a different action.
    • Additions to the world generator, which adds empty entities at points of interest (a WaterSourceComponent at a lake, for example).
  • What problems are you currently facing?
    • Just like last week, there seem to be some performance issues within the module. They are slightly improved with the performance tweak PR, but they are still noticable.
  • Is anything blocking you from making progress?
    • Not at the moment :)
  • List of PRs and opened/closed Issues
 
Last edited:

AndyTechGuy

New Member
Contributor
Week 6: July 4th - July 10th, 2019

  • What have you achieved in the last week?
    • Finished all needs for need-based behaviors (thirst, social, rest, shelter)
    • Social need is the first instance of characters interacting with each other, when a character requires an interaction it will find another that needs an interation and they will travel towards each other.
    • Working on a pathfinding integration that will ensure that characters do not get stuck when travelling for needs
    • Added a well building to cities for the thirst need, which branched into investigation of problems with structure template placement.
  • What are you currently working on?
    • Finish remaining tasks with need-based behaviors, including pathfinding and needs UI.
    • Fix bugs with needs, most prominently the tendency of characters to get stuck.
  • What problems are you currently facing?
    • A major bug with structure template placement is now very noticable with the addition of wells, they do not spawn properly on their set parcels and at times there are more than a dozen spawning improperly in the sky or in the ground.
  • Is anything blocking you from making progress?
    • Paths from pathfinding seem to throw errors when saved in a characters MinionMoveComponent, preventing further progress in this area.
  • List of PRs and opened/closed Issues
 
Last edited:

AndyTechGuy

New Member
Contributor
Week 7: July 11th - July 17th, 2019

  • What have you achieved in the last week?
    • Need-based behaviors is now at a mergable state, with repetitive code segments combined into common actions/classes.
    • Split off final character creation into a different pull request. With these two changes, the need-based behaviors pull request is now half of the original size.
    • The pathfinding issue has been located. When saving the component to the character entity, the path is copied via ListCopyStrategy. This class copies all lists as ArrayLists, so an error is thrown when an ArrayList is saved to a Path field.
  • What are you currently working on?
    • Fix the list-copying bug with paths, either by changing the Path object or changing ListCopyStrategy.
    • Writing a detailed module description for the readme
    • When the two above are done, starting on factions!
  • What problems are you currently facing?
    • The issues with structure templates and pathfinding still persist from last week.
  • Is anything blocking you from making progress?
    • The problems above are still a bit of a roadblock, but they are being worked on.
  • List of PRs and opened/closed Issues
 
Last edited:
Top