DeveloperCreated Saturday, July 4th 2015 @ 01:21:55
As you have noticed, we have just released our latest competition: AI Block Battle! We are very exited about this one, because we think this is one of the most fun games, both to code and watch. We hope you really enjoy it as well.
Keep in mind though, that this competition is still in Beta for now. We are testing out some settings and all feedback is welcome, so we can eventually bring you the best competition we can. Also the visuals of the game will get another update later.
That's it for now, we will continue to keep you updated through forums posts and email.
Have fun coding!
- Created Saturday, July 4th 2015 @ 02:03:05
Did you made the rules of the game yourself or did you get inspired by another game (apart from Tetris)?
I'm not sure how this challenge will play out. It seems far less... 'experimental' than the WarLight AI challenge 2 and instead kinda 'solvable'. I guess between the good guys it will soon be mainly about fine tuning some weights for their heuristics and maybe someone with a mathematical background will interpret this game in a more abstract way. In the WarLight challenge also many non professional programmers but with lots of passion were capable of gaining great results while I believe this will be more difficult with this challenge.
- Created Saturday, July 4th 2015 @ 12:37:48
Cool. Battle visualization isn't working. Lots errors in browser console. FF38, linux.
TheCodeSamuraiCreated Sunday, July 5th 2015 @ 03:50:04
Seems like a ton of fun and currently working on winning this thing (or not)!
Can you please clarify what rotation system is being used in the Rules section? I can try to reverse-engineer it from the played games so far, but it would be easier on everyone if you could clarify how the pieces rotate.
DeveloperCreated Sunday, July 5th 2015 @ 10:37:37
Sorry I forgot to include that to the rules section, and will add that soon. You can have a look at the starterbot to see how it's done there for now.
OkeyDokeyCreated Sunday, July 5th 2015 @ 12:08:13
Usually, garbage lines (lines sent by your opponent) have a hole (an empty cell). Clearing garbage lines is considered a skill in multiplayer Tetris. If you mustn't downstack garbage, then you just leave the most-right column empty (or the 2-to-3-most-right columns in case of combos) and make some Tetrises (or combos). I know the rules will probably stay as they are, but I had to mention it nonetheless.
You've to adjust the score table. Double and Triple line clears are harder to do than Single line clears, so they should be rewarded. Also a Tetris (4 lines cleared at once) should yield more points. Currently, a Tetris is worth 8 points. That's as many points per cleared line as a Single-Single-Single combo.
My suggestion: Double = 3 points, Triple = 6 points, Tetris = 12 points
- Created Monday, July 6th 2015 @ 16:07:07
Thanks! Really nice game for challange :) Will certainly participate, this time with bot on scala.
- Created Monday, July 6th 2015 @ 16:10:12
In general I like the game, and I like the (as always very professional) visualization.Some initial feedback:
My fear is that in the end, the game is a bit too simple, and future top bots will all play very decent and it will be impossible to point out which one is the best. Suppose bot A makes on average 3% more points than bot B (which might at top level be a huge difference). But that is only half a solid line on a full board on average, so in an individual game the factor of luck will play a huge part, and many games are required to filter out this luck. Tuning the point system could improve this (for example like OkeyDokeys suggestion, although I also like the combo counter). But perhaps I am too pessimistic, we should soon know when more bots enter and people have had time to implement good strategies.
A suggestion is to make the game a bit more complicated for example by giving more control to a bot to interfere with the opponent. For example instead of sending a whole solid line, the bot could freely choose 4 different columns on which one solid cell will be dropped. Currently a bot does not need to care too much about its opponent's state. Or anything else that involves messing with the opponent in some way.
- Updated Monday, July 6th 2015 @ 22:25:15
Relating to what OkeyDokey and DaFish are saying, I'm not entirely sure if it's a good or bad thing that the points system doesn't reward doubles or triples.
After all, on the home page of ai block battle it does mention: Do you want to survive as long as possible and count on your opponent messing up? Or will you take the risk, score points, and crush your opponent!
Rewarding doubles and triples might defeat the purpose as quoted above.
In any case, if you were to decide to amend the scoring system, I've tried to tackle the problem of determining what the ideal scoring ratios might be for a clear of n lines and thought I'd share what I came up with as a result.
1, 2, 4, 8 for single, double, triple, and quad respectively.
It could also be, depending on desired quad bonus score:
1, 2, 4, 10 1, 3, 4, 12 1, 3, 5, 14
This is how I got it:
I thought that the score awarded should match the difficulty of a clear and that this would be determined, at least in part and at best in the most part, by the number of opportunities for the clear amongst a set of all possible opportunities. I came up with a few different ideas involving the stack itself, but it's allot simpler to just look at the available pieces themselves.
Consider that for each of the 7 pieces, and for each of the distinct orientation of each piece, there are a only a few possible outcomes involving line clears that can result.
eg. For the T piece and each of its 4 distinct orientations the possibilities are:
[#] [#][#][#] < Single [#] [#][#] < Single < Double [#] < Single [#][#][#] < Single < Double [#] < Single [#] [#][#] < Single < Double [#] < Single
So for the T piece, there are 7 possible ways you can score a single and 3 ways you can score a double.
Singles: 34 I: 5, O: 2, T: 7, L: 7, J: 7, S: 3, Z: 3 Doubles: 15 I: 3, O: 1, T: 3, L: 3, J: 3, S: 1, Z: 1 Triples: 6 I: 2, L: 2, J: 2, Qauds: 1 I: 1 Total: 56
Probability that a clear will be of n lines:
Single 34/56 Double 15/56 Triple 6/56 Quad 1/56 score = clears + bonus bonus = x / prob given that a quad clear yields a bonus of 4: 4 = x / (1/56) x = 4 * (1/56) x = 0.0714 Single 1 + (x / (34/56)) = 1.1 = 1 Double 2 + (x / (15/56)) = 2.3 = 2 Triple 3 + (x / (6/56)) = 3.7 = 4 Quad 4 + (x / (1/56)) = 8.0 = 8
- Updated Tuesday, July 7th 2015 @ 01:49:31
DaFish brings up a good point. The skill ceiling might be too low. It might be worth adding some depth to prevent that from happening.
As OkeyDokey pointed out, combos are more powerful than Tetrises after only a few lines in a row. (Here is an explanation for how to evaluate attacking power for each method).
Since combos are so strong, as it stands, you won't see top bots doing quad clears. The reason is that when combos are strong, singles become the best. You can have a quad clear in a combo, but it's more effective to break it down into singles to leverage the combo bonus to the full extent. In my opinion, this is a "perverse incentive." We should be rewarding larger line clears--not smaller ones. I also believe that having an AI figure out how to stack 4-line clears is a more interesting problem than having it look for combos. Combos tend to be safer, as they can be done with any piece and with any amount of lines. 4-line clears would cause the AI to think more carefully about the risk and rewards of stacking up high.
As OkeyDokey also pointed out, attacks sending "broken" lines instead of solid ones could add skill depth to the game. I have to agree. Broken lines require the player to make an interesting decision: "do I invest my pieces into an attack, or do I focus on defense and 'downstack'... or can I do both at the same time?" Downstacking in itself is an interesting challenge ("how do I clear down these broken lines with the fewest pieces possible?").
I'm wondering if perhaps the theaigames decided to use solid instead of broken lines due to the desire to keep things as fair as possible. Because turns are taken simultaneously, giving identical tetromino sequences is not a problem. However, an asymmetry in "game knowledge" occurs if you give both players identical broken line sequences. If one player attacks on a turn before the other player, he gets the benefit of seeing where the holes will be before he gets attacked back. I don't actually see a problem with this, however. It rewards aggressive play, and it's fair since both players have the same opportunity to attack early.
That all said, my vote is for nixing the combos altogether. Use broken lines instead of solid ones, where one empty cell is chosen randomly per line. Make Quads send 4 (16 points). If there is a concern for games lasting too long between poor performing bots, then I recommend simply using a lower height for the playfield. Between 12 and 16 rows high would be probably work, depending on how long you want games to last.
For a demonstration of what this looks like in action, this is pretty close. The rules differ slightly (not simultaneous turns, 7 tetrominoes at a time), but you can get the gist of what it looks like.
OkeyDokeyCreated Tuesday, July 7th 2015 @ 08:48:08
I don't think the skill ceiling will be too low (even with solid lines). I think the skill gap will be bigger than in WarLight 2.
"Broken" garbage lines may lead too very long games for defensive bots (the ones on top of leaderboard right now). To prevent this from happening, you can use "hurry up" garbage. After a certain point (e.g. 200 placed pieces), garbage lines (I'd prefer broken over solid) are inserted in both player fields (with higher and higher frequency as the game progresses).
Further notes: In the starter bot, I don't see how BotState can access its own Player and with it the current combo counter. The replay function doesn't always work in Firefox (but it works if you try often enough)
- Created Wednesday, July 8th 2015 @ 19:03:37
There is already a replay function implemented? In Safari that is never working. :)
DeveloperCreated Wednesday, July 8th 2015 @ 19:16:15
@Tobi3000 We're aware of the issue and I'm working on a patch as we speak. The fix'll be included in the next batch of updates later this week.
- Created Wednesday, July 15th 2015 @ 23:23:16
I like the challenge, but I agree with the critics that the scoring can be more 'complex'. I like the combo-bonus, but I think it is overpowered.