Hey all it’s peanut butter weekly update time. During the last week work continued on what is quickly becoming Forever Patch 2.0. The reason for that is due to running into some unexpected problems with networking. Our networking code was originally conceived back in 2007 for the Infinity Combat Prototype. It has been left largely untouched since then whereas the rest of the engine has evolved quite a bit. For our Kickstarter, due to a lack of time, we threw everything together pretty quickly which meant a lot of our game logic ended up running on the client and we knew we’d have to pay a price for that later on. We figured it was a good tradeoff since we had no idea if our Kickstarter would succeed. Needless to say that bill has come due.
For those of you who either don’t know or don’t care about game networking allow me to summarize client-side game logic as being really, really bad. It makes the game easy for hackers to, well, hack and cause general unpleasantness for everyone but themselves. Obviously for a multiplayer game like Infinity: Battlescape this would be catastrophic so it’s of the utmost importance that we spend however much time is necessary to properly update our networking code.
Our pledge upgrade system is coming along nicely. Credit card, bitcoin, and PayPal payment integration is now complete. We have some additional work to do for processing chargebacks followed by a legal review of our pledge upgrade Terms of Service but after that we’ll be ready to roll it out. On the art side the bomber cockpit is finished and work has begun on the corvette cockpit. The NPC hauler continues to come together nicely and we should have some more screen shots of it over the coming weeks!
Glenn Fiedler is adamant, that the only thing received from the client (other than acks) is player input. The client is essentially a “dumb client” that receives all game data from the server. IMO this makes the most sense.
Yes, I agree. The statement about the client being dumb is true only in that respect, however. There’s no reason that a client shouldn’t be permitted to make predictive calculations. analyses, transformations and such. So a lead indicator on a gunnery chair could be client side, etc.
I build the warp prototype this way, with the client never generating any shared state, but being free to make calculations based on the information that the server supplied. It also used TCP/IP, which gave it buttery-smooth performance even for clients that were on the other side of the world. The real challenge is in keeping the server performant.
Client side hit detection alone isn’t the devil, especially if the alternative is expecting players to account for network latency when aiming their guns. Do remember that hitscan is a clientside hit detection technology despite being widely used in countless multiplayer games, if you use either delayed hitscan or clientside projectiles it certainly will not be the end of I:B in terms of anticheat. Just… nothing else… RoF, projectile damage etc on the client WOULD be a fatal error in terms of cheating
If the client hit detects then if they lag they would mainly be invincible though.
Also can you make walking in the ship and on the planet a stretch goal if you would like too, because the game can definitely do it, like it could be a way to repair your ships damage more efficiently or just to explore and wonder around while there is nothing to fight yet. Also it could be a way to harvest very small amounts of credits from crashes ships, so it could go with base building/semi-persistence.
This was more than I ment to type, why do I keep getting carried away but the cockpit made me thing about it sense it looked so good, keep up the good work.
I’m with you on walking on planet and ships and wish they would include characters because they really add to game immersion. But as Sab1e stated, not enough funds so it simply isn’t possible. I think we should look at the infinity engine as an evolutionary step in gaming since no other game has life size planets with environments and Newtonian physics; once this is done then it will revolutionize gaming, in my opinion. And from there character development is inevitable.
More funding won’t mean more features, not until after our initial production goals have been met We don’t want to have added features delay our production schedule unnecessarily.
The added funding gives us greater flexibility in meeting our established deadlines, with the possibility of expanding the team, adding new features once our current goals are met, and post launch development. So yes, weather in the long run can still be a thing
I was suggesting it to be a stretch goal and yea I really want to see weather that would also seperate this game from a lot of other battle ones more, sense those don’t have weather(atleast that I have seen).
Assuming there will be over 100 players fighting in a close proximity battle, what kinds of tricks will you guys use (besides client side prediction) on the server side when it is bogged down to prevent potential client desync issues?
Networking has tended to be one of the, if not the most, critical aspects in both Elite Dangeorus and Star Citizen development. Elite has managed a workable p2p foundation that seems to work for the most part (not without issues) but Star Citizen is still an utter No-Go on that front. Is there any piece of info detailing what are IN plans for networking?
Yeah it’s a pretty central subsystem. We haven’t written up a comprehensive document detailing our plans. Given our plans for modding I’m sure we’ll write one eventually since it’ll be important for modders.