RMS Home | Guide Writing | Test Server | New Servers | Latest Reviews

Author Topic: Mob Controller  (Read 2675 times)

0 Members and 1 Guest are viewing this topic.

Offline PokeROGaming

Mob Controller
« on: Apr 18, 2021, 06:01 pm »



Hello RMS, a short story here for those interested in mob controller systems.



[Intro]
My name is Sung, I have been working on Project Pokemon for many years now. This is a project which I have invested thousands of hours into its development. It has been a true journey from start to
finish. My goal was to create an authentic Pokemon experience that brings a unique Player VS Monster mechanic that is different from all other private servers. Putting myself in the shoes of an adventurer, there really is nothing like having a great team to progress with. This project aims to have you build your team of Pokemon, utilziing their best skills to help you conqueor content along the way. I just wanted to share my experience and struggles throughout this development for any that are interested in how it works.


[Mob Controller System]
For the longest time, it has been a real struggle of finding the right method of utilizing custom monsters. Emulators the last few years offered options such as Pets and Homunculus.

There are always challenges when it comes to implementation and customization. Some of the limitations I encountered during the development process:

Pets:
  • Limit of having one pet at a time
  • Invulnerable and cannot be killed - Completely destroys the mob vs mob interactions that would be possible
  • Using a pet incubator or a command to summon Pokemon is not an authentic experience of summoning
  • No flexibility of skill damage control
  • Skill limitations as not all work as petsupport skills
  • Passive AI - Needs to wait for player to attack or be attacked to support - No Aggro options1

Simply put, a pet system is limited and not able to achieve custom monster control we are looking for.

Homumculus system is far superior in the ability to customizing skills, leveling up, evolving etc. It is a much cleaner way to go. We still faced lots of challenges:

Homunculus:
  • Client compatability issues
  • Skill automation, AI config challenges
  • Limitation to one Homunculus - Screws over Creators existing Homunc usage
  • Preventing usage of custom Homunc in PVP/WOE without tampering with existing Homunc


At one point there wasn't a system we could have used for proper integration unless heavy source modifications were made. With heavy source modifications, GIT pulls/svn updates became messy and  it became difficult to implement updates throughout the years as the process was not seamless. The project was put on the backburner. There was some promise into the "Setmobdata" options but they were still premature at the time of consideration.




[Mob Controller System - 2021 Update]
As the team all went separate ways and got busy with life, the project was on hiatus for a few years. With Covid-19 being unannounced to the world which caused lots of "work from home and stay at home protocols", I suppose there was no better time to check back into things from where they were left off.


[Choosing the right emulator]
With so much time passing, there were obviously lots of changes that had happened while we were away. We had always used rathena as our go to emulator as all of our designs were built around their source code and coding style. The first thing we did was look into the "promising" mechanic of setmobdata and to see how far in development it had undergo. For those who follow the developmental side of things, a huge thanks to Annieruru for addressing mob controller issues and systems. She had built her own mob controller system which rathena eventually implemented to some extent, but to this day, it is still not fully operational.

We had decided to start with Rathena first, but ended up having an issue where certain data could not be retrieved or set using "setmobdata" script commands. Issues we ran into were:

Rathena:
  • Not all setmobdata variables worked the way we wanted to for our project
  • Unable to retrieve killerrid data on regular monster deaths unless event label was attached - this means if the player did not hit the monster, experience and loot were not calculated as if a player had done so. @autoloot features would not work and experience was not gained


We decided to give Herc a try as Annieruru was the pioneer of mob controller systems there. Although all of our systems would need to be rebuilt and re-done, we needed to test the emulator to see if mobdata varialbes and killerrid calculations worked properly. In the script_docs, Herc notes that a Masteraid and Mastercid are both available and attachable to the monsters you summon, this was a light bulb moment for our team.

We now have access to the following features which complete the system we aimed to implement and allow for customizations at almost every level.

Possibilities now include:
  • Players can control the aggresion of Pokemon - Passive/Aggro AI
  • Players can summon more than one Pokemon to assist
  • Pokemon Attacks/Skills can now be adjusted and improved using variable based data
  • Pokemon can be attacked by other mobs, which means pokemon battles are possible
  • Pokemon stats can be adjusted using variable based data
  • Support skills and attack skills all work because of the slave/master IDs
  • Traditional Homunc + pet system are untouched, no rebalancing issues required for vanilla style gameplay
  • Cleaner system of summoning by just hotkeying the pokemon on your hotkey bar and summoning it right from the ball OR returning it by clicking the ball again
  • Attached Killerrid means when your Pokemon do the killing, the player is attached and receives all EXP bonuses/autoloot features/event label specifications


TLDR; Mob controller systems have come a long way since I started development. For those interested in doing customizations to monsters, there has never been a better system available to do it then now. I wanted to share my experience as I have been working on this for a long time, I am happy to help anyone who is also working on similar monster modifications.




« Last Edit: May 26, 2021, 01:03 pm by yC »

Advertisement

Offline sufiasri

Re: Project Pokemon - Mob Controller
« Reply #1 on: Apr 19, 2021, 01:41 am »
I think 2 years back I saw Pokemon theme Ragnarok Online. It was heavy custom and the town look so dam Pokemon world, no longer Ragnarok Online (saw form the picture). Im nbot interested at that time, however if you gonna launch it soon, I probably gonna try it.

Offline PokeROGaming

Re: Project Pokemon - Mob Controller
« Reply #2 on: Apr 22, 2021, 12:43 am »
https://youtu.be/S5TkrPIaWxk

Teaser Video showing capabilities of Aggressive AI on monsters. They utilize skills that can be set in the mob_skill_db2, as well as summoning via callfunc item_usable.


Offline Eiponpon

Re: Mob Controller
« Reply #3 on: Jun 05, 2021, 04:39 pm »
I saw the vid but still dont get what pokemon has to do w/ it