Sign in to follow this  
luconis

A Very newbie Question !

Recommended Posts

luconis    122
Hi all,

I will try to make my question as simple as possible !

I want to venture onto making a game for iphone or ipad but before that I am gathering information as to the background of the type of game I want to make.

I want to make something abit similar to JetFighter by HyperCube Games.

This one question I want to ask is. For JetFighter, does it consider to be a online game or just a multiplayer game ?

The reason I am asking this is because I need to know if I must have a server farm running to support the database of all the players and that I need to integrate Exit Games Photon Socket Engine to do so ??

Because in this game, you are not actually fighting against "live" players but only fighting the planes that they have created and leveled.
But still saying this, the game will have to retrieve the information from a server which holds all the players information.

I hope I am asking in the right direction??

Hope I am not repeating another post ?


Best Regards,

Desmond (Newbie Game Designer )

Share this post


Link to post
Share on other sites
hplus0603    11356
[quote name='luconis' timestamp='1305882550' post='4813398']
Because in this game, you are not actually fighting against "live" players but only fighting the planes that they have created and leveled.
[/quote]

Sounds like it's a single-player game with a social / laddering aspect.

However, if you want to avoid user cheating, you may find that you have to run the simulation on your servers anyway -- if you run the simulation on the client, and the client sends back "I won" or "I lost," someone will figure out how to send back "I won" all the time :-)

Share this post


Link to post
Share on other sites
luconis    122
[quote name='hplus0603' timestamp='1305948724' post='4813744']
[quote name='luconis' timestamp='1305882550' post='4813398']
Because in this game, you are not actually fighting against "live" players but only fighting the planes that they have created and leveled.
[/quote]

Sounds like it's a single-player game with a social / laddering aspect.

However, if you want to avoid user cheating, you may find that you have to run the simulation on your servers anyway -- if you run the simulation on the client, and the client sends back "I won" or "I lost," someone will figure out how to send back "I won" all the time :-)
[/quote]

Hahaha ... hmm ... it actually seems to be alike a single player game but fighting with online "offline" player characters !!!

So in the end I will have to have a server farm setup somewhere right ?

Cheers

Share this post


Link to post
Share on other sites
hplus0603    11356
[quote name='luconis' timestamp='1306391252' post='4815926']
So in the end I will have to have a server farm setup somewhere right ?
[/quote]

I would say a server "farm" of size 1 to start with, but yes :-)
Plus backups or fail-overs, if you want it to be up 24/7.

Share this post


Link to post
Share on other sites
luconis    122
[quote name='lonewolff' timestamp='1306396833' post='4815944']
I don't know that you would need a farm of servers for that.

Sounds like you just need a web server with a MySQL database.
[/quote]

Yea cool .... that will be so much more easier !!

Share this post


Link to post
Share on other sites
wood_brian    193
[quote name='hplus0603' timestamp='1306437835' post='4816143']
I would say a server "farm" of size 1 to start with, but yes :-)
Plus backups or fail-overs,
[/quote]

My farm size is 1 also. My network administrator has configured things so that when the router sees my server's mac address it knows to give the server a certain IP address. Now I'm wanting to make that more flexible for backup and testing purposes. I want to be able to swap out a failed server with a backup server that has already been configured and tested without having to possibly wake up the network administrator to update something on the router. What do you suggest? This is on Linux. Thanks in advance.

[quote]
if you want it to be up 24/7.
[/quote]

I think only G-d is 24/7. Just look at Sony or Amazon or ... they don't have 24/7 even though they are big companies. One hacker, earthquake, tsunami, tornado, volcano, dirty bomb, hurricane, thunder storm, fire, ... and they are down.

Brian Wood
[url="http://webEbenezer.net"]http://webEbenezer.net[/url]

Share this post


Link to post
Share on other sites
hplus0603    11356
[quote name='wood_brian' timestamp='1306617586' post='4816920']
I think only G-d is 24/7. Just look at Sony or Amazon or ... they don't have 24/7 even though they are big companies. One hacker, earthquake, tsunami, tornado, volcano, dirty bomb, hurricane, thunder storm, fire, ... and they are down.
[/quote]


Amazon is up 24/7. One of their availability zones wasn't, so companies that had poor (non-distributed) architectural choices were down at that time. Many other companies, with reliable distributed architecture, stayed up. This includes Amazon itself.

[quote]
What do you suggest? This is on Linux.
[/quote]

If you're not in control of the network, I highly advise against trying to run a business or any other highly-available service within that space.

Most systems that run highly available data centers start with a reverse NAT hardware load balancer, that points incoming connections to one of many available server computers. If one computer goes down, the load balancer detects it, and won't send more connections to it until it comes back up. Try something like a [url="http://www.google.com/?q=f5+load+balancer"]F5 load balancer[/url]. (There are others, like Brocade, or Juniper, or Barracuda, or ...) Typically, you actually have two, and they run in hot/hot parallel mode, so if one dies, the second can take over immediately with no loss of connectivity.

If you want multiple physical presences (which you need if you want real 24/7 availability) then you also need to have contracts with ISPs that allow you to have multiple available routes, ability to change your DNS (for example, to point at the closest available data center for each customer for the same name or even IP) etc.

Share this post


Link to post
Share on other sites
wood_brian    193
[quote name='hplus0603' timestamp='1306632053' post='4816953']
[quote name='wood_brian' timestamp='1306617586' post='4816920']
I think only G-d is 24/7. Just look at Sony or Amazon or ... they don't have 24/7 even though they are big companies. One hacker, earthquake, tsunami, tornado, volcano, dirty bomb, hurricane, thunder storm, fire, ... and they are down.
[/quote]


Amazon is up 24/7. One of their availability zones wasn't, so companies that had poor (non-distributed) architectural choices were down at that time. Many other companies, with reliable distributed architecture, stayed up. This includes Amazon itself.
[/quote]

By 24/7 I mean being up 100% of the time. I don't know of any company that has that and even if one does, I don't think they'll be able to maintain that indefinitely. I'll add sun storms to the list if that helps.

[quote]
[quote]
What do you suggest? This is on Linux.
[/quote]

If you're not in control of the network, I highly advise against trying to run a business or any other highly-available service within that space.
[/quote]

By the grace of G-d, I'm going to be able to work on improving things in this area over the summer.

[quote]
Most systems that run highly available data centers start with a reverse NAT hardware load balancer, that points incoming connections to one of many available server computers. If one computer goes down, the load balancer detects it, and won't send more connections to it until it comes back up. Try something like a [url="http://www.google.com/?q=f5+load+balancer"]F5 load balancer[/url]. (There are others, like Brocade, or Juniper, or Barracuda, or ...) Typically, you actually have two, and they run in hot/hot parallel mode, so if one dies, the second can take over immediately with no loss of connectivity.
[/quote]

We're not to that point yet. I'm just going to have a second machine, configured to be a server, waiting in the wings to be manually swapped in if there's a problem with the primary server. I could go the route you suggest as I'm in an office where electricity is included in the rent, but I don't think running two servers constantly is the right thing to do. It would cost my landlord too much for too little gain for me. (We have over 99% availability over the past twelve months with just one server and no backup ready to take it's place.) I'm just asking how to set things up with dhcp or ? to avoid the hard link between the mac address and the IP address.

Share this post


Link to post
Share on other sites
hplus0603    11356
[quote name='wood_brian' timestamp='1306639139' post='4816975']
have over 99% availability over the past twelve months with just one server and no backup ready to take it's place.) I'm just asking how to set things up with dhcp or ? to avoid the hard link between the mac address and the IP address.
[/quote]

That depends on the network you're connected to. You'll have to work with your network admin to set that up.

[color=#1C2837][size=2][quote]By 24/7 I mean being up 100% of the time. I don't know of any company that has that and even if one does, I don't think they'll be able to maintain that indefinitely. I'll add sun storms to the list if that helps.[/quote][/size][/color]
[color=#1C2837][size=2]
[/size][/color]
[color=#1C2837][size=2]Nuclear reactor control systems. The phone system. Pacemakers. Airplane control systems. Google worldwide search. The Amazon store. The list of computer systems with seven-sigma uptime goes on. (That translates to less than 5 minutes downtime in a 10-year period, IIRC)[/size][/color]
[color=#1C2837][size=2]
[/size][/color]

Share this post


Link to post
Share on other sites
Antheus    2409
[quote name='hplus0603' timestamp='1306705501' post='4817250']
[color="#1C2837"][size="2"]Nuclear reactor control systems.[/size][/color][/quote]

Power plants are somewhat unique. Uptime is not a primary requirement. Software doesn't work all that well if there's a power outage, due to tsunami perhaps, yet the facility must continue to operate deterministically, but does not need to remain operational. The biggest requirement is that each component fails-to-safe or fails-to-off. Another problem is somewhat unique, but real-time controls need to be in physical proximity to devices and those get irradiated. The activity is sufficient to damage chipsets. So all primary systems rely on hardware interlocks and reliable mechanisms, such as gravity. And it's all about redundancy rather than uptime itself. Everything can and will fail, that is the only guarantee that can be given.

Reliability is a cost factor (each hour of non-peak operation costs millions), safety is ensured at much more basic levels. They are in somewhat unique position compared to aircraft in that in case of any malfunction they simply shut down the entire plant. This happens relatively frequently and without much fanfare since it's a standard procedure, even if the causes are mundane.

Software controls are involved primarily with optimization of production and monitoring. But each device or individual component is essentially a black box with a very trivial interface (either electronic or manual) which defines the operating parameters. If any of these is out of bounds, the component is required to shut down.

Another big issue is life span. When a plant is delivered it is designed to last 50 years. For recent CANDU designs it may be as long as 70. As consequence, majority of plants in use today were designed based on techniques from the 60s and 70s and those core parts cannot be simply replaced.

There's a lot of academic experiments on how to do a better control system "in VB" and "in LabView" and "in OOP" and similar, but to actually bring something like this anywhere near production is a 20 year process. Not to mention that by the time it's ready the world will have changed several times over. It makes all these revolutionary advances in languages or software or design methodologies completely fleeting and irrelevant. Instead everything is designed around discrete self-contained components, where some software may or may not be involved in some way. But there really is no Master Control System. From design perspective decoupling is highly beneficial. Fork vs. thread comparison, one wants things to fail in isolation.

One could say that software used here is highly reliable, but individual parts fail fast and often and there is not much that is all that special about it. Reliability is ensured at a completely different level.

Share this post


Link to post
Share on other sites
hplus0603    11356
[quote name='Antheus' timestamp='1306759782' post='4817480']
One could say that software used here is highly reliable, but individual parts fail fast and often and there is not much that is all that special about it. Reliability is ensured at a completely different level.
[/quote]


That's interesting. Erlang, a language/system/runtime that is functional and very highly parallelizable, uses "fail fast" as its motto. You don't write fix-up code; you write recover code, and let process crash if they run into unexpected circumstances. Yet, or maybe because of that, some of the most reliable software systems on the planet are written in Erlang. This includes core phone switch systems that have downtimes measured in minutes per ten years. This includes things like applying software updates while the system is running.

Most web sites don't quite need that level of reliability, simply because not enough money is at stake. However, when it is, the engineering can be done, and systems stay up. Note: "system" is the whole thing -- "components" may (and will) fail, and "systems" have to be designed to deal with this. High-availability web sites do that, too -- N+1 (or N+2) provisioning, automatic load balancing, hot fail-over, etc.

Share this post


Link to post
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

Sign in to follow this