About estimating the required server capacity
Making any guess here is impossible without knowing very specific details about your game and your protocol.
Just some of the variables which have a huge impact are:
- how many users will be online at the same time?
- how resource-intense is your game per player?
- how much data does each user send to the server per minute?
- how much data do you have to send to each user per minute?
- How do these metrics scale with the number of users? When you have 100 connected users, do you need to send the data of everyone to everyone (which means 100 users do not create 100 times but 10.000 times as much load as a single one) or can you minimize this scaling issues by only sending data of those other players which are relevant for each user?
Making even vague estimates for any of these numbers without actually coding and measuring it requires a lot of experience and very detailed knowledge of the game concept.
About offline play and storing data client-sided
When you store data client-sided, you have to be aware that users will be able to manipulate that data and cheat! You can try to make it harder through encrypting it, but that will only slow them down for a few days, because your encryption key and algorithm must be somewhere in your application.
For that reason, offline play in a competitive multiplayer game is generally a very, very bad idea. When you want to stop people from cheating, then all calculations which are relevant for the gameplay must take place on the server. Anything which happens on the client can be manipulated by the user.