I'm having a funny but also terrible problem. I'm about to launch a new (iPhone) app. It's a turn-based multiplayer game running on my own custom backend. But I'm afraid to launch.For some reason, I think it might become something big and that its popularity will kill my poor lonely single server + MySQL database.On one hand I'm thinking that if it's growing, I'd better be prepared and have a scalable infrastructure already in place.On the other hand I just feel like getting it out into the world and see what happens.I often read stuff like premature optimization is the root of all evil or people saying that you should just build your killer game now, with the tools at hand, and worry about other stuff like scalability later.I'd love to hear some opinions on this from experts or people with experience with this. Thanks!
When to start thinking about scalability?
performance;mysql;game development;optimization;scalability
It's actually quite an easy choice.Right now, you have zero users, and scalability is not a problem.Ideally, you want to reach the point where you have millions of users, and scalability becomes a problem.Right now, you don't have a scalability problem; you have a number-of-users problem. If you work on the scalability problem, you will not fix the number-of-users problem, which means you will have solved a problem you don't have yet, and you will not have solved the problem you do have. The most likely result is that your product won't make it, and all your work will be for nothing.If you work on the number-of-users problem, you will solve a problem you have right now, and then you can focus on the next problem, which might be scalability.The nice thing about scalability problems is that, by definition, having them usually means business is pretty damn good, and this in turn means you can afford to spend money on optimizing for scalability. You don't go from zero users to ten million overnight, and if you keep an eye on the system's performance, you will have plenty of time to optimize when the time comes.Of course it helps to keep scalability in mind while writing the code you need right now, but it doesn't make a lot of sense to spend dozens or even hundreds of man-hours on a feature of which you don't know if you'll ever need it, and the most likely scenario is that you won't. Right now, your main concern is to ship. What happens after that; well, you can worry about that later.