Jump to content
Oriana

Could Someone Give me Advice on Customizing Game Mechanics for Private Server Development?

Recommended Posts

Hello Everyone ☺️


I hope you are doing well I am currently working on a server that is private and learning about how to customize game mechanics to improve the user experience. As I start on this trip, I am looking for advice and ideas from the community; particularly those who have already undertaken similar initiatives.


I have a background in software development and have been attracted by gaming dynamics for some time. After researching other private server frameworks; I chose herculean because of its flexibility and the strong community behind it. My goal is to produce a distinct gaming experience that keeps the core of the original while providing new aspects to keep players interested.

 

 

  • I want to improve NPC interactions to make them more dynamic. What are the best practices for altering NPC scripts to provide more diverse chat options or unique quests? Are there any special functions or scripts in Herculean that help with this?
  • Finding the correct balance between game mechanics is critical for keeping players engaged. I would love to hear your ideas on how to handle this. Are there any specific measurements or player feedback tactics you would propose implementing to adequately assess balance?
  • I am thinking about introducing seasonal events and special in game activities. How can I use Herculean event system to generate intriguing, limited time content?. What are some successful events you have used in your projects?
  • I understand how important player input is for a successful server. How do you collect and analyse input from your player base? How will you prioritise modifications or updates based on this feedback?
  • As I add new features, I want to make sure that performance remains ideal. Are there any unique tools or approaches you employ to profile and optimise performance on a Herculean based server?

 

 

Also I explored some topics related to this https://board.herc.ws/topic/22865-new-custom-item-sprite-powerbicourse-not-appearing-when-worn/#comment-122062 but I did not get the sufficient solution of my query so I would really want to get some help from a more experienced person

 

I am excited to learn from the experiences and perspectives of this community. Any tips; resources; or examples you can provide would be extremely helpful. I am particularly interested in learning about your struggles and triumphs; as well as any mistakes to avoid during the development process.


Thanks in advance for your assistance

I look forward to receiving your replies and, possibly, cooperating with some of you as I continue on this exciting project.😊😊

Share this post


Link to post
Share on other sites

Hello and welcome to Hercules :)

 

I can't answer all of those topics, and I think some of them would be really dependent on your project/team (like how to prioritize -- you can use general software development techniques, I guess, but it really depends on your team).

 

But, let me try to give some tips:

 

1. I am not sure what you mean by "improve NPC interactions", but everything boils down to coding your changes. I think the best place to go for is to read scripts and check the commands at https://github.com/HerculesWS/Hercules/blob/stable/doc/script_commands.txt

 

This will tell what you can do with the script engine, and if it is not there, you can go to source next to implement what you need.

 

2. For seasonal events, you can either use time commands to enable/disable stuff, or simply enable/disable stuff during server maintenance. Depends on what you are trying to accomplish, but Hercules has events for dates.

 

3. For performance, I usually start thinking about how much load my changes would cause based on what they are. But I think you can use any performance tooling that works for C... I haven't tried those though, so I can't give a suggestion there.

 

But for example, avoiding your npcs/map-server running lots of SQL queries -- which would block the process -- is one kind of thing that is easy to note that would be bad and should be avoided

Share this post


Link to post
Share on other sites

For dynamic npcs, one can start with a basic conversation to familiarized with the script engine and then develop until LLM conversations I guess. I'll share some ideas and then resources I have been noticing from some RO developers.

- First, familiarize on the mes, npctalk commands. Script commands documentation covers most of it.
- Then, Hercules codebase shares many examples and uitilies. One I recommend is doc/sample/npc_test_pcre.txt. Check the subfolder for more, then the npc/ folder for many other examples. Searching for key terms or *script_functions one is interested in could be a thing.

- If more development is needed, plugin system covers most. Studying the examples plugins and perhaps some other open source shared repositories could provide many insights on how it works. Querying the db may be possible but take note on the observation from KirieZ

- After familizaring with the plugin system, possibily using a Python, Go or whatever hook on it and connection with favorite LLM implementation may be possible. How secure, performant or gameplay satisfactory and others may vary by developer.

Check those two links
https://www.reddit.com/r/RagnarokOnline/s/xpYwY2ZOCq
https://github.com/lenaxia

For an implementation with players. Tweaking it for NPCs may be possible.


Some other good developers repositories, for reference:
 

https://annieruru.blogspot.com/2019/01/scripting-guides.html?m=1

https://github.com/dastgirp/HPM-Plugins

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.