FEMultiPlayer-V2
FEMultiPlayer-V2 copied to clipboard
Allow loading of external resources
Issue type: feature request
Description:
Is it possible to have FEMP load music and FEMP Server load additional maps without the need to embed them in the .jar file? (much like how we can with teams, we can have folders for these such as music and maps)
I know the current method is to simply treat the jar as a zip file, but at least with free utilities like 7zip, the ends rather badly.
Actually, it's really rather simple. I'll create a tutorial for it. Maps are a very likely no, because they would be needed to be loaded on the server plus both clients. I'm really hesitant to support much more modification beyond music & textures because certain incompatibilities can render the clients unusable, but if no one knows this, they complain to me that the normal game is broken.
Case in point, we had two people complaining that the match would end randomly for them just whenever. We came to realize it was because one had been using an old/modified version with different stats, which had a fighter die on one end on not the other, screwing them both over.
I've also tried loading from outside the folder, but java absolutely hates filesystems, and as it is, the soundsystem is too deeply ingrained with the file structure of the game's jar that its just ridiculously hard to modify in comparison to relatively easily adding music via 7-zip. If you want to do that for now, I recommend you ask on the sub.
In the meantime, I'm not going to do work on this, but I'll leave it open in case Ray or someone else feels like working on it.
Maps are a very likely no, because they would be needed to be loaded on the server plus both clients. I'm really hesitant to support much more modification beyond music & textures because certain incompatibilities can render the clients unusable, but if no one knows this, they complain to me that the normal game is broken.
This is an entirely moot point when considering people are more liable to break things by modifying the jar than if they just worked with folders. Those who wish to tamper at their own risk will do so regardless (especially after you or someone else already publicly invited them to do so with tutorials), let's not make it needlessly more complicated.
Making this external also reduces redundancy as the map folder would be shared by the server and client locally.
I'd hope that common sense would dictate that all players wishing to play on a given map would install it. Don't punish competent users over those who wouldn't know better when hosting. (Server shouldn't care if the client has additional maps, so long as both clients have the map the server is set to, correct?)
On a sidenote, I'd say leave textures embedded, it's mainly the music and maps that the average player would like easy access to.
Case in point, we had two people complaining that the match would end randomly for them just whenever. We came to realize it was because one had been using an old/modified version with different stats, which had a fighter die on one end on not the other, screwing them both over.
The server should be doing a version check per join to ensure all clients are the same version, refusing clients whose version number don't match the server's, returning them to the title screen with an error message like, "Connection Refused: Incorrect version number!". If I may be so bold, the blame for that falls on the developer, not the user, for lacking that kind of foresight.
Maps on the other hand should perhaps have a checksum / hash generated with them so there's no discrepancies. The server is assigned a map by the host, knows the filename and checksum, then when clients join, it'll first do a very basic check to ensure they even have the map in the first place by checking the filename in the client's maps folder, if they do, then it'll do a more thorough check by comparing checksums / hashes before allowing them to join. If the check fails, the client is refused and returned to the title screen with an appropriate error message (i.e. "Connection Refused: Map [FILENAME] Not Found!" or "Connection Refused: Map [FILENAME] is either corrupted or does not match the Server's edition").
In the meantime, I'm not going to do work on this, but I'll leave it open in case Ray or someone else feels like working on it.
Fair enough, hopefully someone will undertake it.
I think you closed the wrong bug with that commit
lol mb