Page Location: Home > Quake III Arena > Topic
1, 2  Next

Forum: Quake III Arena

Topic: Q3A higher payer limit?

Page 1 of 2
xl2k5
rank 3
Posted:
Mon Jul 28, 2008 9:55 am
quote : #1
profile : pm
Posts: 14
Hi.

A few weeks ago, I tried to host a 6 players server for Quake 3 Arena on Dreamcast, and added bots, and guess what? It worked, for like 10 seconds, until the Dreamcast clients got kicked out. There must a a maxplayer static integer in the client's code, and when new players join it looks to see if the current number of players is above the players limit. I know that they put such a limit because playing on 56k modems would be quite slow, and the fps would drop, but anyone ever tried to make a code breaker cheat to put an higher player limit? Now that I bought a BBA, only the fps could be a problem for me, and that can be fixed by console commands to lower the game's graphics, such as lowering a little bit the FOV, removing decals, and things like that. Playing a CTF game with only 4 players isn't the most exiting thing. Anyone familiar with making cheats for code breaker?
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
grubensau
rank 40
Posted:
Mon Jul 28, 2008 10:33 am
quote : #2
profile : pm
Posts: 975
xl2k5 wrote:
Playing a CTF game with only 4 players isn't the most exiting thing.


Feal free 2 join us at fragging friday. Maybe you ll change ur mind about a ONLY 4 players CTF game Mr. Green
  _________________
for sale: limited edt. shikigami no shiro II sealed new incl. pre-order bonus (ebay)
xl2k5
rank 3
Posted:
Mon Jul 28, 2008 10:59 am
quote : #3
profile : pm
Posts: 14
Lol, sadly I can't play now as I'm not home for 3 more weeks. Sad But you know, 2 more players wouldn't hurt, especially if you play with bots. I played lan games with one of my friends and 2 humans vs 2 bots wasn't that fun, like one must stay to defend while the other goes to attack, plus it shouldn't be harder to pull-off than having other code breaker cheats.
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
lordnikon
rank 87
Posted:
Mon Jul 28, 2008 11:09 am
quote : #4
profile : pm
Posts: 5902
Type: NTSC-U/C
You can't hack the game to use more than 4 players by simply switching an integer. It more than likely has an entire string in the code, an if/else statement that would need t be changed. It also could be in multiple locations. Odds are this will never happen.

I think 4 players is just fine. In all honesty, playing 1 on 1 tournament style is where its at. That is where you really test your skills. I could play that way for hours.
  _________________
I'm already numero uno on Dark Helmet's hit list...
xl2k5
rank 3
Posted:
Mon Jul 28, 2008 11:28 am
quote : #5
profile : pm
Posts: 14
Considering that it's a port, and that they want to keep the memory usage as low as possible, I don't see why it would be something else than an integer. Maybe they just wrote something like "If Current_Players >= 4 Then DisconnectClients ....", but usualy coders will try to avoid using such things and rely instead on declared values, such as "Static MaxPlayers as Integer = 4" (of course, that's just an example, terms could vary and the way it's declared depends on the language used). That way, if they want to change a value, they don't need to go throught all the code again just to change that, for example they must have tested several different values and decided that 4 was the best for 56k modems. When a new player joins, there must be a simple formula such as Current_Players += 1 to raise the current amount of players by one, then they look at the current amound of players and see if it's over the limit allowed by the client, which is here 4. Since the MaxPlayers integer is declared and stays in memory, that would be the only value that needs to be changed, and I don't see why they would have made something more complicated than that. But yes, finding the right 4 value in the game's memory wouldn't be easy since it always stays at 4 (being a static value) and there must be hundred of values at 4, unlike values in other games such as health or ammo which can change ingame.
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
gRimGrAvY014
rank 27
Posted:
Mon Jul 28, 2008 3:31 pm
quote : #6
profile : pm
Posts: 551
Type: NTSC-U/C
If you have the resources and the money to do some testing yourself, it would be nice to have it confirmed wether or not it is easily possible to raise the player limit with a gameshark.
 
freaky
rank 7
Posted:
Tue Jul 29, 2008 11:21 am
quote : #7
profile : pm
Posts: 74
Theres so many different ways to do this, they could have added a boolean to seperate pc clients and dreamcast clients

boolean dreamcastclient;

And then simply written a function that checks for more than 4 clients of this type.

Or they could have simply defined it instead:

#define MAX_DREAMCAST_CLIENTS  4

And agian written a function to check for more than 4 clients.

Or it could be something prefixed to the dreamcast players "userinfo" string.
Player names and ip addresses are held within this string, its possible they could also have added something dreamcast releated, like a keyword.

My guess is they would have to write the code as a whole new function becouse the checks would have to be done when the client is joining the server, and also becouse the function would have to be constanty updated and rechecked every few seconds.

The functions for connecting clients won't do this by default, their are other functions within the code that deal with updating functions per second, thats what makes my think they wrote a whole function dedicated to this rather than random elseif code scattered around the engine.

If its a define then you won't have too much of a problem, simply increasing it would not effect other functions.
If they seperated dreamcast clients then the booleans might spread out into other functions, and that would be harder.
Agian if its attached to a userinfo veriable then you would have to rewrite the whole function, and i'm guessing thats not gonna happen.

At the end of the day who knows how they did it, besides your lucky to get more than 4 players online at any given time so does increasing the limit above 4 really make any diference?

PS: if anyone has any infomation regarding dreamcast players "userinfo" and can get a list of them i'd be interested to see if theres any that differ from pc players, if so it could stop pc players joining dreamcast servers with a simple check (a option ive wanted to code for ages).
  _________________
http://nemesis.tilion.org.uk/
xl2k5
rank 3
Posted:
Tue Jul 29, 2008 12:05 pm
quote : #8
profile : pm
Posts: 14
About the boolean, it wouldn't matter for the player limit.
And it wouldn't be on the Dreamcast side, it would be sever side since obviously the dreamcast's version is a client since you cannot host.
The server can add as many players as you want (well, there must be a limit, but you know what I mean) but it's the client that doesn't allow more than 4 (so the Dc version will prevent that by disconnecting itself).
About using a function, yes, of course they woulnd't make an if statement within the connect function as it would make the code too "heavy" to read and coders will usualy make different functions for different things. The function (let's call it Check_players_limit) will generate a disconnect after a simple "if" statement, but all that doesn't matter, since it's all the same. The important thing to know is : Did they use a static variable, Max_clients or something? or did they simply wrote "4" in their if statement, which is unlikely because coders avoid that (else if they want to change a value, they would have to go throught all the code again just to change it which wastes time and causes problems if you forget to change it somewhere).
The function doesn't need to be checked every seconds, that would drain too much from your cpu (and the Dreamcast only has 200 Mhz, you can't waste any to run a game like that), they would just call it when a new client connects and maybe when one disconnects if that function changes a variable like Current_Amound_Clients (The names mean nothing, it's just to explain my point). Again, if someone knows how to make code breaker cheats (like, how to look at the system's ram to find out that value's adress to change it) I'm pretty sure we can put an higher player limit. I know not everybody likes more players, but that could be something interesting for those like me who sometimes play lan games (well, one on pc and the other on a Dreamcast) and want more bots.

About disabling the pc clients from joining, that would have to be done server side, not dc side.
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
lordnikon
rank 87
Posted:
Tue Jul 29, 2008 12:42 pm
quote : #9
profile : pm
Posts: 5902
Type: NTSC-U/C
xl2k5, breaking up your posts into paragraphs would help people read what you are trying to say. Add some line breaks in there.

Freaky pretty much already hit on everything that needs to be said. The developers could have coded it in many different ways, and in many different places. Even the way the player scores are dumped out could be fixed around 4 players, rather than an array to dump out a total list. It is highly unlikely that anyone is going to be able to make a code breaker save to impact the player count.

One other thing I want to bring up is a moral issue here. Technically the person who could figure this out is someone experienced enough with finding advanced hacks (such as PSO cheaters). However these people don't give two shits about preserving a fair playing field. While they may someday answer your call to find a code for changing the player limit, they will also release every other online hack under the sun they found while leading up to the player limit code.
  _________________
I'm already numero uno on Dark Helmet's hit list...
xl2k5
rank 3
Posted:
Wed Jul 30, 2008 1:09 pm
quote : #10
profile : pm
Posts: 14
Yes, sorry about my post being hard to read, where I am we have a 15 minutes time limit for using the computer, so I didn't have time to arrange my text.

Anyway, my whole point is that the most likely things they did is use a static variable and set it to 4, so it could be changed using a cheat device, and that something else that seems to prove my theory (that they used a variable, like the game isn't made to have a 4 players limit, they just coded it to prevent more than 4) is that a fifth player did connect, then after a few seconds the dreamcast clients got disconnected (which means that it's the client that causes the disconnection, not the server) so if anyone knows how to create code breaker cheats that person is likely to be able to put a higher player limit. So freaky's theory can't work, since the limit is at the client's side, and the limit isn't for the amound of dreamcast clients (you could have 1 dc player only and if you go over 4 that player would still get disconnected while others could continue). Also, they wouldn't keep datas like the ip adress and player's name in a string, it would be in a string matrix, with the number of rows increasing as new players join and since coders go for dynamic coding. (Hmmm, maybe I'm not clear about that last sentence, but if there are any other coders here, they would understand what I mean).

I don't know if online it would be more fun or not, and yes someone who would create such a cheat will be tempted to hack the game, like infinite ammo or health since it's much easier to do (finding a 4 in the RAM and finding a value like 97 is totaly different), which is something I wouldn't want, but as you know many people complained at the players limit and I just thought about how it could be put higher and tried out a 6 players server which convinced me that the devs just put a small function in the Dc version to prevent more than 4 players since the servers can be hosted by anyone.

And I don't think that the player limit can be raised for a game like PSO since the game was coded that way, unlike Q3A which is a port of a game that had a much higher limit, and other games, such as Starlancer, just don't need more players since 6 is more than enough.

And Freaky, about preventing PC clients from joining, that would have to be done at the server side, not client side (the code breaker thing I'm talking about would have to be made at the client's side, so each players wanting to join the server, except pc players, would need the cheat). Perhaps you could find values unique to the PC version and block them, like the patch's number or things like that, if it's different from the Dreamcast version, but I never looked deeply at how the server works, but if you want you could take a look at the released source code. Anyway, PC players can't see Dc servers from the server list, so it's not that bad.
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
lordnikon
rank 87
Posted:
Wed Jul 30, 2008 1:50 pm
quote : #11
profile : pm
Posts: 5902
Type: NTSC-U/C
xl2k5, its threads like yours that give people like myself and freaky a headache... no offense. Your posts come off like you took a remedial programming class, and now think you have it all figured out.

I recommend you read more of what freaky and I actually said. Some clarrifications:

xl2k5 wrote:
So freaky's theory can't work, since the limit is at the client's side...

He never said anything about limiting it at the server level. Freaky's entire post talks about a single function, on the client's side that is run constantly to check to ensure no more than 4 active players/bots are in the match. His theory is quite sound, and comes from his experience writing entire mods for Dreamcast Q3 for years now.

xl2k5 wrote:
And I don't think that the player limit can be raised for a game like PSO since the game was coded that way, unlike Q3A which is a port of a game that had a much higher limit, and other games, such as Starlancer, just don't need more players since 6 is more than enough.

I stated absolutely nothing about raising player limits in PSO or other games. My reference to PSO was merely an example of a game that has been ripped wide open by certain cheaters, and you would need someone of that calibur to track down a way around Q3 player limits.

xl2k5 wrote:
And Freaky, about preventing PC clients from joining, that would have to be done at the server side, not client side

Obviously it would have to be implemented on the server side. He, nor I, nor anyone else implied that it would be done on the client side.

xl2k5 wrote:
Perhaps you could find values unique to the PC version and block them, like the patch's number or things like that, if it's different from the Dreamcast version, but I never looked deeply at how the server works, but if you want you could take a look at the released source code.

*slams head on the table* The Dreamcast and PC use the same version. Otherwise they wouldn't be able to play together in the first place.
  _________________
I'm already numero uno on Dark Helmet's hit list...
xl2k5
rank 3
Posted:
Wed Jul 30, 2008 7:38 pm
quote : #12
profile : pm
Posts: 14
Quote:
xl2k5, its threads like yours that give people like myself and freaky a headache... no offense. Your posts come off like you took a remedial programming class, and now think you have it all figured out.


I try to see no offenses in that, but that really sounds like flaming and saying I'm some kind of ignorant or something. "remedial programming class" : I majored in computer science, 4 years in college and worked in that field until I decided to continue studying. No offense, but while reading what you wrote I had the feeling that you couldn't understand what I said which is why it might sound like nonsense for you. My point about the theory that the client looks to see the amound of players each second is that it would take too much cpu usage for absolutely nothing. You just need to check when someone connects or maybe disconnect.

I also never meant that you mentioned about raising the amount of players in PSO, I just wrote that because that game was designed with a maximum of 4 players, and raising the amount of players would be much harder (you would need to modify both the client and the server).

Quote:
*slams head on the table* The Dreamcast and PC use the same version. Otherwise they wouldn't be able to play together in the first place.


I didn't say they aren't the same version, but they could be different. You don't need to have the same version to make them play together, you need a compatible server and that's it. Schtserv managed to make two totally different versions of PSO work together (v2 and Episode 1 and 2), you can play on UT servers version 435 with your version 405b, and with the included notes from the Dreamcast mappack from Q3A it says you need 1.16n or lower, which means that some older versions might be compatible with the Dreamcast version. Plus even if they were the exact same version, they can easily change the name of that version, like instead of being something like Quake3_v116n (i just throw something randomly, I have no idea how they write the version number in the server it's just an example) they could just as well write Dc_Quake3_v100.
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
lordnikon
rank 87
Posted:
Wed Jul 30, 2008 9:40 pm
quote : #13
profile : pm
Posts: 5902
Type: NTSC-U/C
xl2k5 wrote:
I didn't say they aren't the same version, but they could be different. You don't need to have the same version to make them play together, you need a compatible server and that's it. Schtserv managed to make two totally different versions of PSO work together (v2 and Episode 1 and 2), you can play on UT servers version 435 with your version 405b, and with the included notes from the Dreamcast mappack from Q3A it says you need 1.16n or lower, which means that some older versions might be compatible with the Dreamcast version.

Yes, Phantasy Star Online currently has servers which allow players from multiple versions to play online together, on a custom server that was coded from scratch. Yes this is possible with Quake 3 Arena, if someone coded a server from scratch to handle this. However this has absolutly nothing to do with the situation we are talking about, where we want to prevent PC players from accessing a DC only server. The problem, which needs a solution, is where PC 1.16n users, are accessing Dreamcast 1.16n Servers where Dreamcast 1.16n clients currently play. There is no known way at the moment to determine the difference via these clients on the server in order to keep PC players out. The fact that 1.16n could play against previous versions is irrelevant because NOBODY is using previous patched versions to connect. Every PC player on Dreamcast compatible servers are using version 1.16n.

Its like saying we need to create house alarms to ward off Vikings.

xl2k5 wrote:
Plus even if they were the exact same version, they can easily change the name of that version, like instead of being something like Quake3_v116n (i just throw something randomly, I have no idea how they write the version number in the server it's just an example) they could just as well write Dc_Quake3_v100.

The fact that users can change the version number for Quake 3, would only be important in a situation where ALL PC players unanimously decided to change their Quake 3 version numbers to something besides 1.16n. However why on earth would any user feel the need to go in and do that? All PC and DC users are using version 1.16n. The fact that it is possible to merely go in and change the version number in a config file or even via a HEX editor is irrelevant. Why did you find it important to stress that if the DC and PC versions were the same version, someone could simply change the version designation? I don't see how this relates to anything at all. Please clarrify.
  _________________
I'm already numero uno on Dark Helmet's hit list...
xl2k5
rank 3
Posted:
Thu Jul 31, 2008 7:06 am
quote : #14
profile : pm
Posts: 14
I've been misunderstood here. I never meant that someone would change it's version, and I never meant the solution would be client's side. I meant that perhaps the versions have a different signature, like maybe the coders (those responsible for the port) named DC's version something like Dc_Quake3_v100 (version 1), Dc_1.16n or something like that, even if it's the same or highly similar to the Pc version. Like, it's just a "name". Then again I don't know, I didn't look at the code nor did I look much into the way the server handles the connections. My point about previous version being compatible was that maybe the Dc version is a previous, older version (I don't mean it is) or a different version and is just made to be compatible with the server. Like, maybe it's 1.16n, maybe it's not. If it's different it might have a different "signature", which you could use to block Pc's client server-side, like for example : The server allows 1.16n to connect, 1.16a or whatever previous versions are called, and Dc version 1.00. If Dc client is 1.16n, then yes, my suggestion is wrong, but like I said I didn't look into that and don't know if it's exactly 1.16n or something else.

Anyway, it's usless to argue about that when the whole question here is : Is the Dreamcast version 1.16n, 100% sure, or some people think it is because that's what they use with their pc client? Or does it have a different name or is a different, maybe older, version that is compatible with the servers?
  _________________
Petition to get Unreal Tournament's dedicated servers software for the Dreamcast version!
http://www.ipetitions.com/petition/UTDCOnline/
lordnikon
rank 87
Posted:
Thu Jul 31, 2008 8:46 am
quote : #15
profile : pm
Posts: 5902
Type: NTSC-U/C
The Dreamcast and PC versions are 1.16n. There are no obvious ways to tell the difference between a PC or a Dreamcast client. You might have not looked into it yet, but 2 people already have. One who has years of experience doing methodical Dreamcast Online research (myself) and someone who has been writing mods for Q3 1.16n for years now (freaky).

Getting back to the whole player limit thing. If you actually have any programming experience, then you should just look into doing this yourself. The key is not to start off trying to find anything relating to player limits, but to learn to make codebreaker codes for other things first, and then work your way forward from there.
  _________________
I'm already numero uno on Dark Helmet's hit list...
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Display:   
 
View previous topic - View next topic
Page Location: Home > Quake III Arena > Topic
1, 2  Next