STUCI new changes

STUCI auto chess program for yahoo
Post Reply
User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

STUCI new changes

Post by zappa_engine »

Not to set any expectations too high, I didn't want to post this publicly yet. So asking advice of a private audience here...

I am working on STUCI Classic, and this is what may come out some time when it's ready. Or it may never come out. I'm not sure yet.
What I am working on is multi-login support, multiple-timer support, and other things already done (auto-install crypt-ssleay, tk if it isn't detected--so should work with perl 5.10 maybe, untested), little bug fixes too. The code has been vastly redone, as to make it flexible for me to support the multi-login options, and to swap out protocol methods of communication easily (because I don't want to distribute non-captcha login support openly).
room-selection.jpg
This is a prototype secondary screen displayed after the user has logged in. There isn't a button showing yet, but I expect to add one to "Change Users". Also, should the user want to log onto another server, this is the likely screen that will pop up again for them to select another room to change users and then log in again.
stuci-console.jpg
This is the more user-friendly console message. It asks if the user wants to log in... because the login data is saved after the first log in and it doesn't expire until ???? so the user does not have to log in to enter a room again. They can enter 'n' to skip log in. Also notice there is pop-up window after it says Please load an ICS client now... next screen shot. This can be saved to auto-load winboard afterwards with no prompting.
auto-load-winboard.jpg
Very familiar browse interface to load up Winboard. This can pop up every time, or it can be saved to auto-load after you select it once every time.
You do not have the required permissions to view the files attached to this post.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI new changes

Post by zappa_engine »

Comments!! Too many views, zero comments :/

Okay more info about the direction STUCI is headed in. This is just visionary but the idea is planted in my head and you never know how far I'll go.

WINBOARD (clients/engines) <---> STUCI (manager) <---> YAHOO (server/servers)

You have clients and engines on one side.
You have STUCI in the middle.
You have servers or multi-login on the other side.

STUCI should be able to stand alone without clients/engines.
STUCI should be able to stand alone without servers/servers.

What this means is STUCI will have it's own prompt. And while everything will be automated to act like the old YtoICS, it really is more flexible.

Client/Engine side: You could start STUCI, never connect a client(winboard), or an engine(UCI). Instead you're at the STUCI prompt. You type in 'connect'. The rooms dialog pops up. You select a room, and it connects. You can chat only, or play moves by text (e2e4) and use the built in text board (style 1).

Server side: You could start STUCI and reach the prompt, not connected to any server. Then you use the 'connect' option to connect. If you close out the last connection you're back at the STUCI prompt. In general though, it would auto-connect to the server without the user needing to do that. This is really more of a fallback for when the user disconnects from the last server.

So if you understand what I am saying, STUCI will allow hot-plugging clients/engines and servers. Switch from UCI to polyglot to auto232d at will... Switch/join multiple servers at will.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI new changes

Post by zappa_engine »

I forgot to mention the columns/iprint/screen width changes. There's new variable called screenwidth. You know it's set to 80 by default. There's also such things as a Log On script that runs on connection to server. You can edit that script to manually set the screenwidth for you. In fact, it might be my solution to customizing STUCI with external files. You simply edit the Log On script to set all your variables on log on, and you can even create a table, set up settings immediately. It's actually turned out nicer than I envisioned it ;)

Anyways, really I wanted to show this off here.
screenwidth-demo.jpg
stuci-connection-script.txt

Code: Select all

<Servers>
	<Server>
		<Name>Advanced Lounge</Name>
		<User>all</User>
		<Script>
			set screenwidth 160
			set bootmsg Ouch, what a pain in the butt! Bye bye...
			set style 13
			set ratingdiff >= -200
			create
			tset time 1
			tset inc 0
			shout Hello room! I'm ready to play!!!
		</Script>
	</Server>
</Servers>
advanced script tricks (perl scripting, not exact but you get the idea)

Code: Select all

<Servers>
	<Server>
		<Name>Advanced Lounge</Name>
		<User>all</User>
		<Script>
			set eval 1
			eval if (gettimeofday() > 5pm and gettimeofday() < 12pm) { ics_shout("Good evening everyone!"); }
			set eval 0
		</Script>
	</Server>
</Servers>
You do not have the required permissions to view the files attached to this post.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
matematiko
Co-Admin
Co-Admin
Posts: 1511
Joined: 17 Oct 2007 13:32
Location: Texas USA

Re: STUCI new changes

Post by matematiko »

I am speechless, all of these suggestions/ideas are wonderfull.

In regards of the room selection window, there are international users logging to rooms not shown neither in the Control Tower(he he) or the Yahoo Chess main page, I am suggesting and extra button that will allow the user to add these rooms, other than that I have no more comments. Good job !!!!
Using engines to cheat:
- It is not ethical,
- It is useless, nothing is gained (how can one be proud of a score earn with dishonesty?)
- You will be baned, sooner or later,
- It gives us (the true chess engine players) a bad reputation.

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI new changes

Post by zappa_engine »

matematiko wrote:In regards of the room selection window, there are international users logging to rooms not shown neither in the Control Tower(he he) or the Yahoo Chess main page, I am suggesting and extra button that will allow the user to add these rooms
Are you certain about that Control Tower doesn't show locale rooms? When I changed the locale in the control tower link to de or au, I did notice different room links. Although I'll have to note I'm not sure at this point how to detect the user's locale automatically. I was already thinking of adding an extra "tab" called custom with a custom form for the user to fill out, and as such, with input for the usual information: Room Name, YPort, Server, Port, and one more item but I can't think of it right now. Although my thought was not for custom locales but those 3 anonymous rooms I mentioned to you about earlier ;) Superunknown, Where the streets have no name, and once again, the third one I forgot the name.

Anyhow, glad to see you like the ideas. Would you like to take a look at a test build? (Warning: It has the new protocol module only and you mentioned you didn't want to see that until we were ready...). Others are welcome to look at the source by request. Just to note though, it will be stripped of protocol code and I haven't implemented the old protocol as an external file yet so you'll have a non-working code but you'll get the idea of how it is re-structured for hot-plugging and also see some bug fixes, features in code.



Okay, this is a mangled version of the code. I guarantee you this will not work or run unless you put significant work into it because I went though it quickly and if I noticed anything at all I changed to adjust it for protocol issues, the whole function was probably removed without thought. It is only supplied as a code preview to learn. With that said, there's quite a bit of new stuff in there.
Public Preview Copy 2008 06 15.rar
You do not have the required permissions to view the files attached to this post.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
dene
Co-Admin
Co-Admin
Posts: 407
Joined: 04 Oct 2007 07:46
Location: United Kingdom
Contact:

Re: STUCI new changes

Post by dene »

Some very good ideas there.

1 question, ...If I understand this correctly, Stuci would have the ability to allow the user to swap between polyglot and chessbase auto232d without disconnecting your id from the server?

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI new changes

Post by zappa_engine »

dene wrote:Some very good ideas there.

1 question, ...If I understand this correctly, Stuci would have the ability to allow the user to swap between polyglot and chessbase auto232d without disconnecting your id from the server?
Exactly. Hot-plug clients and servers. You'd have files with the saved information once you set it up.

Such server hot-plug files are "zappa_engine.yahoo.server", "fasterlol.yahoo.server" which are saved after you log in. They work for any room. In the future if protocol issues can be worked out for any other server than Yahoo, this can be extended to work with another server, not just Yahoo, I think! It's just a matter of someone programming the protocol files and login.

Such client hot-plug files are "rybka.uci.client", "fritz-auto232d.ics.client", "polyglot-hiarcs.ics.client", "noengine.ics.client". You get the idea. There's UCI, ICS, or none for the client modes.

Then you can load STUCI, get a popup or text menu or whatever asking you to select a client and server.
Or you can load STUCI like this: stuci-090909.pl -client=polyglot-zappa.ics -server=fasterlol.yahoo to automate stuff.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Filters

Post by zappa_engine »

Here is the a proposed filtering system I am designing. Try:

filter "Using YaY" &add_to_bot_list -- Generates a list of users using scripts when they advertise themselves
filter "Using STUCI" &add_to_bot_list -- Generates a list of users using scripts when they advertise themselves
filter "webcam" &ics_blacklist -- Blacklists users who use the word 'webcam' (ignore all of their chat, boot, etc)
filter "webcam" -- Filters the message using word 'webcam' but doesn't filter other messages from the user

In conjunction with log on scripts, you can build a filter list.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI new changes

Post by zappa_engine »

Well this is more of an internal change but response time to server (particularly sending data to server) has been improved. I don't think anyone will notice it though unless you can notice 1/20th of a second tick by ;) But this would be great for speed games where you could be sending greater than 5 moves a second. Imagine a 60 move game in which you saved 3 seconds off your time. Actually I am exaggerating because saving the max time of 1/20th seconds per move doesn't happen every time. It could be between 0 seconds and 1/20th of a second, so if you average it out, it's about half of that time saved.

You're saving 1.5 seconds in a 60 move game, excellent! :hhh
Oh well, every small bit of performance helps right?
Here comes 8.5 second games!
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI new changes

Post by zappa_engine »

Speeding up engines is a matter changing the time modifiers.

With polyglot and future (uci native support), the style board sends the direct time from Yahoo to the engine. The engine deals with how long it wants to think, before it makes the move. Style 99 is the special variant which tells the engine it has 0 seconds to think, therefore forcing instant moves. A new style is going to be implemented using time modifiers. It can be activated when the time left reaches a certain amount, or it can be active the entire match.

Time modifier: 2
How does this affect the engine speed? If the Yahoo server tells us we have 2 minutes to move, we instead tell our engines we have (2 minutes / 2 = 1 minute) 1 minute to move.

So along with the network performance boost I mentioned before, style 99 board, and time modifiers, STUCI can be tweaked to perform as fast, faster, or slow as you want. Quite possibly, you could tweak STUCI to spend more time than usual in the beginning/middle of the game, and less time near the end hoping the beginning and middle are won by spending more time. Now that's micro-time management!

MORE EDITS: Okay, style 99 is going to be removed. Style was actually a way to describe how the board would display to the user. Not how time was managed. Style 1 is a legit text board. Style 12 is a legit graphical board. Style 13 is style 12 with a checkmate detection routine. Every style but style 1 and style 12 will be removed. The functionality lost will be replaced in other commands though. For example, 'set timemod [0-2]' will set the time modifier. And yes, the time modifier is going through changes again too. A time mod of 2 means it will tell the engine it has 4 minutes to move if you actually only have 2 minutes to move. A time mod of 0 will be the same thing as the old style 99. Since style 13 is removed, to get it's functionality back you would set the checkmate detection variable. It would be something like 'set delaymate 1' to delay checkmates that happen under 30 seconds.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
elcriollito
Moderator
Moderator
Posts: 442
Joined: 09 Oct 2007 19:14
Location: Cuba
Contact:

Re: STUCI new changes

Post by elcriollito »

wow,speechless about the avality to increase speed in a game

hope u can finish ur great project
"The winner of the game is the player who makes the next-to-last mistake."
- Tartakover -
https://t.me/ChessEnginesTournaments

Post Reply