Tetris Online has finally listened

Started by Wojtek, January 04, 2011, 06:01:06 PM

Previous topic - Next topic

Blink

#15
Quote from: acemagic
Also, I'm working on a new multiplayer balance
in trying to perfect balance between the 3 styles too.
If you're interested in hearing out..
I'm open to starting some discussion threads in the future.

Hope everybody has fun playing Tetris!!

Yes, definitely interested in hearing what your ideas are about game balance.  

acemagic, you were a developer on Tetris Online Japan?  Maybe you can shed some light for the rest of us on what exactly happened and why that game is no longer being worked on.  It was a very promising client, with great gameplay and a talented community but it looks like the developers abandoned the project.  What happened?  Also, do you know any future game plans for TOJ Inc.?

coolmaninsano

While we're on the topic, are there/were there any plans for a Mac-compatible version of TOJ?

Kitaru

Quote from: acemagic
Live or not-live we're trying to make the game play exactly the same.
Just a thought: have you considered doing something along the lines of how Tekken works? My understanding is that the current Tekken games tune an AI based on how often you behave a certain way or react to various situations. Some of these AIs are drawn from the pool in addition to the pre-defined ones during single player games. It's actually not too far off from the replay-based solution you're using right now, although figuring out how to cleverly approximate stacking style and strategy in a generalized form would be tricky. The upshot is -- if you figured out how to make it work just right -- you could have real garbage holes rather than compromise with bombs and the like.

I'm actually really curious about this now, haha. It'll never be 100% identical, but an AI player of this kind could possibly have the intuition to know when to do things like downstack. It would also be pretty great if it could identify openers by rough stack shape and use them with the appropriate frequency to mimic that aspect of a player's behavior.

(I think we need to start having more AI discussion on the forums... Ryan Heise, Poochy, Mihys (haha wishful thinking), let's get the ball rolling!)

Quote from: acemagic
There is actually no reason why live games can not have pause (starcraft has this) .. but just more work I guess.
I suppose that's alright in friendlies. In StarCraft tournament play, pausing is punished by disqualification. This is pretty easy to enforce though, so it's not really a big deal if one can't disable it on the software side.

Quote from: acemagic
Oh and just one more,
actually the goal of Tetris Battle was to try to pull off a commercial success of live interactive multiplayer in facebook for the first time.
Hey, best of luck to you, but I'm not really a fan of trying to "fool" users with the asynchronous multiplayer. Falling back on Tekken again as an example, I feel it should be pretty clear whether you're playing against non-Live players not  -- i.e. you have opted to play on a machine in the arcade without another player in the case of Tekken, though the Tetris Battle solution doesn't necessarily have to be a separate "mode" as long as it is clearly indicated when you cannot be matched with a live player. Even newcomers are able to identify that the experience is not "exactly the same," so I don't think anyone really appreciates both experiences being tossed in the same bucket without any differentiation

I'll also second Blink's suggestion. I'd also like Initial Rotation and Initial Hold Systems implemented correctly; I believe they worked correctly in Java Tetris Friends, -- no way to check now -- but they didn't get things right when they brought them back on TetrisFriends.Com -- IRS/IHS should trigger on the spawn frame after a delay if the key is held, but TF.Com's implementation requires a unique input every during every line clear animation to get the desired Initial System to trigger.

I'd also like to voice my concern regarding the odd splintering going on. We currently have three games on the same base engine (two of which bear the same name despite varying feature sets), between which scores and settings cannot be shared. FB TF and TF.Com already have this issue with splintered identity, but it could easily become worse if FB TF or Tetris Battle start picking up features such as customizable speed settings without allowing purchases on the co-existing platforms to carry over.

And, of course, if you guys are really stuck with Flash at this point, please do not neglect continued optimization.
<a href=http://backloggery.com/kitaru><img src="http://backloggery.com/kitaru/sig.gif" border='0' alt="My Backloggery" /></a>

acemagic

Quote from: Kitaru
Just a thought: have you considered doing something along the lines of how Tekken works? My understanding is that the current Tekken games tune an AI based on how often you behave a certain way or react to various situations. Some of these AIs are drawn from the pool in addition to the pre-defined ones during single player games. It's actually not too far off from the replay-based solution you're using right now, although figuring out how to cleverly approximate stacking style and strategy in a generalized form would be tricky. The upshot is -- if you figured out how to make it work just right -- you could have real garbage holes rather than compromise with bombs and the like.

I'm actually really curious about this now, haha. It'll never be 100% identical, but an AI player of this kind could possibly have the intuition to know when to do things like downstack. It would also be pretty great if it could identify openers by rough stack shape and use them with the appropriate frequency to mimic that aspect of a player's behavior.

(I think we need to start having more AI discussion on the forums... Ryan Heise, Poochy, Mihys (haha wishful thinking), let's get the ball rolling!)
I suppose that's alright in friendlies. In StarCraft tournament play, pausing is punished by disqualification. This is pretty easy to enforce though, so it's not really a big deal if one can't disable it on the software side.
Hey, best of luck to you, but I'm not really a fan of trying to "fool" users with the asynchronous multiplayer. Falling back on Tekken again as an example, I feel it should be pretty clear whether you're playing against non-Live players not  -- i.e. you have opted to play on a machine in the arcade without another player in the case of Tekken, though the Tetris Battle solution doesn't necessarily have to be a separate "mode" as long as it is clearly indicated when you cannot be matched with a live player. Even newcomers are able to identify that the experience is not "exactly the same," so I don't think anyone really appreciates both experiences being tossed in the same bucket without any differentiation

I'll also second Blink's suggestion. I'd also like Initial Rotation and Initial Hold Systems implemented correctly; I believe they worked correctly in Java Tetris Friends, -- no way to check now -- but they didn't get things right when they brought them back on TetrisFriends.Com -- IRS/IHS should trigger on the spawn frame after a delay if the key is held, but TF.Com's implementation requires a unique input every during every line clear animation to get the desired Initial System to trigger.

I'd also like to voice my concern regarding the odd splintering going on. We currently have three games on the same base engine (two of which bear the same name despite varying feature sets), between which scores and settings cannot be shared. FB TF and TF.Com already have this issue with splintered identity, but it could easily become worse if FB TF or Tetris Battle start picking up features such as customizable speed settings without allowing purchases on the co-existing platforms to carry over.

And, of course, if you guys are really stuck with Flash at this point, please do not neglect continued optimization.

Sorry gotta get home to have dinner (already getting close to 9pm)
so I can't answer everything right now.. but IRS/IHS we've tried to make it right on Facebook Tetris Battle, if there's something you don't is right let us know, and we can put some efforts tweaking it.

Quote from: coolmaninsano
While we're on the topic, are there/were there any plans for a Mac-compatible version of TOJ?

I don't work at TOJ anymore, so my answer is that I'm not aware..
but it's probably because it's very hard to update two versions at the same time in online.
It requires a bigger team and is high maintenance.

That's why we started building Tetris in Flash as now Mac users can also enjoy multiplayer Tetris.


Quote from: Blink
Yes, definitely interested in hearing what your ideas are about game balance.  

acemagic, you were a developer on Tetris Online Japan?  Maybe you can shed some light for the rest of us on what exactly happened and why that game is no longer being worked on.  It was a very promising client, with great gameplay and a talented community but it looks like the developers abandoned the project.  What happened?  Also, do you know any future game plans for TOJ Inc.?

Yes, actually I've designed Tetris in Hangame, Korea. Tetris Online Japan.. and also here for Tetris Online.
One reason why it's not being updated so much might be because I'm here now working on these projects now. Also TOJ had some restructuring as well. Also I believe their focus might have changed from download client to more flash based products as a download client based on activeX launcher would only work on PC/IE environment.

Kitaru

#19
Quote from: acemagic
Sorry gotta get home to have dinner (already getting close to 9pm)
so I can't answer everything right now.. but IRS/IHS we've tried to make it right on Facebook Tetris Battle, if there's something you don't is right let us know, and we can put some efforts tweaking it.
You see, I didn't even know Tetris Battle had any implementation of IRS/IHS because I assumed it was closer to the FB TF build. :< I checked it and it has the incorrect TF.Com-style Initial Systems.

During the spawn frame (i.e. a delay such as the line clear animation has just finished and we're about to spawn the next piece), check if the appropriate inputs are down. That is, if the Hold key is depressed when we go to spawn the next piece, swap first instead. Similarly, -- after evaluating IHS -- the soon-to-be-active piece should be rotated if a rotation key is actively depressed during that frame. Whether or not the input came before the line clear animation started or not should be irrelevant. After processing IHS and IRS, any player death conditions can be evaluated.

If both rotations are held, they should cancel each other out as usual (-1 + 1 = net rotation of zero in the spawn frame). There should not be any priority as there is now -- it seems to grab onto the last rotation checked and use that when IRS is applied.

http://harddrop.com/forums/index.php?showtopic=3186 is an example of an optimization for 2-wide combo gaps using a traditional implementation of IRS.

http://www.youtube.com/watch?v=vX5BA1_EMqg#t=7m32s demonstrates a player whose fast 20G strategy incorporates nearly constant use of IRS by holding a single rotation key over long stretches of pieces. Although he opts to counter-rotate a few pieces back to spawn orientation after they enter, some players will cancel rotations during delays by holding two keys rather than release them all.

The good part is that TF.Com's implementation only applies IRS/IHS if there is a relevant delay (i.e. line clear animation). This much should stay the same.

Quote from: acemagic
That's why we started building Tetris in Flash as now Mac users can also enjoy multiplayer Tetris.
Why'd they give up on Java? As long as you stick with Java 5 for compatibility, I'd think that would work just fine. From what I've seen, it's also much less finicky about polling for input and maintaining a decent frame rate from the start.

EDIT: Here's another thought: are replays using the same seed for the bomb generation as when the game was recorded? There is still potential for "strategy desync" if the replay opponent has not received enough garbage for a combo they performed to actually happen, but it's slightly less dependent on luck than if the bombs are not distributed in the same fashion.
<a href=http://backloggery.com/kitaru><img src="http://backloggery.com/kitaru/sig.gif" border='0' alt="My Backloggery" /></a>

caffeine

Hello! Welcome aboard! I think you guys did a great job on TOJ and Hangame Tetris. And thank you for devoting so many years into a game that most of us here are utterly obsessed with! You're at the right place. =]
Quote from: acemagic
Pause timer was added so that we can add pause to realtime multiplayer games as well. (It's tricky and requires a lot of testing however)
Our goal is to make both experiences seemless.

Live or not-live we're trying to make the game play exactly the same.

There is actually no reason why live games can not have pause (starcraft has this) .. but just more work I guess.
Tetris Evolution implemented a pause timer, too. Here's a video of me exploiting pausing (and infinite spin) in a ranked match. So, they did good by putting a timer on pauses, so griefers wouldn't just go watch TV while their opponent gets bored and quits, but they forgot to put a limit on those pauses. A griefer can just sit there and pause a game all day! I suppose you could put a timer as well as a limit on pausing, but I prefer Starcraft II's method much more:
  • Player A pauses
  • Player B can unpause at any time
  • If player B doesn't unpause, then the timer will run up eventually
  • Player A can only pause X times in a game.
The catch-22 is that you'll get backlash no matter how you implement it. Players brought up complaints against Starcraft's method because their opponent can just unpause at any time. Then, if Blizzard was to "fix" that problem, players would bring up even more complaints when griefers started exploiting it (or simply the fact that they don't like their game being paused without consent). It seems the only way to avoid this would be not to add pausing in, but in any case, I hope you guys find a good solution.

+1 for customizable DAR and AR. Though, I'd like to take it a step further. TOJ allowed this, and I purchased all of the presets, but I still wasn't satisfied! Myself, and many other players on this forum, prefer a DAR of no more than 100ms (sometimes as low as 50ms if the game is responsive enough), with an autorepeat always as fast as possible (usually 17ms). TOJ's wasn't quite customizable enough to get a good combination of DAR and AR (I believe the final preset's DAR was too fast while the AR wasn't fast enough). So basically, we want to be able to bring the autorepeat down to at most a frame per column, and then be able to tweak the DAR as low as we can go without misdropping.

Rosti_LFC

Would it be that hard to allow players to set the timings by frame/seconds (including instant DAS) instead of presets?

Wojtek

#22
hello acemagic, both toj and hangame tetris are very cool games, but tetris battle is just piece of s**t. sorry if that sounds too bitter, but idea behind replay based battle mode is broken on so many levels... i can see my opponent field but replay player can't see mine field, i know my stack height, but replayer player's stack height is different from what he think it is. what output of such battle really means?
Recommended games:
NullpoMino
Tetris Online Poland

acemagic

#23
Quote from: Kitaru
You see, I didn't even know Tetris Battle had any implementation of IRS/IHS because I assumed it was closer to the FB TF build. :< I checked it and it has the incorrect TF.Com-style Initial Systems.

During the spawn frame (i.e. a delay such as the line clear animation has just finished and we're about to spawn the next piece), check if the appropriate inputs are down. That is, if the Hold key is depressed when we go to spawn the next piece, swap first instead. Similarly, -- after evaluating IHS -- the soon-to-be-active piece should be rotated if a rotation key is actively depressed during that frame. Whether or not the input came before the line clear animation started or not should be irrelevant. After processing IHS and IRS, any player death conditions can be evaluated.

If both rotations are held, they should cancel each other out as usual (-1 + 1 = net rotation of zero in the spawn frame). There should not be any priority as there is now -- it seems to grab onto the last rotation checked and use that when IRS is applied.

http://harddrop.com/forums/index.php?showtopic=3186 is an example of an optimization for 2-wide combo gaps using a traditional implementation of IRS.

http://www.youtube.com/watch?v=vX5BA1_EMqg#t=7m32s demonstrates a player whose fast 20G strategy incorporates nearly constant use of IRS by holding a single rotation key over long stretches of pieces. Although he opts to counter-rotate a few pieces back to spawn orientation after they enter, some players will cancel rotations during delays by holding two keys rather than release them all.

The good part is that TF.Com's implementation only applies IRS/IHS if there is a relevant delay (i.e. line clear animation). This much should stay the same.
Why'd they give up on Java? As long as you stick with Java 5 for compatibility, I'd think that would work just fine. From what I've seen, it's also much less finicky about polling for input and maintaining a decent frame rate from the start.

EDIT: Here's another thought: are replays using the same seed for the bomb generation as when the game was recorded? There is still potential for "strategy desync" if the replay opponent has not received enough garbage for a combo they performed to actually happen, but it's slightly less dependent on luck than if the bombs are not distributed in the same fashion.


Hi Guys,

Thanks for the update. This is exactly what I need. I'll look into it and see what I can do.
FB TetrisFriends initially had IRS/IHS but it has been requested to be removed.. however, we argued back that it should be in and that's why it's back in now. (However, we currently don't have the resources to maintain Facebook TetrisFriends app so that's why we couldn't upgrade it yet)

The Java part was dropped because it was received very poorly by the mass audience.
Actually the numbers dropped really a lot after the launch of the java version.

http://www.developeranalytics.com/app.php?id=2376198867

You can check out the graph here..
but around feb, 2008 was the original blockstar flash version.
if you look at april, 2008 you will see a big drop. That's when the java version was released.
Around early july, 2008 is when the new flash version was released.

The big reason is the difference in accessibility.
Java Virtual machine takes about 30 seconds to load, and requires install ( if you don't have it )
and also takes up more memory ( bad for low end computers ) and requires a security dialog check.
So even though the quality is higher ( better frame rates, and controls ) it just doesn't seem to work for mass audiences.

You can see a similar trend with facebook games released w/unity3d in facebook.
Even UNITY is even an easier tool to install, most games released under it failed greatly
because the penetration is low.

ex) Here's asteroids online launched by atari recently.
You can see that the marketing really failed big, and now they've dropped the game all together.
http://www.developeranalytics.com/app.php?id=165754536796000

With casual gaming, sometimes having just one more step will drop the conversion ratio more than 50%.
That means the acquisition cost for new users is double..
So that's why most of the people are developing in flash nowadays because it has the best penetration (95%+).

I do understand your point however, because I too am sometimes frustrated with the lag issues with flash.
In flash it's harder to keep a constant frame rate because of the way flash handles things.. and even if the frame is consistent they still have the problem of the keys being eaten up.
However, we've devoted a lot of time and efforts to try to make it as good as possible so far, as we too enjoy playing Tetris.

Your last quote about the bombs are quite interesting.
Yes, we do try to resynchronize the bomb positions so that even a replay will do combos.
However you are correct that because the garbage part is dynamic it's not always the same.
But in actual situations where you're matched with a player at a same level your APM (Attack per minute) should be similar so net result should be close. We've been testing and trying to improve this to make it as close as possible. I'll like to hear more about this possible, since it's a system that could be improved even more. Thanks for mentioning it.

Btw, I do love discussing and sharing thoughts..
but sometimes I get really over worked and maybe not be able to reply right away.
But even so, I'll try my best to check it out the weekend, so please pardon me if that happens.
The reason why I don't write so much is maybe because I don't want to disappoint you guys on that..

However, if you want to learn more about why things were designed this way, or other things we tried and what happened, I'm probably the best person to ask.
I can even share some behind stories from the days back when I was working in Hangame..
those were exciting times.

Quote from: Rosti_LFC
Would it be that hard to allow players to set the timings by frame/seconds (including instant DAS) instead of presets?

I don't think it's a technical challege, but might be a service issue.
more like.. do you want everybody to use any bats or golf clubs in baseball or golf.

There has to be some guidelines, so that people can say that it's because of the skill and not because of the club.
Also transitioning from the standard set that most devices offer to a new setting requires adjustment too so it's more of a policy issue in a way.

Tuning was made in TOJ's version, so that for the first time the users can change these values to their preference.. previous for an odd reason, no other official Tetris game actually allowed this.

I like to the fact that you can earn it. because it makes it feel more like a traditional game.
You play, earn things, and can upgrade... like an rpg.
And you get stronger as you play, and you can get adjusted to each settings appreciating it too.

Sometimes, if you buy the best car, or get the best gun from the start, it kind of spoils the fun of earning it in the games. (ex. if you start using trainers it'll be fun for a day or too, but you'll quickly lose interest in the game)

caffeine

#24
Quote from: acemagic
I don't think it's a technical challege, but might be a service issue.
more like.. do you want everybody to use any bats or golf clubs in baseball or golf.

I like to the fact that you can earn it. because it makes it feel more like a traditional game.
You play, earn things, and can upgrade... like an rpg.
And you get stronger as you play, and you can get adjusted to each settings appreciating it too.

Sometimes, if you buy the best car, or get the best gun from the start, it kind of spoils the fun of earning it in the games. (ex. if you start using trainers it'll be fun for a day or too, but you'll quickly lose interest in the game)
I can certainly understand where you're coming from once you put it that way. Sometimes it's difficult for us hardcore players to see the bigger picture (like for example why you guys would use Flash over Javascript). Thank you for shedding some light on this.

That said, I'd like to give you my point of view on the DAR/AR issue. When speaking of how games should follow the guideline so players don't get "tetlagged," Henk Rogers often uses the example of "having the steering wheel on the left, the accelerator here, the break pedal there, etc." This is great, because after all, I don't want to learn the game one way, and then when I buy it for a different system, the rotations are reversed or something. That's a pain in the butt.

Well, the sensitivities for a game can have the same effect. For example, if the autorepeat is very slow, it's best for me to tap tap tap my way to the wall, but if the autorepeat is fast, it's best to just hold it down and let it go to the wall without tapping. Each piece has a unique way to get to each particular placement. These movements become internalized into muscle memory. If I go from a fast autorepeat game to a slow autorepeat game, I'm going to have to start tapping more in order to make the best of it, and that's like going from an automatic to a manual transmission. See what I'm getting at?

We've been referring to this idea as "finesse," and some players, such as myself, have invested quite a bit of time into learning the optimal way of placing pieces (illustrated here). So, from my point of view, I've acquired all this skill in minimizing my movements per piece, but it's all for naught if I were to start playing some game whose autorepeat is so slow it requires me to tap tap tap all the time. I'd have to relearn what's optimal for a slower DAR/AR (probably 3-step or even 4-step, opposed to 2-step).

How do I know whether to use a 2-step or 3-step system? It's a matter of how fast I can tap and how fast the game's AR and DAR is. If I can tap three times to the left faster than I can get there by holding down the left button, then my 2-step scheme is useless.

And I don't think it's just us veterans who prefer more responsive sensitivities. I've heard brand new players comment on how nice PS3 Tetris is when it comes this. It's a very simple way to add value to the game. The way I see it, to make people earn faster sensitivities is kind of like making modern Olympic cyclists use 1940s era bicycles until they get halfway through the race, and then they may have access to better bicycles.

coolmaninsano

Whoa, who deleted Wojtek's post? It is true that you get stronger if you PAY than if you play.

Wojtek

#26
i deleted it by myself, i don't want be too negative. I'm happy about developers coming here to talk with us. acemagic, you may want to check TOJ again, it's not what it used to be.
Recommended games:
NullpoMino
Tetris Online Poland

acemagic

#27
Quote from: Wojtek
hello acemagic, both toj and hangame tetris are very cool games, but tetris battle is just piece of s**t. sorry if that sound too bitter, but idea behind replay based battle mode is broken on so many levels...

No worries. Thanks for the honest feedback. In a strict sense of gameplay, I too agree you are right that real-time game play is the most exciting thing ever.

However, when I started working in Japan and Hawaii.. I realized a lot of things.
Not everybody likes it. and Not everybody has what it takes to enjoy it fully.

Some people don't like the fact that they're beating somebody (ex. In Japan, a lot of people wanted to avoid direct confrontation as it breaks the spirit of wa = or harmony )
Also, in countries like Korea, broadband is pretty common, but there are so many other places in the world without that infrastructure.
Without a decent ping, it's very hard to enjoy real-time multiplayer Tetris.

Lastly, there is also a critical mass factor too..
If there aren't enough players.. you probably won't be able to find an opponent at your level of skill.. and the waiting could be forever. (ex. Tetris DS, Tetris Splash at launch was great but 1 year later it would be hard to find players at your level)

I've designed realtime Tetris multiplayers about 4~5 times already,
so I decided to do something different this time.

A Tetris that will last forver, so that anyone from anywhere in the world can play each other anytime.
A Tetris that you don't have to worry about not having enough players which all online games are plagued with.

And that's how the Tetris Battle project started.

I know it's not for everybody, but it's something new we're trying to cover people and areas we haven't been able to cover with those other products.

You can think of it as a scooter vs a full scale motorcycle.
Or a canon ixy vs a full scale dlsr. Battle is more focus on convenience.

But recently, if you go and check today..
The facebook version actually has some features I've added to bridge the parts it was lacking.
Now it has the hybrid ability to play random players live at the same time.

So I guess it's now more like a compact camera with interchangeable lens in some ways..

It's a new path we're digging right now to try to complete the dream
of having one game that can connect everybody in the world with.

I know this might just sound a bit crazy or something..
but my passion has been always to strive something new to the world..
Multiplayer Tetris is such a great game.. wouldn't you want everyone to be able to experience some of it?

We might be still doing baby steps.. but someday maybe it could lead to changing how people play games.

An ability to be able to play multiplayer Tetris anywhere, anytime, with anyone..
Even if that person is gone ( imagine if we had a game of Michael Jackson) or busy..
the ability to play that person even if you're not online. (on planes or in the subway.. or somewhere in the world without internet connection)

Wouldn't that be awesome?

I guess everyone has their own dream.
But this is something a little silly.. I've been dreaming..

And that's what we're trying to do with FB Tetris Battle.

coolmaninsano

Well, here's my two cents on facebook battle:

When I started playing Facebook battle, it was after I played some Tetris on a flight the day before. So I searched up Tetris on facebook, and found battle. I played it for two months, and my friends and I would compete to see who sent the most lines in the two minutes. It was fun at the time (sending 8 lines with a tetris was nice ). Then I found TF and played battle there, and found Live and Arena. Since then (due to lack of DAS, uncustomizable controls, slow as sh** soft drop, and lag) I haven't played battle.

Paradox

#29
In regards to DAS and AR, if you really want things to be unlocked then why not have the option to unlock custom das/ar? Or even have 5 presets then after you unlock those you can unlock custom. One of the biggest things for me is to have instant AR.

Line Clear Delay: Make it possible to unlock reduced delay? I think toj does this.

Soft drop speed: Make it possible to increase speed

I think these are some simple things that would please people and you could unlock.
[!--ImageUrlBegin--][a href=\\\"http://oi46.tinypic.com/2zqx63k.jpg\\\" target=\\\"_new\\\"][!--ImageUrlEBegin--][img width=\\\"400\\\" class=\\\"attach\\\" src=\\\"http://oi46.tinypic.com/2zqx63k.jpg\\\" border=\\\'0\\\' alt=\\\"IPB Image\\\" /][!--ImageUrlEnd--][/a][!--ImageUrlEEnd--]