Busy Bee: Fulfill small transport goals

Discuss the new AI features ("NoAI") introduced into OpenTTD 0.7, allowing you to implement custom AIs, and the new Game Scripts available in OpenTTD 1.2 and higher.

Moderator: OpenTTD Developers

Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Busy Bee: Fulfill small transport goals

Post by Alberth »

Hello all,

Today, version "RC2M" of the BusyBee script has been released. It is available from the online content download.
New features:
  • Clickable news (with a sufficiently new OpenTTD program).
  • Goal timer gets reset to its original length on delivery of cargo, allowing for indefinite time to fulfill the goal, as long as you deliver some cargo regularly.
  • Added options to set the weight of passengers, mail, or town-effect cargoes, to give them a higher chance of being picked as goal.
Several people have provided translations for the script:
  • Afrikaans: telanus
  • Catalan: juanjo
  • Croatian: Voyager1
  • French: arikover
  • German: frosch
  • Indonesian: UseYourIllusion
  • Italian: Snail, Voyager1
  • Korean: kevin
  • Latin: Supercheese
  • Spanish: SilverSurferZzZ
  • Swedish: Zuu
Thank you all for your efforts, it is much appreciated.



As an experimental feature, I dropped the version number from the script name, hopefully that makes future translations easier.

Enjoy

Manual for the really Busy Bees
===============================

- Activate the game script,
- Start new game,
- Pick a goal from the goal window to do,
- Make a connection from a supplier to the given destination for the requested
cargo type,
- Transport the cargo,
- Pick next goal to connect.

Manual for the less Busy Bees
=============================

Busy Bee is a game script for OpenTTD 1.4.2 or newer.

The script gives a number of goals to achieve (number of goals can be set by a parameter). It requests a given amount of cargo of a given type to deliver to a
given destination within a time frame. You have to build the transport connection, and deliver the requested amount. When that is done, the goal is
considered to be fulfilled. It is removed from the list, and a new goal is created (may take a while) for you to fulfill.

You don't get anything when you fulfill the goal. There is also no penalty for failing to achieve a goal. The purpose of the timer is to get rid of obsolete
or unreachable goals. (For example, the last oil wells disappeared from the map before you could finish the oil goal.) You can increase the length of the timer
with a parameter.
Last edited by Alberth on 01 Mar 2015 12:58, edited 2 times in total.
Being a retired OpenTTD developer does not mean I know what I am doing.
User avatar
te_lanus
Transport Coordinator
Transport Coordinator
Posts: 326
Joined: 19 Jul 2012 18:04
Location: The Elizabeth Arkham Asylum for the Criminally Insane

Re: Busy Bee: Fulfill small transport goals

Post by te_lanus »

Looks interesting. Played with it a very short time (during lunch), and liked it.

Just a thought/question, it looks like a nice GS that could be extended to "replace" subsidies for those of us who play with cargodist, me question is, how difficult would it be to increase payment for deliveries during the source to fulfill the goal ( like standard subsidies) IE delivering 1580t coal to a power station, while the quest is active you get double payment, once the 1580t is reached payment revert to normal
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: Busy Bee: Fulfill small transport goals

Post by Alberth »

te_lanus wrote:Just a thought/question, it looks like a nice GS that could be extended to "replace" subsidies for those of us who play with cargodist
The fundamental problem of cargodist stays unsolved of course, that is, you may not get any cargo to the destination, or when cargo passes through a subsidized station on its way to other destinations, does it count as "delivered"? (Current answer: no)

See also http://bugs.openttd.org/task/5766#comment12666
I don't know if it is solvable at all, tbh. If it is, it's probably better to fix subsidies themselves.
te_lanus wrote:me question is, how difficult would it be to increase payment for deliveries during the source to fulfill the goal ( like standard subsidies) IE delivering 1580t coal to a power station, while the quest is active you get double payment, once the 1580t is reached payment revert to normal
Impossible, as the script only gets amounts delivered, and not how much you got paid for it. As such, the script has no way to determine how much to pay you to give the double amount.

If you settle for a fixed amount of money, that could work. It's actually even quite simple (once you decided how much you'd get). The question is however, what's the point? In any OpenTTD game, you can pretty soon fill the sea with money, why would you need more?
As it is now, you can just ignore the goals if you don't like them, and build routes you want to have. It makes the GS nice for casual sand-box style playing. We don't have many GSes for that yet.


I don't know how andythenorth feels about it, but I have no objections to adding a patch to add payment as an option, if someone makes it. I won't develop such a patch however.
Being a retired OpenTTD developer does not mean I know what I am doing.
User avatar
te_lanus
Transport Coordinator
Transport Coordinator
Posts: 326
Joined: 19 Jul 2012 18:04
Location: The Elizabeth Arkham Asylum for the Criminally Insane

Re: Busy Bee: Fulfill small transport goals

Post by te_lanus »

Thanx for the detailed answer, makes a lot of sense
User avatar
planetmaker
OpenTTD Developer
OpenTTD Developer
Posts: 9432
Joined: 07 Nov 2007 22:44
Location: Sol d

Re: Busy Bee: Fulfill small transport goals

Post by planetmaker »

Starting now, builds from development versions with new but yet unreleased additions can now be obtained from http://bundles.openttdcoop.org/busy-bee-gs/push/
User avatar
3iff
Tycoon
Tycoon
Posts: 1093
Joined: 21 Oct 2005 09:26
Location: Birmingham, England

Re: Busy Bee: Fulfill small transport goals

Post by 3iff »

I noticed a small discrepancy which still exists in the 21/1/15 version.
The script says deliver 1500 wood, the goal says deliver 1653 wood. I think from earlier playing that the goal terminates at the goal target (1653 in this case).

I did also notice quantity mismatches with other freight cargos but pass/mail were normally ok.

It would be nice if we had a record of the number of goals achieved (but it's not overly important).
Unnamed, 1st Jan 1935.png
Unnamed, 1st Jan 1935.png (55 KiB) Viewed 20849 times
And another one.
Unnamed, 1st Jan 1935#1.png
Unnamed, 1st Jan 1935#1.png (29.69 KiB) Viewed 20848 times
User avatar
planetmaker
OpenTTD Developer
OpenTTD Developer
Posts: 9432
Joined: 07 Nov 2007 22:44
Location: Sol d

Re: Busy Bee: Fulfill small transport goals

Post by planetmaker »

You need to use a nightly OpenTTD or a 1.5 beta.
User avatar
3iff
Tycoon
Tycoon
Posts: 1093
Joined: 21 Oct 2005 09:26
Location: Birmingham, England

Re: Busy Bee: Fulfill small transport goals

Post by 3iff »

I am, Nightly version 27112. Is that late enough?

The script works fine, it's just that some numbers don't match (and I can't see why they don't).
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: Busy Bee: Fulfill small transport goals

Post by Alberth »

The numbers in the debug winodw are internal amounts. The numbers in the goal window are 'external units', amounts in user-oriented terms. If the conversion from internal to external units is 1:1, then indeed, the numbers should be exactly the same. However, that does not need to be the case, if you have set the output format of weights to non-metric units.
Being a retired OpenTTD developer does not mean I know what I am doing.
User avatar
3iff
Tycoon
Tycoon
Posts: 1093
Joined: 21 Oct 2005 09:26
Location: Birmingham, England

Re: Busy Bee: Fulfill small transport goals

Post by 3iff »

Ah, I would never have thought of that...I'll check. Thanks.

Yep, that's it. I use imperial for weights and metric for volumes so all the weight (tons) cargos are skewed because of some conversion factor. Well spotted.
ST2
Engineer
Engineer
Posts: 63
Joined: 07 Apr 2011 14:17

Re: Busy Bee: Fulfill small transport goals

Post by ST2 »

hello :)

for couple weeks I'm testing this GS and, to start, let me congratulate the gamescript makers.
it's a new experience where players dnt know what needs to be done when joining a server or when creating a game ^^

but among some runnings, the shown on screenshot appeared.
1st time in 2 weeks and no idea why, only sharing the info

note: was quite fun the chats after that goal appear, including scientists conspiracy to make oil from Iron Ore xD

Edit: no newgrf's used
Attachments
iron ore to refinery
iron ore to refinery
goal2.png (44.3 KiB) Viewed 20486 times
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: Busy Bee: Fulfill small transport goals

Post by Alberth »

It is not a secret plot to take over steel production, so you will be quite safe. You will not get a surprise visit from the NSA to check your computer for industrial espionage.
Please don't be alarmed if black cars with men wearing dark sunglasses park in your street near your house.


Thank you for your feedback. It's a use of the script I had not yet considered. I can see it can be very helpful for new players.
I wonder if maybe some form of BB could be used as part of the tutorial for this purpose.


Like you I have no idea how this can happen. I would need a savegame of just before it happens for a detailed analysis. Maybe one of the autosaves?
A simple check you can do is whether the industry you show is the right one. Click on the goal to jump to the industry. Maybe there is a steel industry with an Oil Refinery name. (Never seen it myself, but who knows.)

Another option is that the industry got changed. The script picks a cargo, and then tries to find a goal of some distance by checking pairs of suppliers and customers. Depending on how many industries there are, this takes some time. If a customer was changed to a different industry while the search happened, the effect you show could happen (I think).
Were there steel industries closed recently, and was the chosen refinery a recently built one?
(How big is your map?)
Being a retired OpenTTD developer does not mean I know what I am doing.
ST2
Engineer
Engineer
Posts: 63
Joined: 07 Apr 2011 14:17

Re: Busy Bee: Fulfill small transport goals

Post by ST2 »

yeah, forgot make a savegame and autosaves are disabled on server side :S

anyway, created an online server with Busy Bee merged with our server software controller, that makes it a bit different ^^
running with 1.5.0-beta1 now and can have some server restarts because I'm - trying to - improve a bit the usage of Story book with it :)

Edit: lets see if happens again, creating some more conspiracy theories :D
User avatar
te_lanus
Transport Coordinator
Transport Coordinator
Posts: 326
Joined: 19 Jul 2012 18:04
Location: The Elizabeth Arkham Asylum for the Criminally Insane

Re: Busy Bee: Fulfill small transport goals

Post by te_lanus »

Just a stupid question :P

The bundle server's build (http://bundles.openttdcoop.org/busy-bee ... T/?C=M&O=D) shouldn't the name of the build be BusyBee instead of the current "BusyBee $version $hash" T$version=the current version & $hash seems to be a hash of some sort)
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: Busy Bee: Fulfill small transport goals

Post by Alberth »

Actually, the version of the program is the hashtag and not the number. It's the globally unique Mercurial revision that is being build (like r27153 of an OpenTTD nightly). You will see the same numbers in the 'repository' tab of the project.

The problem with that hashtag version is indeed that it is just a random sequence of hexadecimal digits, no simple way to tell which one is the newest if you have 5 of them.
For this reason, the day number of the revision is added as well. If versions get build at different days, the day number is sufficient to tell which one is newer. Otherwise, you'll have to look up the exact timestamp of the revision in the repository by using the hashtag.

As for your actual question, I don't understand why it "should be BusyBee", can you clarify why that is better?

By giving them a number, it's easy to have several bees in one directory without having to rename each file that you download. Note that a savegame does keep a version of the script, just like it does with newgrfs. If you want to be able to continue playing a game that uses a script, you need the same or a compatible version of that script.
Being a retired OpenTTD developer does not mean I know what I am doing.
User avatar
te_lanus
Transport Coordinator
Transport Coordinator
Posts: 326
Joined: 19 Jul 2012 18:04
Location: The Elizabeth Arkham Asylum for the Criminally Insane

Re: Busy Bee: Fulfill small transport goals

Post by te_lanus »

I understand that the tar files name need to be unique, but I'm talking about the one in info.nut (me should have said that but me forgot) ( the: PROGRAM_NAME <- set by 'make bundle'.).

With the current naming scheme the script is not savegame friendly. I do understand that major changes one should start a new game, but almost all changes the last month was translation, thus my question.

If I take my translation, I did the translation, played a bit and saw that I could use another afrikaans word to describe the english better, but changing one "word" made the GS not compatible with my old savegame.

My question boils down to: shouldn't the PROGRAM_NAME = BusyBee 0.1 (or something) since PROGRAM_VERSION already have the revision number. With each major revision bumping the name to BusyBee 0.2 (or something)
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: Busy Bee: Fulfill small transport goals

Post by Alberth »

Added the weird industry goals as well as the scriptname problems as bugs to the project, so they are not forgotten.
Thanks for reporting them
Being a retired OpenTTD developer does not mean I know what I am doing.
ST2
Engineer
Engineer
Posts: 63
Joined: 07 Apr 2011 14:17

Re: Busy Bee: Fulfill small transport goals

Post by ST2 »

I guess the weird industry goals happen when "multiple_industry_per_town = true". Never saw it again when disabled :)
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: Busy Bee: Fulfill small transport goals

Post by Alberth »

Version "RC2M" has been released, see first post for description.
Being a retired OpenTTD developer does not mean I know what I am doing.
User avatar
Zhall
Tycoon
Tycoon
Posts: 1237
Joined: 17 Jul 2007 01:36
Skype: moonray_zdo
Location: Teh matrix, duh.
Contact:

Re: Busy Bee: Fulfill small transport goals

Post by Zhall »

I really REALLY like this script.

It forces me to reallocate parts of my network to focus transport to different parts of the map as time passes.

However, it also makes me revert to point to point spaghetti garbage builds in order to get things done fast and cheap.

Perhaps requiring large amounts of tranported products would reduce the tendancy to build spagetti garbage train setups?

Or mix this with a cash goal aswell..
Post Reply

Return to “OpenTTD AIs and Game Scripts”

Who is online

Users browsing this forum: No registered users and 6 guests