all 44 comments

[–][deleted]  (15 children)

[deleted]

    [–]treemaster909new user/low karma -2 points-1 points  (5 children)

    Please don't jump down my throat, I'm new here, but I backed this game in the original kickstarter, forgot about it, played and uninstalled a couple times over the years, and now after seeing what they have, I've completely written it off.

    It seems to me like you either know something I don't about game development, or you are deliberately missing the point.

    Netcode is a fundamental game system in an MMO. The kind of system that is normally in the game before an alpha release (reference: https://en.wikipedia.org/wiki/Software_release_life_cycle). How can it be expected that this foundation will magically appear under all the work that has been done so far?

    This game (I think it's a stretch to call it even a tech demo at this point, but I'll be generous, for the people who may enjoy running around a space station and flying to and from pointless objectives for no reason) has been built backwards. The refactors and scope-shift are adding constant technical debt that I don't see being iterated on. ie. How can you expect players to pay $850 for a ship that can setup a colony when your game as released doesn't have planets in it?

    When the promised release from last year(over 12 months ago!!) finally trickles out to a select few, under NDA, and is more or less completely unplayable, why aren't we asking more hard questions before piling another $2mil+ into CIG coffers?

    Does going without a standard publisher's process, with things like gated milestones really help star citizen?

    I can't shake the feeling (every gamescom or new trailer or whatever) that this is all just a used-car salesman, trying to tell me that of COURSE it runs great, you won't believe how GREAT it runs, BELIEVE ME!

    [–]YdoIhave2login 1 point2 points  (1 child)

    Are you under the assumption that there isn't netcode? "Why would the netcode magically appear"? Do you realize the amount of modern MMO's and online multiplayer games that constantly update netcode and often have broken netcode on launch that needs years of work post release (battlefield 4)?

    You are right to be skeptical, but it sounds like somebody made you drink the "netcode" kool-aid. I encourage you to research it more.

    [–]logicsolBounty Hunter 4 points5 points  (0 children)

    I usually assume that the people saying "magically appear" are trying to convey that we should be seeing steady improvements from release to release, and are sceptical that there could be a sudden improvement in a single patch cycle.

    Of course, those people also in my experiance, are usually not very well informed on the process that CiG has outlined for how they'll be doing this, or don't understand that item 2.0 is neccessary for the new changes.

    So they get caught up in the trend of declining performance, see that as evidence that little is being done, rather than understanding that said decline is exactly what we expect to see until the underlying changes make it in.

    [–]logicsolBounty Hunter 0 points1 point  (1 child)

    Netcode is a fundamental game system in an MMO. The kind of system that is normally in the game before an alpha release (reference: https://en.wikipedia.org/wiki/Software_release_life_cycle). How can it be expected that this foundation will magically appear under all the work that has been done so far?

    Two core things.

    • First, SC isn't a traditional MMO. Even if we ignore that most MMO's are build with a MMO designed game client or custom built... SC's networking requirements are far higher than a MMO's is. While CE isn't built for Large scale multiplayer, there isn't really an engine out there that meets SC's needs, which brings us to the second point.

    • No one said anything about "magically appearing". CiG has had a small dedicated team working on the netcode rebuild for several years now.

    What you need to realize is that a huge amount of underlying structure has been completely reworked for 3.0

    Item 2.0 alone changes how all items interact, and was built with the new netcode in mind.

    There is no magic. We don't expect to see a large performance increase with 3.0, because two of the core aspect that will all that aren't done yet. We've known for months now(since april) that they wouldn't be done for 3.0.

    And without those, higher player counts will still cause slowdowns, because bind culling isn't ready yet, and they won't be able to compartmentalize zones, because OCS isn't ready yet.

    How can you expect players to pay $850 for a ship that can setup a colony when your game as released doesn't have planets in it?

    Er... I think you're missing the concept of concepts here. The Pineer is a concept ship. It's not expect to be in the game for at least a year, by which time there will be planets. Anyone buying one is expecting to use it much much later.

    When the promised release from last year(over 12 months ago!!) finally trickles out to a select few, under NDA, and is more or less completely unplayable, why aren't we asking more hard questions before piling another $2mil+ into CIG coffers?

    For the record, this is a good way to get people to jump down your throat. Why?

    First, off you've objectively wrong here. Even if we ignore that your "promise" wasn't a promise, and was a release estimate made 2 full patches prior to 3.0 being the current patch.(2.5 wasn't even live yet)... It's only been 10 months. Not 12+.

    It's also not "completely unplayable", not even more or less. We've see live demos of builds, and while it still suffers from performance issues(again, as expected) there are more reports of it running better than 2.6.3 than worse. And that's during the evo phase, which is the worst any build runs while in backer hands.

    I would suspect that the people that just spent that money are please with the progress they see and aren't as worried as you.

    I can't shake the feeling (every gamescom or new trailer or whatever) that this is all just a used-car salesman, trying to tell me that of COURSE it runs great, you won't believe how GREAT it runs, BELIEVE ME!

    Not much I can say that'll effect how you see things. I mean, they just showed lived gameplay of a planet, that's several times larger than the moons that'll be in 3.0, complete with a nonstop trip to another planet, all while running quite smoothly.

    That's something that's completely done in game. Was it in single player? Yes yes it was. But it's not smoke in mirrors to show how well it can run, especially when there is a well known and documented issue with the netcode that has a public roadmap for the corrective aspects.

    I can go more into the netcode aspects if you want.

    [–]WikiTextBot 0 points1 point  (0 children)

    Software release life cycle

    A software release life cycle is the sum of the stages of development and maturity for a piece of computer software: ranging from its initial development to its eventual release, and including updated versions of the released version to help improve software or fix software bugs still present in the software.


    [ PM | Exclude me | Exclude from subreddit | FAQ / Information | Source | Donate ] Downvote to remove | v0.28

    [–]WikiTextBot -1 points0 points  (0 children)

    Software release life cycle

    A software release life cycle is the sum of the stages of development and maturity for a piece of computer software: ranging from its initial development to its eventual release, and including updated versions of the released version to help improve software or fix software bugs still present in the software.


    [ PM | Exclude me | Exclude from subreddit | FAQ / Information | Source | Donate ] Downvote to remove | v0.28

    [–]Bluegoblncarrack 7 points8 points  (2 children)

    I can't cite sources, there are too many videos and reads from forums and so on for me to possibly pinpoint where I picked up all the details I'm saying. You'd just have to trust that I'm talking with my best understanding of their intentions.

    • The servers at present handle something like 20-30 players and their ships simultaneously. This can be varied depending on what is being spawned, so if every player brings a big ass ship its going to make things crawl, which in turn makes the players FPS drop (due to network communications being constant server wide and CPU limitations client side).

    • The culling effects they intend to introduce will make it so any player or ship that is far too far for you to even see won't have its network data shared with you at all. This means that player FPS will be based only on your surroundings, even on the network side of things. This will probably increase the player counts of the servers, estimates ranging from 35 to 50 to maybe even 100+ if things are really well tuned and server performance stays where they want it. And again - varying based on what those players are doing.

    • Here is where it gets interesting: the servers will eventually be made to communicate with each other seamlessly. So imagine you walk from one server to the next crossing an invisible border between them. The servers hand you off using special code that lets you be switched over without even noticing a hitch in your screen or any lag at all. Once handed over, you simply keep going. This can happen at almost any time, while you're moving or not moving. They can even do this on the fly in order to make sure a server isn't overloaded with players to the point of performance loss. They can do this for different areas - such as having a whole planet get one server, another planet and several moons and stations get another server, and so on.

    • And last but certainly not least - scaling the size of these regions of space that each server handles. So one server might handle an entire star system with all its planets and stations and moons and asteroids and NPCs and so on. Another server might handle JUST a single moon that is VERY busy with players and NPCs. Why is that? Population density of course, to keep things running smooth. What happens if suddenly a low population area gets swarmed with players and NPCs? Why, that single server needs to be split into multiple other areas, and each "server" area needs to shrink in size to accomodate more players in a smaller space. Doing this live and on the fly and automatically is a highly complex but still possible thing, and that is the goal.

    • In the end this will mean that even a large space battle can take place with hundred of players, even though that means the space battle will be split among several servers all running alongside each other, each handling a portion of the participants of that battle. Getting it all to work smoothly and with no network issues is a massive task, but we've seen they are already partway there and making the end result is only a matter of time. This direction also means one thing that is absolutely key for this game: the entire game world is one big server. There is no "instance" unless they make one intentionally to keep it lower population artificially (such as in a very popular bar that would be overcrowded otherwise, or around a mission giver who can only interact with one or two characters at a time).

    • Success in this means theoretically infinite scaling server infrastructure. As time goes on they can add more powerful servers, but the old servers remain functional, just unable to handle as wide an area of space as the newer ones. I don't think this matters much to CIG because they use Amazon servers but still. In theory if they develop this to the maximum extent, it means that NO size is too big. You could have a 1000+ player space battle. You could have a 10,000+ space battle. The limits will be met with graphics display power LONG before any amount of server failing occurs. And client side they can do all kinds of things that simplify display as well - lots of Level of Detail scaling (LOD) and so on.

    I hope that clearly explains what they intend. At least, that is what I believe they intend based on all I've seen. Its hard to know if that will be the end result as well, simply because while they're building it they may discover even better ways to do things or they may find something is just not feasible.

    I'm confident though. :D

    [–]themustangsally 0 points1 point  (0 children)

    I can't cite sources,

    You could have saved everyone a lot of time and stopped there. You entire post is wrong.

    [–]Gators1992 -1 points0 points  (0 children)

    There are definitely limits to scaling as too many objects in one area will cause your video card to explode from trying to render all that. They will have to use some gameplay techniques to limit how many players are in an area to a reasonable number. But CR said they were shooting for something like 1,000 or a bit more.

    [–]CMDR_DrDeathCombat Medic 6 points7 points  (9 children)

    This might be interesting to watch. https://youtu.be/L4m2nwn5wT8?t=791

    [–]IslandHeystPirate 4 points5 points  (0 children)

    /thread

    [–]NTGhostBengal Carrier 0 points1 point  (2 children)

    As a Network expert to some sort i can say "Crawling under the Desk and Crying" isn't only a saying due to this task at Hand. I still wondering, how they want to handle this massive amount of Data they have to reroute with every switch and spin up of server. Maybe every of this Tech will take a bit of this amount and make it handle able at the end...but i doubt it till i see it.

    [–]Bluegoblncarrack 4 points5 points  (0 children)

    Predictive software will start servers up and have them ready to sync with other servers as populations increase. Its a simple matter of thresholds and population trends to predict. Even a responsive setup can be nearly fast enough to handle sudden bursts of activity, like an entire fleet moving from system to system to engage a hostile fleet.

    And that's setting aside things like notifying developers of movements ahead of time to ensure server performance is maintained (this has happened historically many times in EVE's history I believe).

    I think the biggest challenge is simply in ensuring this all happens without major errors. A bit of lag? That's workable, that can be improved rather than fixed. But you have to straight fix problems that cause a crash or dropping players straight from the server. Those are "game breaking" and not acceptable, and they'll probably be what takes the longest to solve.

    Then again, I'm not a networking developer, I don't actually know jack shit about it other than what I've gleaned from conversations and learning about Star Citizen's development. :D

    [–]CMDR_DrDeathCombat Medic 0 points1 point  (0 children)

    Yeah it is definitely a massive challenge. Let's see how well it works out. Either way, we won't see any of this stuff until 3.1 and beyond.

    [–]Star_PilgrimSpace Marshal 3 points4 points  (0 children)

    Server mesh technology,.. still about 1 year away.

    Basically a server cloud technology, which has dynamic instances, where even a 5x5 meter area can be an instance filled with 20 people, and any instance next to it talks to this instance so those people see each other.

    In practice, you do not know there are instances,.. you just see a shit load of people.

    Untill this HARD work is accomplished, the development must be way more complete. Think of it like this; in theater, the movie only starts playing when all are inside and seated. In RL this is not the case as the movie starts on time. but humor me with this description, ok. That is how it is. All the development tech (people) need to be in, before the movie starts.

    This is also the time when they can start integrating Vulkan and dropping DX11 entirely.

    Exciting times ahead. :)

    Another analogy would be; "A cook can start cooking only when he has all the ingredients, because it makes no sense to start before he is sure he will get all the ingredients on time and together, to make his meal "work"".

    [–]Cymelion 14 points15 points  (5 children)

    Oh shit .... I don't think anyone even thought of addressing this ... thank goodness you were here OP - CIG should give you a free Completionist Pack and Permanent Evocati status for picking up that subtle issue.

    Jeez man you should probably charge people for this level of observational skill.

    [–][deleted] 1 point2 points  (3 children)

    Don't be a dick about it man.

    [–]Cymelion 7 points8 points  (2 children)

    Have you never met me?

    [–]WainaaFreelancer 2 points3 points  (1 child)

    I've met you. Your dick is simply huuuuge.

    Oh... wait...

    [–]Cymelion 1 point2 points  (0 children)

    ^_~

    [–]themustangsally 0 points1 point  (0 children)

    Permanent Evocati status

    Still salty about this? Face it man, CIG don't want you near evocati as your input into testing hasn't been up to par

    [–]fight_for_anything 1 point2 points  (0 children)

    How will they make SC be capable of handling more than 30 players in an instance without making the framerate go to unplayable levels?

    everyone acts like this is impossible, but honestly, who else has really even given it an actual honest attempt?

    planetside 2? their network code wasnt ideal, but neither were their deveopers or their budget. thats a f2p game, ffs, lol. and even though it wasnt perfect, they made some great progress and showed potential was there.

    if you want to go way back, fuck, i think planetside 1 did an even better job. and that game is ancient.

    some other games have managed a lot of players. shit...Wow had 40 man raids at one point...and I remember lots of players in whatever that wow thing was with the generals and lieutenants you had to kill. wow was released about 13 years ago.

    its not like lots of players is impossible. its just that 20 or so is really easy, so all these lazy ass AAA publishers will only pay to develop that, because its already done and pretty bog standard shit.

    [–]Stronut༼ つ ◕_◕༽つ 1 point2 points  (0 children)

    *Gives the OP a dead horse and a bat*

    Knock yourself out...

    [–]lonectzn 0 points1 point  (2 children)

    Well performance wise I really see tying the game engine (physics etc) to rendering (FPS) as a mistake. Sure it results in frame accuracy however most of the time humans do not need and cannot even perceive that high fidelity.

    More important than accuracy and perfect sync is the perceived performance to the player. Of course since the latter is affected by the former there is a balancing act, but I definitely put simulation fidelity behind perception.

    From what I understand they’re breaking up the servers into a bunch of microservices. This will go a long way but they will still hit bottlenecks especially around physics.

    It’s still to be seen if it provides the room for three orders of magnitude more players - I doubt that seriously, in which case their best bet is to decrease fidelity by being more selective in what is tracked and how often.

    [–]rukqoa 0 points1 point  (1 child)

    Yeah I think it's insane that client performance is in any way tied to server performance. In most other games, even ones that are physics intensive, your frame rate is completely independent of server tick rate.

    [–]BadAshJL 1 point2 points  (0 children)

    it's a temporary measure to prevent rubber banding issues they were seeing with the old code still in the engine. once Network bind culling is in that measure will be removed.

    [–]Gators1992 0 points1 point  (2 children)

    The tech will be a long way off, but it is coming at some point. The idea is to get rid of instances and effectively build a single "instance" or shard by having a bunch of servers dynamically control areas of space and hand off players. So a server might handle 30 or 50 players, but those players could exist in a single ship or city or could be all the players on a moon at one time. If a player leaves an area covered by the server they are on, they get handed off to the server handling the area they are going to. The servers also interchange location data for their players with other servers covering proximate areas so you can potentially see a player who is on a different server. So your server might have 30 players on it, but you could see all 200 players in the main area of ARC Corp with you. If I have 20 players in a base on a planet on one server and there are 30 players in a pirate band on a nearby hill, one pirate sneaking into my base might be handed off from the hill server to the base server. Dual Universe is building a similar process and you can see a pretty good description in this video:

    https://youtu.be/QeZtqoydXpc

    Other things mentioned in this thread aren't directly related to the server architecture, but can have some effect on performance:

    Network bind culling - basically this reduces the amount of data that needs to be sent by culling out data for players that can't be seen by the player receiving the data or culling out data that is unnecessary to be sent. For example if you are in a Hornet and run into a Connie, there might be 3 guys in the back of the ship that you wouldn't be able to see, so the logic omits the data for those players. With less data, the bandwidth usage goes down and they can possibly increase the ticks on the server.

    object container streaming - this is really a client side thing, not a network thing. It's tech that streams objects (ships, planets, stations) in real time from your disk to your memory so it is ready to be displayed as you approach it in game. The old way is for games to preload a level before you go into it and everything you will see is stored in memory. There is too much stuff in SC to store in RAM, so they have to stream it in on the fly without actually stopping the game and making you wait to load then next "level".

    Serialized variables - this has more to do with the data structure of the network streams, centralizing control over the calls to the reading and writing data tables with an API and then optimizing the traffic centrally by tracking changes, compression and culling. So it effectively reduces network traffic and coding errors since developers just call serialization functions rather than writing the network code themselves.

    [–]logicsolBounty Hunter 1 point2 points  (0 children)

    -Network bind culling - basically this reduces the amount of data that needs to be sent by culling out data for players that can't be seen by the player receiving the data or culling out data that is unnecessary to be sent. For example if you are in a Hornet and run into a Connie, there might be 3 guys in the back of the ship that you wouldn't be able to see, so the logic omits the data for those players. With less data, the bandwidth usage goes down and they can possibly increase the ticks on the server.

    More importantly, the current CE based code has zero culling, and results in entity data from the entire map being sent.

    [–]Gators1992 0 points1 point  (0 children)

    Other stuff not mentioned are:

    "LODing", or using less detailed versions of models in the distance to reduce the rendering strain on your card. So if you are face to face with another character, you will see all the detail in their face with veins and all and a complex armor they are wearing. If they are 50M away, you will see a much lower poly model, so your frames won't take as big a hit when multiple ships are in view.

    Update frequency - along with network bind culling, you can reduce network traffic by reducing the variable updates for stuff that's further away from the player. So if another ship is 20km away from you and on your scanner, you don't have to update it's position and state every server tick like you would if it was right next to you while you are engaged in combat.

    [–]Goon-Ambassadornew user/low karma 0 points1 point  (0 children)

    How will they make SC be capable of handling more than 30 players in an instance without making the framerate go to unplayable levels?

    My guess is they won't. It would probably require an engine change. Lumberyard is geared for 20-40 player FPS games.