Goals for the Distro.

Discussion about the development of POL's official distribution scripts.

Moderators: POL Developer, Distro Developer

Post Reply
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Goals for the Distro.

Post by Yukiko »

Short term and long term goals for the Distro.

1. I have been thinking about which expansion to support in the Distro. So here are my ideas:
As far as functionality I would like to support as much as possible up to Time of Legends. Functionality, in this case, is a "fuzzy" term which means it has some wiggle room. Some examples of functionality include:
a. Support for the galleon class ships and despite one of my posts in an earlier thread they are not functional yet.
b. The various 'schools of magic' - Necromancy, Paladin, Spellweaving (sometimes called Druidry), and Mysticism.
c. Imbuing.
d. All NPCs, if possible. Though this isn't a high priority.
e. Some of the other items new to those of us who don't play on the "official" Ultima Online(R) servers, such as The Runic Atlas and Davies Locker.
f. We'll discuss map support at a later date as there have been some major changes to the geography in later map versions.

2. An easy way to download and install the latest Core and Distro. I am working on this. No promises as to a release date but this is next up for me to do.

3. A solid small team of Distro developers who can be relied upon to delegate projects to. They don't have to be fast or be particularly advanced coders but they do need to be willing to complete a thing assigned to them or admit if they think it is beyond their skill. There's no shame in admitting a "quest" is too difficult. :) Also, some testers and users of the Distro willing to experiment with some of the tools available in the Distro and write How to articles.

4. As I wrote almost none of the code for the Distro I would like a review done of at least the AI for areas of possible improvement. One thing that would be nice is smarter NPCs that can find a path to a player when one is available rather than be stuck in a 'cubby hole' whilst the player shoots them with arrows. Granted, if I had written the NPC AI it would be even more limited than it is. :P

5. Custom packages that would be optional that shard developers could add to the Distro if they so choose. Possibly some of the "functionality" I mentioned above should be made optional so as to keep the Distro simple.

6. Documentation! Need I say more? Alright, I will. Scripts should be documented. A User Guide for setting-up a server. Maybe, given that there are some quest tools already present in the Distro, a simple tutorial on their use. A how to for configuring levers, switches and other triggers.

7. A more advanced Quest Creation system. This I thought would be neat if it involved a "quest scripting language" or qScript if you prefer. I remember the old Infocom(R) text adventures used a similar system for creating their games. As I have no experience in the area of writing an interpreter this might be beyond me or even the scope of our current Distro developers but, hey these are goals. If we just improve what's already available maybe that will be enough or maybe what is available is enough. Someone needs to play with the tools and see.

8. And this is an important goal for all of us. To look at our work as a labour of love, not a chore. POL is extremely versatile and for that I love working with it. It needs some improvement but as it stands at version 0.99 it's pretty stable. So if you feel as I do about POL then approach your work with enthusiasm, and at times frustrated consternation, and enjoy the process of making it even better.

Yeah, I know that last goal is sappy but hey, I grumble more than I wax sappy so I'm entitled.

I didn't prioritise the list because I figured the input from everyone would help with that. I believe I had more ideas but at the moment they don't come to mind right now.

So have at it! Share your ideas and thoughts on mine. Once the dust has settled we'll place them in orfer of priority (or possibility) and finalise this in to a formal roadmap.
boberski
Grandmaster Poster
Posts: 275
Joined: Tue Oct 15, 2013 12:00 pm

Re: Goals for the Distro.

Post by boberski »

In ServUO emulator there is an advance support for quest, magic school and many other. Maybe you can look into ito get some ideas ot how things could work.
boberski
Grandmaster Poster
Posts: 275
Joined: Tue Oct 15, 2013 12:00 pm

Re: Goals for the Distro.

Post by boberski »

Also I will try to to finish POLServer CMS and get to work on linux distro installer bo easy use of your work. But no the time is not on my side :P
DevGIB
Grandmaster Poster
Posts: 248
Joined: Mon Feb 06, 2006 6:12 am

Re: Goals for the Distro.

Post by DevGIB »

1. Maybe see if we can find a list of OSI (I know its not called that any more) major changes/revisions. This will help us build a list of what functionality we want to bring in/replicate.

2. As mentioned and talked about with you and others, Changing the polserver/poldistro repository to be master: pol0.99 dev: pol1.00 Then we could look at a simple installer which just pulls down the files from GIT. Restructuring the GIT will help with any confusion new comers might have about what to use given that currently there is a releases and alternatives folder and then a list of cores under the releases folder. Move legacy versions to their own repository for anyone that wants access to them.

3. Use the github projects board :D

4. I think BrainAI could probably be looked at more closely, i don't think it is as dysfunctional initially believed Whilest the Edwards revision might be slightly more buggy than Austins final version i think it just needs some more understanding of how it actually functions and then to be configured correctly.

5. I mentioned this in another post but i'll mention it here as well, Zulu is a portion of the POL community and i think offering a Zulu adaptation of the Distro isn't a bad idea, but obviously its more work so it might need to be something that is looked at down the track, my only recommendation would be to see if there is a way we can design a system that is modular in that its easy to drop a section out (e.g. damages.inc) and provided the base arguments/variables are kept the same dropping in a "zulu package" will just update that section of the server. In addition to that, i've been thinking about a "Town Of Salem" package which could fit into a standalone fairly easy just to be a bit of added fun.

6. Some of Austins documentation is magical. As mentioned to you personally i think having a coding standard and documentation standard wouldn't be a bad thing. You could consider not forcing people to adhere to the standards as part of the pull request but reserve the right to modify their code to match the Distro standards.

7. We had a fairly advanced questing system from Zulu Hotel Australia. I didn't write it but i've made some improvements to it over the years. I'd be interested in possibly mapping out how it works and then writing a new system from scratch. But something like the ServUO XML quest system could also be quite functional.

8. Noted.

NOW FOR MY OWN NOTES

1. Web based configurator - php or something else, maybe something that we could actually do with the core. For example if the core can't find the UO files or something rather than just giving an error and crashing it stays open and prompts with a link to a webpage that if the person opens it gives them a list of options to set e.g. server name, UO install DIR, port number, any additional packages or functions that you can turn on and off. This can hopefully help guide newbies through the setup process. But as mentioned this might need some core rework.

2. I think that we should have a config file or using the above mentioned configurator, which allows you to set certain server name variables e.g. Long Name, Short Name, Abbreviation. We can maybe look at having the configurator have a list of places those names are used and then update the scripts before compile, or we can have the scripts pull from the name config file every time (but obviously thats slower). This will allow newbies to quickly update all the locations a server name is mentioned to match their own.

3. This might be a redundant/stupid idea, have a bug report command so that anyone running the Distro and use a command in game to report a bug and it gets back to the Distro development team. Obviously this becomes redundant as soon as someone modifies the Distro scripts and then we can't really support everyone else.

I probably have more points and i'll post them as they come to me.
boberski
Grandmaster Poster
Posts: 275
Joined: Tue Oct 15, 2013 12:00 pm

Re: Goals for the Distro.

Post by boberski »

There is one question for Nando, can we have polcore with directory distro, inside of what we will have all the distro files?

Basicly oplcore comes with several cfg files, rest of them are from distro, so we can divide this and in main config folder left onty that what comes with polcore. Aldo we can create pkg named config for all the additional config files.

This will make work co much easier for installer or maybe even something lige yum or apt-get especially for pol.
ThisIsMe
Distro Developer
Posts: 101
Joined: Sun Jul 17, 2016 1:29 am
Contact:

Re: Goals for the Distro.

Post by ThisIsMe »

I'm more than happy to work on some of this stuff, particularly stuff I already have planned to work on or already completed toward my own means.

As for item stuff, I should have a runic Atlas done tonight barring any unforeseen distractions, which rarely happens to me. :angel:

I'll offer my House Add-ons (deeded items) system, I followed the ServUO method for deeded items so that any further items they add a new "build" cfg file just needs to be added, it's a pretty easy proposition to do and you don't have to dink about with the way Edwards Distro handles deeded items, which is clever, just maybe more clever than I cause I couldn't figure out how to add new items.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Goals for the Distro.

Post by Yukiko »

I appreciate the feedback.
DevGIB:
I agree totally that it would be great if we can figure out a way to make optional packages as easy as possible to drop in to the Distro. I suspect originally that was the whole intent of the "package system". Someone created some great add-on in a package and anyone could just drop it the pkg directory and restart the server and there it was. The ability to have multiple logon, reconnect, logoff, and start scripts clearly points to my thinking.For a lot of things this should be possible and I don't think much on our part needs to be done. Anything we wish to be made as an optional add-on just needs to be a self contained package that contains all the necessary SRC, INC, and CFG files in the package. It could call certain "standard" Distro INC files such as client.inc etc. or CFG files such as npcdesc.cfg as needed.

A bug reporting system from within game might not be a bad idea but I don't know how all users might feel about POL "phoning home" to report bugs. We know our purpose isn't nefarious but I hear all the time about how suspicious people are when they find out about companies' software is sending back performance and/or usage statistics. So I'm not sure if we should include that in the Distro. Maybe an optional package would be a better way to go on that.

I think it's important to pay homage to those that have helped make POL a popular emulator and Zulu clearly played a role in that. The optional package system is a great place for Zulu customisations. Keep the Distro as simple as can be for a world emulator but have as many optional packages as we can for those who wish the customise their server.

I think we've reached a consensus about the repo re-organisation and having one set of Distro scripts there, the Distro, and putting all the legacy distros in a separate repository. And as I understand it you, DevGIB, are going to handle that. After the "fun" I had with "The Big Switch" I enthusiastically welcome your assistance. :D

The web based configurator sounds more like a Core possibility than a Distro function. I have a GUI based configurator that I started 9 years ago and somehow totally forgot about. It was written in Pascal using the Lazarus IDE. It works for pol.cfg. I want to return to the project and try to complete it for the 3 other cfg files that need to be fiddled with, servers.cfg, serverspecopts.cfg, and uoclient.cfg.

I am not sure what you mean by a config file that lets you set server name variables. Are you talking about an 'alias' system that would preprocess scripts and substitute "Distro standard" variable names for non-standard names? You'll probably have to clarify what you mean.

I have never used the Github projects board but if it's easy to navigate and use then we cold give it a go. I am reluctant to have two different areas for discussion/planning though. If there was a project system plug-in for PHPBB that would atleast keep everything here under one roof I feel that would be better. But even if there was a module for PHPBB maybe Git has a better project system.

A coding style sheet is on the way. Atleast the one I found. Then we can critique it and make changes accordingly. I'll probably post it as a "page" on the forums.

Again, I'm all for an easy to use questing system. We could make it an optional package too possibly.

I know OSI, and we'll use that acronym to reference the UO overlord's organisation, releases "Publish" reports. One of our chief goto places is the UO Guide wiki when we need info. I'd like to use that as our standard reference and then use UO Stratics for any additional information that may be needed.

BrainAI. I will be completely honest here. I don't want to even think about implementing BrainAI, at least for now. I'll admit when I first saw it on the old yahoo POL script forum downloads section (That ought to give you some idea how long I've been around. Yahoo discontinued supporting their forums a long time ago.) I was intrigued and even excited that it would be interesting to play with but it would require a major overhaul to the Distro and if we're even thinking about thinking about thinking of implementing it then it would be a long term goal.


Boberski:

Something definitely needs to be done about the config file situation. I have always wondered why we need 4 separate files. Why not have one file that encompasses pol.cfg, servers.cfg, serverspecopts.cfg and, uoclient.cfg? Place it either in the POL root or \pol\config but put everything in one file. The additional files such as uoconvert.cfg, ecompile.cfg etc. are probably going to have to remain as they are. We do have the main config folder for "all other or additional" config files and you could always add a subdirectory for optional or custom config files ie. \pol\config\customcfgs

Your POL server CMS is a good idea. Keep improving it. I haven't yet added it to my website so I don't know what features you've added but maybe a shard admin/developer section where you can view server stats and performance info and possibly other options that don't come to mind at the moment.


I will leave this forum open for a while to get as many ideas as possible then I'll formulate a potential road map and post that, probably as a viewable page, for short term and long term goals. The team can all view and critique that then we'll post a final complete road map.
boberski
Grandmaster Poster
Posts: 275
Joined: Tue Oct 15, 2013 12:00 pm

Re: Goals for the Distro.

Post by boberski »

Yukiko wrote: Thu Jul 27, 2017 10:19 pm Your POL server CMS is a good idea. Keep improving it. I haven't yet added it to my website so I don't know what features you've added but maybe a shard admin/developer section where you can view server stats and performance info and possibly other options that don't come to mind at the moment.
That was my first idea about this, a web kinda admin for server.
yayafan
Novice Poster
Posts: 40
Joined: Sun Mar 15, 2015 2:26 am

Re: Goals for the Distro.

Post by yayafan »

hello,

Is it possible to add unicode gump support in future ?

Currenly I can only use clioc files to show unicode charactor in gump, every time I change some thing, players need upgrade the clioc file, it's not convenient.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Goals for the Distro.

Post by Yukiko »

yayafan that would be a topic for the Core Discussion or Core Bug Reports & Feature Requests forum because there's no way to add that in eScript.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Goals for the Distro.

Post by Yukiko »

Alright folks, I have created a Distro Goals page for your perusal.

When you start on a prioritized list such as this it sounds easy. You soon find out that making the list is fairly easy. Deciding on the priorities for each item is hard. :)

So have a look and see if you think I missed anything or something needs a "priority change".
Tomi
POL Developer
Posts: 478
Joined: Tue Feb 21, 2006 5:08 pm

Re: Goals for the Distro.

Post by Tomi »

I would say try to stay up to date with latest features, and then add things such as new spellclasses etc as separate packages that can be easliy disabled if someone dont want to use them.

But for the packet parts during logon and such there are not that many things which blocks the old clients so there could easily be a short HOWTO.txt for example how to enable log on for older clients ( character slot limits, 0xa9 & 0xb9 packets and such )
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Goals for the Distro.

Post by Yukiko »

Tomi! Good to see you again. It's been a while. How are you?

I like the idea of being able to disable unwanted pkgs.

Setting character limits is the easy one. That's a setting in a cfg file. Packet how to's is one above my ability. We could use someone with experience in writing packet scripts but tutorials are definitely useful and needed.

Thank you for your ideas and feel free to write a packet tutorial anytime :)
Post Reply