Popular Post Agent Jones Posted August 21, 2015 Popular Post Report Posted August 21, 2015 (edited) Hello. I have started to work on multiplayer and I'm looking for contributions. After some tweaking now you can set up a server or connect to one.Here's an overview:-I've added a few placeholder GUIs and a Join Game button for the host. I think I can't do much more than that since I don't have the original GUI assets from Doom3-The player will be able to respawn after death by clicking attack, just like in Doom3. The fadeout effect is quicker than the single player one. Maybe the player should stay in spectate for 10-30 seconds.-Commented out the part about player skins, since I don't need it right now.-Event_GetEntity: if the entity you want to get in a script is named 'player1', the function will redirect you to gameLocal.GetLocalPlayer()-Added back the si_pure cvar for the server/client checksum check: if the cvar is set to 0, players will be able to connect even if their installations don't match.-I haven't worked on the objectives. /Commented out the objectives part. I'm not sure what the server is supposed to do after someone completes all the objectives. Restart the map? Change map and force the client to install another mission, then restart the game and reconnect?-Frob highlighting is done client-side, you can pick up objects but I couldn't get grabbing/lifting to work.-Various band-aid fixes.Here's a list of things that need to be fixed:-Weapons (clientside). They work only for the server host, and I can't quite figure out how the client is supposed to change weapon, since the SelectWeapon function is reserved for the host.-Inventory (clientside)-Flashbombs and flashmines don't spawn in the right place when used.-Lightgem.The AI are blind.-Chat GUI and other GUIs.-Third person animations. People can't see when I'm attacking because the player's torso is stiff. Does the player's worldmodel support the existing NPC animations? If so, most of the work is already done. In any case, we'll need a mantling animation, which could benefit single-player guards too.-Speaking of mantling, client mantling is buggy. The camera animation runs at double the normal speed, and the player is not left hanging on ledges, so the clients often land back where they started unless they keep jumping.-A new server message which tells all players when an objective has been completed.-The player's head is bugged when another client connects.Right now there's not much you can do, besides hosting a jumping/tap-dancing competition or roaming together around a map (without AIs). You can use 'say <message>' to chat.Here's the code. I have included only the files I've changed.https://www.dropbox.com/s/16j3mlkwprthsin/multiplayertest.zip?dl=0I have also included an executable and DLL for windows in the zip. I recommend you to back up your old ones, because the new ones were compiled with vs2013 which has a few weird bugs.This was based off the latest official source(2.03). Maybe we could set up a branch, or add this directly to the main branch. Thanks to SteveL for some tips. IMPORTANT: the client's installed FM must be the same as the server's, otherwise the client will keep trying to restart the game endlessly trying to find it. Edited October 1, 2015 by Agent Jones 5 Quote
SteveL Posted August 21, 2015 Report Posted August 21, 2015 Cool, I'm majorly impressed you got this far. Could you include some instructions to let people know how to try it? Players don't need to be concerned about backing up the old executables... if they forget or don't bother, they can just run tdm_update.exe from their darkmod folder to revert their TDM to the current release version. Quote
Bikerdude Posted August 21, 2015 Report Posted August 21, 2015 @Steve we might have to have a test Lan session tomoz :-) Quote
Agent Jones Posted August 21, 2015 Author Report Posted August 21, 2015 (edited) I've included a simple readme file with instructions. Here they are:To start a server, drop the files in your darkmod directory and doubleclick on the batch file. The starting map is a simple cube called 'mp', you can change it in the server.cfg (si_map). Keep in mind that AI won't work and it could crash the clients.The client's installed FM must be the same as the server's, otherwise the client will keep trying to restart the game endlessly trying to find it.To connect to your own server as another client, just start the exe and type 'connect localhost' in the console. Win_allowMultipleInstances must be set to 1. By the way, I've noticed that sometimes the updater doesn't download the executable and tells me that my installation is up to date. That's why I suggested to back up your files. I don't know if it is the same for everyone here though. Edited August 21, 2015 by Agent Jones Quote
jaxa Posted August 21, 2015 Report Posted August 21, 2015 First built-for-multiplayer TDM map with respawning guards... coming soon? Quote
Agent Jones Posted August 21, 2015 Author Report Posted August 21, 2015 First built-for-multiplayer TDM map with respawning guards... coming soon?I'm pretty sure that some FMs already have respawning guards... the problem is getting the AI to work. Quote
demagogue Posted August 22, 2015 Report Posted August 22, 2015 I'd think completing objectives should trigger the mission end as usual. Objectives should also probably be shared, so one player completing one does it for all players. Loot should be a shared stat too. The ideal gameplay should be coop, so then we have 80+ playable maps out of the box, and Tos's multiplayer for T2 would be the model. Then maybe some people could make competitive Thievery like maps, too, but it'd be small compared to latching on to existing maps. That's if there's a choice about it. Quote What do you see when you turn out the light? I can't tell you but I know that it's mine.
c0mputer-fr0d Posted August 22, 2015 Report Posted August 22, 2015 (edited) damn jones I didn't know you were working on this. You must be way better than me I couldn't even figure out how to have clients connect to a host. I added you on skype but you didn't message me back Edited August 22, 2015 by c0mputer-fr0d Quote
Nico A. Posted August 22, 2015 Report Posted August 22, 2015 (edited) Great job. I don't understand most of it, but I'm still impressed. In any case, we'll need a mantling animation, which could benefit single-player guards too. That's what I was thinking also. Edited August 22, 2015 by Nico A. Quote
c0mputer-fr0d Posted August 22, 2015 Report Posted August 22, 2015 jones , if you can work with me a little bit to understand what you did I can help a lot I think. 1 Quote
Agent Jones Posted September 8, 2015 Author Report Posted September 8, 2015 I'm trying to get third person animations to work, using the default AI anims. The chars\thief\drawsword anim works and it looks cool, but the parry anims crash the game:ERROR:Model 'models/md5/chars/thief/tdm_ai_thief.md5mesh' has different # of joints than anim 'models/md5/chars/guards/proguard/combat_sword_parry_left.md5anim'I thought that the thief's mesh supported the proguard's animations. I'm not an animator, so could anyone shed some light on this? Quote
Springheel Posted September 8, 2015 Report Posted September 8, 2015 As long as those are both the up to date animations, they should work. All the human AI share the same skeleton and # of joints. Quote TDM Missions: A Score to Settle * A Reputation to Uphold * A New Job * A Matter of Hours Video Series: Springheel's Modules * Speedbuild Challenge * New Mappers Workshop * Building Traps
Agent Jones Posted September 9, 2015 Author Report Posted September 9, 2015 I've tested it on a new, clean installation, but it still crashes. All you have to do is to add the line "anim melee_parry_RL models/md5/chars/guards/proguard/combat_sword_parry_left.md5anim" to tdm_player_thief.def. Quote
Springheel Posted September 9, 2015 Report Posted September 9, 2015 It's possible that the player thief model is using the old skeleton...I thought I updated it along with the model years ago, but maybe I'm misremembering. Does it complain when you add any of the other proguard animations, or just that one? Quote TDM Missions: A Score to Settle * A Reputation to Uphold * A New Job * A Matter of Hours Video Series: Springheel's Modules * Speedbuild Challenge * New Mappers Workshop * Building Traps
Agent Jones Posted September 9, 2015 Author Report Posted September 9, 2015 I've tested a lot of proguard animations, and it complains about every single one. I've also noticed that the "ragdoll" is "guard_base" instead of "guard_base_newskel" in the player_thief's def. Quote
Springheel Posted September 9, 2015 Report Posted September 9, 2015 The player thief model must be using the old skeleton then. Quote TDM Missions: A Score to Settle * A Reputation to Uphold * A New Job * A Matter of Hours Video Series: Springheel's Modules * Speedbuild Challenge * New Mappers Workshop * Building Traps
MirceaKitsune Posted September 26, 2015 Report Posted September 26, 2015 Wow... someone is actually making this happen? That's really awesome to hear I tend to not play games online that much, but I've always wondered what multiplayer TDM would look like, and since idTech 4 natively supports online modes then why not enable that somehow? Please take a look at my old thread on multiplayer support as well. I expressed my ideas on this a while ago... such as allowing missions to define teams, so each player joining a server can choose a role of their preference in the mission (eg: Be a guard patrolling alongside other guard NPC's, or the thief(s) trying to sneak into the area). http://forums.thedarkmod.com/topic/16894-tdm-and-multiplayer/ Quote Mods: Builder Blocks minigame | Keypad | Disguises
Agent Jones Posted October 1, 2015 Author Report Posted October 1, 2015 Please take a look at my old thread on multiplayer support as well. I expressed my ideas on this a while ago... such as allowing missions to define teams, so each player joining a server can choose a role of their preference in the mission (eg: Be a guard patrolling alongside other guard NPC's, or the thief(s) trying to sneak into the area).Thanks, but first I need to get the current missions in a working state. At this pace, you might see something playable the next decade.Is there a charitable soul who could update the old thief's animations to match the new skeleton? The new thief model lacks essential animations like strafing. Quote
MirceaKitsune Posted October 1, 2015 Report Posted October 1, 2015 Thanks, but first I need to get the current missions in a working state. At this pace, you might see something playable the next decade.Is there a charitable soul who could update the old thief's animations to match the new skeleton? The new thief model lacks essential animations like strafing. It's ok, my ideas can be looked at later if anything. A simple mode can do for starters, simply having multiplayer work at all would be huge. As for animations, I think the player uses the same anim set as all AI's (not just thief)... which is a good thing since it means you should be able to select any class / appearance. Sadly I don't think I can help with this one... I'm just planning to create some content for TDM myself, and haven't even gotten introduced to modding with that. But I think that strafing animations and the like can be left for later, and things should work ok with the existing ones for starters. Quote Mods: Builder Blocks minigame | Keypad | Disguises
c0mputer-fr0d Posted October 1, 2015 Report Posted October 1, 2015 (edited) strafing animations will be very important though. Have you ever played an fps where the animations were shite and decreased the competitiveness of the game? CS:GO's crouching animations had a horrendous problem until recently and are still not quite good yet, as a result the competitiveness suffers. But since we are just doing coop for now it's no big deal. Edited October 1, 2015 by c0mputer-fr0d Quote
SeriousToni Posted October 1, 2015 Report Posted October 1, 2015 As for animations, I think the player uses the same anim set as all AI's (not just thief)... The player thief model must be using the old skeleton then. Quote "Einen giftigen Trank aus Kräutern und Wurzeln für die närrischen Städter wollen wir brauen." - Text aus einem verlassenen Heidenlager
V-Man339 Posted October 22, 2015 Report Posted October 22, 2015 (edited) Hey guys, I know this is an odd thing to bring up, but I know we derive so much from Thief that we may actually want to look at something else that derived a lot from it. I think we should ask ourselves why two thieves are better than one, and the answer I keep coming up with is mobility.While I don't think we could do anything like the OCP leap frog from Splinter Cell: Chaos Theory, entire maps could definitely be made around the idea of boosting a friend up to something a rope arrow wouldn't be able to deal with, or wouldn't be available for.It's also definitely something that could be included in single player viable maps, specifically to avoid lockpickable doors and the like. This is something that obviously won't be viable for development in the meanwhile, but once the framework and foundation is there I think there's a lot of really, really good room for experimentation and development. Edited October 22, 2015 by V-Man339 Quote I like to record difficult stealth games, and right now you wonderful people are the only ones delivering on that front. Click here for the crappy channel where that happens.
demagogue Posted October 23, 2015 Report Posted October 23, 2015 Since it'd be a branch anyway, I think whatever team works on this should be encouraged to have, or anyway debate the merits of, more coop friendly mechanics like that, since the gameplay will be open to big changes. Quote What do you see when you turn out the light? I can't tell you but I know that it's mine.
V-Man339 Posted October 23, 2015 Report Posted October 23, 2015 (edited) Since it'd be a branch anyway, I think whatever team works on this should be encouraged to have, or anyway debate the merits of, more coop friendly mechanics like that, since the gameplay will be open to big changes.This. PVP and any other mode like coop or single player might as well be an entirely separate module, executable and setting for all I'm concerned, since balancing will be entirely different, assuming we even go that route. Edited October 23, 2015 by V-Man339 Quote I like to record difficult stealth games, and right now you wonderful people are the only ones delivering on that front. Click here for the crappy channel where that happens.
gbo Posted August 2, 2016 Report Posted August 2, 2016 (edited) That's awesome! Thank you so much Agent Jones, I have been waiting for this since I have discovered TheDarkMod a few years ago! An outsider developper POV: I completely agree with demagogue, the perfect gameplay for multiplayer TDM should be coop with objectives, so just like the current TDM, but with multiple players. Indeed, it would allow to directly re-use the pool of maps that TDM already possess, and in particular it would be very fun to complete very hard missions with friends rather than alone. Then, later, the guards may be made playable on the objective-based maps (if that's technically possible). In this case, the goal would still be to complete the objectives, but with the added difficulty that guard players would be way more difficult and smarter than AI guards to beat! This could turn out into something like Enemy Territory or Splinter Cell. So for the thieves, the goal would be to complete the objectives, and for the guards to reach the timelimit without thieves reaching the objective. Technically, this mode would imply the implementation of two things: playable guards and the trigger of the guards winning screen when guards win (timelimit is already implemented in the engine, so it can probably be easily reused). So clearly, the coop is the way to go, because this is the fastest way to provide a playable multiplayer mode with lots of maps and minimal development effort (compared to other options), and in addition this is the most extensible one because you will then only need to add playable guards to add PVP (which will be lots of fun EVEN if it's not correctly balanced at first). Edited August 2, 2016 by gbo Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.