<< Back to Programming Forum   Search

Posts 1 - 22 of 22   
CLOT games auto-joining player?: 9/11/2013 21:25:17


ChrisCMU 
Level 60
Report
I created a CLOT and my first game was made (between myself and a test account). Something weird though is it automatically joined me to the game. My test account still has to join, but because I am the host of the CLOT it makes me join? I don't like that of course as I should have the same window to join as any other player. Any idea how I can fix that?
CLOT games auto-joining player?: 9/11/2013 21:29:18

Fizzer 
Level 58

Warzone Creator
Report
Games that you create through the API are registered as created by you (if you look in the game settings it'll say you made it.)

And just like creating games through the UI, you start joined to your own games.

The only way you wouldn't be joined is if you didn't get your color (i.e. you're the same color as another player and lower level)
CLOT games auto-joining player?: 9/11/2013 21:40:26


ChrisCMU 
Level 60
Report
That is a pain. Does it do that on tournaments you create too (outside of CLOT)?

Luckily I have it on mobile, but sometimes I delay joining (especially team games) a couple days until I am back on my PC.
CLOT games auto-joining player?: 9/11/2013 21:42:12


ChrisCMU 
Level 60
Report
The biggest thing on my list now is figuring out how to add ELO system. I have no idea where to start, but will start anyway :)
CLOT games auto-joining player?: 9/11/2013 21:53:00

Fizzer 
Level 58

Warzone Creator
Report
Tournament games aren't marked as created by the tournament creator. Instead, they get a line in the settings that says what tournament they're part of. Players can click that to see who made the tournament.

Googling "python elo" finds a few promising projects.

"Python Implementation of the TrueSkill, Glicko and Elo Ranking Algorithms" : https://github.com/McLeopold/PythonSkills

TrueSkill or Elo would probably work well for you. I know TrueSkill even handles teams properly (even when players may play different games on different teams, it will reward everyone correctly).

Edited 9/11/2013 21:54:23
CLOT games auto-joining player?: 9/11/2013 21:59:11


ChrisCMU 
Level 60
Report
Yeah, that is the one I am looking at (the link you provided) already...thanks.
CLOT games auto-joining player?: 9/11/2013 22:20:11


ChrisCMU 
Level 60
Report
So my alternative for the auto-join would be to have the CLOT setup by an alternate account that doesn't participate in the CLOT itself? The issue there is having an alt with all those features unlocked. Since I am already a member, I have no idea what level I need to actually unlock the stuff I need. And I'm also not a fan of the farming action either.
CLOT games auto-joining player?: 9/11/2013 22:30:45


Green 
Level 56
Report
Good luck, It's great to hear some CLOTs are being made. Are you planning to make this public?
CLOT games auto-joining player?: 9/11/2013 22:34:48


Krzysztof 
Level 66
Report
If you want to use alt as game creator you need membership for it. And i suppose you don't need to unlock anything in that case, cause only invited players have to meet template's requirements.
CLOT games auto-joining player?: 9/11/2013 23:01:26


ChrisCMU 
Level 60
Report
Yeah, not going to buy another membership to avoid auto-join.

Green - I will open some up to public for sure, yes. First one will probably just be a clan ladder though.
CLOT games auto-joining player?: 9/12/2013 17:07:49


ChrisCMU 
Level 60
Report
Well, yesterday it deleted the game and awarded a loss to the other player for not joining the game by the time the next cron started. Not sure why it would do that. I need to figure that out, has anyone else seen this?

I see the code doing it, just gotta dig into it:

elif state == 'WaitingForPlayers':
#It's in the lobby still. Check if it's been too long.
elapsed = datetime.datetime.now() - g.dateCreated
if not clot.gameFailedToStart(elapsed):
logging.info("Game " + str(g.wlnetGameID) + " is in the lobby for " + str(elapsed.days)+ " days.")
else:
logging.info('Game ' + str(g.wlnetGameID) + " is stuck in the lobby. Marking it as a loss for anyone who didn't join and deleting it.")

Edited 9/12/2013 17:09:50
CLOT games auto-joining player?: 9/12/2013 17:29:33


ChrisCMU 
Level 60
Report
I don't think the "not" should be here:

if not clot.gameFailedToStart(elapsed): logging.info("Game " + str(g.wlnetGameID) + " is in the lobby for " + str(elapsed.days)+ " days.")

gameFailedToStart is set for 10 minutes. So if the game does not start in 10 minutes, we are setting off this else function of:

logging.info('Game ' + str(g.wlnetGameID) + " is stuck in the lobby. Marking it as a loss for anyone who didn't join and deleting it.")

I am removing the "not" to test (cron kicks off in half hour, so I should know soon).

Edited 9/12/2013 17:31:28
CLOT games auto-joining player?: 9/12/2013 17:47:34

Fizzer 
Level 58

Warzone Creator
Report
This is the code that handles games that nobody joins. You don't want them sitting around forever.

It sounds like the problem is that it's set to expire lobby games in 10 minutes. That should be 3 days by default (I changed it to 10 minutes for my real-time ladder and forgot to change it back.)

If you remove the "not" and leave it at 10 minutes, you're saying that games will only expire if they're LESS than 10 minutes old. In other words, if the cron happens to run right after a game is created, it will immediately delete it. And if it doesn't happen to run within 10 minutes, then the game will be stuck forever.
CLOT games auto-joining player?: 9/12/2013 18:22:31


ChrisCMU 
Level 60
Report
Oh, I will change the time from 300 seconds then. Thanks.
CLOT games auto-joining player?: 9/12/2013 18:25:13


ChrisCMU 
Level 60
Report
Why would you want a default amount of 3 days? What if someone is on vacation? It would give them a loss and boot them from the CLOT. Wouldn't I want it set to something larger (maybe 30 days)? So it would function like your 100 day removal that you have on the site?

30 days might be too much since it would stall the CLOT (since it only does 1 matchup per person at a time). People may just have to leave the CLOT if they go on vacation (and leave the amount at 5 days maybe).

Edited 9/12/2013 18:27:58
CLOT games auto-joining player?: 9/12/2013 18:33:40


Mirror 
Level 59
Report
Or maybe you can checkfor vacation status on players and remove them from CLOT?
CLOT games auto-joining player?: 9/12/2013 18:48:21


ChrisCMU 
Level 60
Report
Yeah, I am sure that is possible.
CLOT games auto-joining player?: 9/12/2013 18:55:53


ps 
Level 60
Report
Or maybe you can checkfor vacation status on players and remove them from CLOT?


Yeah, I am sure that is possible.


Actually i dont think it is. afaicr the game status api doesnt give any info if a player is currently on vacations. But i'm sure you can bother Fizzer to do a little update to include that info if it's critical for your CLOT.

Edited 9/12/2013 18:56:18
CLOT games auto-joining player?: 9/12/2013 18:58:33


ps 
Level 60
Report
ofcourse you can always set your games to not honor vacations and the players will be booted accordingly, but there is nothing forcing them to join new games, so your ladder can still get hold up if you don't check for players taking longer then usual to join. Had that problem with 3vs3 Europe when Aranka went on vacations.
CLOT games auto-joining player?: 9/12/2013 18:58:51


ChrisCMU 
Level 60
Report
I don't think it is critical, but it would be helpful. My guess is most people leave ladders while on vacation anyway, so they could leave the CLOT too. If not, they may get a loss and get kicked out, but that keeps them active in checking the CLOT I guess.
CLOT games auto-joining player?: 9/12/2013 20:58:14


Timinator • apex 
Level 64
Report
Use a template which hasn't checked "Start game when all players join"?

but that means you have to start every game created by CLOT

(refering to your starting problem)
CLOT games auto-joining player?: 9/16/2013 14:33:46


ChrisCMU 
Level 60
Report
So if I make a change to something (like changing the gameFailedToStart function), do I have to redeploy my CLOT every time? I changed it from the 10 minute check to 5 days and it did not reflect in my CLOT the next time it ran cron. If I make changes to my website template (page color, etc) it happens the next time I refresh the page (regardless of the cron running or not). How to I make sure .py changes are reflected?

EDIT - I re-deployed the CLOT and it reflected the proper changes. It is no longer deleting my games after 10 minutes of not joining.

Edited 9/17/2013 14:10:46
Posts 1 - 22 of 22