Printable Version of Topic

Click here to view this topic in its original format

Forums - Hard Drop - Tetris Community _ Strategy/Help _ Downstacker's Guide to the Galaxy

Posted by: Anonymous Sep 23 2011, 11:38 PM

Last edited:

January 29, 2013
- added Perfect Tetris
- Apoc's input
- Why you should learn this

Part 1

Hello all.

You may have seen or heard of me. But allow me tell you who I am anyways. I am anonymous, the best downstacker on all of Hard Drop!

Okay, that may not be 100% true. If you're judging by downstacking speed, Apocalypse is the best downstacker, but if you're judging by efficiency, then I am confident in saying that I am the best downstacker*!

*Only in terms of Blockbox. If you're not familiar with Blockbox. Basically, it's all completely messy garbage, and double sends 1 line, triple sends 2 lines, tetris sends 4 lines, and Back to Back also adds an extra line send (so B2B tetris sends 5 lines). Also, there are no spins and no combos.

http://i.imgur.com/CUzfS9z.png







NOTE: This part is stuff about Blockbox strategy. If you don't want to read about Blockbox strategy, then skip down to the downstacking section, although I encourage you to read this part as it may give you some good insight into downstacking.

So before I begin, we should define what efficiency is. I determine efficiency in terms of three things:

- lines built up
- lines sent
- lines downstacked

The basic gist of my definition is lines built up vs lines sent and lines downstacked. I consider a line sent and a line downstacked to be of equal value (this isn't always true, but for simplification, they're of equal value).



Anyways, Here's a table showing the efficiency of all the different line clears. For efficiency, I did efficiency = (lines sent + lines downstacked) / lines built. In the table, I labeled back to back as b2b and garbage clears as g [line clear]. I realize that the math is slightly inaccurate since I didn't take into account the little block that goes into the garbage line, but a long time ago, I did the math and took into account the little block, and the results are pretty much the same, so bear with me.

http://i.imgur.com/V2DyVxo.png







According to the table, the most efficient things you can do are (in this order):

1. garbage single
2. garbage double / garbage b2b tetris
3. garbage tetris
4. garbage triple
5. non garbage line clears

What does this tell us? None garbage line clears are bad, and theoretically, you should maximize garbage singles. Here is the most efficient game you can play:



Clearly, this situation is highly unlikely, and actually impossible to do with the bag system. Theoretically though, this placement is what you should be striving for.

Personally though, I don't try to follow this strategy. The above strategy is way too difficult to achieve.

The basis of my strategy is that every clear must include a garbage line. This means (theoretically) no regular singles, no regular doubles, triples or tetrises. You can only get garbage singles, garbage doubles, etc.

Going more in depth, my main strategy is to keep my field as clear as possible through garbage clears. If your field is clear, it's easy to stack on and easy to keep clear (or at least easier than if your field was jaggedy). So how do you keep your field clear? Getting garbage doubles! Garbage doubles are excellent for three reasons. They have the second highest efficiency, if you do them (right) they keep your field nice and clean which also allows you to get garbage singles, and you don't really have to look down your field so much. Here's a pretty typical dig race 10 lines game I play:

Sorry I don't know how to make previews on fumen



Of course, you won't always be able to get just garbage singles and doubles. Often times you'll have to get garbage triples, garbage tetrises, and even *shivers* regular singles, although these aren't necessarily bad things, just try to minimize them if you can.

My strategy is much better than the one above because my strategy, while difficult, is still achievable and efficient.

Anyways, I hope this has been insightful, or at least interesting for you. But, enough talk about Blockbox! You're here to learn how to downstack, not Blockbox strategy!


Why you should learn this (January 29, 2013)

I know there are some people who tell themselves, "Why do I want to learn how to play Blockbox style? I only play TF/Nullpomino/TOP/etc. I don't play Blockbox at all, and I don't plan on playing it. Blockbox garbage is too hard! I only need to get better at downstacking TF garbage, not Blockbox garbage."

To begin, don't say Blockbox garbage is too hard. It's not too hard! The problem is that you haven't put an effort into understanding downstacking. You play for a few hours, maybe even a few days and decide it's too hard. Instead of trying to learn how to downstack it, you scoff at it and say "why should I learn how to do it"? This is exactly the wrong mindset to have if you ever want to be a good player.

Instead of saying that "Blockbox is dumb" or "this is too hard", focus on the real truth. You're bad at downstacking. However, there's absolutely nothing wrong with being bad at downstacking because it means you have room for improvement. If you have the mindset that "downstacking is too hard" as opposed to "I am bad at downstacking", then you already have the idea that you can't be good at downstacking. However, if you think to yourself "I am bad at downstacking" then at least you understand that you can improve (In fact, this applies for a lot of things, not just downstacking).

Having said that, downstacking is very tough to learn and only few players properly learn to downstack. You don't get any tangible feedback that you're getting better at downstacking. But I can tell you that if you practice these techniques, then you will improve your downstacking.

Furthermore, think about the long run benefits. If you can learn to downstack this garbage, you can learn to downstack anything thrown at you in TF. Sure, when you start, you may struggle (a lot) with the garbage, but once you understand it, then it'll just become natural to you. Also, games like TF will become a lot easier for you.

Think about this. American Football players practice running with a parachute behind them so that they can run faster when they're in game. Tetris is no different. If you can downstack Blockbox garbage, then you can downstack anything on TF and Nullpo.
However, Blockbox teaches you more than just how to downstack. I can tell you that playing Blockbox has helped me become a better player in TOJ/TF/Nullpo in more ways than just becoming a good downstacker. Playing Blockbox has also helped me stack cleaner and flatter without needing to skim much, and it has helped me increase my combos.

Yes, playing Blockbox will greatly increase your downstacking ability, but it also increases your stacking ability as well. When you have 90% random garbage, you have to make lots of decisions, like where should I place my pieces so that I block the next garbage hole the least? What piece fits best in my garbage hole? What is my next garbage hole going to look like? Is the piece I need for the next garbage hole coming up or do I need to change what it looks like? A whole plethora of questions that require lots of analyzation in only brief moments. *

When you become good at these things, and you play TF and Nullpo, it really shows. Because TF/Nullpo's garbage isn't as messy, you don't have to worry as much about stacking over upcoming garbage holes, what piece you're going to need etc. The end result is that your stack becomes cleaner which allows you to build more T-spins, you can upstack faster, you have more time to think, and it allows you to downstack faster.

Furthermore, playing Blockbox style (or at least my style) is excellent for increasing your average combo. In my style, you basically are trying to turn all the singles and doubles you are getting into bigger line clears. For instance:


So how is this related to comboing? Well, comboing is just the exact opposite. Instead of turning singles and doubles into larger line clears, you're trying to turn those larger line clears into a lot more smaller line clears. In other words, comboing is just the exact opposite of my style.


It may seem paradoxical that I say playing my style has helped me combo better since they're pretty much opposites. However, the reality is, when you play my style, it gives you an excellent understanding of piece placement which can increase your combos by an extra one or two. This may not seem like a lot, but going from a combo 4 to a combo 6 sends an extra six lines (depending on what game you play), and if you consistently do this multiple times throughout the game, then you've increased your apm by 6-12 (or possibly more) depending on how much you do it.

Also, I know a lot of people will read this thread in hopes that there is some secret that makes you an incredible downstacking. But, I'm here to tell you that there is no secret to becoming a pro downstacker.

The only thing you can do is consciously practice playing efficiently (either my style or at the very least trying to use the least number of pieces). Playing normally is not enough. If you want to be good, you must actively train your mind to see the best ways to downstack.

* But keep in mind, Blockbox doesn't teach you how to do everything. Watching your opponent's field, choosing when you want to accept or cancel garbage, choosing when you should attack or when you should defend/play passively are skills you'll have to learn on your own when you play TF.

Downstacking Techniques

Here I'll be posting some general stuff on downstacking that helped me become the player I am today!

There are a few techniques I use when downstacking. The first technique, I showed in the first post. I'll call it the "Garbage Double Technique" If anyone can think of a better name, please give me one because I'm terrible at making names.

Garbage Double:

The basic premise is that you just get a bunch of garbage doubles, and you get garbage singles if you can. The main point of this is to keep your field clear and try to avoid any garbage Tetrises, garbage Triples, and most of all non garbage line clears. (Although to be honest, garbage Tetrises and garbage Triples are still good and I get them a lot) Anyways, garbage doubles are good because they keep your field clear so you can keep getting more garbage doubles. Since your field is clear, you can get more garbage singles, and the cycle of g goubles and g singles repeats (hopefully). Clear field means easy to stack on, which will allow you to do whatever you want. You can keep downstacking, or if you see your opponent is about to die, you can stack up, or you can make an easy t-spin, etc.

So how do you learn how to do this? I suggest you play dig race 10 lines and at the beginning of the game, try to get as many garbage doubles as you can. 18 lines and you'll feel pressured at the top, 5 lines isn't enough. You could also play dig challenge. Personally, I learned how to do this by practicing this at the beginning of every survivor game (or dig challenge if you play Nullpomino). People complain that the beginning part of survivor/dig challenge is too slow, but this is the perfect opportunity to attempt this. You can try getting garbage doubles at the beginning of the games and then when the game starts going fast, you just downstack regularly.

Here's an examples of me doing it.




I piece placement

Everyone knows that on games like Blockbox, the I piece is the most important piece there is. And, I completely agree, but for different reasons than most people.

Most people see I pieces as nothing more than something to make Tetrises. Some people see them as a way to alleviate bad stacking habits, like this:



But I pieces are useful for a wide variety of things, such as making Tetrises, or more importantly downstacking. Say what?! The I piece is good for downstacking? Yes! The I piece basically gives you one free line clear that can open up many options for you. For example, in my Specific Downstack section, the very first example uses an I piece to downstack.

Also, you should know that if you get that one free line clear, it should ONLY be used for garbage lines, and not lines that you built up. For instance, this is good:



This is bad:
Actually I can't think of a good situation. If I do, I'll put a fumen down, but for now, goo.

The I piece is also good if you have a messy field, having an I piece will allow you to stack up and fix your field. A lot of the time, players have a messy field, and then they stack up to fix their field, but they don't keep in mind to have an I piece, and they end up stacking 5-6 lines.

green lines denote stuff you've already built up.

I pieces are good for getting rid of excess pieces on your field too:



One thing you have to watch out for though, is stacking an I piece over a close by upcoming garbage hole that.



In conclusion, I pieces are the shiznit. They allow you to fix your messy fields, they let you clear excess pieces on your field so you can keep it clean, and in general it provides a lot of flexibility in downstacking.


Predicting your hole

Another fundamental downstacking technique is predicting your hole. In order to be a good downstacker, you have to know what your next garbage hole is going to look like. Here's an example:



As you can see, I know that the hole is going to need an I, L, or J piece, so I hold one of those pieces. And then I use it when the time comes!

To be pro, you also need to know how to change your hole. Obviously, you can't change where your next garbage hole is. But, you can change what you want your hole to look like, and what your next garbage hole is going to look like too. The second part of this sentence "what your next garbage hole is going to look like" is especially crucial. One mistake I see many people make is that they don't foresee what their next hole is going to look like. This is EXTREMELY important; not just in downstacking, but in creating prophecy t-spins and other advanced techniques. Here's some examples of me changing the garbage hole.

ugh, messed up the fumen. Frame 21 to 24, I only had 1 S piece, not 2 in a row.



Note that when I "change" the hole, I know exactly what I'm doing. I planned out that whole sequence in my head. I saw that I didn't have a good piece sequence to downstack through those holes, and I saw that if I put the S piece there, I would need a J piece. However, there was a J piece coming up in my preview so I changed the hole. After that, it's just a matter of filling in the rest of the field so I don't get any wasted singles and stuff.



In this game, I say that I have no upcoming T piece, and then a T piece comes along, but just pretend I didn't have a T piece coming up lol.

A lot of my technique is recognizing what shapes your garbage holes are going to form and holding the piece you need. Then once you have the piece you need, you just fill in the field so that you don't waste any lines with singles. And, if you have an unfavorable piece sequence, then you change the hole so that you do have a favorable piece sequence.


Stacking Flat Over Holes


When downstacking, the one thing everyone says is "don't stack over the holes". However, I think a better philosophy is "don't stack over the holes... but if you do, stack flat over the holes". Why do you stack flat over the next holes? So that when you clear your current garbage line, your next garbage hole is open.

Furthermore, if you have a flat stack over your next hole as opposed to just not stacking over holes, you'll have more ways to downstack the hole.



Here's an example of me stacking flat over holes




Downstacking Rhythm


Sometimes when you downstack, you have The Feeling. You're downstacking like a pro! You clear through 8 lines in 4 seconds! And then, suddenly you mess up and you lose your downstack mojo. I see this a lot when I watch people downstack. They downstack a few holes, and then they get stuck on one hole for a long time. You lose your rhythm, and then you either lose the game, or it takes you a while to recover back to your normal state.

So what causes players to lose this downstack mojo? There are two main situations: awkward stacks/piece placements, and having a block over your hole.

Block over your hole:


For example, here's a game of me playing dig race:


Notice how at some points I have a block over the hole. However, I fill in the rows until the single block over the hole is gone.

And here's a game where you downstack 4 lines and then have a block over your hole:



This is the kind of thing I was talking about at the beginning of the section. Many people downstack 4 holes and then they meet block over the hole and are temporarily setback. And then in those few moments, they lose a lot of position, time, or even the game.

So how do you stop this? Just fill in the rows so that you don't have a block over your hole. You can also think about it like this. However many blocks you have over that garbage hole, you have to clear that many lines. This is a very important concept, and when I finally understood this, I improved my downstacking skills a lot faster and became pro.



Also take note that I say "clear at least 3 lines or more". You can also build up one more line (so you've built up a total of 4 lines) and get a garbage Tetris, which is technically more efficient. But, for me, I'd rather not take the risk of building up excess lines which could make my stack uneven or possibly cause me to have to get a single, so I just get the garbage triple.

Vipjun pointed out to me that after he realized this, he could visualize his field a lot better. I'm not going to try to type out/explain our discussion because then you'll just get really confused, but hopefully this picture will be sufficient.

http://i.imgur.com/Ge52o1l.png












This section also works well with "stacking flat over holes", so keep that in mind!



Knowing when to stack up


In general, you want to keep your field empty and clean, but there are times where keeping your stack low is bad. Specifically, whenever you reach garbage holes that are stacked, that means you need to start building up because when lines are next to eachother and on top of eachother, putting down pieces can block upcoming garbage holes. Like this:



When the holes are like this, you've got to start building up lines to plow through the garbage holes. If they're in a column of 2, then build a 2 column hole around them. If they're in a column of 3, then build a 3 column hole. If they're in 4 different columns, then it gets slightly more difficult. When they're in 4 column holes, then it's pretty much the same as 3 column, but with a slight twist which is confusing to explain, but hopefully you will see it in the fumen.





When I say "be cautious how many lines you build" in frame 15. I mean that however many garbage holes are stacked, that's how many lines you have to build up. So, in frame 15, within the 3 column well, you have 3 stacked holes, so you want to build up 3 lines. If you build up 4 lines, then you'll have one line left over which will cause you to get an unnecessary single.

Also, I realize I have a section in the "specific downstacking part", but this needed more analysis.

EDIT: I was playing a game of dig race 10 lines and did this:



Reversing holes


I can't believe I forgot this. It's so simple, but it's such a key concept to understand. Here is what hole reversing is/how to do it:



Notice the T can reverse both sides. This is one reason why the T piece is such a valuable piece. Not only does it fix jaggedy stacks and does t-spins; it also reverses your hole, which is essential when downstacking. T pieces have so much flexibility so it's important to hold T pieces whenever you can (I pieces too!).

It's important for you to see future situations where you need to reverse your hole. For instance, if you create a situation on the left side of the well in the fumen. When you clear the right side, you'll be left with a block over your garbage hole. So you need to reverse it. Depending on the orientation of the blocked hole, you can use a J or T, or a L or T.

Also, you should reverse the hole before you start clearing the lines. So in the fumen, I should reverse the left side before I get the Tetris (or whatever line clear) on the right. That way, I don't have to get a single later on.



A lot of people forget that L and J pieces can reverse holes too. For instance, in frame 1, a lot of people only see that the T can reverse the blocked hole. However, you need to see that you can use the T or L piece, since this effectively doubles the chance you get the piece you need so you can downstack quicker. (And you can save that T piece for something else like a T spin).


Hole reversing is an incredibly easy technique to understand, yet I see many people don't do it or aren't good at it. However, I definitely recommend learning it because it's such an easy concept to understand and learn and it can increase your downstacking and adding skill by a pretty good margin for such an easy technique.

Eventually when you start recognizing when you need to reverse holes, you can do advanced stuff like this:




Consecutive Downstacking


In an earlier section, I talked about what happens when you have holes stacked over each other. Well, sometimes, when the holes are not stacked over each other (i.e. spread apart*), you can choose to downstack many holes (3-4) at once, and then turn the last garbage hole into a large line clear. This can be very efficient if you can get 3 garbage singles, and then a garbage Tetris. For instance:



*Actually you can almost always use Consecutive Downstacking, but it's a lot easier to do when the holes are spread apart.

What makes consecutive holes? Mainly, the first thing is that the holes are not stacked together. Even if the holes are spread relatively far, if two of the holes are stacked, or near stacked, you'll be in trouble if you're trying to downstack using Consecutive Downstacking (see frame 2). Then, the second thing to see is, how spread out are the holes. The more spread out the holes are, the easier it is to use Consecutive Downstacking, since spread out holes means you have more options to place your pieces (see frame 4).



There are two important aspects to do Consecutive Downstacking. The first important aspect is looking for spread holes, and then set a goal. If I see I can downstack consecutive garbage lines, then I'll set my goal to the 3rd, 4th, or 5th hole (or whatever the last hole I think I can reach is). After that, the other important thing behind downstacking consecutive holes is to not stack over future holes. Here's another example:



One hindrance to Consecutive Downstacking is that you can really only do it if your field is relatively clear. If you have a lot (or even a few) lines stacked up, then you won't be able to use this technique. But if you're using garbage doubles and the other techniques, then having a clear field isn't too difficult.

Learning to recognize when you can do this can take a while, but it can help a lot in games like TF where you rarely receive single lines of garbage, but when you do, the garbage comes in consecutive lines of 3-5 (because of combos and doubles). And when this happens, and the lines are favorable for consecutive downstacking, you can just plow through the lines and get down to your straight line garbage easily.

Consecutive Downstacking is also good if you're trying to play dig race and use the least amount of pieces (although I recommend playing to be efficient rather than using least pieces).


Perfect Tetris: (March 15, 2012)

If you ever watch pros play, a lot of the times, they'll stack up a perfect 4 lines and get that tetris, and people will be amazed at how they always manage to stack up a perfect 4 lines, get a Tetris, and leave the next garbage hole uncovered.

How do they do it? There are certain Tetris Indicators to indicate how many lines they need to build up. For instance in this example, when you put the J piece in, it forms a perfect 4 lines:


Pros can instantly recognize these Tetris Indicators, place in the appropriate piece, and then not have to worry about counting how many lines they need to build up. They only have to watch to make sure that they stack up to fill at least that many lines. For example, in the previous fumen:



This can be extremely useful when there is a Tetris Indicator over a garbage hole, since once you put the piece in, you only have to worry about filling in and not stacking over the next garbage hole.



Here are some other Tetris Indicators:



Here's something that's particularly useful when your stack is a little bit messy (or even when it's normal) and you have a pyramid.




Also for anyone who hasn't seen apocalypse's blockbox survivor video, you're missing out!



If you watch, he keeps his field flat and clear pretty much the whole time which is why he can downstack so fast!

Also, words from Apocalypse:
QUOTE

First off, I would like to thank anonymous for posting my video as an example, I feel honored...
Also, I am not as "techy" or smart as these guys, giving such support to the topic, but my opinion is that good down-stacking isn't something you develop with just practice like stacking fast. Fast stacking requires lots of practice because you familiarize certain patterns, you might not be conscious of it but its memorized, you have more control over that. Down-stacking in the other hand requires a lot of improvisation, you receive garbage that you cannot predict or control(unless you are a uber nerd and have the formula for it). For good down-stacking you MUST enter that mindset of seen the lower gaps in relation to your incoming pieces and see the best possible way of using these(which is something "duh").

I had to play thousands of games to enter that mindset, survivor mode really helped me a lot and I feel there are way better down-stackers out there, my speed is a huge factor to my down-stacking, people like meow, radiance, anonymous and trance(which I'm sure there are more people but these guys are coolest imo) that have such efficiency down-stacking that makes my speedy down-stacking look foolish, they might give you the key to "entering the mindset".

I like anonymous input on keeping the field flat for an easier down-stacking, Blink keeps a nice flat field which makes it easier for him to set up combos and clear garbage, probably one of the best at it. Meow with his patience guided me to understanding that important factor(hes the guy you should seek if this is an issue for you as it was for me).

I know I probably talked a lot of bs and said things you already know, but I didn't understand these things myself, I kept playing and playing and playing with desperation, believing I would suddenly be good at it.

So, conclusion, "patience and focus".
;}

Posted by: B1ink Sep 23 2011, 11:38 PM

Specific Downstack combinations

Here I'll be posting specific stuff that I use when I play.

Specific 1:


Another important aspect of downstacking is thinking of your pieces as combinations of pieces. I think I posted something about this somewhere. Someone was asking about stacking techniques. The basic gist was to think of stacking up in terms of block combinations that fit well together, such as J and Z; L and S, JZL, etc.

Here's a link to the post if anyone hasn't read it yet:
http://harddrop.com/forums/index.php?s=&showtopic=3634&view=findpost&p=48721

Downstacking is also very similar in that you should think of your pieces in terms of piece combinations. Here's one example I do a lot. At the end, I use an I piece and a J piece together to downstack the two garbage holes.



(This isn't the only thing you could have done in this situation, but I'm just saying, this comes up a lot when I play).

These piece combinations are important to learn because once you know them, you can see recognize the garbage holes and be like, oh, I know what to do in this situation. And, when you recognize the pieces you need, you can plan ahead for the next garbage holes.


Specific Part 2:

Here's a fumen of a basic, mid level, and high level downstacking example.




Specific Part 3:

Sometimes, you're close to the top, and you can't afford to wait for pieces "the right pieces" for the garbage hole. In these cases, you'll have to get some singles and change what your hole looks like.



Also note, in the last few frames, i get a double instead of two singles. If you're trying to make a combo chain, you can just get the two singles instead of the double to increase your chain by one.


Specific Part 4:


Don't you hate it when all the garbage holes are right next to each other?! Anyways, here's one way I deal with them:



Note that this doesn't apply only when the holes are near the wall. This technique works almost as well even if the holes are in the middle. It's slightly harder to do this though because you have to split your stack into two; but it's still pretty effective.


Specific Part 5:


This one doesn't really have to do with downstacking, but it comes in handy every once in a while.


Plus, it's a pretty sweet move!


Specific Part 6:





Specific Part 7:

Here's a situation that I occasionally see.



The key thing to see in this fumen is that I have two consecutive garbage holes next to each other, and over the current garbage hole, I have three blocks stacked over it. When you put in the I piece, it leaves a J (or L depending on hole orientation) shaped hole.

Specific Part 8:
Here's a technique I do a lot. A LOT.



For example, here's a game of me playing dig race:

Stuff you should NOT do

I'll also be posting stuff that I see a lot of people do, but are bad.

Don't Part 1:



The reason why frames 1-3 is bad is because in your current position (frame 1), you have 1 block over your current garbage hole. When you put the Z piece in, you clear 2 lines, but you still have to one block over your current hole. However now, you're actually in worse position than before. In frame 1, you only need 1 piece to get to your garbage hole. However, in frame 3, you need to build 2 more lines (approximately 5 pieces) just to get back into the position you were in before so you can put in the T piece, or IJ, or LJ.

For similar reasoning, this is bad:


I see a lot of people do this, and i'm just like.... whyyyyyyy?!!

Posted by: coolmaninsano Sep 23 2011, 11:51 PM

QUOTE
Downstacker's Guide to the Galaxy

Posted by: caffeine Sep 24 2011, 12:16 AM

=]

I'm glad to see someone else is thinking about this stuff, too!

You can get around the infinity problem by making efficiency = (garbage sent + garbage cleared)/(pieces used). This is something I've been referring to as "throughput" in the past. It paints a more accurate picture of how "efficient" each attack is. I expand the idea by adding another statistic: flux. You can be efficient as hell, but if you're not fast enough, you'll lose. Flux takes this into account. Flux = (garbage sent + garbage cleared)/(minutes played), or simply throughput*TPM. In a previous thread, meow kind of independently used this (but in a different way), and agreed with it. Although, I just can't seem to get the Nullpo devs to implement these stats ;].

Anyway, here's the throughput chart for Blockbox (the right side is sorted by throughput):

http://i.imgur.com/oRMaR.png

Although, deciding what to do in a real game to maximize your throughput over the whole game is actually more complicated than simply trying to do what's on that chart. This is something I've been working on for a while and actually have a big chunk of an article typed up to explain it all. I need to get around to finishing that up...

Fun fact: this idea was first written about around ten years ago by legendary player spindizzy on his site.

Posted by: Paradox Sep 24 2011, 12:25 AM

I don't get why a garbage single is infinity but okay lol Sticking Out Tongue.png

Posted by: Anonymous Sep 24 2011, 12:37 AM

Oh yeah, I remember reading your posts about throughput, but I never understood it until now. Undecided.png

Originally, when I was doing the math a year and a half ago, I did use "pieces used" instead of "lines built". However, when I tried explaining it to people, they got confused, so I just changed it to lines built for ease.

I definitely would like to see "Flux" or something similar added as a stat. It'd make it a lot easier to judge your skill rather than just estimating skill from tpm, apm, and lpm. Even if it's not 100% accurate, it would give a lot more insight into your play style, and it'd still be better than having just apm, lpm, and tpm.

A garbage single is infinity because it clears 1 garbage line and it takes 0 lines to build (because you only use one piece to do it).

My efficiency formula is:

efficiency = (lines sent + lines downstacked) / (lines built) --> 1 / 0 = infinity!

Obviously, this is flawed. It was fixed before as I said above when I used "pieces used" instead of "lines built" but it confused some people so I changed it. Unfortunately "lines built" still confused people. Crying.png

Posted by: Paradox Sep 24 2011, 12:54 AM

I don't think 1/0 is infinity, I thought it was just undefined.

Posted by: Zircean Sep 24 2011, 05:43 AM

It's defined if you use the real projective line or the extended real number line.

Posted by: wksrdg Sep 26 2011, 02:26 PM

Here is an idea that supports efficiency, with the help of some algebra. My idea is to take a game with some specific properties, and instead of analyzing it as a whole, just look at some of the basic properties that can be derived by-passing (that is, not using) a lot of stuff that goes in the actual game logic.

I hope I haven't made a big blunder somewhere in this argument or reasoning since I tend to struggle with clarity on algebra of both inequalities and propositions.

Well anyway, the conditions I have placed are somewhat strict. Some of these can be eased up or changed, while others are necessary.

1- The game would play with rhythm controls. For example, at the end of each frame, simply the input given is checked and the block is based in field based on the input.
2- The garbage sent is usual as in normal games but no spin bonus.
3- The garbage would be with one hole but garbage positioning doesn't matter. There is no garbage canceling. Also, the game starts without any garbage.
4- The game immediately when the garbage lines reach the top. But the players may place as many blocks above the field as they want to.

Conditions 3 and 4 are important while 1 and 2 can be relaxed. In any case this point would be better explained towards the end of this post.

Note that whenever I use the term block, I actually mean just one block (or one fourth of a tetromino). This simplifies a lot of unnecessary confusion. Now at the end of each frame we take note of certain values. For example, we keep running totals of the following values:
t = time in frames

G1 = total garbage blocks sent by the first player
B1 = total non-garbage blocks cleared by the first player
D1 = total garbage blocks cleared by the first player

Similarly we can define analogous values for the second player. Now we can also define two more values which are related to what is present on the field at a given time.

GB1 = number of garbage blocks present in the first player's field at a given time
K1 = number of non-garbage blocks present in the first player's field at a given time

We can also define the same values for the second player in a similar way. Now the following relation is clear:
GB1 = G2 - D1 where G2 > D1

Coming to the efficiency of a specific move, every specific move can be defined by three values, which are g, b, and d. Note that when talking about these values for a specific move, it is better to use lower case letters to avoid confusion. For example, few values for clears would be:
1- Singles
a- g=0, b=1, d=9
2- Doubles
a- two garbage lines
g=9, b=2, d=18
b- one garbage line
g=9, b=11 d=9
c- no garbage line
g=9, b=20 , d=0
3- Triples
a- three garbage line
g=18, b=3, d=27
b- two garbage lines
g=18, b=12, d=18
c- one garbage lines
g=18, b=21, d=9
d- no garbage line
g=18, b=30, d=0
4- Tetris
a- four garbage lines
g=36, b=4, d=36
b- three garbage lines
g=36, b=13, d=27
c- two garbage lines
g=36, b=22, d=18
d- one garbage line
g=36, b=31, d=9
e- no garbage line
g=36, b=40, d=0


Similarly, we can also do this for b2b tetrises. Those frames where we put a block and don't clear a line, or where we simply don't do anything can also be characterized as moves. The former case changes the value of K. If we don't want to characterize these as moves, it doesn't really matter much, as long as we increase our time counter correctly. The point is that these moves don't enter the calculation for efficiency.
5- g=0, b=0, d=0

At the end of each frame, the running totals of G, B and D are updated. Based on the game logic, the values for GB and K are updated too. After the first player performs a move with values g1,b1,d1 (values g2,b2,d2 for the second player) during t-->t+1 cycle, the values are updated as

G1( t + 1 ) = G1( t ) +g1
B1( t + 1 ) = B1( t ) + b1
D1( t + 1 ) = D1( t ) + d1

GB1( t + 1 ) = GB ( t ) + g2 – d1
K1( t + 1 ) = K1( t ) + 4 – b1
K1( t + 1 ) = K1( t ) [if no input is given]

Efficiency of any move can be defined as:
e = (g+d)/b

Now we want to see that when does a player win the game. Based on the way we defined our game
P: GB1 >= 180
Q: GB2 >= 180

Consider the four possibilities that result:
A- P and Q both true
The game ends in a draw
B- P true and Q false
The second player wins
C- P false and Q true
The first player wins
D- P false and Q false
The game is going on

Before we move on to draw some conclusions a simple point about efficiency would be helpful. We can define efficiency of a sequence of two moves as:
e=(b1*e1+b2*e2)/(b1+b2)
Of course this way we can extend it to any sequence of moves. Notice that for moves with g=b=d=0 it doesn't matter what value we give to efficiency (0 is a good number anyway). Those moves won't add anything to the calculation of the running value of e.

1- In which cases possibility A can't occur for a game?
For A to occur we must have had a frame where values of GB1 and GB2 both increased (this is a necessary condition). This in-turn means that moves performed in the particular cycle were such that:
g2 - d1 > 0 and
g1 - d2 > 0

Now we check all pairs of moves we have. This condition is true (both individual conditions that is) for some pairs so we can’t conclude that A can’t occur. Well we can intuitively see it can. However, if it wasn’t true for any pair of moves we have, we could say without appealing to game logic that A can’t occur. In our particular game, A can occur.

Now the next point is really important and this is what, in my opinion, highlights the importance of efficiency.

2- If both players place pieces at the same average rate (when the game ends with one player winning) and:
a- the first player plays more efficiently
b- has less or equal unused non-garbage blocks in the field, compared to the second player
Then we can say for sure, without looking at the game, that the first player has won.

To show this, consider the possibility C. For it to be true, we must have:
GB1=G2-D1<180 and
GB2=G1-D2>=180
which means that
-GB1>-180
A necessary but not sufficient condition for the two inequalities above to be true is:
GB2-GB1>0 (notice that minimum would be 180-179=1)
or we can write
(G1-D2)-(G2-D1)>0
(G1+D1)-(G2+D2)>0
By using
E1=(G1+D1)/B1
E2=(G2+D2)/B2
we can re-write this as:
B1*E1-B2*E2>0
or
Greater: B1*E1>B2*E2

Similar analysis would show that the necessary condition for possibility B is:
Less: B1*E1<B2*E2

If both players played with the same average rate, at the point when one of them won, they must have placed equal blocks in the field up-till that point. Let the total blocks placed be T. Then clearly we have the relations:
T = B1+K1 --> B1=T-K1
T = B2+K2 --> B2=T-K2
Re-writing the above inequality B1*E1-B2*E2>0:
(T-K1)*E1-(T-K2)*E2>0

Since we are already given K1 <= K2, we have
-K1 >= -K2
T-K1 >= T-K2

We are also given E1>E2. This means that B1*E1>B2*E2 is true. Now since the game has ended, we know that we are in either B or C. Since B1*E1>B2*E2 is true in C and false in B, this means that we must be in C.

-----

Few more discussion points:
1- If we define:
Greater: B1*E1>B2*E2
Equal: B1*E1=B2*E2
Less: B1*E1<B2*E2

then I think this is how these possibilities would occur in different possible states defined above.
A -- Less, Equal, Greater
B -- Less
C -- Greater
D -- Less, Equal, Greater

2- Let the analogous values for tpm, lpm and apm be R, L and A respectively. In that case, we would have:
R1=(B1+K1)/t
L1=(B1+D1)/t
A1=G1/t

These values and tpm, lpm, apm only differ by a multiplication constant.

3- We can define time efficiency as:
TE= E / t = (G+D)/(B*t)
In all the above statements we can essentially replace efficiency by time efficiency. Essentially it calculates the G+D factor balanced against blocks used and time taken, so it provides a way to measure useful play without reference to time taken. What caffeine is referring to as flux then would be:
F = B*TE

Is F a better measure or TE? I am not sure, but if someone was dying many times with unused non-garbage blocks F would hold it against the player. TE, on the other hand, would just see how effectively the player is using the blocks that are actually used for making lines.

4- It doesn't really matter if the game has rhythm controls or not. The game logic might be more complex but we could still divide all frames, where no lines are made, into two categories:
a- one where no tetromino is placed.
b- one where a tetromino is actually placed on the field, as part of it.

5- So efficiency is really a measure that can be used in a more general sense, and not just downstacking. It doesn’t matter if we allow spins bonuses or not. All we would have to do would be to declare and detect spins as different moves from doubles or triples.

How much garbage cancellation would skew this measure or how to mitigate or resolve this skewing would be a good investigation point.

Another thing is that even if both players were playing synchronously (so the playing speed would be a non-factor), the local most efficient move isn't necessarily the best one, as was pointed out before. Essentially one would guess that everything would matter, from the player's field, to randomizer, hold or even the opponents playfield, and essentially this would have to be re-evaluated after every placement.

edit: made some corrections

Posted by: Anonymous Sep 26 2011, 02:57 PM

wksrdg?!/1 I thought you were dead!

Posted by: Paradox Sep 26 2011, 03:50 PM

lets all yell at ryan heise to make his downstacking AI.

Posted by: caffeine Sep 26 2011, 05:26 PM

That was interesting, wksrdg. Thanks for sharing that.

Posted by: Anonymous Sep 26 2011, 10:21 PM

Just wanted to point out that I updated the original post with stuff, and I'll try to add some more stuff over time.

Also, can you explain what your conclusions are in terms a simpleton like me can understand wksrdg? c:

Posted by: Profane Sep 28 2011, 04:21 AM

Nice

Posted by: Paul676 Sep 28 2011, 09:49 AM

Interesting downstack moves I come across in game - I will add to these when I think of more:

The S/J switcher - when you have the wrong piece for the L/J shape:


The S/Z breaker - when you have an S and Z when really you want an L/J



p.s. wksrdg your maths seems to be correct.

Posted by: wksrdg Sep 28 2011, 01:52 PM

Here is a shorter and simpler explanation of what I was said in the last post. Somehow I think this post would also become too long, but I will relegate the musings, which are after the dashed line, after clearing up the main point.

Just take these conditions for the game (3 and 4 in the last post).
- the game starts with no garbage
- garbage position doesn’t matter for the argument
- all garbage is sent with one hole, as is the case with most normal versus modes
- there is no garbage blocking

These are all normal conditions, although some variants can have differences. But the main condition that is different is this:
- the game ends immediately when the garbage lines reaches the top but the player may place as many tetrominos above the playing field as they want to (just imagine something like 0G play with ghost). That is, for example, players can’t lose a game by quickly pressing down to drop blocks and end the game.

Now this is why when with this particular condition is imposed a player, in this particular variant, will only lose when the garbage blocks exceed a certain value. I assumed 180 in my first post but it doesn’t matter, you can assume 189 (that is garbage reaches 21st row) if you want to.

Now here is the thing. Now think of all the variables in terms of point blocks (or one fourth of a tetromino). It doesn’t really matter because eventually you can just divide your result by 4 to get the intuitive result in terms of tetrominos. It would help to understand the variables involved as I mentioned in the last post.

G = Total “garbage” blocks sent by the player (since the start of the game)
D = Total “garbage” blocks cleared by the player (since start of the game)
B = Total “non-garbage” blocks cleared by the player (since start of the game)

For example suppose someone made two tetrises at the start of a game. First one was obviously made with all non-garbage blocks. Assume that the second one was made using one garbage line and three non-garbage lines. Now what would be the values of G, D and B up till that point in the game? If you can understand this, the rest of the post is not difficult to understand.

G = (4+5) incomplete lines = 9 incomplete lines = 9*(9) =81
D = 1 incomplete line = 1*(9) =9
B = 7 complete lines + 1 = 7*(10) +1 = 71

Remember the garbage lines are sent with one hole, and the downstacked lines also contain 9 blocks (since it is simply the garbage sent by the other player). Now the last variable left to define is K.
K= number of non-garbage blocks (coloured blocks) in player’s field at any given time

For example, if all the blocks in the field at a given time were garbage blocks then K=0.

Now it is helpful to understand the exact values of TPM, LPM and APM in terms of values defined above. Let t be time in minutes. Then:

TPM = [ (B+K) / t ] / 4
LPM = [ (B+D) / t ] / 10
APM (in unit of lines) = [ G / t ] / 9

Now these values G, B and D are obviously only increased (and they can only be increased) when a move such as single, double, triple, tsd etc. is made. After all, only a placement that clears a line will increase B (necessarily) and D (sometimes). And only a move that sends garbage to the other player will increase G.

Now of course both players have separate pairs of values. Let us define G1,B1 and D1 for the first player and G2, B2, D2 for the second player. Now here is the main point of introducing all these variables and stuff. At the end of the game the player that wins (in this particular variant) the game will “always” have a higher value G+D. In other words if the first player won at the end of the game then:

G1+D1 > G2+D2

Of course you could multiply or divide both sides of this inequality by any number. Now (G+D)/9 is simply the variable “garbage lines downstacked + garbage sent”.

We could also account for speed by calculating (G+D)/t or (G+D)/(9*t) for this matter.

So you could think of this “G+D” variable to be constantly fluctuating for both players during the game. Sometimes it goes higher for one player and sometimes for the other. But in the “end” the player that wins will always have higher value of “G+D”. This is due to simplified conditions for the game ending. But if you can ignore the effect of non-garbage blocks present in the field when the game ends (in a real game), this measure would be fairly useful as a statistic. I hope this clarifies some of the confusion.

Note that it doesn’t matter whether the game uses b2b, spins, combos etc. What you just need is to detect them and use correct values for g, b and d accordingly. But garbage blocking does change things because in that case garbage sent is not equal to attack.

The purpose of all this discussion was to give some justification to the statistic. Actual playing or downstacking strategies are a completely different matter.

=====================================================================

1- Another interesting thing is that these variables can be used to give a better picture of efficiency. It is obviously subjective to a certain extent, but still useful. For example, in our variant of the game, suppose the second player wins from the first but the first player claims that the opponent just won because he was faster not because he was more efficient. We have:
E=(G+D)/B

We can rewind the game a bit for the player (and rewind only for that player) who 'used' more blocks (for lines) to the point where the blocks 'used' were equal and then compare the efficiency.

Also note that if we consider the quantity [4*(G+D)]/[9*B] it gives us a quantity that would read like “garbage lines downstacked plus the garbage sent per tetromino”.

2- Another analogy of G+D factor in context of a completely different scenario could be this. This is a rough example but I still think it is interesting, although it has hardly any relevance to the real discussion. Consider a sort of a racing game between two players where two players race around the same lap over and over. The exact nature or complexity of racing game doesn’t matter at all.

Let the lap length be 100, for example. Now suppose the objective of the game is to maximize the distance traveled after say, one minute mark. Obviously the player who has traveled more distance at the end of the game will always win.

But suppose we add another two conditions. A player can win by:
1- overlapping the other player (the game is won instantly)
2- or the distance doesn’t increase by more than 50. That is at each minute it is checked whether the player that is leading doesn’t have a lead of more than 50. If it is more than 50 then this check is relegated for another one minute. If the lead is within 50 then the leading player wins.

Now the second check happens at the end of every minute, unless the game is decided by condition 1. Even though we can clearly see that distance traveled in this case has some similarity to G+D factor, in that the winning player will always have more of this quantity, it doesn’t mean that it is always wise to increase it without any judgment. For example, if a player had a lead of 40 at 50 seconds mark, wouldn’t it be wiser for that player to slowdown a bit and then anticipate and react, in contrast to going on full speed (and hence missing an opportunity of winning the game).

Posted by: Ravendarksky Oct 14 2011, 12:05 PM

Having taken the time to read through your post Annon there is one fundamental thing I do differently... Probably because I'm not as good as you and I don't play blockbox!

When digging my tactic is just to have as flat a stack as possible, as long as this doesn't block one of the next 4 garbage holes.

I try and place I pieces horizontally to this affect. I've nabbed two of your fumens to show this. The main thinking is that clearing a single with an I piece creates 3 lines above my stack. Horizontal placement creates 0 or 1.
I treat ALL blocks needing cleared on screen as garbage, so I don't really see the difference between a garbage single and a non garbage single...





I'm only talking about digging from a purely staying alive perspective. Otherwise I'd try and Tspin over my garbage.

I think this approach works better in games like Cultris 2 where you can't predict what pieces come next. Having flat I pieces usually leads to more placements for all other pieces too. As part of my wider "Play horizontally, not vertically" strategy.

Also in one of your examples I don't see why this isn't the best option:


Thanks for taking the time to post your guide... I find it very informative. Especially when I can compare where I would do different things and see that I end up with more lines left on my screen.

Feel free to tell me why and how I'm wrong!

Posted by: B1ink Oct 14 2011, 03:05 PM

One of the main differences in how you two downstack is anon is doing it from a multiplayer perspective and not a single player perspective(although his ideas work well in both scenarios). He is not trying to get to the bottom the fastest way possible. Instead he places the pieces to change his field height the most relative to the other player's field. By playing this way, the longer the game goes on, the better position he will be in to win. That is why one of his core ideas is to only clear singles involving garbage. When you clear non garbage singles, you have wasted pieces and time, because you neither lowered your field nor raised your opponents field during that time. You could have been doing nothing and still be in the same position you started in. The reason garbage is significant is because it allows him to place less pieces on the field while sending more garbage, but this difference is only notable in multiplayer.

Posted by: Anonymous Oct 14 2011, 06:37 PM

QUOTE(Ravendarksky @ Oct 14 2011, 08:05 AM) *

When digging my tactic is just to have as flat a stack as possible, as long as this doesn't block one of the next 4 garbage holes.

I try and place I pieces horizontally to this affect. I've nabbed two of your fumens to show this. The main thinking is that clearing a single with an I piece creates 3 lines above my stack. Horizontal placement creates 0 or 1.
I treat ALL blocks needing cleared on screen as garbage, so I don't really see the difference between a garbage single and a non garbage single...

I'm only talking about digging from a purely staying alive perspective. Otherwise I'd try and Tspin over my garbage.

I think this approach works better in games like Cultris 2 where you can't predict what pieces come next. Having flat I pieces usually leads to more placements for all other pieces too. As part of my wider "Play horizontally, not vertically" strategy.


Yep, pretty much what B1ink said. You're right, you can place the I piece horizontally and it will help your stack become flatter and thus easier to stack on. However, your I piece can do stuff that other pieces can't do, like fit into 3 (or greate) deep holes. Other pieces can't do this which is why I'd rather use the I piece for a Tetris in this situation. On the other hand, there are many pieces that can be used to get that single and lower your field/make it not as messy/stuff (probably won't be as clean as using an I piece, but they can still do it).

Also, my goal when downstacking is to not get any singles because when you get regular singles, it means you spent time to place 2.5 pieces to build up a line and then you get a single which means you don't send any lines. In other words, those 2.5 pieces don't do anything. However, you could have used them to do something for instance a garbage double.

If you do an analysis on pieces used vs (lines sent and lines downstacked)

your fumen:


my fumen


In your fumen, you use 6 pieces. However, since your O block and S block didn't get cleared, I'll say you used 4 pieces. Anyways, you downstacked 2 lines and sent one line. So:
(lines downstacked + lines sent) / pieces used = (2 + 1) / 4 = .75
So your ratio of lines sent/downstacked to pieces is .75

In my fumen, I use 6 pieces, I downstack one line and send 4 lines, so:

(lines downstacked + lines sent) / pieces used = (4 + 1) / 6 = .8333
So my ratio of lines sent/downstacked to pieces is .8333

Comparing our ratios, Making that Tetris instead of using the I piece for a single would probably make you better off. If you're near the top though, then you'd most likely want to downstack the two lines rather than get the Tetris though.


These downstacking lines blur in games like TOJ/TF though. Efficiency in downstacking isn't as important because you can make up for inefficient downstacking by making T-spins and combos. If you build 3 lines and get a garbage Tetris, is it more efficient than if you get a single and a T-spin double?

However, I would like to point out that I've seen a lot of people play Blockbox and they're terrible man! just terrible! Their downstacking skills are only mediocre. And, these downstacking skills transfer over to when they play on TF and Nullpomino. I'm sure many players could increase their apm by at least 5 or even more if they could downstack properly and not get so many singles (and these singles aren't part of combos, so they aren't anything except wasted lines).

QUOTE

Also in one of your examples I don't see why this isn't the best option:



original fumen


Also, for the last fumen, if you have a T piece, sure, go ahead and put it in. I was just saying that to be a good player, you have to see all three possibilities. Most beginner players only see that the T piece fits in. Advanced players can see that a T or an L piece can fit in. Mega pro players can see that you can put the L piece in before you complete the line (the last situation). The T piece probably is the best piece to use, however it's good to know all three possibilities. And by knowing the other situations, you can save your T piece for a T-spin or fix your stack, or other purposes.

And for anyone who hasn't realized this yet, I update the original post about once or twice a week, so check periodically c:

Posted by: larrytetris Oct 19 2011, 08:18 AM

Fantastic stuff.


Side note: I was amused seeing "2 User(s) are reading this topic (0 Guests and 1 Anonymous Users)" hehehe anonymous users :3

Sticky request.

Posted by: Paradox Oct 19 2011, 10:01 AM

oh I forgot to mention I attempted to make a formula to calculate the best downstack option in each situation Wink.png

its a bit limited. It is only for the current situation + current piece. It doesn't account for next piece or hold piece.

Here is an example of how it rates pieces, lower numbers are more favorable positions:




so to address that previous fumen:



Hopefully I can make it so it can calculate for up to 3 next pieces but it requires a bit of math that I suck at.

Posted by: Anonymous Oct 21 2011, 06:53 PM

QUOTE(Paradox @ Oct 19 2011, 06:01 AM) *

oh I forgot to mention I attempted to make a formula to calculate the best downstack option in each situation Wink.png

its a bit limited. It is only for the current situation + current piece. It doesn't account for next piece or hold piece.

Here is an example of how it rates pieces, lower numbers are more favorable positions:



Can you show us the formula you used to calculate those numbers? Seems like it could be useful.

Posted by: coolmaninsano Oct 21 2011, 11:38 PM

Yeah, [citation needed] Paradox. That really seems useful.

Seconding the sticky request.

Posted by: Paradox Oct 21 2011, 11:53 PM

So basically it scores a single garbage line clear based on how much residue is left over the rest of the holes afterwards.

https://docs.google.com/spreadsheet/ccc?key=0AtNA8khoPf3CdFkwUjc4QVpWd3Zxcjg5V2NBMG1yWXc&hl=en_US

its not really meant to be a guide on downstacking but its a 1st stage attempt of figuring out how exactly we should downstack. Its a really limited slice of what we should take into account while downstacking.

If anyone is interested I'd like to make a flow chart for downstacking. I just haven't been able to come up with all of the factors to take into consideration as you go from piece to piece.


Posted by: caffeine Oct 24 2011, 03:28 PM

I'm really enjoying this article so far, anon. Keep up the good work!

The idea behind the "predicting your hole" is true and everything, and it's a good solution. I just thought the scenario was interesting, so I wanted to also show these:

This is about equal, I'd think:


This one's probably worse for multiplayer, but the endgame is actually a little faster for dig 18 mode:

Posted by: Paul676 Oct 24 2011, 05:01 PM


Posted by: myndzi Oct 24 2011, 08:54 PM

QUOTE(Paul676 @ Oct 24 2011, 05:01 PM) *




lol.

Re: quantifying downstack efficiency, it seems to me that it is pretty easy. The problem is branching choices, but you can prune branches with an algorithm for example based on how bad you will allow it to get in the interests of future awesomeness. You might even find the fastest/best solution first, then loosen the criteria to see if it's just a local minimum.

The crux of the problem is that there is a fairly easy-to-quantify best position for a single piece, but it changes depending on the next pieces. The way you can quantify that is by how many minos must be filled after your placement (and this looks something like what Paradox did, though maybe not from quite the same angle) by putting that piece in that position.



This solution is awful because it requires you to fill 27 minos (=7 pieces) before you can downstack further into the column the I was placed in.



This, on the other hand - while not a likely situation in dig race, demonstrates that the same piece placement can be much better depending on the circumstance. In this case, 0 minos are added to your load and 4 lines are cleared - pretty much the best you can do.

In general, it's okay to add minos over holes so long as they will be removed by the time you reach those holes. Depending on the pieces coming up and the efficiency, it can be better to add a little spike over a hole when you know you can remove it - because if you are going to wind up building up a larger stack around the place you want to keep low, then you will have to fill it in with new pieces later to clear those lines.

The balance, then, is not adding to your workload by creating lines that get in your way later, but gradually filling in your residue so that it gets gracefully cleared out. The best solution will always leave the next garbage hole accessible, preferably by the exact piece you have ready at that point, and it will leave your residue in places that it won't interfere in the upcoming lines.

This is pretty easy to quantify with math, really, but the problem is that it's so completely dependent on all the other pieces that it's useless to try and score any given piece itself. Whether a placement is good or bad depends on what you can do with the next N pieces - however many that is to completely remove the residue from the piece you dropped.

Posted by: Anonymous Oct 24 2011, 09:53 PM

QUOTE(myndzi @ Oct 24 2011, 04:54 PM) *

In general, it's okay to add minos over holes so long as they will be removed by the time you reach those holes. Depending on the pieces coming up and the efficiency, it can be better to add a little spike over a hole when you know you can remove it - because if you are going to wind up building up a larger stack around the place you want to keep low, then you will have to fill it in with new pieces later to clear those lines.


tru dat. That's why, when downstacking, I say "don't stack over the holes, but if you do, stack flat" rather than "don't stack over the holes". It's okay to stack over the holes to an extent because eventually by the time you get to the hole, you'll have cleared those pieces from previous clears (or you should have), like you said.

QUOTE

This is pretty easy to quantify with math, really, but the problem is that it's so completely dependent on all the other pieces that it's useless to try and score any given piece itself. Whether a placement is good or bad depends on what you can do with the next N pieces - however many that is to completely remove the residue from the piece you dropped.


Yep, pretty much. That's why I give a lot of theoretical downstacking ideas rather than concrete, "if you're in this position, do this" kind of stuff. There's just way too many factors to consider to map every possible piece placement when downstacking, like current garbage hole placement, future garbage holes, piece order, number of previews, etc.

Posted by: wksrdg Oct 24 2011, 11:07 PM

Anon your calculation on the previous page isn't quite correct, at least in my opinion! You calculated the values 0.75 and 0.83 for the upper and lower diagram respectively. Here is how I think the calculation would be. When you are comparing two placements from the same initial field position and using the same pieces, I think roughly what you are trying to do is that how well you use 'all' the pieces (that were placed within that particular stretch) for adding and downstacking lines.

There is a bit of danger with using efficiency for unequal pieces used. It is as a reasonably helpful averaging measure but not necessarily a correct one. And especially when the fractional difference between pieces used is very high it becomes more unreliable. In any case, perhaps throughput is a better word than efficiency because the word 'efficiency' can perhaps give a wrong impression at times. That is, an efficient player would rather finish a game when he clearly sees the opportunity to do so.

But leaving aside all this, lets come to the diagrams on the last page. Unlike previously I will just use lines and tetrominos to calculate E this time. Also assumed standard attack for singles, doubles (1), triples (2), tetris (4), b2b (5) and so on. For the first diagram:
sent = 1
downstack = 2
tetrominos = 2 (you can see that there were actually 8 blocks used in lines)
So we have E1 = (1+2)/2 = 1.5

For the second diagram:
sent = 4
downstack = 1
tetrominos = 3.5 (14 blocks used in lines)
we have E2 = (4+1)/3.5 = 1.429

But there are two serious problems with doing a calculation like this one.
1-- It would give unnecessary credit to placements in the sense that a lot of the clears were done using blocks that were already there before any placements were made. Mathematically what we would want is that efficiency adds up properly from one point to next.

If we were to change the blocks used values by calculating 'all' the non-garbage blocks cleared, surely the adding up would be correct. But using a weighted average concept would be more balanced in this case I feel. Also notice that if you compare the values below to the ones calculated from using efficiency of individual clears (single, doubles, tetris), you get a good sense of comparison. Unlike above, these values are more intuitive.

I 'think' that one of the solutions is to use proportional representation to blocks placed within a clear. It is a bit difficult to explain in words clearly and briefly so I will just write the numbers and hope it becomes clear. I have written e value in front of every clear. These can be verified easily.

First Diagram:

Clear Type -- u value -- e value (efficiency value of that particular clear)

single (0 garbage line) --- 1.25 --- 0
double (1 garbage line) --- 0.5 --- 0.727
single (1 garbage line) --- 0.25 --- 4

Notice that if you look carefully the used column (2nd one) only counts the blocks that were used by our placements and not the ones that were already there before.

Calculating the value sum(u*e)/sum(u) = 0.682

Second Diagram:

b2b tetris (1 garbage line) --- 3.5 --- 0.645

Calculating the value sume (u*e)/sum(u) = 0.645

2-- This still doesn't account at all for how well the pieces that are left can potentially contribute to the cause. We need a decent guess for that to make a more confident statement about which sequence of placements is better in most cases.

For that consider this: the first placement, at best, sets you up for a tetris without any garbage line while the second sets you up for a b2b tetris with one garbage line. Now the E values for these are:
e1(tetris with no garbage line) = (4+0)/10 = 0.4
e2(b2b tetris with one garbage line) = (5+1)/7.75 = 0.774

Now both players used 6 tetrominos. With this in mind we estimate the efficiency in terms of, for example, "on average how well the blocks placed were used for attack or downstacking".

Modified E1 = (0+0.364+1+4*0.4)/6 = 0.494
Modified E2 = (2.258+2.5*0.774)/6 = 0.699

I think that this modification gives a better picture of comparing two diagrams in terms of piece placements, starting with same field position and using exactly the same tetrominos. It's a bit unfortunate that the calculation becomes so clumsy and probably very time consuming to do by hand. But the first step can be automated without much difficulty. The second part depends on foresight, especially more so if the game involves spins.

EDIT: Made a major correction. Didn't see it before.

Posted by: Paradox Oct 24 2011, 11:11 PM

How would we take into account next pieces though + other factors? It seems really complicated. I wish someone made an AI that could downstack amazingly (Ryan Heise >:( )

I think its possible to make a methodical guide to downstacking which is kind of what I personally want to figure out and/or know.

Posted by: myndzi Oct 24 2011, 11:55 PM

http://www.colinfahey.com/tetris/StandardTetris_2007June4.zip

^ This has some decent downstacking AIs. It's geared for keeping the stack low, and it's good at playing messy and platforming, etc.

Posted by: wksrdg Oct 25 2011, 12:10 AM

QUOTE
I think its possible to make a methodical guide to downstacking

I think this would be a misconception. Having an exact procedure to determine something doesn't mean at all that it would be considered 'methodical' for a human player.

QUOTE
The balance, then, is not adding to your workload by creating lines that get in your way later, but gradually filling in your residue so that it gets gracefully cleared out. The best solution will always leave the next garbage hole accessible, preferably by the exact piece you have ready at that point, and it will leave your residue in places that it won't interfere in the upcoming lines.

But it all depends on the goal. For example, if your goal is just to maximize the downstack and not care about attack, the nature of residue won't matter at all. But if you want to maximize attack and downstack, the situation would be more complex.

Take out the factor of TPM by forcing the player to place a block at every game cycle. Then consider these three possibilities:
1- You are given a certain field and the task to minimize the time required to dig through it.
2- You are given a certain field and the task is to maximize efficiency until we clear the last garbage line
3- You are playing a two player game

QUOTE
Re: quantifying downstack efficiency, it seems to me that it is pretty easy. The problem is branching choices, but you can prune branches with an algorithm for example based on how bad you will allow it to get in the interests of future awesomeness.


You can kill off a tremendous number of possibilities just by making an artificial crash state and allowing common sense to kill off 'unwanted' possibilities. Now there is no standard for an 'unwanted' possibility. But, for example, in the first case, you could define an unwanted possibility as:

-can't allow more than 2 blocks above the first garbage position
-can't allow more than 3 blocks above the second garbage position

and so on. For example, for the second case you could have:

- can't allow more than 6 blocks above the first garbage position
- can't allow more than 8 blocks above the second garbage position

and so on. If these positions were chosen sensibly (I have just written numbers off the top of my head), they could provide a lot of advantage if someone was actually interested in implementing a solution through exhaustion.

What is still left are few more things. I am not sure how exactly randomizers work but unless randomizer 'positions' are immense, I don't think they should be an issue?

Second issue is that how do we define our desired 'goal' in first two cases (this is not a problem in the third case). Whatever end states we reach after pruning, we need to be able to give them a rank. If we fine grain the rankings too much there might be an issue that we might end up having run in chaotic behavior because of lack of clear objective and randomness. If we keep them lower in number, we will have more concrete behavior. Or in the simplest case, we can just keep the objectives binary (like the third case). But would it be true that hold piece can reduce this chaos to a great extent?

In any case, the point of writing all this down was that with simplification of game's rules and pruning, it might be possible to exhaust the possibilities. Well, in principle, it is always possible to exhaust the possibilities but what we want to able to do is to exhaust based upon current resources. The simplifications would necessarily be:
==synchronous play, which means:
-compulsory block placement if there is no action
-hold, if it is implemented, should be within the actual placements
==play style
-don't allow any 'holes' in placements. This would drastically reduce the number of placement options
==no softdrop or twist rewards

Posted by: Paradox Oct 25 2011, 12:17 AM


QUOTE
I think this would be a misconception. Having an exact procedure to determine something doesn't mean at all that it would be considered 'methodical' for a human player.


I meant that I think you could make it methodical even for a human player. Even when we just downstack we still follow some sort of logic that we aren't completely aware of

Posted by: Anonymous Nov 4 2011, 09:35 PM

QUOTE(wksrdg @ Oct 24 2011, 07:07 PM) *

Goo


Oi, sorry for the late reply and updates. I've been really busy for the last week and a half.

Anyways, "throughput" probably does a better job describing this system than "efficiency", but it's easier for me to use because I've been using that term for the past 2 years. c;

That is some pretty interesting analysis though. So, what you found was that for the piece sequences in the fumens was that initially, RavenDarkSky's piece placement is better for those few frames, but overall my piece placement will end up being better overall in the long run?

Posted by: wksrdg Nov 5 2011, 03:04 AM

QUOTE
That is some pretty interesting analysis though. So, what you found was that for the piece sequences in the fumens was that initially, RavenDarkSky's piece placement is better for those few frames, but overall my piece placement will end up being better overall in the long run?

Basically yes, this is what I tried to do in the second part. Trying to make a decent guess for what clears the blocks left would potentially be used. Obviously, in a non-spin it is easier to guess this reasonably well.

But even leaving aside that, the modification in the first part is fairly important in my opinion. The reason is that it standardizes the value of efficiency (or whatever you wanna name it). I will try to explain this a bit. Look, for example, how big the values for efficiency are that I calculated before the first part. The reason is that we haven't calculated these values starting from a flat field. As a result the values calculated don't provide an "intuitive" comparison to, for example, the efficiency values for simple clears.

So what I assumed was that the green blocks initially were the non-garbage blocks, supposedly representing a situation occurring within a versus game. The values calculated in first part are the "adjusted" values representing simply a weighted average approach. Intuitively it only adds up "attack+downstack" for those blocks that have been placed during the fumen steps and then divides that value by total blocks used (in the fumen steps). I think this kind of adjustment is absolutely necessary when comparing fumen diagrams from efficiency point of view.

For example, suppose a fumen starts with a simple ready made tetris position. You just put a line block and get a tetris. Would you calculate efficiency by just dividing 1 tetromino over "attack+downstack" value for the whole tetris. I think the better way is just to see how much that particular tetromino placed "added" to the "attack/downstack" invariant, based on simple ratio. The value that results is not inflated unnecessarily and is intuitively comparable to efficiency values for the actual clears.

If you actually happen to have a non-spin game, you would only have 19 efficiency values at most, single(2), double(3), triple(4), tetris(5), b2b(5). For a game like blockbox you would only have 10 values, as you already know. My only difference in calculating those (from your method) is to use the precise values (as I listed on the first page).

Posted by: Anonymous Nov 11 2011, 08:51 AM

QUOTE(wksrdg @ Nov 4 2011, 10:04 PM) *




Oi, I was trying to think of some kind of rebuttal, but I'm not smart enough to think of anything. I can tell that you've obviously put a lot of thought into this already c;

I don't think it's necessarily wrong to calculate the piece efficiency without taking into account the green blocks though. Even though they don't necessarily take into account the true efficiency of each piece, from a relative standpoint to the field position, they are accurate in showing that one sequence of piece placements is better than the other sequence of piece placements. And you don't have to go through a whole bunch of other calculations.

QUOTE

For example, suppose a fumen starts with a simple ready made tetris position. You just put a line block and get a tetris. Would you calculate efficiency by just dividing 1 tetromino over "attack+downstack" value for the whole tetris. I think the better way is just to see how much that particular tetromino placed "added" to the "attack/downstack" invariant, based on simple ratio. The value that results is not inflated unnecessarily and is intuitively comparable to efficiency values for the actual clears.


For instance, if you do have a tetris position already made, putting in an I piece is the best possible thing you can do relative to that field position. Using (attack + downstack) / tetriminos may not reflect the efficiency of the pieces already placed, but it can still be useful in comparing sequences of piece placements relative to a field.

Posted by: Sisu Nov 29 2011, 07:42 PM

/r/ general comparison of solo downstacking modes

e.g. BlockBox, Cultris II, NullpoMino, Tessellate, TOJ

Posted by: Apocalypse Dec 9 2011, 05:32 PM

First off, I would like to thank anonymous for posting my video as an example, I feel honored...
Also, I am not as "techy" or smart as these guys, giving such support to the topic, but my opinion is that good down-stacking isn't something you develop with just practice like stacking fast. Fast stacking requires lots of practice because you familiarize certain patterns, you might not be conscious of it but its memorized, you have more control over that. Down-stacking in the other hand requires a lot of improvisation, you receive garbage that you cannot predict or control(unless you are a uber nerd and have the formula for it). For good down-stacking you MUST enter that mindset of seen the lower gaps in relation to your incoming pieces and see the best possible way of using these(which is something "duh").

I had to play thousands of games to enter that mindset, survivor mode really helped me a lot and I feel there are way better down-stackers out there, my speed is a huge factor to my down-stacking, people like meow, radiance, anonymous and trance(which I'm sure there are more people but these guys are coolest imo) that have such efficiency down-stacking that makes my speedy down-stacking look foolish, they might give you the key to "entering the mindset".

I like anonymous input on keeping the field flat for an easier down-stacking, Blink keeps a nice flat field which makes it easier for him to set up combos and clear garbage, probably one of the best at it. Meow with his patience guided me to understanding that important factor(hes the guy you should seek if this is an issue for you as it was for me).

I know I probably talked a lot of bs and said things you already know, but I didn't understand these things myself, I kept playing and playing and playing with desperation, believing I would suddenly be good at it.

So, conclusion, "patience and focus".
;}

Posted by: jkwon23 Mar 5 2014, 05:23 AM

"What does this tell us? None garbage line clears are bad, and theoretically, you should maximize garbage singles. Here is the most efficient game you can play:



Clearly, this situation is highly unlikely, and actually impossible to do with the bag system. Theoretically though, this placement is what you should be striving for."

Where is it? D:

Posted by: Anonymous Mar 5 2014, 05:36 AM

QUOTE(jkwon23 @ Mar 5 2014, 12:23 AM) *

"What does this tell us? None garbage line clears are bad, and theoretically, you should maximize garbage singles. Here is the most efficient game you can play:



Clearly, this situation is highly unlikely, and actually impossible to do with the bag system. Theoretically though, this placement is what you should be striving for."

Where is it? D:


thanks for pointing it out, I accidentally messed up the fumen while editing earlier. The missing fumen is this:


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)