Page 1 of 7

OtviAI (version 423)

Posted: 22 Sep 2008 15:58
by Maninthebox
This AI is part of a collection of test AI's written with the intention of training and improving our main AI: rondje (Rondje om de kerk, winner of the TJIP challenge 2008. See seperate post on that.).

OtviAI was previously a collection of a few testing AI's but it's now all merged into one code base.

What does it do?
- busses & trucks
- tram
- trains
- boats
- aircraft

It's mainly passenger and mail, but it will do the occasional cargo route. It's tested with various newgrf's like ECS, FIRS, 2CC etc.

During the challenge we had OtviAI and Convoy running against each other on a 512x512 temperate map for 10 years on a laptop in the background and OtviAI won this :D I had to start this head-to-head game as Truebrain didn't believe us when we said our test ai could beat Convoy ;)

It would be nice to see how it's performing in the tournament here :)

All our code is released under GPL v2, we already made our profit by winning the TJIP challenge anyway ;-)

Comments and suggestions are always welcome, just post them here or use the email address provided in the README's in the tar files.

Changelog:
====
1.1: gpl v3 --> gpl v2, also in the files and repackaging now with directories included.
1.2: update for changes in API (new and improved: now WITH initialized roadtype)
1.3: update for all the latest greatest API changes; also fixes bug in distance boundaries for new routes.
1.4: change directory structure (no more '..' in paths) and change tar packaging again
282: change numbering to only subversion numbers (for bananas), merge subsidyAI into main ai
283: include svn number in info.nut file for bananas
310: update for new subsidy api calls
312: 1.0 API and fix the load() call
379: code restructure, trains, trams, newgrf support
383: bugfix release
395: eastern edition: got rid of this accidental easter egg (aka: bug)
396: doh-edition: remove temporary test code that prevented it from building anything for passengers and/or mail
397: blame it on the gf-edition: fix vehicle count calculation for very slow vehicles
398: fix double routes and mix up town-industry numbers
399: API 1.1 and a few bugfixes and tweaks
411: API 1.2; added boats and numerous tweaks and small changes
413: fixed the boats and various small improvements
414: mostly train improvements to better work with 2cc, nutracks and other newgrfs
415: fix industry filtering bug that popped up in tropical
418: aircraft support and loads of small fixes and tweaks
423: overdue bugs and API bump to 1.11

The AI can be find with the 'find online content' within OpenTTD and there's a downloadable copy attached to this post.

Re: OtviAI

Posted: 22 Sep 2008 16:29
by Yexo
Nice, I don't have time to look at it now, but I'll do some testing later this week.
Maninthebox wrote:All our code is released under GPL v3, we already made our profit by winning the TJIP challenge anyway ;-)
OpenTTD is released under GPL v2, so if you want your code to be reusable in an AI that gets included in OpenTTD, you might consider releasing it under GPL v2.

Re: OtviAI

Posted: 22 Sep 2008 16:44
by Maninthebox
I sorta half realized that after posting (that realisation might have something to do with a certain mail from teammember michiel :P). So:

:%s/GPL v3/GPL v2/g

I'll change the uploaded files in the start post soon :)

Re: OtviAI

Posted: 22 Sep 2008 18:22
by Scay
Eager to try it out, however, it doesn't show up when I type list_ai (yes, it's placed in the right folder along with other AI's that do show up). Have I missed something... Maybe it's a problem with the licence?? (just kidding :wink: )

Re: OtviAI

Posted: 22 Sep 2008 18:51
by TrueBrain
They f*** up packing the tar, like most people do :p They seem to think it is a good idea to omit 'dirs', while our system depends on it. Most linux 'tar's do this correct, but most GUI based ones don't ... ;) It is silly, I know ..

Either way, here are the tars in their form which OpenTTD understands.

(removed files, as first post has now working files ;))

Re: OtviAI

Posted: 22 Sep 2008 22:28
by Maninthebox
I actually did use a linux tar, but I did a rather manual tarring with a find on *.nut to prevent packing all the subversion files in the tar, I'll try to remember to add the directories to it next time. Better yet... I'll make it a Makefile target :P Thanks for the retarring anyway :)

Update

Posted: 25 Sep 2008 11:56
by Maninthebox
Changed the GPL version to version 2 (in the post, the COPYING and each and every source file). Also changed the way the tarballs are created: new: now WITH directory structure 8)

Re: OtviAI (version 1.1 aka svn272)

Posted: 10 Nov 2008 13:10
by bokkie
I was going to try to compare some AI's but the latest NoAI binary doesn't load OtviAI (or the other ones in this thread).

Re: OtviAI (version 1.1 aka svn272)

Posted: 10 Nov 2008 13:58
by Maninthebox
Hmmmm... I verified this with the lastest subversion version and it does fail to load the tarred version. I forgot to include the top level directory in the tarball. Adding this solves the problem of loading the tar, but leads to a new problem:

dbg: [misc] [squirrel] Failed to compile '%aitar%otviai/RoadFinder/../graph/AStar.nut'
dbg: [ai] [1] Your script made an error: cannot open the file

It almost looks like the tar loader can't handle '..' in filenames anymore?

Unpacking the tarball (I think winrar can do this for windows users) solves the problem for now.

Re: OtviAI (version 1.1 aka svn272)

Posted: 13 Nov 2008 12:26
by bokkie
Tried it with some other AI's for a few years and there were some things I noticed:
- OtviAI builds drive-through stops for mail but only connects one side of it. This looks a bit awkward.
- Builds a lot of unnecessary road, if cities are already connected OtviAI 'often' builds extra road which isn't significantly faster. (Esthetics are important for me in an OpenTTD AI ;)).

Other than that, it's very active in connecting cities and that's very nice IMO!

Re: OtviAI (version 1.2 aka svn274)

Posted: 06 Jan 2009 12:46
by Maninthebox
Updated all three AI's to reflect changes in road API. Tarballs are in the first post :)

Re: OtviAI (version 1.3 aka svn277)

Posted: 20 Jan 2009 13:12
by Maninthebox
Updated OtviAI (others aren't updated yet) to reflect all the latest greatest API changes. Also fixes bug with too large boundaries on checking for new cities to connect after a few years.

Re: OtviAI (version 1.3 aka svn277)

Posted: 21 Jan 2009 22:23
by Zuu
So finally *.openttd.org came online again and I finnaly could download your AI from bananas. (hmm, man is stupid, I could just have downloaded it from here.. :p )

However I got some errors, see attached image. So I restarted OpenTTD incase it was a cacheproblem, but same result. Second thing I did was to unpack the tar file and move the tar-file out of searched path. This solved the errors.
cannot_open_file.png
cannot_open_file.png (264.89 KiB) Viewed 3030 times
Third thing I tested was to make a tar using 7zip. Exactly the same way as I made my own tars and with my own tars. And with this tar I got the same problems as with the tar I downloaded from BaNaNaS.

Re: OtviAI (version 1.3 aka svn277)

Posted: 21 Jan 2009 23:11
by Yexo
I have the same problem here, it is caused by this line in roadfinder.nut:

Code: Select all

require("../graph/AStar.nut");
OpenTTD seems to fail on the "../" in that path, for now it can be circumvented by removing the require from roadfinder.nut and adding

Code: Select all

require("graph/AStar.nut");
to main .nut.

Just to be clear: using ".." in the path when your files are inside a tar is not and will not be supported by OpenTTD

Re: OtviAI (version 1.4 aka svn280)

Posted: 22 Jan 2009 13:30
by Maninthebox
Tar and I are not on speaking terms anymore :P

Anyhow... changed directory structure to avoid having to use '..' in pathnames, also changed tar packaging again. New version available via online content system and in the first post (note: only OtviAI.tar is up to date at the moment, repackaging others as soon as main version is problem free :) ).

---
edit: '..' seems to be handled in the source code?

Re: OtviAI (version 1.4 aka svn280)

Posted: 22 Jan 2009 22:10
by Yexo
Maninthebox: can you start using integer versions (ie not 1.3)? OpenTTD reads the version from info.nut as integer, so both 1.3 and 1.4 of OtviAI register to openttd as version 1, which might give problems with loading the correct version for savegames and such.

Re: OtviAI (version 1.4 aka svn280)

Posted: 23 Jan 2009 10:26
by Maninthebox
Hmmm... guess I'll better stop the whole dual versioning then and just use the svn version. Now if only I could automagically put that number in my info.nut on the right spot... think I need to script something :)

Re: OtviAI (version 1.4 aka svn280)

Posted: 24 Jan 2009 02:54
by planetmaker
The AI died on me:
I'm playing with r15235 and OtviAI v1.4.

Re: OtviAI (version 1.4 aka svn280)

Posted: 24 Jan 2009 11:15
by Yexo
AIEventVehicleCrash has been renamed to AIEventVehicleCrashed some time ago.

Re: OtviAI (version 1.4 aka svn280)

Posted: 30 Jan 2009 15:13
by Roest
Drive through bus stops + full load orders = bad mix