Treat Fighter Status

Recommended Posts

Just a quick update on the status of Treat Fighter. We're still working through the backlog of bugs from the beta competition. Hopefully we will have another build out soon. At that point, we will consider doing another beta competition to make sure there are no more sync bugs before the real release.

RPC server options:
-maxgameblockattaches=<n>
Sets the maximum number of attach steps sent for a single
game_sendupdates request (default: 1000)
-nameencoding=<enc>
Sets the default encoding used for names in the RPC interface (default:
utf8)
-rest
Accept public REST requests (default: 0)
-rpcallowip=<ip>
Allow JSON-RPC connections from specified source. Valid for <ip> are a
single IP (e.g. 1.2.3.4), a network/netmask (e.g.
1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
option can be specified multiple times
-rpcauth=<userpw>
Username and hashed password for JSON-RPC connections. The field
<userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
canonical python script is included in share/rpcauth. The client
then connects normally using the
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
option can be specified multiple times
-rpcbind=<addr>[:port]
Bind to given address to listen for JSON-RPC connections. This option is
ignored unless -rpcallowip is also passed. Port is optional and
overrides -rpcport. Use [host]:port notation for IPv6. This
option can be specified multiple times (default: 127.0.0.1 and
::1 i.e., localhost, or if -rpcallowip has been specified,
0.0.0.0 and :: i.e., all addresses)
-rpccookiefile=<loc>
Location of the auth cookie. Relative paths will be prefixed by a
net-specific datadir location. (default: data dir)
-rpcpassword=<pw>
Password for JSON-RPC connections
-rpcport=<port>
Listen for JSON-RPC connections on <port> (default: 8396, testnet:
18396, regtest: 18493)
-rpcserialversion
Sets the serialization of raw transaction or block hex returned in
non-verbose mode, non-segwit(0) or segwit(1) (default: 1)
-rpcthreads=<n>
Set the number of threads to service RPC calls (default: 4)
-rpcuser=<user>
Username for JSON-RPC connections
-server
Accept command line and JSON-RPC commands
-valueencoding=<enc>
Sets the default encoding used for values in the RPC interface (default:
ascii)

Share this post

Link to post

Share on other sites

I think it is freezing up: You can see xayad shows block 637,273 but treatfighter shows 637,260. Also, earlier when I bought the crystals, etc it didn't update until I restarted.

Actually, just now I restarted treatfighter and now my treat is ready right away. So I think the game gets stuck on the last block when it starts up.

Reminder: This is the linux version.

EDIT:

Yes, sometimes it is updating but for a lot of stuff (end expedition, etc) I need to restart it. I can see xayad doing stuff in the background in response to eg starting to cook a treat, but sometimes it just gets stuck in "prepare" mode.

Share this post

Link to post

Share on other sites

I think it is freezing up: You can see xayad shows block 637,273 but treatfighter shows 637,260. Also, earlier when I bought the crystals, etc it didn't update until I restarted.

Actually, just now I restarted treatfighter and now my treat is ready right away. So I think the game gets stuck on the last block when it starts up.

Reminder: This is the linux version.

EDIT:

Yes, sometimes it is updating but for a lot of stuff (end expedition, etc) I need to restart it. I can see xayad doing stuff in the background in response to eg starting to cook a treat, but sometimes it just gets stuck in "prepare" mode.

That sounds like you need to have zeroMQ enabled in your wallet. I think there's a compile option and maybe a config option, but it's been a while since I've looked at that since it's built in to the windows wallet automatically.

Share this post

Link to post

Share on other sites

That sounds like you need to have zeroMQ enabled in your wallet. I think there's a compile option and maybe a config option, but it's been a while since I've looked at that since it's built in to the windows wallet automatically.

Interesting. This makes it seem like it should be enabled on linux automatically. I also found this trackgame flag by running xayad -help, not sure what it does but it did not solve my problem:

xayad -wallet=game.dat -trackgame=tftr

I will try to recompile and make sure zmq is enabled, perhaps it failed due to a missing dependency. Otherwise it should be enabled by default:

Quote

By default, the ZeroMQ feature is automatically compiled in if the necessary prerequisites are found. To disable, use --disable-zmq during the configure step of building bitcoind:

Share this post

Link to post

Share on other sites

ZMQ is automatically compiled in if found, but the notifications need to be enabled at runtime. You need to pass flags like "-zmqpubgameblocks=tcp://127.0.0.1:28555" for that; this is the flag needed for other games like Taurion and SME, I don't actually know exactly which notifications you need for Treat Fighter. You can run "getzmqnotifications" to see which ones are enabled at runtime.

The trackedgames options can be modified at runtime using the "trackedgames" RPC method, so games can automatically enable/disable themselves as needed. Again, I know for sure that Taurion and SME do this (as well as other libxayagame-based games), but I don't know about Treat Fighter.

Share this post

Link to post

Share on other sites

Even if the ports are different then games should still work fine - they should not use fixed ports but call "getzmqnotifications" to find out which ports to connect. libxayagame-based games do that - I don't know about TreatFighter. But I think we mentioned "getzmqnotifications" in some discussions with Trickyfast, so I think they also do it.