I was wondering the max number of people for the mod is and what hardware/bandwidth your server would need in order to keep it lag free. What would it take for say a 64 person server? Thanks in advance
64? A very, very big server. I don't have exact numbers for you, but I don't think an opteron would be too far from the truth. Maybe even two wouldn't be too far from the truth.
I have Dual Opterons 64bit 2.0 and cant reach 64 man server for linux code not optimised enough for performance for it. Might be possible for windows as for its coded slightly better for it. I think opterons can make it if 64bit libs are available.
Well, something that might help get a couple more people on the server would be for the server releases to include perhaps an i686 version, or possibly an AMD64, but I don't know anything about writing servers for HL2 mods :-P
Especially for something like this i3/4/586 are all used just for compatability these days, but I doubt we'll need to worry about people using off-brand i686 CPUs to host Empires, I don't know if a VIA could even handle it. Who knows, maybe 1.07 beta will be i686 and have a 64-bit version...
I can guarantee you that this would be enough hardware for a 128: http://www.newegg.com/Product/Product.asp?Item=N82E16816131014 You'd have to use Dual core's though and use about half the total memory available. Dont forget the raptors in a RAID array
The problem is coding the mod so that four separate servers can work together. The server code is single threaded and will only run on one cpu.
Mod's code is fundamental but I think that you'll agree that version of server (compiled) for new architectures (i686/x86_64) on Linux/Windows will be useful? I think that server_i486.so (linux server) isn't even using MMX/SSE. Server does a lot of floating point calculations so it will be useful.
If you're using good hardware with linux please do yourself a favor and compile the latest kernel form kernel.org . It will give you a much better peformance boost over the crap stock kernels you get with the OS distribution.
I havn't managed to find any information on actually building 'proper' i686 binaries for srcds - if you can point me in a direction to it I'd be glad to look into it. Linux server is already being built with 686 in mind though, IIRC.
How about adding -march=i686 or -mcpu=i686 or whatever it is as part of your CFLAGS/CXXFLAGS in GCC? -mcpu would probably be best, but then again I doubt anyone will use something for which setting -march would be broken (a CPU older than a 686). Also, add -O2 if you haven't already, along with -fsomethingsomethingelse (one of the two flags that gets added with -O3, but not the one that slows stuff down). EDIT: Oh, sorry if that's what you meant by compiling with 686 in mind :-/ EDIT: If, for some reason, you're compiling on a system with your CHOST set to i486, then it's possible that your build target is an i486, thus that may be why you're making builds for the i486. I believe there's a way to set your build target, but I've never had to do it. ANOTHER DAMN EDIT: I think you have to manually add MMX-optimized code to make that work. I think there's a way that may make your thingy use SSE as it's target for floating point, lemme look at my happy gentoo install's CFLAGS (hell, I'll just post them here for silliness' sake). CFLAGS="-O2 -march=athlon64 -mmmx -msse -msse2 -msse3 -m3dnow -maccumulate-outgoing-args -mfpmath=sse -pipe -funit-at-a-time -fprefetch-loop-arrays -frename-registers -fweb" Phew! I added the -mmmx, -msse, -msse2, etc. just to make sure gcc knew my proc could do all those. The -mfpmath=sse is, I believe, what may force the use of SSE for floating point math. -frename-registers makes the binary hard to debug, I hear, so you may not want to have that one in there.
You can find out a lot of this stuff by doing man gcc.... And mootant, don't feel bad. My internet name is notoriously hard to spell. I think you can set your build target by doing --target=i686 Not sure. Checking around, but teh intrawebs isn't being agreeable with googling man gcc. Dunno if you use a makefile or what, but I think you've got it from here.