Thread: Development: Multiplayer possibility?
View Single Post
Old August 27th, 2011 (8:47 PM).
Rainbow's Avatar
Rainbow Rainbow is online now
Welcome to the Medium.
  • Moderator
  • Platinum Tier
  • PokéCommunity Daily
  • Discord Moderoid
  • Developer
Join Date: May 2010
Age: 18
Gender: Female
Nature: Quirky
Posts: 6,045
Originally Posted by HackChu View Post
Thing is...who would you even find near by? I'm sure that us people on this forum are really the only ones who still play these games being that they're a bit old and outdated.
Well, you have a point about that. I dunno.

Originally Posted by NatureKeeper View Post

Nothing is impossible. You just need to know HOW-TO-DO-IT. If the multiplayer system can be repointed AND hex edited, that would be possible. The game already has data for 2v2 battles, and multiplayer movement, they can be edited to fit the requirements. However, all other things need to be synced, which would probably piss everyone off before finishing. It is brutal to do, but is possible.

TL;DR : Base Hex Editing.
And probably not worth it, though.

Originally Posted by DavidJCobb View Post
So here, off the top of my head, is a few things that would need to be synchronized for multiplayer to run stably outside of the Union Room.

Wild/Trainer battles and their effect on the overworld
If Player A gets into a battle in tall grass (or with a Trainer), code will need to exist to alert Player B, so that attempts to talk to A fail appropriately ("DAVID is in a battle!"). Player B can still move around while A is battling, so when A finishes, he'll need to resync everything.

Problems can arise if B starts their own battle while A's is already in progress -- particularly if A finishes before B. In that case, A will need to resynchronize with B even though B is mid-battle.

So there are two approaches. Synchronization of overworld data can be made possible in the middle of a battle; only one player can be allowed into a battle at a time; or some sort of "cooperative Double Battle" mechanic can be coded, such that if one player enters a battle, the other is dragged in.

NPC OWs: movements and interactions
Movement of NPC OWs will have to be synched. This may mean a modification of the part of the game engine that handles OW behaviors ("Look around", "No Movement", etc.).

If Player A talks to an OW, and Player B attempts to talk either to A or to that OW, then a message will need to be shown for Player B ("They appear to be busy right now." or some equivalent). This is without taking the OW script itself into account...

If a player talks to an OW, the effects of that script -- applymovement, etc. -- must be synched. Running the exact same script for both players would not make sense, however (Player A talks to someone, and Player B suddenly gets asked if they want to buy an Egg by some random guy on the other side of the city). Some commands would also produce obvious issues with synchronization (warp, for example -- especially if it warps to a specific X/Y coordinate).

The solution would be to make some script commands sync, but not others. Things like weather can and must sync, whereas things like preparemsg can't. The effect is that of the two players, only the one that triggers the script runs the script -- and the commands themselves trigger synchronization of any relevant data. This could also have the beneficial effect of allowing both players to run scripts independently of each other but with synchronization, although if the scripts are contradictory (i.e. both changing the weather to different values) some issues could arise. That would be the kind of contradiction that the scripter could be trusted to avoid, I think.

Hidden items (as Signpost scripts)
If Player A picks up an item, should Player B still have access to that item on their overworld? Or should it vanish from both worlds, thereby granting a reward only to the first player to claim it?

If the latter, then code will need to track and sync all flags related to hidden items. The relevant flags -- and only the relevant flags, lest something that should not sync end up synching -- would need to be synchronized when their states change. This would produce problems when the two players connect: which set of flags should be propagated to both games?

Visible items (as Poke Ball OWs)
The same issue, but with the added problem that if the items' states are not synched, then a tile may end up being walkable to one player but not to the other.


I'll stop now before I give myself a headache. This idea may as well be impossible. The number of things that would need to be synchronized, managed, and carefully tracked is massive.
Well yeah, you're right about that. I guess it'd not be worth it to make, at all. Especially given HackChu's point (that there'll probably be no one close enough to talk to anyways). So...are we just gonna abandon this?

Originally Posted by leews24 View Post
I'm not much of a rom hacker,
but wouldnt it be somewhat different if we modify the emulator(vba)
Mod the gba rom engine itself to connect not to a seperate emulator,
But a seperate server?
I mean, Gamboys can do it with a bit of a mod,
Why not the emulator?

Come to think of it, we'd might end up reconstructing the gba, instead of modding
I don't really understand what you mean here.

"Hello... Lovely weather, isn't it?"
Reply With Quote