Login
Ratjoy.com » Forums » EoS General Discussion » Bots

Bots


Previous 1 [2] Next
Mike Barnett
RJ: D.Knell
CO: Angelo Mysterioso

Post Rating: 0
+ / -

Total Posts: 46
Karma: 27
Joined: May 9, 2012
frankly, i could give a crap less. plenty of games out there. but speaking as someone who has played Promisance for 13 years, i used to be able to go to 10 viable servers and play against thousands of players. years of bots and multiple accounts later, there's one server left with me and 39 other players. it would be sad to see this happen here because the best advice is 'find another game', but if the prevailing attitude is like it or leave, that's when people leave.
Paco Co
RJ: Mr. Costa
CO: Mr. Costa

Post Rating: 0
+ / -

Total Posts: 89
Karma: 30
Joined: Mar 8, 2012
But really i still dont understand why ppl have to always find a way to ruin a perfectly good game.

PPL you de have to realise this is just a GAME... not even a very competitive one, we can all get along, so why do you have to "cheat" (use bots)????
So you can say oh look i have a bigger winnie...

Grow up and play for fun... like a man (woman)
Bob Malone
RJ: Bob Malone
CO: Malone

Post Rating: 0
+ / -

Total Posts: 341
Karma: 191
Joined: Apr 17, 2012
This is game owner responsability to have/enforce clear and fair rules... Don't blame people to exploit the game, even if 99 % play fair there would be always 1 % ready to ruin a game.
James Melvin
RJ: The Big Cheese
CO: James Melvin

Post Rating: 0
+ / -

Total Posts: 20
Karma: 10
Joined: Apr 29, 2012
The humans are dead.
David Archer
RJ: BallC
CO: BallC

Post Rating: 0
+ / -

Total Posts: 142
Karma: 135
Joined: Apr 11, 2012
No one needs to pretend to "speak for" the dev here. It's easy enough to find the thread where an initial suggestion to actually provide an API for bots (regulate them) where he weighed in on it.

http://www.ratjoy.com/forum/topic/idea-api-and-pricing-for-it/

QUOTE:

Scott (Admin)
RJ: Ratan Joyce
CO: Ratan Joyce

Post Rating: 0
+ / -

Total Posts: 1163
Karma: 5291
Joined: Jan 13, 2012
Posted on Apr 12, 2012 (Last edited on Apr 12, 2012)
As a past MUD player who's done full-fledged bots using zMUD, I'm ok with fully-automated bots as long as you made them yourself. You just need to realize when your browser is open 24/7 with an active bot sitting there in your place, you'll no longer enjoy the game as much as you do now, but if you made the bot you'll at least gain some sense of achievement from the process of making/tweaking/fixing it.

Besides, one of the goals for this game is to break from the traditional MMO rule of "time = money", so whatever scripts added into bots could be used as my guidelines on improving the game, and to make those scripts unnecessary.

UI scripts like the ones currently released are not considered bots and are completely acceptable.

Would I release actual API's and tokens in the near future? ... probably not.


My personal feeling on it is that there are some advantages to running a bot but many of the new built-in automation features of the game have closed the gap. I personally developed and ran a bot for about 6 months on the old server and then for about a year on the new CO server. Unfortunately (or fortunately depending on which side of the debate you are on), when I upgraded my computer to Windows 8 (big mistake), I accidentally forgot to transfer the executable or the source code for the bot so it was lost forever.

Let's see exactly what I had it doing for me. I ran 7 companies or so on the new server before the bot was lost. Every company was devoted to a single type of retail store although two of my companies both ran Industrial stores.

Clothing
Electronics/Appliances
Automobiles
Petrochem (Industrial)
Smelters (Industrial)
Sporting Goods
Aircraft

Each company focused its research on the retail products it produced as well as certain raw materials that were then either used internally or offered on B2B to supply my other companies. The bot would run every 15 minutes a few minutes after the 15 minute "tick" and was modelled as a series of "agents" that were responsible for a particular aspect of running the company. To minimize server load, certain actions only happened once a day, some happened once every run, some happened for every company.

Once per day:
1) Click the Welfare link (Free money! Free influence!)
2) Pull and cache all import market listings (since they only changed once a day)

Once per tick:
1) Pull and cache the current market statistics page to get the global sales stats for all products.
2) Pull and cache all current B2B listings.

Once per tick per company:
1) Click the Quests page (Cash in any quests that I had already met the requirements for)
2) Scrape the factory page and cache the data.
3) Scrape the store page, click on every store, and cache the data.
4) Scrape the warehouse page and cache the data.
5) Scrape the R&D page and cache the data.

At that point, I had an entire model of every company as it existed at that point but I had it in memory and could run calculations and perform logic to figure out what needed to happen.

Each company had a "configuration" that you can think of as a standard operating procedure for what products it researched, what it produced, what it retailed, what it bought and sold on B2B and at what prices, what % of stores to upgrade at a time and how much to upgrade by, what % of factories (per type) to upgrade at a time and how much to upgrade by.

The companies that I had producing raw materials for the other companies were set up to run earlier on each run so that they would list their products on B2B (and update the local cache) so the companies later down the chain could purchase those listings in the same tick. Based off of global inventory (supply chain theory) which was cached for every company, for instance, my Smelting company could know that my Automobile company is running low on Steel so when it queues up the next production job, it can see how much Steel is currently demanded vs what is available and use that to determine what to produce. Each company could hold a particular amount of inventory in "reserve" to handle market fluctuations.

Every production job ran for 4 hours as that seemed to be a sweet spot that gave me flexibility/agility and still let me get most of the EoS bonus as it tapered off pretty significantly for larger jobs. Typically I'd have 50% of my stores upgrading at 100m^2 increments so I had 600m^2 of new retail space coming online daily. Factories would increment similiarly but I can't remember the exact figures.

For retail, since the sales formulas were public knowledge, the bot could calculate the optimal product mix at each tick and swap what products were on the shelf for that tick to take advantage of market fluctuations there. Adding the projected profit to the interface was nice in that it made it easier to get that data but it also exposed it to all players instead of just those that decided to read through years of old forum posts (which haven't been updated with the many sales "tweaks" that have gone in).

So let's see what the advantages are here:

1) The factories are always either upgrading or producing.
2) The stores were always selling and selling the most profitable things.
3) The R&D's were always researching (for the most part, at least as long as I had cash. Had to turn that off at a certain point due to exponential costs)
4) Production and upgrade costs were allocated and applied against profits made that day instead of, for instance, paying for a weeklong upgrade or a weeklong production job and having that all get "expensed" the first day.
5) If someone listed something on B2B and any of my companies needed it and was configured to pay that price, I was able to purchase what I needed within 15 minutes of it being listing.

A human player can pretty easily do 1-3. In fact, I'd be surprised if most players don't try to keep all their buildings doing _something_ productive at all times. Queues helped alot with levelling the playing field here. Keeping the stores stocked is still something that can't be "queued" up but now with purchase requests, it's a bit easier (although the bot has an advantage of keeping it's price and quantity limits secret).

The ability to juggle product mix for #2 on a tick-by-tick basis does give an advantage and I know there have been some suggestions put forward by others for some kind of way to balance this. I will say that for the most part, the advantage here is minimal as long as there are other players continually selling those products. For the products that tend to hit 0% demand met because no one is selling them, knowing that the instant it happens so you can jump in and sell some at an inflated price does give a material advantage (and was the cause of some "fun" last year with my old company selling some $50k a pop Coconut Sorbet for a $2.2G revenue tick).

#4 can be addressed by adding a Loss Carry-forward to the balance sheet and that has been posted in the suggestions subforum already. http://www.ratjoy.com/forum/topic/carry-loss-forward/ This can always be done by a human player simply doing daily purchasing/upgrades instead of doing longer upgrades or production jobs.

#5 was an issue before we had purchase requests but I think it's minimized now with the caveat of the bot perhaps being able to get a better deal because it doesn't have to name it's price limit upfront.

Did I miss anything? I'd like to hear what are some of the specific advantages that bots have. Please no generalizations (e.g. "Bots can be awake 24 hours a day") or judgements ("Bots are evil!") because they're IMO not terribly constructive.
M Burch
RJ: Farmerbob
CO: Farmerbob

Post Rating: 0
+ / -

Total Posts: 151
Karma: 14
Joined: Sep 2, 2012
The biggest two advantages bots have that I see are:

1)Market reaction speed. If bots check the market once every 30 seconds for underpriced items placed by mistake, they are a lot more likely to acquire "mistake" sales than a live player would. (note that I'm not defending the people who make the pricing mistakes - tough luck)

2)Also you can set your bot to collect quest items that are not available in large quantities, which other people might be in competition with you to acquire. Say I need 500 million sugarcane for a quest, but so does another player. We have bought all the sugarcane on the market and are now competing to buy any other sugarcane that enters the market. Sure you can set up open buy orders, but sometimes that simply doesn't attract sellers, for whatever reason. With a robust bot you can set it up to scan for sugarcane, and the closer to deadline time, the more it will be willing to buy it for.

That's simply analyzing bots from the point of view of a B2B buyer. Not as a B2B seller, researcher, manufacturer, or retailer.
David Archer
RJ: BallC
CO: BallC

Post Rating: 0
+ / -

Total Posts: 142
Karma: 135
Joined: Apr 11, 2012
Both valid points IMO.

I actually wrote a "market sniper" module for my bot one day when I was bored but ended up not using it as I had been burned a few times by that. Not pricing mistakes per se but the fact that we can't do private B2B transactions and other players can "snipe" the listing while I'm trying to transfer it between companies. The only way to (partially) protect against it is to sell at an "arms-length" price between companies which then incurs higher B2B fees. I'm sure many players would like to see an "Internal Sale Only" button like in the original Capitalism games.

For #2, I kinda see your point but if it was a ridiculous quantity like that, it'd be safer to just do a all-or-nothing purchase request and see if it gets filled. Hate to be left holding 499M units of useless sugarcane at the deadline. :)
M Burch
RJ: Farmerbob
CO: Farmerbob

Post Rating: 0
+ / -

Total Posts: 151
Karma: 14
Joined: Sep 2, 2012
Ummm Actually I'm having a good bit of success selling from one company to the other now without interference by setting up unlimited buy orders for high quality goods at prices most people won't sell for.

What't that pricepoint I'm using? Roughly 5x what it costs to manufacture. So my producer generates reasonable profits by selling to my reseller at 5x cost, then my reseller cranks up the cost in the store to whatever is necessary to maintain a three day stock of goods.

but... what would happen if I were to Oops and set a buy order for sugarcane at $500 per unit? If I immediately catch it, chances are good no human player is going to detect the offer and sell to it. A bot, on the other hand, might see it within seconds and fill my order. My fault, but taken advantage of by a machine, rather than a player.

As for huge order filling, I won't buy it if I can't fill the order, unless I can either resell it at a profit OR make something useful out of it, which is in turn then sold for a profit, so if I end up holding 499 million sugarcane in the example above, no big deal, provided I didn't pay stupid money for it.
Mike Barnett
RJ: D.Knell
CO: Angelo Mysterioso

Post Rating: 0
+ / -

Total Posts: 46
Karma: 27
Joined: May 9, 2012
I've got 8 companies. I run them daily. After reading the first post by David Archer (well, not read....after about 10 sentences my eyes glazed over and I decided to wait for the movie), I felt a lot better about myself. I mean, taking care of 8 companies daily pales in comparison with the effort that this guy put in just to not have to make an effort. I don't want to date myself, but I started writing code on punchcards, and I admire someone that can put that kind of thought into something as trivial as this. It reminds me of a younger me. Now I just don't care that much. It takes the fun out of it when I even think about the code now.
Previous 1 [2] Next


You need to register or login to post a reply.