Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 13 Dec 2002
Offline Last Active Sep 18 2016 08:33 PM

#5267539 (Research) Assuming I have 10000 concurrent players on a FPS Game, what would...

Posted by on 22 December 2015 - 02:38 PM

I purchase, deploy and manage network and server equipment for VoIP services out of many different tier 3 and tier 4 data centers across the US, UK and Australia.


The smart answer is don't buy hardware until you have to. Ramp up using IaaS hosts so you can run on OpEx vs CapEx. This will give you time to raise the capital necessary to get into the data center space. Onlyput stuff into your data center if you can make it reliable. Define what reliable means to you and your end users before even thinking about data center space.


First - data center space is very expensive. It will vary immensely based on contract but it all boils down to power and cooling. The more dense you get per rack, the more cooling your equipment needs. Depending on your architecture and layout of the facilities they will most likely equate a power usage to cooling ratio/sf you must abide by. For example, if you start running redundant 3-phase 60-amp 208v circuits per rack to run a bunch of blade chassis you can easily start to run into requiring thousands of sf of floor space to accommodate the cooling. I will use the term "space" to include power and cooling moving forward. This is your biggest cost.


Second - do you need a carrier hotel or are you okay with 1 or 2 major carriers? This translates into cost for cross connects and DIA circuits and most of all reachability. In most cases with that many concurrent players you will want to peer with multiple carriers like Level3, Verizon, Comcast (and other residential cable/broadband providers) so you can reduce the number of hops it takes for the majority of your players to reach you as well as provide contingency against major fiber cuts that cause providers to route over long distances drastically increasing latency (Ohio I am looking in your direction...). This is your second biggest cost.


The monthly recurring costs of a data center even with only 2 racks can easily be over $100k depending on hardware choices, network requirements and space (remember power and cooling have a defined ratio with square footage) requirements.  If you want to help bring in a more accurate number it really comes down to specifying hardware ( such as blade chassis and blades or stand alone servers etc.) and how many you intend to put in a rack. You also need to figure out if you will deploy racks as kind of a stand alone entity with top of the rack switching or if you will deploy centralized networking with patch panels. It is usually a combination of both but this will play a major role in your ability to automate and orchestrate via smart hands which either way will result in further overhead costs.


Again, I cannot stress this enough - don't get into the data center game unless you absolutely have to. It is rare these days to have an application that cannot work within the offerings/confines of an IaaS provider. There is a tipping point at which IaaS is more costly (operating margins) than running your own data center but by that time your recurring revenue should pay for that transition or you have done something very, very wrong.

#5183556 rate/hate/appreciate my mog server update model

Posted by on 28 September 2014 - 04:32 PM

First - good luck. I truly mean that and not in a sarcastic manner.


Any input I would have at this point in time would be pure speculation because despite the effort to be detailed about what you are doing, it is difficult to really grok what is going on.


I will suggest on a much more basic and probably unrelated level however that TCP is the way to go until you find it is not - and then check that again. I work in telecom where some people still believe everything must be UDP because "it is faster" when really there are only a few pieces that actually need UDP (RTP for example) where others are actually much less complicated and more scalable over TCP (SIP for example). Of course I am probably getting ahead of myself because I have to build massively scalable and redundant systems with load balancers etc. where none of this will matter to you but if I can help someone avoid the pain I feel every day because of myths and half truths it will be worth it.

#5116967 Many to one relation in an SQLite database

Posted by on 14 December 2013 - 06:03 PM

SQLite is a great tool to use as you migrate data from flat files. In fact I have been using SQLite for years for everything from config files to storing large data maps. There are so many tools for it and it is so light weight it is nearly as accessible as a human readable file but with a bit more kick.


That being said, and this is from my own experience - others may vary, just get your flat file data into SQLite however you find most intuitive to you (or your team) at first. In most cases the size of the data will be very small (relatively speaking in terms of DB performance) and the overhead of trying to learn SQL, Entity Relationships and all of the nuances of how to improve your DB performance are useless until you identify your database as being a performance issue. In many ways this is premature optimization. What you are doing is fine as long as you get the results you are looking for or at the very least get the same information you got out of the flat files.


Normalization of your database with foreign keys and foreign key constraints is tedious and time consuming to do correctly (once available the tendency is to lean on them which causes issues on it's own). Learning how to design, manage and run a database can ultimately lead you down a path to not completing your game. That is not to say time spent on learning the intricacies of database design, management and optimization would ever be a waste of time (I spend a lot of time doing this for work) however it will be a distraction from getting your game completed. Also in my experience, rarely has a database design been a bottle neck for any projects I work on until down the road when there are 1-3k+ users all adding and reading data at the same time. Granted the DB is almost always a bottle neck when we reach certain user thresholds or data sizes however at this point the applications are usually working well and the time spent on the database has more focus since the application has had time to mature and we know what kind of performance we are looking for.


I will repeat myself and say that overall I would do what is most intuitive for you and your game - especially if you are the sole developer. Database management has many religions and like any religion there are zealots who believe their word is Dogma and we all know how that turned out for Cardinal Glick. Once it is working for you the worst that can happen is you improve it.

#5080525 Why companies still use C++ and what should I learn then

Posted by on 25 July 2013 - 12:56 PM

Programming is a task. The language is a tool you use to accomplish that task.


Just like any task, there are many ways and many tools you could use to accomplish that task both correctly and in a timely manner.


For example - Should you learn to use a hammer or a nail gun first? It really depends on what the job calls for but you are probably encouraged to continue to learn about any tools that can get the desired result.


In our company we generally hire people who have demonstrated the ability to learn multiple disciplines even if the one we are looking for isn't their strongest one (so long as they are proficient in it). Learning something is never a waste of time. You know what you can do and what is comfortable for you. Some people can pick up complex languages with relative ease, others need to wade in. The thread has given many opinions from people who work in your targeted industry (or claim to at least). The choice remains yours in the end however and your success will ultimately depend on how much you are willing to change and adapt to the employment environment you are seeking out.




It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.

~ Charles Darwin

#5061520 SQL login security?

Posted by on 13 May 2013 - 08:50 AM

Even disregarding issues like password theft, letting anyone directly connect to your database server is a terrible idea.




Even a thin API wrapper between your internal applications and your database can be a positive thing. For the most part the main issues here are shielding yourself from malformed, incomplete and/or intentional malicious things - most notably the unintentional especially where quotes and special character escaping like $@!* are concerned. It is relatively simple to do since in most cases queries only require on a very small portion of information from the actual client side such as a function name and a date range or other criteria found in the 'WHERE' clause.


In most cases the only information a client should send is (authentication to your app server should be separate from the database login credentials and already complete at this point!) a few variables set to determine what function to call and the parameters it needs to reliably build the query server side. It is important to note that this forces you to an extent to validate the client requests and validity of their request before sending anything to your database and not rely solely on the somewhat lacking security features on various database engines.


This is not only ideal for security reasons but for maintainability. You can usually update/improve your query server side without having to update the clients in any way.

#5009270 Irrlicht any good?

Posted by on 10 December 2012 - 07:27 PM

I am looking to use a free cross platform engine that has everything for the most part all ready done.

"everything" is a pretty generic word there.

What is it that you want to do? Tell someone your idea for a game and have it made for you - zero code? I was going pretty far in that interpretation but you get the idea. You must have some pretty specific requirements for your game that only you can define so please do.

So far I have:
  • C/C++ is your language type of choice - or at least C# (.Net in general?) is not an option
  • Sounds like your game is 3d oriented vs a 2d sidescroller...(elaborate please to the genre)
  • Is it multiplayer?
  • Does "everything" include physics, audio, networking?
Anyway - I think people have answered the original question which was "Irlicht any good?" as best they can with the limited parameters. It has proven to work for many different people in many different genres. The specifics of whether or not it is a good choice for your particular game will require some more specifics especially if you are looking for alternate libraries. I would be inclined to suggest SFML at this point since it potentially could offer everything you want.

#4841417 Video file supporting library?

Posted by on 27 July 2011 - 09:08 PM

Have you looked at ffmpeg?


#4841384 Winsock connection issue

Posted by on 27 July 2011 - 06:54 PM

I would expect the numbers to be something like:
- external router address is (may change over time)
- internal router/gateway address is
- netmask is
- computer address is 192.168.0.x, where x is any value from 2 to 254, assigned by the router.

I would expect the subnet mask (netmask) to be and the broadcast address to be
But the rest sounds right :)

Netmask: (network and netmask can be written in CIDR notation as 192.168.0/24)

#4788506 how to restrict client connect?

Posted by on 20 March 2011 - 10:55 PM

I use fail2ban to automate this at the load balancer/proxy level (Linux and iptables). I work for an ITSP and we get hammered on our public session border controllers all the time from all over the world. Not too many DDoS attacks but SIP REGISTER and ssh dictionary attacks are common in short bursts. Not much we can do about it except mitigate the load it puts on our systems as the source generally comes from countries where there is no recourse.

#4725838 collision problems

Posted by on 28 October 2010 - 03:51 PM

Lazy Foo has written some good beginner tutorials with SDL including collision detection.