3D iPhone MMO (+ Mac/PC) in Development

Discussion in 'Upcoming iOS Games' started by daveyoung, Sep 21, 2009.

  1. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    Don't sweat it! I'll make a call for a group test when we need one next. This us LIVEdev, open for testing all the time!
     
  2. Kerrby

    Kerrby Well-Known Member

    Nov 5, 2009
    374
    0
    0
    Australia
  3. Baitntackle54

    Baitntackle54 Well-Known Member

    Sep 27, 2009
    101
    0
    0
    Sorry I have been busy so I haven't been able to test it either. On the movement though. I would go with both and let the people decide. On the movement (this was one thing that kinda bugs me with ravensword but I still like the game) you should keep it simple with the character always centered. And just allow us to free look and zoom in and out. Only let us straff left and right then move forward or backward, no in between. This is just my opinion though, I know a couple people said they like the ravensword controls, they just made me feel like I was sliding.
     
  4. ShadowsFall

    ShadowsFall Well-Known Member

    May 15, 2009
    2,006
    0
    0
    Summer job soon
    TA 09'
    Ah ha! Pretty sweet playing beta :D.. Here are some things you can put on your list for updates :D

    Problems: Ability to go uphill, unable to use sword (buggy), unable to use spell, etc.

    I suppose you're aware of all the problems :D

    Suggestions: movement might need something like Dungeon Hunters control scheme

    :p
     
  5. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    @ShadowsFall: Yep, all known issues, but thanks :)

    @Everyone
    Here is an update on the new WASD style player movement. After prototyping the zone server, I've tried two major approaches this weekend, each with a degree of success:

    1) Send move start/end updates. These happen in response to client-side keypresses. The client processes the movements right away, and sends out a notification to the server. The server broadcasts the movement to connected clients. With each broadcast event also is sent the player's absolute position and rotation. The net effect is a decent use of network traffic but some ugly rubber banding when the absolute positions kick in and vary significantly from the client side position predictions.

    2) Broadcast absolute position and rotations from the server at specific intervals. This is much more precise as it involves very little client-side movement prediction, but the initial result (aside from quite a bit of network usage) is a lot of tiny start/stops in player movement.

    I'm not exactly sure which method I am going to use. I really favor 1) as it is much smaller in terms of network use, but 2) is much more precise. In the first case I'll need to create a 'window' of future movement calculations which can be thrown out when an absolute position arrives to smooth out the rubber banding. If an absolute position override comes in which is more recent than the future-predicted moves bases on previous position and velocity, I would throw out the future predictions and use the absolute position.

    In the second case I'll need to add in some player velocity calculations to smooth out the positions between server updates, measuring the time between each frame.

    Also impending is a change used to only broadcast the relevant objects. While my tests showed that an iPhone 3GS can handle 300 networked objects, this was using only a barebones amount of object data. I don't want to cause anyone's devices to catch on fire ;)
     
  6. Vingdoloras

    Vingdoloras Well-Known Member

    Aug 29, 2009
    1,070
    2
    38
    Looks nice! Of course there are still many issues (wallwalking etc have already been mentioned), but the game itself already looks pretty neat. The world looks nic (for an iPhone game), but there were no other players online so I could not test the sword etc
     
  7. tukun

    tukun Well-Known Member

    Oct 7, 2009
    241
    0
    0
    whatever method you choose to use, its preferable not to send too many small package, since it will increase the overhead, but u propably already know that. Another model you might want to consider is the object- ghost object model(madeup name, not sure its officially called) in which objects are create on the server side, and reflect onto client using ghost object. It helps reduce client-server communication.
     
  8. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    Right now I'm grouping objects into batches and sending them out, though I'd further like to optimize update frequency based on proximity to the player. I'm using a server/client ghosting model with a dummy client object which a real player object attaches to. The networking is using TCP so regular and frequent updates help to maintain a consistent behavior. I am leery of the overhead of all the packet headers needed by many small packets, so will look for more ways to pack the messages in without compromising CPU too much.
     
  9. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    Last night was a very productive night. I got a lot closer to a functional movement prototype and did some great inroads into optimization too. I have incredible respect for engines like Source which do multiplayer so well. It is incredibly difficult to do this well and involves nothing short of time travel.

    This is a nice long weekend, so if it so happens that I get something ready to test, it will go up as a new test and we'll announce it.
     
  10. Brazilian Rider

    Brazilian Rider Well-Known Member

    Mar 6, 2009
    3,276
    1
    0
    I'm extremely interested to see some screenies when they're ready!
     
  11. Osmiral

    Osmiral Well-Known Member

    Nov 19, 2009
    1,975
    0
    0
    Is this what the game is going to look like on the iphone/ipod touch?
     
  12. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    For the most part yes. There will be a quality slider to eliminate some things like vegetation and to change the draw distance, but overall it will be the same.
     
  13. Osmiral

    Osmiral Well-Known Member

    Nov 19, 2009
    1,975
    0
    0
    When I tried the multiplayer test thing, can you pick up stuff? or go into houses? and is there anything to kill? thanks.
     
  14. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    Not yet, we're just ironing out the complex networking stuff right now :)
     
  15. Kerrby

    Kerrby Well-Known Member

    Nov 5, 2009
    374
    0
    0
    Australia
    I made an account but it couldn't connect or even get me to the password screen.
     
  16. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    I just checked it out and it's working on all my machines here, perhaps you are behind a tight firewall? You should at least be able to get to the login screen...
     
  17. Brazilian Rider

    Brazilian Rider Well-Known Member

    Mar 6, 2009
    3,276
    1
    0
    My computer isn't strong enough to run this (2001 Compaq FTWi...Loss) but as soon as you get an iPod Touch version up and running... well... ;)
     
  18. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    Interesting... The touch may be the faster device ;)
     
  19. Baitntackle54

    Baitntackle54 Well-Known Member

    Sep 27, 2009
    101
    0
    0
    Haven't heard anything for a while? How's the progress going? It any new art to show us? Tried to get on to test but no one is ever on when I get on.
     
  20. daveyoung

    daveyoung Well-Known Member

    Mar 15, 2009
    374
    0
    0
    Tech Entrepreneur
    New Bedford, MA
    I've been working hard on zone server technology and the network changes necessary to support a new movement style. I've made a lot of progress. I am happy to talk about it, it's sexy stuff to me, though it's not super cool spell effects or horse riding or anything like that. In fact, when it works, you won't even notice it :) But it's the glue that runs a net game, and an MMO needs special strategies.

    I'm developing some pretty complex algorithms to streamline client and server network updates. When a scene loads on the server side, it creates an object called SectorManager. This object has an AI on it that calculates the total scene boundaries based on static objects in the scene, and generates logical sectors inside it based on a sectorSize variable. This is the size of each sector inside a scene. These are then created as dummy objects and they each have their own AI on them called SceneSector. Each SceneSector is then told what it's neighbors are. The reason I do this now is to avoid doing any distance calculations for the player later on... the server will know which sectors the player is interested in based on the sector he is in currently. As objects move around, I use math to figure out which sector they are in. When they change sectors, the object signals the new and old sectors, as they maintain a list of all objects that are inside it.

    Next step:
    Thanks to this groundwork, I should be able to really streamline server processing by pulling up a sector, and for each user inside the sector, I will send it updates for objects in the current sector and its neighbors. No distance check required, which means a lot less processing in these critical code sections caused by the use of either a raycast or a distance check (usually uses Sqrt which is a very expensive function to use). Super sexy! I can also use this kind of a system to have another override to turn on/off object AIs enmass inside sectors which are far removed from any activity.

    Here's a screenshot of the SectorManager in action.

    http://www.screencast.com/users/daveyoung/folders/Jing/media/6823ee93-f5de-41fb-9d9d-45a6b7d98396

    As a player moves around, he will only get updates for sectors around him. It's really sweet in theory, and should make MMO possible for us.
     

Share This Page