[3.2+] NullBot 3 ‘Reloaded’

Did you create a mod, map, music, or a tool? Present them here and earn feedback!
Note: addon requests do not belong here.
Note, everything uploaded to this forum, MUST have a license!
Post Reply
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

[3.2+] NullBot 3 ‘Reloaded’

Post by NoQ »

For anybody who kept reading past the first 5 symbols of the thread's name and understood that there's no typo in them, it's about time to present the new AI i've been working on for a few weeks now. I'm still calling it NullBot, as it is based on similar ideas, yet it has been completely rewritten from scratch internally. You might have noticed some preliminary discussions in this thread, or even tried looking at the source code in its new home on github.

The AI is now present in two variations: Generic and Turtle. Generic AI is what you'd like to try; it makes use of as many game aspects as possible. Turtle AI is an AI that uses only defenses and hardly builds any tanks; may be of some interest.
  • nullbot-3-02.wz
    For v3.2+; install to autoload
    (36.8 KiB) Downloaded 2023 times
    Image
As i already mentioned three times, it will not work on warzone2100-v3.1.*, but only on v3.2+, which is now available only as git master snapshots for windows and linux here. Moreover, it requires a very recent snapshot, as there were many fixes to the JS engine recently. A backport project that may bring this AI to v3.1 is in progress by aubergine.

While playing v3.2, you will notice an experimental change in game starting conditions; NullBot was already adapted to it (partially; most likely a better build order could be suggested), but you were probably not, so be aware (:

Chat commands:

Use in-game chat to communicate with NullBot3 and alter his behaviour. Most of these commands will be listened by allied NullBot3 players only. Use private chat if you want to talk to particular AI players only.
  • !nb set - set personality. For example, say "!nb set mr" to activate a machinegun-rocket personality in the middle of the game; it will start researching and producing machineguns and rockets. Different NullBot3 AIs support different personalities; use this command without arguments to see the whole list.
  • !nb res - set research path. Allows finer control over research path without changing subpersonality. For example, say "!nb set mg" to make him research machineguns. Different NullBot3 rulesets support different weapon research paths; use this command without arguments to see the whole list. There are also three special research paths that are always supported:
    • !nb res cl - clear all previous research commands and return to the default behaviour.
    • !nb res no - research nothing.
    • !nb res fn - research fundamental technologies, such as power or research upgrades.
  • !nb truck - ask an AI player to give you a truck. He will always give you a truck, even if it's his last truck.
  • !nb power - ask an AI player to give you money.
  • !nb go - ask an AI player to bring an army to a certain location specified by an Alt+H beacon. Use this to ask for help or coordinate attacks. Depending on the situation, the AI may be unable to react quickly.
  • !nb tx - recall the previous !nb go order.
  • !nb who - asks the AI to report his version. Allied AIs also report their personality.
Experimental Scavenger AI:

When installed together with the main NullBot3 mod, the mod below makes NullBot3 control scavengers. This is not really a separate AI; it uses the same code, just obeys the rules set for scavenger player. So it will play tough: aggressively attack random enemies with tightly packed armies, pick up oil drums, harass defenseless derricks and do other dirty tricks you won't expect from scavengers. So i won't really recommend it for everyday use.
Special thanks to:
  • Per for continuous improvements of JS API which made the thing possible.
  • Duha for revising the code and sending specific corrections and improvements.
  • aubergine for his constant documentation work, which i'm making use of using regularly, and for his efforts to backport this AI to v3.1.
  • Shadow Wolf TJC for providing a huge bunch of ideas that shaped the new ruleset/personality definition code.
Last edited by NoQ on 23 May 2013, 05:48, edited 22 times in total.
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

More details

Post by NoQ »

Currently NullBot3 has generic, turtle and scavenger personalities and consists of around 3600 lines of JS code. Generic personality only of the old NullBot2 is made of over 4000 lines of code.
  • Image
Things that were not yet implemented for v3, compared to the original NullBot, include
  • Multiple fixed personalities; currently the generic AI presented here randomly picks one of the four standard AP/AT weapon pairs (similarly to the NullBot2 generic, and MG/Flamer subpersonality will not be implemented (for game balance fixes are now still being worked on), and the turtle AI uses MG/Cannons or MG/Rockets.
  • Difficulty levels support. Currently EASY difficulty is implemented, INSANE difficulty is better due to hard-coded cheats, while MEDIUM and HARD are absolutely similar.
Things that were implemented for v3 but were never implemented in the original NullBot include
  • Multiple new forms of adaptations (it will use yellow bodies against flamers, it will use borgs against rockets; none of that was possible within v3.1 JS API), this includes adaptive researching (don't research borg alloys when we don't need borgs, don't research thermal armor when enemy uses no flamers) and adaptive base structure (don't build cyborg factories when we don't need borgs), splitting cyborgs, VTOLs and defenses into anti-tank/anti-borg/anti-structure/anti-air (as suggested and partially implemented in NullBot-SW).
  • Support for VTOL-only map (v3.1 JS API limitations don't allow that).
  • Support for non-shared-research game mode (the mode itself is only available in 3.2+).
Things that were not ever implemented but are planned now include
  • Commander and transporter support. Even though i believe they should be disabled by default (for it's most often a bad idea to use them in skirmish), that code is necessary to provide interesting challenge maps.
  • Adaptation without deity cheating, based only on seen objects.
Issues that i'm currently looking for a feedback on:
  • Any unusual wzlog/stderr messages that come up are of interest, please attach logs here.
  • If anybody finds a way to reproduce #3894, please comment in this ticket. It might be related to the use of new scripting functions, but it's not certain.
  • If the AI causes slowdowns or sound stuttering, which is not uncommon for NullBot (even though quite some work has been done on this issue within the new code) in v3.2 we have a new mechanism for investigating them. Just close the game cleanly (by using "quit" in the escape key menu, rather than killing the process or closing the window in the middle of the game), and you'll see nb_generic.*.log files in the logs directory; please send them to me.
  • If you think that the AI is behaving weirdly or plays poorly, please attach a savegame so that i could have a look and investigate the issue in place. At least, a screenshot could already be helpful.
Last edited by NoQ on 06 Jun 2013, 06:38, edited 11 times in total.
themac
Trained
Trained
Posts: 413
Joined: 17 Jul 2009, 19:14
Location: Germany

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by themac »

Can not await to play with NullBot Reloaded. I am curious if we will get a working beta of Warzone for the Mac soon to be able to play the new NullBot. :-)
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by aubergine »

Unable to test as I'm on a mac, but I've been following the code development and it's looking awesome! I really like the clarity that's starting to form within the code, and just seeing how NullBot is making decisions in this new version makes it clear that things are on the right track for this to be a truly great AI.
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
dak180
Trained
Trained
Posts: 288
Joined: 01 Nov 2009, 23:58
Location: Keeper of the Mac Builds

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by dak180 »

User:dak180
Keeper of the Mac Builds
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by NoQ »

Thanks dak180, i just hope they like what they see :D :oops:
User avatar
Arreon
Trained
Trained
Posts: 324
Joined: 15 Feb 2009, 05:57
Contact:

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by Arreon »

I can't use this new Nullbot due to this annoying error:
Attachments
WZlog-0130_155937.txt
(51.03 KiB) Downloaded 1365 times
OS: Windows 7 Home Premium 64-bit
Processor: AMD Phenom II X6 1045T (6 CPUs), ~2.7GHz
Memory: 8192MB RAM
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by NoQ »

What master snapshot are you using? May it be something not recent enough?
User avatar
Arreon
Trained
Trained
Posts: 324
Joined: 15 Feb 2009, 05:57
Contact:

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by Arreon »

NoQ wrote:What master snapshot are you using? May it be something not recent enough?
warzone2100-master-20130118-080044-170f3a9.exe
OS: Windows 7 Home Premium 64-bit
Processor: AMD Phenom II X6 1045T (6 CPUs), ~2.7GHz
Memory: 8192MB RAM
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by NoQ »

Too old XD Currently the AI relies on commits from at least 20130128 (such as).
User avatar
Prot
Trained
Trained
Posts: 242
Joined: 29 Nov 2010, 12:41

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by Prot »

NoQ, how to fetch latest code of you bot?
Or you using same git repository as the game 3.2+ ?
User avatar
Arreon
Trained
Trained
Posts: 324
Joined: 15 Feb 2009, 05:57
Contact:

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by Arreon »

How do I fix it?
OS: Windows 7 Home Premium 64-bit
Processor: AMD Phenom II X6 1045T (6 CPUs), ~2.7GHz
Memory: 8192MB RAM
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by NoQ »

Prot wrote:NoQ, how to fetch latest code of you bot?
Or you using same git repository as the game 3.2+ ?
NoQ wrote:github
Arreon wrote:How do I fix it?
Get a newer snapshot and install it.
User avatar
Arreon
Trained
Trained
Posts: 324
Joined: 15 Feb 2009, 05:57
Contact:

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by Arreon »

NoQ wrote:
Prot wrote:NoQ, how to fetch latest code of you bot?
Or you using same git repository as the game 3.2+ ?
NoQ wrote:github
Arreon wrote:How do I fix it?
Get a newer snapshot and install it.
That was the newest snapshot I could find. Can you link me to a newer one?
OS: Windows 7 Home Premium 64-bit
Processor: AMD Phenom II X6 1045T (6 CPUs), ~2.7GHz
Memory: 8192MB RAM
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: [3.2+] NullBot 3 ‘Reloaded’ ~alpha~

Post by NoQ »

Hmm, seriously? Are all snapshots broken currently? :shock: O_o :o
Cause i'm compiling the game from git directly, and never needed to check out snapshots.

P.S. Lol, just noticed that i've been packing calling the mod .zip since eternity, and it worked.
Re-named anyway.
Post Reply