View Full Version : Hebo Mini netplay feature request thread. :)
Zaphod77
04-12-2008, 09:26 PM
This is for people to post ideas for improvements for the devs (or me) to work on.
Hopefully, they will read this.
1) net_cascade.c The garbage system for this one is n, duplicated with no offset, but with required "min clear" set on server settings before any garbage is sent.
2) net_tgm.c With items. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
3) selectable garbage systems. Possibilities include
a) TDS garbage (used now) with editable hole change rate. (0 for random garbage) I may do this. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
b) n-1 random garbage, with editable hole change rate, same as above.
c) TGM/Bloxeed garbage. (0-2-3-4 cloned)
Billmaan
04-12-2008, 09:34 PM
Here's a potentially-working net_cascade.c: http://netfiles.uiuc.edu/wkinner2/net_cascade.c
This version doesn't include the server options added in beta 5.
I don't know how quadra garbage works, so that part's probably wrong. [Right now a cascade that clears N lines total sends N-1 lines of garbage, with the gaps distributed as in TDS.] Let me know in detail how the garbage is supposed to work, and I can fix it. I also am not familiar with cascade gravity in general, so it's quite possible there are still some bugs there.
EDIT: actually, I already know a couple places where things may be broken. In quadra, would this (http://zeta.hypersector.com/Tools/TetrisField/?m105_40reYikbD3gbE3AuB7eAAAA) cascade? What about this (http://zeta.hypersector.com/Tools/TetrisField/?m105_40OeYilb7lhb7lE3gbD3pbTaB7eAAAA)?
I looked into adding TGM garbage support (for net_standard) and it looks fairly difficult. I'll keep thinking about it, though.
jujube
04-12-2008, 11:44 PM
a new piece sequence for each game would be nice.
a new piece sequence for each game would be nice.
Yea, I agree. That will make things more interesting.
Rosti LFC
04-13-2008, 02:37 AM
Eventually 3 or 4 player would also be awesome.
And a lobby of games on the servers.
I do acknowledge that both of these are pretty big requests though.
Billmaan
04-13-2008, 03:09 AM
Here's an updated net_cascade, with the beta 5 features and several bugfixes: http://netfiles.uiuc.edu/wkinner2/net_cascade.c
I still need to know whether these situations should cause cascades:
[fumen link 1] (http://zeta.hypersector.com/Tools/TetrisField/?m105_40reYikbD3gbE3AuB7eAAAA)
[fumen link 2] (http://zeta.hypersector.com/Tools/TetrisField/?m105_40OeYilb7lhb7lE3gbD3pbTaB7eAAAA)
(Currently the first does not, and the second does.)
Rosti LFC
04-13-2008, 03:11 AM
I still need to know whether these situations should cause cascades:
[fumen link 1] (http://zeta.hypersector.com/Tools/TetrisField/?m105_40reYikbD3gbE3AuB7eAAAA)
[fumen link 2] (http://zeta.hypersector.com/Tools/TetrisField/?m105_40OeYilb7lhb7lE3gbD3pbTaB7eAAAA)
(Currently the first does not, and the second does.)
If you're going to follow Quadra, they both should. I think they both should anyway, or you're going to get an uncascadable bit if you're unlucky with garbage.
tepples
04-13-2008, 03:30 AM
But should random garbage be able to cascade and self-clear?
| |
|L |
|LZZ |
|LLZZ |
|%%%%%%%% %|
|%%%%%%%%% |
Zaphod77
04-13-2008, 03:42 AM
yes, you are supposed to be able to cascade INTO garbage.
but garbage itself will not cascade.
so you have garbage of
XXXXXXXXX
X XXXXXXXX
XX XXXXXXX
XXX XXXXXX
XXXX XXXXX
XXXXX XXXX
XXXXXX XXX
XXXXXXX XX
XXXXXXXX X
XXXXXXXXX
it will stay like that and not collapse.
garbage floats, just like it does in Sticky mode.
and it's not n-1 garbage, it's n garbage, and exactly clones the players lines, in the order they were cleared, but a required minimum to attack set by server.
default is to require 2 lines to send garbage. But an interesting game is to require 5 lines to send. SO a cascade is required to send garbage.
btw, suggest playing with a short line clear delay. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
Zaphod77
04-13-2008, 06:35 AM
the force y spawn option does not work.
The reason is by the time it gets applied, that variable is no longer checked by the client.
the correct variable to adjust is
block_init_y_pos[player]
and it needs to be 1 for below frame and -1 for above frame
and do not apply if it's 0
wrong code.
if(netsSpawnType > -1) spawntype[player] = netsSpawnType;
correct code
if(netsSpawnType != 0) block_init_y_pos[player] = netsSpawnType;
wrong menu code.
if(netsSpawnType == -1) sprintf(string[0], "PLAYER CHOICE");
else if(netsSpawnType == 0) sprintf(string[0], "UNDER THE FRAME");
else sprintf(string[0], "ABOVE THE FRAME");
printFontGrid(22, 19, string[0], (cursor == 16) * 7);
correct menu code
if(netsSpawnType == 0) sprintf(string[0], "PLAYER CHOICE");
else if(netsSpawnType == 1) sprintf(string[0], "UNDER THE FRAME");
else sprintf(string[0], "ABOVE THE FRAME");
printFontGrid(22, 19, string[0], (cursor == 16) * 7);
and default should be 0, not -1
I cannot post at 2ch forums because comcast is banned. Any hebo mini devs please PM me here, ok? http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
Kitaru
04-13-2008, 07:38 AM
Is it possible to force rotation rules from netplay plugins? I'm making a Tetris DS preset for when I play with some of my non-TGM-player friends, and it would be nice to force SRS for minimal setup on their side. It would also be nice to at least have forced soft drop settings. The force Y spawn fix will also make the TDS preset work a lot better.
Also, is Doubles an eventual possibility? As far as I know, there hasn't even been local Doubles in any Heboris expansion. It would be an incredible addition, though.
jujube
04-13-2008, 07:41 AM
yes, doubles would be really great. then if 4-player support was added it would open up the possibility of 2 vs 2 http://www.tetrisconcept.net/forum/images/smilies/icon_biggrin.gif something i've always wanted to play.
Zaphod77
04-13-2008, 08:23 AM
also i know why sometimes the sequence doesn't change.
lets see the code..
if(getPushState(player, 4)) {
// RETRY
if(statc[player * 10 + 0] == 0) {
PlaySE(se_kettei);
StopAllBGM();
gameAllInit();
playerInitial(0);
playerInitial(1);
versusInit(0);
stat[0] = 3;
stat[1] = 3;
as you can see it calls playerinit for the pressing player, and then calls playerinit for player2 on your computer. it then calls versusinit.
now we look at the command recieve code..
PlaySE(se_kettei);
StopAllBGM();
gameAllInit();
playerInitial(0);
playerInitial(1);
stat[0] = 3;
stat[1] = 3;
look! NO VERSUSINIT!
there is your bug.
Rosti LFC
04-13-2008, 06:06 PM
I'd like some sort of survival netplay mode. Basically something like Death Shirase where the speedcurve increases and the winner is the player who can either survive the longest time or reach the highest level.
Zaphod77
04-13-2008, 06:25 PM
That would be neat. and it sholdn't be too hard to do.
My server did not have to be removed! DeHackEd's server contains some of his custom code, and has been ported to run on Linux. He says his server should not be listed by default, because it could be instable or not working at times. My server runs the standard heboserver_en.exe from hebo mini, without any changes. So there is no reason not to include my server, and you are welcome to include it in network.ini. I think it is a misunderstanding. Note that my server is usually offline between 9 A.M. and 8 P.M. JST (Japanese time).
Maybe we should organise some games between Western players and Japanese players, now that we can play online. It could be lots of fun! Players are welcome to join #arika on irc.quakenet.org to challenge any of us! http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
Ghett0
04-13-2008, 09:10 PM
I'd like some sort of survival netplay mode. Basically something like Death Shirase where the speedcurve increases and the winner is the player who can either survive the longest time or reach the highest level.
I'll work on it.
EDIT : http://www.mediafire.com/?5u94t2ptoj4
caffeine
04-13-2008, 09:15 PM
I'd like some sort of survival netplay mode. Basically something like Death Shirase where the speedcurve increases and the winner is the player who can either survive the longest time or reach the highest level.
I'm surprised there isn't already a G4 type game mode with "grade attack."
Rosti LFC
04-13-2008, 10:21 PM
I'll work on it.
EDIT : http://www.mediafire.com/?5u94t2ptoj4
I meant without garbage
Rosti LFC
04-13-2008, 10:54 PM
Not sure how this works with plugins, or if it even can, but the ability to save replays (preferable in chunks of, say, five games)would be great.
Ghett0
04-13-2008, 11:16 PM
That has no garbage.
DIGITAL
04-13-2008, 11:35 PM
Ghett0, your plugin won't compile. You might want to take a look at it again.
Ghett0
04-14-2008, 01:08 AM
Give me the error message.
DIGITAL
04-14-2008, 02:14 AM
Give me the error message.
Content of CompileError.txt (http://www.nopaste.com/p/anhNBiTemb)
Zaphod77
04-14-2008, 02:41 AM
lol you got mangled by IE. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
try downloading in firefox instead. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
DIGITAL
04-14-2008, 03:12 AM
Well, the issue has been identified. Ghett0, you might want to change the name of your variables. It's conflicting with the variable naming convention of net_standard.c. Anyhow, after sorting that out, I ran into another issue.
./plugin_net/net_endurance.c(112) : ;???????
./plugin_net/net_endurance.c(1100) : ;???????
I figured there was a couple semicolons missing (check the lines BEFORE the ones listed - the script doesn't flag it until a later line!).
and that was from a quick glance over it.
also, DIGITAL, you're at 1010 posts... which isn't that many in binary http://www.tetrisconcept.net/forum/images/smilies/icon_razz.gif
Ghett0
04-14-2008, 03:23 AM
1010 is 42 in binary. Digital is the meaning of life.
And Zeta : Is that what's wrong with the script?
Meroigo
04-14-2008, 03:27 AM
1010 is 42 in binary.
Nope. But 101010 (binary) is. 1010 (binary) is 10 in decimal.
I'm double-checking the translation of the error message... and looking back at my hash.c file, since I had the very same error message there.
it -may- be from for(x = y; x =< z; x++) { } (note the underlined comparison operator) or similar constructs. =< and => will not compile. use <= and >= instead.
(I'm tending to hit more errors than most people here are since I'm building my scripts and stuff from the equivalent of the dummy.c file - which is effectively nothing)
Ghett0
04-14-2008, 03:42 AM
I'm double-checking the translation of the error message... and looking back at my hash.c file, since I had the very same error message there.
it -may- be from for(x = y; x =< z; x++) { } (note the underlined comparison operator) or similar constructs. =< and => will not compile. use <= and >= instead.
(I'm tending to hit more errors than most people here are since I'm building my scripts and stuff from the equivalent of the dummy.c file - which is effectively nothing)
So can you fix it?
I don't have that build on hand at the moment, and I'm focusing on a bit of a tricky mode plugin script that if I screw up bigtime on, the savedata will be broken by replays and "rerecords".
however, it should hopefully be a simple fix. I'll take a look at it a little later if nobody's fixed it by then. probably Monday.
[edit: took a look at it. line 111, missing semicolon on command. line 1100 should read netsTotalAttack[player] = 0;. remove the space and the b between the 0 and the semicolon. -should- compile after that. didn't even need to crank out Notepad++ for it, either. ignore any other text this post has/had]
[edit2: under event 69, the comment says it's supposed to raise the garbage. I assume this is what you want to NOT happen. do a quick check in the function upLineProc(??????) to see if there's a specific value you need to set to cancel it or if it naturally cancels itself.]
[edit3: replace that "yt;" with "param = 1;". this tells the function to cancel. usually, you'd set this while doing your own special thing, but here, we just want to skip it.]
gamestart.c
...
void upLineProc(int player) {
int i, j;
int param;
param = 0; //IMPORTANT
executePlugin(player, 69, ¶m); // pass to plugin for handling
if(param) return; //if plugin sets param = 0, cancel standard processing
...
Ghett0
04-14-2008, 04:01 AM
I fixed it up, and IT WORKS!
http://www.mediafire.com/?hvgxod2zsff
Zaphod77
04-14-2008, 04:05 AM
Okay i added hole shift rate to net standard options.
anywhere from 0% (garbage is a solid colum always) to 100% (totally random garbage)
http://eunich.cochems.com/~zaphod/net_standard.zip
You're welcome, Hebo Mini devs. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
btw, the setting doesn't save. it keeps going back to 30%
I'm sure the devs will fix it. http://www.tetrisconcept.net/forum/images/smilies/icon_wink.gif
Red_Star
04-14-2008, 05:04 AM
Ghetto, Heboris doesn't run for me when i have your program in it. I'm not sure what the problem is. It's running fine with Zaphod's net standard file. Is anyone else having this problem or is it just something wrong with my computer (that happens a lot so it wouldn't suprise me)?
Ghett0
04-14-2008, 05:07 AM
Ghetto, Heboris doesn't run for me when i have your program in it. I'm not sure what the problem is. It's running fine with Zaphod's net standard file. Is anyone else having this problem or is it just something wrong with my computer (that happens a lot so it wouldn't suprise me)?
It compiles fine for me. http://www.tetrisconcept.net/forum/images/smilies/icon_surprised.gif
Billmaan
04-14-2008, 10:23 AM
I almost have clone garbage working, but I need a bit more help.
Consider this scenario: [fumen link] (http://zeta.hypersector.com/Tools/TetrisField/?m105_40DessgbkzibC3tsA3lzA3gb_2FesshbkzhbD3gbA3gb B3?gbI3qbpeBXeUKgbcDwbssgbkzsbAAA)
In Quadra, what garbage would the line clear at the end of the second frame produce?
Zaphod77
04-14-2008, 10:58 AM
depends on which piece was dropped second.
it would produce one line with the final dropped piece missing, then one with both holes.
if both of those dropped at the same time from a cascade, then both holes would be in the line.
and there is no incoming garbage cancel at all.
Billmaan
04-14-2008, 11:36 AM
"standard"-style gameplay with TGM garbage: http://netfiles.uiuc.edu/wkinner2/net_tgm.c
(The netcode is rather sloppy -- 40 bytes sent for each line of garbage. If anyone wants to clean it up, be my guest.)
Pineapple
04-14-2008, 08:00 PM
I almost have clone garbage working, but I need a bit more help.
Consider this scenario: [fumen link] (http://zeta.hypersector.com/Tools/TetrisField/?m105_40DessgbkzibC3tsA3lzA3gb_2FesshbkzhbD3gbA3gb B3?gbI3qbpeBXeUKgbcDwbssgbkzsbAAA)
In Quadra, what garbage would the line clear at the end of the second frame produce?
I can ask on the Quadra discussion list if you think it would help. See below
Also, a potential bandwitdh saver: Is there any reason why the garbage sent can't be encoded as a bitstring, sending 10 bits for a row (rounded up to one int) ?
Edit: After studying the Quadra vid with Polly owning everyone else, it appears that the hole is determined by the newest piece involved that is falling into place. From studying the code, Quadra also has the option to send a special garbage pattern for a "clean canvas". It does this instead of sending bonus lines.
Zaphod77
04-14-2008, 09:58 PM
This is about as good as I'm going to get it.
http:/eunich.cochems.com/~zaphod/net_cascade.zip
TODO:
1) add adjustment to menu for editing threshold.
2) make pieces fall after garbage is recieved, if able.
3) implement "which piece fell last" logic (ACK!)
Billmaan, yuo can add the preset, right? http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
sjoecool1991
04-14-2008, 10:20 PM
Okay i added hole shift rate to net standard options.
anywhere from 0% (garbage is a solid colum always) to 100% (totally random garbage)
http://eunich.cochems.com/~zaphod/net_standard.zip
You're welcome, Hebo Mini devs. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
btw, the setting doesn't save. it keeps going back to 30%
I'm sure the devs will fix it. http://www.tetrisconcept.net/forum/images/smilies/icon_wink.gif
That would be amazing in cascade.
100% randomness=fun to set up long cascades and miracle recoveries.
Pineapple
04-14-2008, 10:57 PM
implement "which piece fell last" logic (ACK!)
Not sure you should try. I think it's more interesting if it creates multiple holes in the garbage. You could use "from highest row" as a quick estimate.
mushroom
04-14-2008, 11:00 PM
http://thepowerofsneeze.com/nethebo.zip
Pre-packaged hebomini v20 beta 6. All required files, all set up.
Billmaan
04-14-2008, 11:09 PM
implement "which piece fell last" logic (ACK!)
Not sure you should try. I think it's more interesting if it creates multiple holes in the garbage. You could use "from highest row" as a quick estimate.Knowing what I know about how the cascade logic works in heboris...I side with "not sure you should try". It would not be an easy fix, and the current system is totally reasonable.
implement "which piece fell last" logic (ACK!)
Not sure you should try. I think it's more interesting if it creates multiple holes in the garbage. You could use "from highest row" as a quick estimate.Knowing what I know about how the cascade logic works in heboris...I side with "not sure you should try". It would not be an easy fix, and the current system is totally reasonable.the only way you'd be able to do this is to re-write the upline function within the plugin itself and return param[0] as 0 (to prevent the normal function from ever occurring). I'll side with some of these people with "not high on the priority list".
however, the "cascade after garbage" suggestion would provide an excuse to redo the upline script, as there is no naturally occuring hook at the end of the function to do this.
Zaphod77
04-15-2008, 05:52 AM
okay i've got more sugestions. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
1) main garbage system.
There shoudl ideally be 4 choices.
1) TDS garbage. This is fully implemented with my mod. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
2) n-1 garbage. almost the same. An easy task.
3) clone garbage. every line cleared is sent, if the liens are above the threshold. threshold is 2 bydefault. In cascade, an additional option "required chain" setting should be added. Clone garbage is NOT cancelled by making your own. bonus garbage would duplicate the lowest in clone garbage.
4) for cascade only, have a system where cascades give out random garbage, with bigger cascades giving out more random garbage. perhaps a cascade of X steps gives 2*(X-1) garbage lines. this one will have attacks decrease incoming garbage.
Billmaan
04-15-2008, 08:36 AM
New net_cascade: http://netfiles.uiuc.edu/wkinner2/net_cascade.c
(http://netfiles.uiuc.edu/wkinner2/net_cascade.zip is also available for those having problems downloading the .c file.)
Changes from the previous release:
- network traffic reduced
- garbage threshold (i.e. number of lines that must be cleared at once to send garbage) can be configured by the server
- fixed garbage cascading when it shouldn't have
Barring any unforeseen bugs, I consider this plugin complete.
Zaphod77
04-15-2008, 06:02 PM
I have a request to the devs.
Please put in a special thanks for tetrisconcept into the staff roll. http://www.tetrisconcept.net/forum/images/smilies/icon_wink.gif
tepples
04-15-2008, 07:30 PM
Please put [...] tetris[...] into the staff roll. http://www.tetrisconcept.net/forum/images/smilies/icon_wink.gif
Mr. Rogers wouldn't find that very neighborly now, would he?
I have a request to the devs.
Please put in a special thanks for tetrisconcept into the staff roll. http://www.tetrisconcept.net/forum/images/smilies/icon_wink.gif
Isn't it impolite to ask for it? I mean, a special thanks is something you earn, and that people voluntarily give to you, not something you can request, I think.
Zaphod77
04-15-2008, 08:06 PM
Please put [...] tetris[...] into the staff roll. http://www.tetrisconcept.net/forum/images/smilies/icon_wink.gif
Mr. Rogers wouldn't find that very neighborly now, would he?
oh... right...
dangit.
oddly enough, the texmaster guy seems to have no problem with doing it, though.
My point was that us members here are hard at work on the program too now. I figured it would be impolite to ask for my name in specifically, though. And it would be a hut of hubris for m e to jsut go ahead and change the staff roll myself, which was tempting. http://www.tetrisconcept.net/forum/images/smilies/icon_smile.gif
I guess t*tr*sconcept.com, then? lol
lee n
04-15-2008, 09:45 PM
Isn't it impolite to ask for it? I mean, a special thanks is something you earn, and that people voluntarily give to you, not something you can request, I think.
I agree. It seems weird to ask for it.
cdsboy
04-15-2008, 11:38 PM
Isn't it impolite to ask for it? I mean, a special thanks is something you earn, and that people voluntarily give to you, not something you can request, I think.
I agree. It seems weird to ask for it.
Yah sounds weird. Plus it would mean alot more (to me atleast) if it was put it there without mentioning it. But i guess that cat is out of the bag.
look at it this way: where are all these "changes" originating from? us.
even if they don't like it, they'd eventually HAVE to credit us anyways. let's not press the issue until half of the stuff on netplay comes from us.
back onto the real topic at hand, I have a idea that I think is possible, and we have one of our forum games to look at:
basically, you have ONE board. 1P places the first piece, then 2P places his/her first piece (separate piece stacks/previews to accommodate holds without completely screwing the other player over), then 1P places his/her second piece, then so on and so forth until a potential goal is met:
A) certain number of points
B) certain number of lines
C) some other system
obviously, to prevent abuse from, say, 1P getting a lead and then forcing 2P to top out, whoever tops out should get a penalty (or whoever doesn't gets a bonus).
this idea is certified TIP: Thought In Progress http://www.tetrisconcept.net/forum/images/smilies/icon_razz.gif
look at it this way: where are all these "changes" originating from? us.
even if they don't like it, they'd eventually HAVE to credit us anyways. let's not press the issue until half of the stuff on netplay comes from us.
I really don't like that kind of attitude towards it. Nobody has to credit anybody. As far as I can tell the Hebo source code has become kind of public domain, even.
look at it this way: where are all these "changes" originating from? us.
even if they don't like it, they'd eventually HAVE to credit us anyways. let's not press the issue until half of the stuff on netplay comes from us.
I really don't like that kind of attitude towards it. Nobody has to credit anybody. As far as I can tell the Hebo source code has become kind of public domain, even....and for the sake of getting some actual suggestions across instead of complaining about "ooh, we don't have any credit whatsoever in the game", can we PLEASE drop it at that?
sheesh, the whole thread practically got derailed by zaphod's post.
Zaphod77
04-16-2008, 03:02 AM
i was not trying to press the issue, or complain. I was merely making a request. It's been made. It's up to them whether or not to do it.
Anyway back on track.
a good idea would be net_watch.c
You select the net watch plugin, and then select the single player gametype that you wish to play under it.
Then someone who connects who has the net_watch plugin and the plugin you are playing with can watch your game. They would see your screen exactly, and be unabe to do anything but disconnect.
PetitPrince
04-16-2008, 03:32 AM
An ingame chat would be useful.
tepples
04-16-2008, 05:58 AM
An ingame chat would be useful.
Text or voice? Could it be as simple as running an IRC server on the same IP address as the game server?
Rosti LFC
04-16-2008, 01:53 PM
Not something I think can actually be changed through plugins, but I'd really prefer it if the sound was still audible when Hebo isn't the active window.
Otherwise IRC tends to functions quite well for in-game chat.
vBulletin® v3.8.3, Copyright ©2000-2012, Jelsoft Enterprises Ltd.