Jump to content

[WIP|IV] CitizenMP:IV - the multiplayer component you've dreamt of


NTAuthority

Initial game mode 'side things'  

241 members have voted

  1. 1. Which of the following should be the first big game mode?

    • A 'zombie survival'-type gamemode, with all the typical interactions people have come to expect
    • The 'MMO'-style game type that initially prompted Citizen's design, with jobs running in a global instance with everyone else


Recommended Posts

NTAuthority

get it now

So, as I've finally gotten past the first hurdles on the rewrite of the CitizenIV modification to use more modern code and a completely new server mechanism, it's time to discuss the new iteration of the Citizen multiplayer project, including the lovely ways it will end up helping you to help yourself.

Unlike the old CitizenIV modification project, the CitizenMP series will primarily be an open platform depending on user-run dedicated servers, similar to the few existing third-party IV multiplayer modifications, or the ones that exist for earlier GTA titles. However, CitizenMP will specialize on a fair few important points that other such modifications do not bother with or just simply have not gotten around to.

Active, living worlds

CitizenMP differs from other modifications in that the base networking code, including such important components like synchronization for pedestrians, vehicles and objects is not rewritten from scratch, but is being reused from the base game the CitizenMP modification runs on. This means that any feature that works in the original multiplayer as envisioned by the Rockstar development studios will work in CitizenMP, and yet the additional specializations CitizenMP offers will run on this same solid framework.

This allows for rethinking of various classical gametypes in a completely new way, such as the game mode I'll be developing together with the initial stable release roadmap of CitizenMP:IV:

GangWars - a hybrid PvP/PvE environment

This was originally intended to be a sweetener leading up to the CitizenIV release, providing a small focused multiplayer game mode running on an early version of the old CitizenIV codebase that would keep players happy for a while. The objective is simple - a player assigns their online platform account to a gang upon first joining a session. Then, they spawn in a zone controlled by their gang -- indicated like in San Andreas by a rectangle on their radar -- and try to capture other gangs' zones.

In past multiplayer modifications, this would have been implemented by simply capturing a zone when standing in it, or when killing another human player who just happened to be in this zone. However, because of the AI components the RAGE multiplayer framework allows, Citizen: GangWars would be different.

In another similarity to San Andreas singleplayer, killing AI gang members walking around the zone on foot will trigger a gang war. This will cause another SA-style set of gang pedestrians to spawn, where each pedestrian killed will give the killer's gang a segment of control back. The defending gang, aided by their AI gang members, gets the luxury of being human and being more capable of killing the human gang members who have attacked their zone -- once they're all dead and out of the area for a certain period of time, the gang war ends and control is returned as appropriate.

This is only just one example how rethinking a game type while involving artificial intelligence can completely redesign the way one plays a classical GTA MP mode, and hopefully many more will follow once CitizenMP is out.

Aside from that, there's more...

Asset loading - customize your world

CitizenMP:IV (and other CitizenMP versions, in later releases of those) will include features that allow replacement of various game assets -- models, collisions, map placement files, archetype definition files, whatever, you name it, in a similar way to the MTA:SA modification.

Unlike current versions of said modification, there's a few additional features CitizenMP will offer in this way:

- Real-time streaming; making initial download times for joining servers reduced to a bare minimum, while assets that get loaded will be streamed when needed from the download server and stored in a local cache to reduce streaming delay in the future. If the GTA III series got away with this on the PS2, where DVDs could sometimes be very slow due to damage and the PS2's bad DVD drive, we can too.
- User-generated content; allowing servers to allow thoroughly-validated user-made models to load for the creating player on their servers -- got a freeroam server and want people to bring in their custom rides they normally would be unable to use reliably in multiplayer? After they verify the model isn't some nonsense, and pick from a fairly-balanced set of handling lines, they're all set to go; and everyone will be able to see the model, no more conflicts with model loading for this purpose!

Even more so, one goal for the CitizenFX/MP systems is to be able to load even huge map modification projects like ViIV with a full-size V map, including completely redone streaming frameworks to exceed limits in a massive scale as a basic modification resource -- so any server could, given enough bandwidth or a pre-download, do exactly that.

Think small - two's company, three's a crowd

There's no need for sessions to be full-scale servers with 32 players; eventually a peer-to-peer NAT traversal-based system will be provided as well so even two players can enjoy specifically-made-for-Citizen cooperative experiences together.

Future proof - it's RAGE, after all

CitizenMP will see future ports to Max Payne 3 and possibly even a future PC port of GTA V - even though these will probably lag behind in features to the IV version, the same frameworks will be able to be used, and even your resources will eventually be compatible if you write them just the right way :)

Others - and that's not nearly the end of it

A few small hints are left:

- Scripting will be done using client-side Lua, with servers being able to serve as a 'command and control' service for connected players, and as a persistency layer allowing to store data. If you know how to script SP GTA IV, you'll probably be right at home with the few idiosyncrasies of GTA multiplayer.
- User interfaces will be HTML-based using a libcef rendering engine; this allows for easy design of lovely interfaces.
- There will be various rendering hooks; I even have a theory on modifying various shader components to allow for instance a GTA V-like license plate rendering based on shader bits and pieces to render font parts, or other mad texture things.
- Depending on success with this feature, SA building/possibly even vehicle models will be able to be loaded directly (they would be converted on-the-fly to IV models).
- nothing is too crazy for me; I'm even thinking of a semi-native Linux port of the client and have a few theories ready :)
- there might also be a peer-to-peer overworld rather than a classic server browser; in this overworld players will experience standard free roam like in GTA:O, but with jobs replaced with randomly-placed server 'advertisements' which are customizable by server owners; although a classical server browser will still be available from this world for those who are less into 'discovery' :)
- custom loading screens for servers? WHY NOT

A timeframe?

Sadly, there is none - it's done when it's done.

Edited by NTAuthority
Link to comment
Share on other sites

nkjellman

Sounds interesting.

 

I got some ideas.

-Like the car idea where we can have custom models, you should do it with player models as well. That way we can customize our character and look like anyone. I think that would be a neat thing to do.

-Servers should have control over what users can import. Some servers may want to restrict these features.

-Apartments like in GTA Online. Heck the interiors could be used from GTA V. Also people would be in their own instance of the apartment.

 

But maps are going to be difficult to stream over. I'd say have them download and be stored in a cache. It will require fast internet to download all of that data while playing the game. Also you should try and see if you can get the mod to be on Steam, much like the Just Cause 2 Multiplayer Mod

Link to comment
Share on other sites

Ss4gogeta0

"I will be waiting with bated breath..."

Link to comment
Share on other sites

I hope this turns out to be as great as it sounds. Keep it up mate.

You can guarantee i'll be modelling 3D levels and/or scripting MP missions for this thing. :^:

Edited by Frank.s
Link to comment
Share on other sites

Sounds great, any pictures?

Link to comment
Share on other sites

Sounds amazing, NTAuthority.

 

I have a question though: (& I hope you don't mind it): Will you add the default MP too? (default races, all other gamemodes; lobbies: create, customize & join) Please! I really enjoy the MP of GTA 4.

 

Also, I hope you'll finish your project.

 

Thank you in advance.

Link to comment
Share on other sites

NTAuthority

Sounds amazing, NTAuthority.

 

I have a question though: (& I hope you don't mind it): Will you add the default MP too? (default races, all other gamemodes; lobbies: create, customize & join) Please! I really enjoy the MP of GTA 4.

 

Also, I hope you'll finish your project.

 

Thank you in advance.

As SCOs are fairly hard to customize (only assembly editors are viable for this), the original gametypes won't be usable for this purpose directly. That, however, doesn't stop people porting the base parts of the original gametypes (for example, weapon pickup coordinates; race checkpoints; enemy placement in Deal Breaker; ...) to be standalone gamemode resources.

 

Pre-game lobbies, however, are considered a slight bit too complex for initial implementation; perhaps this could be done as a kind of 'tournament mode'-like system where the game only starts after players have been marked as 'ready' - and I don't think much will be done to deviate from player-hosted servers except for the freeroaming overworld (which will be like a mixture of the original Free Mode, GTAO's free roam overworld and a place for people to advertise their servers) being 'serverless' peer-to-peer.

 

You'd still be able to host your own minority server, however, but you'd have to forward your own port and hope players have a great ping to you as with any normal server-oriented games; though you have the advantage of even players with weird NAT setups who normally get connection errors (and going from my experience with setting up LIVE sessions, even Microsoft's NAT traversal code causes this a lot) being able to play with you :)

 

 

Sounds interesting.

 

I got some ideas.

-Like the car idea where we can have custom models, you should do it with player models as well. That way we can customize our character and look like anyone. I think that would be a neat thing to do.

Player models tend to be a lot less neutral in appearance than car models. The UGC support will be sufficiently generic to allow both, however, but verification testing on player model rigging may be a bit less, well, workable. (unless you'd have the player ragdoll themselves for 5 minutes... hm)

 

 

-Servers should have control over what users can import. Some servers may want to restrict these features.

UGC APIs are only to be used at servers' request; the overworld mode will however include some sane defaults for them.

 

 

-Apartments like in GTA Online. Heck the interiors could be used from GTA V. Also people would be in their own instance of the apartment.

Perhaps for the overworld mode, sure; instancing might be a problem though unless duplicating the interior or doing deep hacking inside clone synchronization code...

 

 

But maps are going to be difficult to stream over. I'd say have them download and be stored in a cache. It will require fast internet to download all of that data while playing the game.

It also depends on the map; though as nobody would want to download 4 GB of GTA V map before joining a server from the game the option is rather between a) downloading during gameplay and b) downloading at the player's leisure outside of the game; however smaller maps like III LC/VC would be able to be streamed on almost any connection without issues... except possibly the collision conversion being somewhat slow. :p

 

 

Also you should try and see if you can get the mod to be on Steam, much like the Just Cause 2 Multiplayer Mod

Sadly, that requires publisher approval for the modification; which R* isn't likely to give at all, even in this modern day and age where the Hot Coffee issue is mostly forgotten...
Link to comment
Share on other sites

  • 2 weeks later...

Will CitizenMP require a original copy of GTA IV/EFLC or steam account?

Edited by fefenc
Link to comment
Share on other sites

  • 2 weeks later...
NTAuthority

Wasted the past few days on some lovely chat UI to test out the new UI system (oh, and being ill, too); next up will be a main menu that'd be somewhat usable. Also integrated some third-party server administration tool I liked to use back in the day:

 

mudflaps.png

 

:)

 

For those of you who like code, there's some stuff to read at http://tohjo.ez.lv/citidev/citizenmp and http://tohjo.ez.lv/citidev/citizenmp-server :p

Edited by NTAuthority
Link to comment
Share on other sites

I like code.

Link to comment
Share on other sites

Ss4gogeta0

I like code.

as do I.. (: nothing like honey flavored Lua nuggets of clusters and Cherub Rock to start my day

 

Oh and being able to talk to my love on skype ;)

 

 

I like code.

So you're not Cookie Monster, you're Code Monster!No, he's still true to his name... eating all those "cookies" (sadly most people won't get the reference) Edited by Ss4gogeta0
Link to comment
Share on other sites

Wasted the past few days on some lovely chat UI to test out the new UI system (oh, and being ill, too); next up will be a main menu that'd be somewhat usable. Also integrated some third-party server administration tool I liked to use back in the day:

 

mudflaps.png

 

:)

 

For those of you who like code, there's some stuff to read at http://tohjo.ez.lv/citidev/citizenmp and http://tohjo.ez.lv/citidev/citizenmp-server :p

b3? oh yeh. ur the man

Link to comment
Share on other sites

NTAuthority

Just in case anyone wants to bother testing some stuff, a really early build is available at http://citizen.re/files/iv-temp.zip - extract it somewhere in an empty folder, run, let it download, select the game folder and hope it doesn't break too badly. :D

 

ViIV version coming soon too.

  • Like 3
Link to comment
Share on other sites

pashinator

Just in case anyone wants to bother testing some stuff, a really early build is available at http://citizen.re/files/iv-temp.zip - extract it somewhere in an empty folder, run, let it download, select the game folder and hope it doesn't break too badly. :D

 

ViIV version coming soon too.

Hi, I've been looking forward to this however, when I run and it finishes downloading, it asks for my social club credentials. I enter these correctly and the window disappears and five seconds later windows prompts me of the program crashing.

 

EDIT, after debugging the program it says that it cannot connect to the platform server, http://iv-platform.prod.citizen.re/

Edited by pashinator
Link to comment
Share on other sites

Probably a dumb question, but are .net scripts supported ?

Link to comment
Share on other sites

NTAuthority

Hi, I've been looking forward to this however, when I run and it finishes downloading, it asks for my social club credentials. I enter these correctly and the window disappears and five seconds later windows prompts me of the program crashing.

 

EDIT, after debugging the program it says that it cannot connect to the platform server, http://iv-platform.prod.citizen.re/

Should be fixed now; future versions will show the error message properly instead of crashing as well.

 

 

Probably a dumb question, but are .net scripts supported ?

Currently there's nothing blocking clients from running any external scripts locally, in the future there'll be a 'G6' security module (tamper-proof, black box, even-looking-at-it-will-get-you-banned malware-potential stuff using black magic to hide itself in plain sight -- within the game process, obviously, nothing actually malicious or nefarious) which will block any non-server-authorized scripts and script commands from executing to prevent players cheating.

 

As for the actual usage of CLI scripting; I had thought initially of the concept of adding a CLI scripting function next to Lua for resource writers to use, and seeing as there seems to be some demand I'll look into it in a future milestone (it'd probably use Mono with its CoreCLR sandboxing support, allowing resources to also include .NET DLLs which would be written against an API which would emulate the current IV script hook, most probably).

 

Also, there seems to be some Russians and other Cyrillic-writing people playing the current build from time to time, but I haven't been able to talk to them much and get opinions - it'd be helpful if the English-speaking one of them sees this and tells me a bit more about their experiences, as feedback is everything, and I haven't been able to keep Cyrillic chat text in the logs intact yet to give to my Russian-reading contacts to interpret :)

Edited by NTAuthority
  • Like 3
Link to comment
Share on other sites

Everything works fine except the fact that I can't move or do anything! I can move around airbreaking with the Simple Native Trainer or speeding up my spawned car, and I can see my mouse cursor on the screen.

 

I'm glad it has peds and cars around, that's a major plus :) Police don't seem to work though.

Edited by B Dawg
Link to comment
Share on other sites

it's early alpha, so don't expect much to work..

Edited by stef538
Link to comment
Share on other sites

Those problems are fixed, It's very fun now :)

 

Roman Bellic approves

Edited by B Dawg
Link to comment
Share on other sites

Great, it doesnt have chat(nevermind just found out i have to press Y) and player list? or iam missing something...Also i have viiv installed, and when i enter the server the map isnt right, i dont know if it has something to do with viiv, i cant see players on the map also...even if they are in front of me.

 

also, can i host a test server? What are the server requirements?

 

Well, when i was on the server list, and minimized the game, i couldnt comeback, wasnt a interface like samp better? just a independ window for multiplayer and start the game when u enter on some server?

 

Can u make it to save ur Social Club login?

 

im just givin some suggestions i know its just a test build :panic: im pumped for this

Edited by MurdaGame
Link to comment
Share on other sites

Umm, it has chat.

Link to comment
Share on other sites

It's either the latest update or Impy's server (because yours wasn't up), players keep de-syncing and can't see each other.

 

Edit: Nvm no longer see this problem.

Edited by B Dawg
Link to comment
Share on other sites

Could you elaborate a bit more on the car mods in MP? I'm guessing if everyone will see the same car models, then we won't have the irritating SMPA60 and SMPA50 errors. However, how will all this be executed? Will all the car mods be added as a new car in game? Because let's be honest, if I have one car mod on say the police, and some1 else has a different car mod on police1, the game couldn't decide which one to show. If we add 9 billion new cars to the game, the game will just stop loading the textures at some point, if it won't crash. What you wrote down sounds really nice, but sounds quite impossible to me.

Link to comment
Share on other sites

Could you elaborate a bit more on the car mods in MP? I'm guessing if everyone will see the same car models, then we won't have the irritating SMPA60 and SMPA50 errors. However, how will all this be executed? Will all the car mods be added as a new car in game? Because let's be honest, if I have one car mod on say the police, and some1 else has a different car mod on police1, the game couldn't decide which one to show. If we add 9 billion new cars to the game, the game will just stop loading the textures at some point, if it won't crash. What you wrote down sounds really nice, but sounds quite impossible to me.

I believe users will see the car mods that the server has installed... Edited by MurdaGame
Link to comment
Share on other sites

NTAuthority

Well, when i was on the server list, and minimized the game, i couldnt comeback, wasnt a interface like samp better? just a independ window for multiplayer and start the game when u enter on some server?

That occurs in the game too, and is not related to the server list at all.

 

 

Can u make it to save ur Social Club login?

that's fairly low-priority, never can get bothered to do it as it's horribly boring

 

 

Could you elaborate a bit more on the car mods in MP? I'm guessing if everyone will see the same car models, then we won't have the irritating SMPA60 and SMPA50 errors. However, how will all this be executed? Will all the car mods be added as a new car in game? Because let's be honest, if I have one car mod on say the police, and some1 else has a different car mod on police1, the game couldn't decide which one to show. If we add 9 billion new cars to the game, the game will just stop loading the textures at some point, if it won't crash. What you wrote down sounds really nice, but sounds quite impossible to me.

This is referring to an UGC API for server scripts to use - it could for instance typically allow every player to bring one car model into the server to spawn (as a separate vehicle identity); even giving an extreme 'reasonable' maximum of 3 MB combined the assets'd still fit in virtual memory easily for 32 players. :)

 

The option for servers to load their own models is completely separate from that, at least.

 

and something new, I've been working on some stuff related to the game radio system; at this point I've gotten a slightly-buggy libav audio player to replace the default Windows Media SDK audio player used for user tracks, and the next steps after fixing that up is to add the capability for both servers and clients to add additional radio stations to the game, both from live internet streams as well as from normal audio files/prerecorded HTTP stream files

  • Like 3
Link to comment
Share on other sites

 

Well, when i was on the server list, and minimized the game, i couldnt comeback, wasnt a interface like samp better? just a independ window for multiplayer and start the game when u enter on some server?

That occurs in the game too, and is not related to the server list at all.

 

Can u make it to save ur Social Club login?

that's fairly low-priority, never can get bothered to do it as it's horribly boring

 

Could you elaborate a bit more on the car mods in MP? I'm guessing if everyone will see the same car models, then we won't have the irritating SMPA60 and SMPA50 errors. However, how will all this be executed? Will all the car mods be added as a new car in game? Because let's be honest, if I have one car mod on say the police, and some1 else has a different car mod on police1, the game couldn't decide which one to show. If we add 9 billion new cars to the game, the game will just stop loading the textures at some point, if it won't crash. What you wrote down sounds really nice, but sounds quite impossible to me.

This is referring to an UGC API for server scripts to use - it could for instance typically allow every player to bring one car model into the server to spawn (as a separate vehicle identity); even giving an extreme 'reasonable' maximum of 3 MB combined the assets'd still fit in virtual memory easily for 32 players. :)

 

The option for servers to load their own models is completely separate from that, at least.

 

and something new, I've been working on some stuff related to the game radio system; at this point I've gotten a slightly-buggy libav audio player to replace the default Windows Media SDK audio player used for user tracks, and the next steps after fixing that up is to add the capability for both servers and clients to add additional radio stations to the game, both from live internet streams as well as from normal audio files/prerecorded HTTP stream files

This is what I always dreamed of in my samp days..

Keep it up

 

And I'm lookin forward to the viiv release too...

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.