Touhou Puppet Play Forums
Touhou Puppet Dance Performance => Touhou Puppet Dance Performance => : PhantomPilot January 22, 2016, 01:47:54 PM
-
This is no longer being maintained. The server is down indefinitely.
the source code not really worth maintaining due to being a giant pile of spaghetti, however if you'd like to host the server as-is, you can find instructions in the git repository.
the most recent version will need to be compiled from source. it was designed to run on linux, but will compile for windows if necessary. if you need help, post here or PM me and i will try to help.
(http://puu.sh/oRdHR/e3601cc440.png)
TPDP Bridge is designed to make it easy to connect to specific players in a lobby environment.
You will need a post-game save file. If you don't have one, Dabomstew has made a convenient save generator (http://tpdp.dabomstew.com/savegen/)
both the base game and YnK are fully supported.
Download the client here (windows only for now): https://github.com/php42/tpdpb-client/releases/latest
Last update: Aug 6. please re-download if you got it before then.
How it works
TPDP Bridge works by tunneling the games network connection through another connection to the matchmaking server, eliminating the need for port forwarding.
This means that you will play the match in TPDP itself as usual, but the bridge client will be running in the background, allowing you to connect to other players using the client.
I've tried to make the on-screen instructions as clear as possible, but here is the procedure to get a match going, in order:
Player1:
- open TPDP and host a match on the default port (10800)
- in the bridge client, go to play->host and host your match
Player2:
- in the bridge client, go to play->join and select the match you want to join
- in the TPDP netplay menu, make sure your ruleset matches what was listed in the join menu and connect to 127.0.0.1:10700 (this is the loopback address, it connects to the bridge client running on your computer)
that's it.
basically, as long as your settings in the client match your settings in the game, you're good to go.
Notes:
- when first running the client, it will ask for the game directory, in a default install this should be C:\game\FocasLens\幻想人形演舞 or C:\game\FocasLens\幻想人形演舞-ユメノカケラ-
- you must have the game directory set to the game you are actually playing, as the server will enforce version checks (you can change it at any time)
- after saving edits to your party, you will need to exit back to the title screen to reload your save
- Back up your save! there is a button to do it and the party editor will pester you until you do.
Big thanks to Dabomstew for sharing his save editor code and speeding things along quite a bit.
feedback, bug reports, suggestions etc are welcome.
-
Information for developers and nerds
the trainwreck that is the source code for TPDP Bridge can be found at:
client: https://github.com/php42/tpdpb-client
server: https://github.com/php42/tpdpb-server
it is licensed under the GNU GPL.
-
This looks very nice for the base game, but if I understand its functions correctly it is sadly rendered obsolete for the expansion.
That said, if SUWAKO bans the west again it'll become very nice, and I've heard discussion on IRC about pre-emptively moving away from SUWAKO and focusing on 6v6.
-
There's also the fact that people need to clear the game first and foremost before they could even do netplay battles, whereas in Shoddy you can just make a team from the Team Builder and do whatever you want instead of having to constantly reincarnate and raise puppets to Level 100 for each one you want on your competitive team. Personally, I think that's a great weakness and hinders accessibility to the game (or at least anyone who plays casually or doesn't want to clear the game in order to netplay).
Not that making people clear the game is a bad thing (it teaches newcomers about the game and what to expect), but it'd be nice if Hemo could make a version of TPDP specifically for netplay...
-
This looks very nice for the base game, but if I understand its functions correctly it is sadly rendered obsolete for the expansion.
That said, if SUWAKO bans the west again it'll become very nice, and I've heard discussion on IRC about pre-emptively moving away from SUWAKO and focusing on 6v6.
The plan was to (hopefully) add more functionality beyond simply circumventing port forwarding. Things like stat tracking, maybe social features like game lobbies or whatever (and maybe some sort of official platform for tournaments etc?). To what extent will probably depend on how much of the game i can reverse-engineer so it's a bit early to say exactly.
I was waiting for the english patch to get the expansion, so i don't know exactly what features it provides, but my understanding is it was more of a simple proxy service to circumvent port-forwarding?
There's also the fact that people need to clear the game first and foremost before they could even do netplay battles, whereas in Shoddy you can just make a team from the Team Builder and do whatever you want instead of having to constantly reincarnate and raise puppets to Level 100 for each one you want on your competitive team. Personally, I think that's a great weakness and hinders accessibility to the game (or at least anyone who plays casually or doesn't want to clear the game in order to netplay).
Not that making people clear the game is a bad thing (it teaches newcomers about the game and what to expect), but it'd be nice if Hemo could make a version of TPDP specifically for netplay...
I had considered that as well, the only solution i could think of would be a save editor. the games network protocol transmits puppet data in binary format, so i'll probably need to reverse-engineer that anyway, and then writing a save editor should be pretty simple once i know how puppet data is represented (if anyone has decoded it already, please let me know).
EDIT: i just checked the save file, i didn't realize it was encrypted. that poses a whole new challenge, which is unfortunate.
I'm also open to whatever suggestions you might have.
Cheers.
-
Well i broke the encryption on the save file. it was hashed, encrypted, compressed, encrypted again, scrambled, and padded with garbage to try to hide it. who does that for a fan game?
anyway i've got a working prototype save editor, so shoddy style netplay should be quite possible.
i should have a workable release soon-ish provided there are no more hidden obstacles.
cheers.
-
Hello, I've also been doing some research on the save file recently and made a somewhat usable save editor (http://tpdp.dabomstew.com/saveeditor) and a basic netplay save generator (http://tpdp.dabomstew.com/savegen/). The level of encryption was rather amusing considering how easy the game is to memory edit, but it doesn't seem that bad in the end. As far as I know there aren't any hidden obstacles providing your code is updating all the dumb checksums correctly.
Looking forward to see how this could all be integrated together to give a more shoddy-style experience.
-
Hello, I've also been doing some research on the save file recently and made a somewhat usable save editor (http://tpdp.dabomstew.com/saveeditor) and a basic netplay save generator (http://tpdp.dabomstew.com/savegen/). The level of encryption was rather amusing considering how easy the game is to memory edit, but it doesn't seem that bad in the end. As far as I know there aren't any hidden obstacles providing your code is updating all the dumb checksums correctly.
Looking forward to see how this could all be integrated together to give a more shoddy-style experience.
Oh nice, I wasn't aware someone already made one. would you be willing to share the source code? it would save me the time figuring out how to generate a post-game save among other things. If not, no worries.
yeah the encryption is a little silly, i was also amused how easy it is to fish dxlib encryption keys out of memory. they basically fingerprinted the encryption routine with their inline asm so you can do a ctrl-f and set a breakpoint on ANY dxlib game to get the key in like 5 seconds.
-
Hello, I've also been doing some research on the save file recently and made a somewhat usable save editor (http://tpdp.dabomstew.com/saveeditor) and a basic netplay save generator (http://tpdp.dabomstew.com/savegen/). The level of encryption was rather amusing considering how easy the game is to memory edit, but it doesn't seem that bad in the end. As far as I know there aren't any hidden obstacles providing your code is updating all the dumb checksums correctly.
Looking forward to see how this could all be integrated together to give a more shoddy-style experience.
Oh nice, I wasn't aware someone already made one. would you be willing to share the source code? it would save me the time figuring out how to generate a post-game save among other things. If not, no worries.
yeah the encryption is a little silly, i was also amused how easy it is to fish dxlib encryption keys out of memory. they basically fingerprinted the encryption routine with their inline asm so you can do a ctrl-f and set a breakpoint on ANY dxlib game to get the key in like 5 seconds.
Sent you a PM with the source, though it's a .NET application so it's not too hard to get anyways...
That's a different approach than I used, though equally as effective. The whole format is just a bit lax on security, though it gets the job done of stopping complete amateurs reading stuff in plaintext.
-
Sent you a PM with the source, though it's a .NET application so it's not too hard to get anyways...
Ah, I'm a linux dev so i don't know much about .NET. it's nice to have the actual source though, thanks.
-
well I finally got around to finishing this, OP has been updated. I've set up a small server to see how things go, I don't have a domain so you'll just have to use the IP
-
i forgot to make a post, but i pushed an update that should (hopefully) fix the connectivity issues some people have been having. re-download the client if you got it before April 18.
I can't reproduce it on the current build, so if the problem persists please let me know.
-
v1.0 proper is here, old versions will not work anymore.
release highlights:
Server:
- Ban lists are now supported. nothing is currently banned, but blatant cheats are filtered outside of free rules
- the server will now
complain loudly point out your mistakes when you goof up trying to start a match, hopefully this will make troubleshooting easier
i'm abandoning the stat-tracking idea for now. there doesn't seem to be a way to reliably detect the winner of a match from the network traffic alone, since the host is not authoritative and both clients run independent simulations. puppet feints can be detected in certain cases but it's not reliable enough.
Client:
- fixed a bug in the compression algorithm which, under certain conditions, would cause the save to become incompatible with the games decoder, but would decompress just fine with my own code. this one trolled me pretty hard and is the source of most nonsense with the save editor.
- puppet stats are now displayed in a sane manner
if you encounter any bugs unintended features, report them here, to the git tracker, or directly into my cerebrum via telepathy.
feedback is also welcome.
-
Regarding the save editor part of the program, certain skills appear to not show up under a certain puppets movelist (in the expansion, at least). When the save editor is used whilst these moves are used, the save editor shows them as being no move, which causes the move to be deleted when the editing is completed.
IIRC every Realm skill had this issue,which makes me think it might be a Level 100 issue, although the only 2 I'm certain it did so on are the 2 non-Extra Realm users, so it could equally be an issue of transfer between base game and SoD.
Save file attached, since you said elsewhere that you didn't have one to test with.
-
version 1.0.1 is here to fix the above along with a few other oversights
download it here: https://github.com/php42/tpdpb-client/releases/latest (https://github.com/php42/tpdpb-client/releases/latest)
YnK save files should load without issue now
i'll probably be releasing a standalone version of the save editor soon since it seems to be more useful than the bridge itself at this point.
-
We actually have an 'Official' save editor now, produced by someone on the team- or rather, we've had one for a while. http://tpdp.dabomstew.com/saveeditor (http://tpdp.dabomstew.com/saveeditor) is the link to it, it works with both Base 1.34 and the current build of Shard of Dreams.
-
I see. well then i guess it's time to wrap this project up. not much point now that SoD has a translation and you can just use match codes.
server will remain up for the rest of this month, then i'll take it offline.
repos will remain on the off-chance anyone wants them for something
-
I think that keeping the bridge might be a good idea? You should hop on by the Discord server and see what the others think! That being said, people still play Base 1.34 from time to time, even with the SoD translation. So there may still be a use for it? People don't seem to wanna touch SoD until story is translated, and I can assure you, that won't be done for a Long While.
Honestly I... haven't kept up with the Shard of Dreams netplay scene at all, so I don't know anything about it, so beyond my very weak opinion, I can't be of much use here.
-
i'd be happy to keep it running if people actually used it. but we've already had forum posts about how it's always empty, and a quick grep through the debug logs seems to verify this.
clearly it's just not very useful. maybe my view is just too narrow because i don't use discord, and that seems to be where everything happens. i don't know.
but it'll still be up for the rest of this month. if it magically becomes useful during that time, i can keep hosting it.
-
I have never seen anyone over the bridge and eventually gave up trying to find opponents there.
I'd really like to find opponents though.
-
Same here.I sometimes logged in but never encountered people.Its probably due to the fact that actually there is not enough people owning/knowing about the game?
I believe lot of pokemon/anime's lover would probably try this game if they known about it,but unlike most of hardcore touhoufan,they are not aware about Touhou Puppet dance Performance.
And even if they do,they probably dont know about the TPDP Bridge matchmaking.
-
Same here.I sometimes logged in but never encountered people.Its probably due to the fact that actually there is not enough people owning/knowing about the game?
I believe lot of pokemon/anime's lover would probably try this game if they known about it,but unlike most of hardcore touhoufan,they are not aware about Touhou Puppet dance Performance.
And even if they do,they probably dont know about the TPDP Bridge matchmaking.
I did my job regarding FR communities. However, I will admit that I don't think many people will actually try the game if they have to buy it and I'm prick enough in order not to give them a free download.