Game Architecture questions

Options
Sladix
edited April 2011 in DotNet
Hi,

After studying a bit photon server, some questions remains...

I want to build a half MMO, let me explain the concept:

You create a persistant character which level up etc (MMO part) ... But the games would run like a counter-strike game (Lobby concept, 5 vs 5 players) on a global map (don't yet know how many games could run simultaneously ).

I think the master server would handle characters and map database and ... host the games ?

So here is my questions:
Should I build the client/server at the same time ? i really don't know how to begin this huuuuuge project...
If I start coding the server side, what should I set up first ?
Same for the client ...
I'm working with unity and I started by create a map generator for the games.

If anyone could give me some clues, I'd be very pleased.

Regards,
Sladix.

Comments

  • Tobias
    Options
    In terms of interaction, you would build a game that is 5 vs 5. You could do this with Photon's Lite Lobby Application easily. The world map would be either the same as a room-selecting ("Let's fight in Europe") or a selection of a lobby ("Let's see how many rooms are open in Europe" -> join europe_lobby -> get rooms list -> join one of those or new).

    You could use Lite Lobby "out of the box" and concentrate on the basic communication and the client. I'd polish the client first, get a 5 vs 5 game done and then start adding stuff around it.
  • Sladix
    Options
    Hi again,

    So, I'm now studying the bootcamp demo and I've understood most of the gears. But I don't figure out the "real" structure of the game (i.e. what is called first).
    This is a huge project for a beginner like me and I don't really know where to look in order to understand the whole thing.

    As far as I've read, theses are the files and what they do (please tell me if I'm wrong) :

    -Enums.cs : define all possible states
    -usePhoton.cs : Executes basic game logic (hits, dead, update positions) and network (join/create rooms)
    -Player.cs : Basic class for a player
    -PlayerRemote.cs handle remotes player (position, animation etc)
    -PlayerLocal.cs : gather user's input/position/rotation etc and send through the server
    -Game.cs : Connect to the server, set it's adress etc ... and assign/convert enventCode sent by other player
    -MainMenuScreen.js : displays the menu GUI (options etc ...)
    -GameManager.js : shows/hide Menu, start the game

    I would really need some advices in order to work/understand efficiently.
  • Tobias
    Options
    I wonder if you gave the Realtime Demo and the Chat Demo a go in the first place. Both will set you on the path how Photon can be used and what's the essence to get info across. From there on, the Bootcamp Demo only adds stuff. Of course it is more complicated...
    Another tip: Use Mono Develop to get an impression of how the code is tied together. You can search for usages/references and can jump to the places where something is defined. This navigational help makes a difference, if you don't use it yet.

    Your list of the classes is right. You did read the Bootcamp Demo related pages in the Developer Network, right? Most of what you list is there with a short explanation or at least the most essential code.

    Can you narrow down where you're lost? What's missing in the picture for you?
  • Sladix
    Options
    What I don't really get (except from the technical details at this point) is that I want the server to generate a map (when all the player would be in a "ready" state, don't really know the format, maybe xml ?) and send it to the clients.

    And I also don't understand how the server decides that there only one lobby and, actually creates a fixed number of games (in my game, users couldn't create games/lobby).