In terms of speed, the best cross-platform IPC mechanism will be pipes. That assumes, however, that you want cross-platform IPC on the same machine. If you want to be able to talk to processes on remote machines, you'll want to look at using sockets instead. Luckily, if you're talking about TCP at least, sockets and pipes behave pretty much the same behavior. While the APIs for setting them up and connecting them are different, they both just act like streams of data.
The difficult part, however, is not the communication channel, but the messages you pass over it. You really want to look at something that will perform verification and parsing for you. I recommend looking at Google's Protocol Buffers. You basically create a spec file that describes the object you want to pass between processes, and there is a compiler that generates code in a number of different languages for reading and writing objects that match the spec. It's much easier (and less bug prone) than trying to come up with a messaging protocol and parser yourself.
If you need to pass large data sets between processes (especially if speed is essential) it is better to use shared memory to pass the data itself and sockets to notify a process that the data is ready. You can make it as following:
If you're willing to try something a little different, there's the ICE platform from ZeroC. It's open source, and is supported on pretty much every OS you can think of, as well as having language support for C++, C#, Java, Ruby, Python and PHP. Finally, it's very easy to drive (the language mappings are tailored to fit naturally into each language). It's also fast and efficient. There's even a cut-down version for devices.
Distributed computing is usually complex and you are well advised to use existing libraries or frameworks instead of reinventing the wheel. Previous poster have already enumerated a couple of these libraries and frameworks. Depending on your needs you can pick either a very low level (like sockets) or high level framework (like CORBA). There can not be a generic "use this" answer. You need to educate yourself about distributed programming and then will find it much easier to pick the right library or framework for the job.
Xojo has built-in cross-platform IPC support with its IPCSocket class. Although you obviously couldn't "implement" it in other languages, you could use it in a Xojo console app and call it from other languages making this option perhaps very simple for you.
If youw ant to open every locker and kill every enemy (you want to play in your speed) you should play solo or use the recruitment chat. If you join a PUG group you have to adapt that not all players share your speed and most simply want to get the map done. Adding an UI for this is pointless as it would simply be ignored by most players.
I surely do support the argument, tho it's best when you find a chance to do a time limited mission that's easy or decently challenging to take on solo at best.
This problem of speed runners are most common on Nightmare missions. Sometimes I end up with one player who ends up going too far ahead and dies while the rest of the squad take the time to survive. Kinda funny when that dude complained how slow we were, where the real challenge is team work. D
But in any who, best to just shrug it off and let the player be alone ahead. I've seen worse where some will get so cocky about their Mastery rank and gear. I have encountered some who thinks where the best with a tank warframe- mainly Rhino Prime or Regular. As most smaller warframes actually survive the longest like Nova. Or Trinity.
On a side note... people like me won't stop and slow down just because someone wants to hunt lockers. My gear and mods are done. I'm not there for that. I'm there to get the mission done so I can get my reward and repeat. I know it's sad to say but it really depends on the mission you're running. If it's a rescue or survival or hijack or anything less common than capture or exterminate, then sure take your time. But for those other 2 game modes they're common and people that join them generally do so with the purpose of doing them quickly. (Rusulka kuva farms anyone?) Join that mission to wander around getting loot crates and people will complain that your &#! is slow and wonder just what the f*** you're doing running about when they have to wait a minute for you to exit so they can restart
They would earn more if they take a bit longer, and they would be team players if they work with others. The person going slow doesn't need to play solo, the person that skips everything needs to know what they actually need and go for that and work with people doing the same things. The person speed running should take the time to do better rather then join some mission they don't need and skip everything and not play while making the mission worse for other players.
I've been in that position before, however, if you're there just for Speed runs why aren't you going solo? Or making a speed run team? There are some players who can't access resources through normal routes, and have to rely on alerts to get things like Nano spores. So they have to open lockers and break containers to get the stuff they need.
Don't get me wrong, I'm not trying to open up the debate of who should behave a certain way in public missions. But if someone's going to tell another person that they should go solo just because public missions are supposed to be for speedrunners, then I will play Devil's Advocate and point out that they are the ones that have the option of going solo as well.
The speed runner is going fast because he wants it to be over with. The solution is not to slow him down with "friendship" doors and traps. It's to make the game fun so he WANTS to slow down. Otherwise he's going to just bolt to extraction then AFK until the timer runs out.
if people looking to Speedrun weren't s...ty Players / mega casuals - they wouldn't be playing in Public.
because it's more efficient to play in a Private Session, and it's also less rude to other Players to do so too!
basically if you want to do something that is drastically out of scope of the usual expectation for a Mission - meaning either Speedrunning or breaking every single Pot and opening every single Locker - don't play in Public. you'll achieve your goal better, and you won't be as rude to other Players.
one of the other issues I have seen with some of the speed runners is if they join a pub squad that runs slower they constantly wine and complain that the team is going to slow so the same goes for them if they want to speed run stuff then don't join pubs run urself
exploring is good to do for those who don't have plat and want to get the things
Find people who want to play at the same speed as you, simple, but complaining about how most people have played this game from the start does no good at all. Last time de tried to fix speed running everyone got stuck as a slow &#! with stamina unable to do anything.
Man.. if only there was thing thing called recruitment chat where you could find like minded people to play with... Or if only there was some sort of clan system where like minded players could gather to play together. Man if only those things existed. But since those magic other worldly things don't exist I guess the better option is to split all matchmaking in half and make it harder for everyone to find a quick game.
You know, I often speed run missions, But this kind of argument is not really okay. Taking your time is a legitimate playstyle in warframe. It may not be as good in terms of rewards, but if someone prefers to go slower they aren't "doing it wrong." So slower players (and newer players) have just as much right to a reasonable PUG experience as the speedrunning vets. Telling someone to play solo if they don't play the way you do is not really helping anything.
This is also a good point. I gotta say, it's really irritating to get to extraction and then sit around for several minutes waiting for somebody who's just wandering around willy-nilly. Especially if it's an invasion, or some mindless alert, and I'm trying to finish so I can get back to what I actually want to do. Everybody has the same right to a tolerable public experience, and right now it's quite frustrating for all involved.
c80f0f1006