Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
Drunk Theory
Aug 20, 2016


Oven Wrangler

Ha ha ha. Time to roll Ben out to fill up the air with more Wing Commander stuff.

Adbot
ADBOT LOVES YOU

Bofast
Feb 21, 2011

Grimey Drawer

TheAgent posted:

they did send off a lot of dough to local homeless shelters tho

:golfclap:

Colostomy Bag
Jan 11, 2016

:lesnick: C-Bangin' it :lesnick:

Drunk Theory posted:

Time to roll Ben out

I see what you did there.

CaptainBtaksDad
Jun 3, 2017

by FactsAreUseless
theres only 6 network engineers on the CIG team of 400+ people. 3 of them are in perma bugfixing mode.


lmao

LuiCypher
Apr 24, 2010

Today I'm... amped up!

AP posted:

https://twitter.com/regmizell/status/875693203009175553

I have been thinking about my career path in Star Citizen, specifically about what ships I wanted in game. I keep revisiting the ships I want, trying to focus on the gameplay I want in game and to have more bang for my buck in using multi-role ships. Still, I get those times when I want to have those vanity ships.

Here is a ship designed for them for free, my friends. As a bonus, it (like all other Star Citizen ships) can come to them direct in .jpeg form!

LuiCypher fucked around with this message at 17:31 on Jun 16, 2017

vyst
Aug 25, 2009



LuiCypher posted:

Here is a ship designed for them for free, my friends. As a bonus, it (like all other Star Citizen ships) can come to them direct in .jpeg form!



How much?

Colostomy Bag
Jan 11, 2016

:lesnick: C-Bangin' it :lesnick:

vyst posted:

How much?

Your dignity.

xanif
Nov 3, 2010

Beer: Who was your first kill, not counting old men?
Eonwe: One of the outlaws in the Brotherhood.
Seraph84: I was there that day. You were only a squire, sixteen years old.
Eonwe: You killed Friendly Tumour with a counter-post. Best move I ever saw.
Oven Wrangler

LuiCypher posted:

Here is a ship designed for them for free, my friends. As a bonus, it (like all other Star Citizen ships) can come to them direct in .jpeg form!

Empyrion is a good game and people should play it.

The game attracts mostly PvE players so if you play on a PvP server you can extract a ton of rage from people if you kill them.

For example

quote:

Colin2Coldd: Trash
Xanif: lol
Colin2Coldd: Stay bad and stay in a bad clan
Xanif: lol
Xanif: is only game
Colin2Coldd: trash
Xanif: y u heff to be mad
Colin2Coldd: keep inviting the whole server to RAT will help you guys get gud
Colin2Coldd: I learned the hard way, you guys too bad for that
Xanif: wut
Xanif: jesus dude it's just pvp
Colin2Coldd: no honor GG
Xanif: oh no a combat cv died
Xanif: it's the end of the world
Colin2Coldd: the way it played out
Colin2Coldd: trash
Colin2Coldd: all those guys for 1 cv
Xanif: gently caress if I know how it played out
Colin2Coldd: that many people for 1 cv
Colin2Coldd is now playing Empyrion - Galactic Survival. Click here to join.
Xanif: so...
Xanif: get friends
Xanif: we like big cv fights
Colin2Coldd: lmao
Colin2Coldd: you guys will get no mercy
Xanif: lol k
Xanif: no othe pirates on this server behave like this after a fight btw
Xanif: none of*
Colin2Coldd: Okay man
Xanif: not even when the whole server allied against ZC did they bitch like this
Xanif: it's a stupid game
Xanif: relax
Colin2Coldd: lmao okay man
Colin2Coldd: RAT is trash idc
Colin2Coldd: invites bads to get good
Colin2Coldd: thats trash
Colin2Coldd: "let me invite everyone hoping we will get a win"
Xanif: stop throwing a tantrum because you lost a cv
Colin2Coldd: it worked cheers XD
Colin2Coldd: I'm fine
Xanif: you're really not
Colin2Coldd: I promise I'm fine
Colin2Coldd: I mis understood tomcat
Xanif: you're chatting every single person on steam you're friends with to call us trash
Xanif: you're being a child
Xanif: grow up
Colin2Coldd: lmao I chatted 2 people but okay
Colin2Coldd: you and tom cuz bad
Xanif: Ok
Xanif: When do you graduate from middle school?
Colin2Coldd: when did you leave your mothers house?
Colin2Coldd: You didn't did you?
Xanif: k dude
Colin2Coldd: okay then stfu
Xanif: I didn't realize you were going to be a 6 year old when I friended you on steam
Xanif: So good luck
Colin2Coldd: un friend me please
Colin2Coldd: thank you
Xanif: working on it
Xanif: so loving whiny
Colin2Coldd: stop replying?
Colin2Coldd: salty?
Xanif: out of the two of us
Xanif: you're the one that reached out to me to throw insults
Xanif: so...salty
Colin2Coldd: I mean.. I thought differently
Colin2Coldd: My apologies
Colin2Coldd: GG
Xanif: this poo poo is why everyone loving hates you btw
Xanif: You freak out over a video game
Colin2Coldd: Okay man

Tarquinn
Jul 3, 2007

I know I’ve made some very poor decisions recently, but I can give you
my complete assurance that my work will be back to normal.
Hell Gem

Colostomy Bag posted:

Your dignity.

So the same as Star Citizen then, huh?

Colostomy Bag
Jan 11, 2016

:lesnick: C-Bangin' it :lesnick:

Tarquinn posted:

So the same as Star Citizen then, huh?

Not quite. Your dignity + $15,000 + $2,500 + $20/month.

Fil5000
Jun 23, 2003

HOLD ON GUYS I'M POSTING ABOUT INTERNET ROBOTS

vyst posted:

I certainly hope the pvp slider scale is based on total backer contribution

If it is, the implementation will be bugged and adjusting the slider will add UEC to your account.

Tippis
Mar 21, 2008

It's yet another day in the wasteland.

vyst posted:

I only want combat with true believers

DEUS DEREK VULT!

Hav
Dec 11, 2009

Fun Shoe

Thanks. (I don't advise anyone read this rant.)

Okay, the first thing he's doing is mush-mouthing the concept of 'entities' (or objects) with the idea that all the 'entities' (or objects) need to be networked. That's what we call a 'sweeping generalization', or a very reductive model. It is vaguely meaningless.

Handwave the backend communication, that's all Austin...

Client/Server communication, alright...

Okay, he's describing a problem of bandwidth and fidelity, where bandwidth is the limitation in supplying bits to the client/server and fidelity is the detail of the 'model' that it's trying to sling around. What they're doing is trying to offload the problem of a lack of awareness in the programmers into a formalized process.

Network programming is not *very hard*, and while it takes years to learn the ins and outs, stay the gently caress out of the OSI model, it's layered for a reason. It's certainly _esoteric_, but it's entirely logical and while the scale can blow your mind, it's patterned behavior that just iterates really quickly.

huh, API? Why is that man using an OO analogy? Why is he refusing to call it an interface?

Oh Application _Programmer_ Interface, not Application _Program_ Interface, like the rest of the world.

None of this is networking. He's completely handwaving anything to do with networking.

Every 'entity has it's own table' is a key-value store. This is how anything persists; mysql, SQL, NoSQL, Mongo, SQLite, csv, struct. This is not complex.

Updating single values within rows usually requires re-writing the row, although you can serialize a value ad infinitum; overhead comes in how it's stored.

Sending the full entity states periodicially isn't required if you hash the entity table and look for a hash comparison. eg. The md5 hash for 'I am a delicious hawaiian pizza' is always '9b019256aabd5ae063661e6b5b78b7db'. Hash your table, send a comparison, check it, if it differs, update the full state.

Hell, I used to use a system of grouped states back in the 1990s; hashed the full store and three sub-groups because bandwidth was even tighter back then.

"We have not solved the bandwidth problem."

No poo poo, you still have *n problem unless you're loading spreading and doing the backbone over extremely low latency connections, which Amazon is not going to help with.

OMIGOD, they discovered key updates.

HAH subgrouping.

Wait, so their big idea is to binary-pack a key-value pair to send via UDP? That puts them back in the same place they were; TCP would indicate that a value was received, but not changed. I'm not seeing how this isn't entirely circular back to the start of the piece apart from the binary pack?

Lol at the macros being the timesaver.

Oh, dear god, previously we would have needed functions in each class, or read the chapter on polymorphism.

Admission that there's no unit testing that would stop a programmer 'forgetting' a variable.

The API is an _abstraction_ of the concrete class. I'm hoping C++ programmers can correct my poo poo, because there's no actual networking in this piece other than an acknowledgment that they're running into problems with physics. This is normally an _interface_ that strips down a more anal definition or model into a more bite-sized chunk so you don't spin cycles on defining the color of something if you only need it's speed. It's a way of stopping polymorphism hell.

Okay, their network engineer is describing object oriented programming. He's also tacitly admitting that they have a problem with key/value updates on an atomic level because there is finite bandwidth involved. One of the reasons why this is a problem is because there are two types of packet in the world; TCP and UDP.

UDP is just a stream of poo poo. It's thrown at the client and can arrive in any order, or not arrive at all. The sending side doesn't care, it's your problem to store and deal with the stream. This tends to get used with games to do positional updates, which is why tight bandwidth or throttling causes people to jump around and rubberband. UDP packets have a particular size and you want to stay inside that, or the client has to deal with trunca

TCP is pendantic. It has to be received, and received in the right order. A client will ask for a sequence again if it arrives out of order, and if it misses a packet, it'll do the same. Downloading files works like this, because getting chunks of file in the wrong order will make it useless.

if you're firing key/value updates with UDP, then some of them may not get through. Firing with TCP means they get through, eventually. This is why there is an older model of using UDP to do updates, then having TCP rebuild the key/value store. Small, frequent updates of vitals, with larger sync updates for abstracts.

He is _completely right_ about the challenges they still face; the number, frequency and priority of the messaging are _the things that will kill bandwidth_ and limit their instance occupancy, particular unless they shard that server. They're looking at packet size x packet frequency x packet quantity x player and will shag themselves over if they don't build in some of the things that Eve has been doing to calm the packetstorm.

very tl;dr - They've discovered how to do __get and __set over the network between the store and the client; news at 11. Get a goddamned refund.

(A10s make me irrationally angry)

Edit: This -

Not this -

Hav fucked around with this message at 18:27 on Jun 16, 2017

Bofast
Feb 21, 2011

Grimey Drawer
Does anyone know if it would be practical to build a gigantic borg-style cube ship in Empyrion?
Could be fun to just run over other ships in a big cube

Beexoffel
Oct 4, 2015

Herald of the Stimpire

hot balls man no homo posted:

Mine was actually a plan for an underground clubhouse that could only be accessed by going through quicksand like in SMB3 :mario:

I had actually started digging in my granddad's garden.

Nicholas
Mar 7, 2001

Were those not fine days, when we drank of clear honey, and spoke in calm tones of our love for the stuff?

Hav posted:

Thanks. (I don't advise anyone read this rant.)

Okay, the first thing he's doing is mush-mouthing the concept of 'entities' (or objects) with the idea that all the 'entities' (or objects) need to be networked. That's what we call a 'sweeping generalization', or a very reductive model. It is vaguely meaningless.

Handwave the backend communication, that's all Austin...

Client/Server communication, alright...

Okay, he's describing a problem of bandwidth and fidelity, where bandwidth is the limitation in supplying bits to the client/server and fidelity is the detail of the 'model' that it's trying to sling around. What they're doing is trying to offload the problem of a lack of awareness in the programmers into a formalized process.

Network programming is not *very hard*, and while it takes years to learn the ins and outs, stay the gently caress out of the OSI model, it's layered for a reason. It's certainly _esoteric_, but it's entirely logical and while the scale can blow your mind, it's patterned behavior that just iterates really quickly.

huh, API? Why is that man using an OO analogy? Why is he refusing to call it an interface?

Oh Application _Programmer_ Interface, not Application _Program_ Interface, like the rest of the world.

None of this is networking. He's completely handwaving anything to do with networking.

Every 'entity has it's own table' is a key-value store. This is how anything persists; mysql, SQL, NoSQL, Mongo, SQLite, csv, struct. This is not complex.

Updating single values within rows usually requires re-writing the row, although you can serialize a value ad infinitum; overhead comes in how it's stored.

Sending the full entity states periodicially isn't required if you hash the entity table and look for a hash comparison. eg. The md5 hash for 'I am a delicious hawaiian pizza' is always '9b019256aabd5ae063661e6b5b78b7db'. Hash your table, send a comparison, check it, if it differs, update the full state.

Hell, I used to use a system of grouped states back in the 1990s; hashed the full store and three sub-groups because bandwidth was even tighter back then.

"We have not solved the bandwidth problem."

No poo poo, you still have *n problem unless you're loading spreading and doing the backbone over extremely low latency connections, which Amazon is not going to help with.

OMIGOD, they discovered key updates.

HAH subgrouping.

Wait, so their big idea is to binary-pack a key-value pair to send via UDP? That puts them back in the same place they were; TCP would indicate that a value was received, but not changed. I'm not seeing how this isn't entirely circular back to the start of the piece apart from the binary pack?

Lol at the macros being the timesaver.

Oh, dear god, previously we would have needed functions in each class, or read the chapter on polymorphism.

Admission that there's no unit testing that would stop a programmer 'forgetting' a variable.

The API is an _abstraction_ of the concrete class. I'm hoping C++ programmers can correct my poo poo, because there's no actual networking in this piece other than an acknowledgment that they're running into problems with physics. This is normally an _interface_ that strips down a more anal definition or model into a more bite-sized chunk so you don't spin cycles on defining the color of something if you only need it's speed. It's a way of stopping polymorphism hell.

Okay, their network engineer is describing object oriented programming. He's also tacitly admitting that they have a problem with key/value updates on an atomic level because there is finite bandwidth involved. One of the reasons why this is a problem is because there are two types of packet in the world; TCP and UDP.

UDP is just a stream of poo poo. It's thrown at the client and can arrive in any order, or not arrive at all. The sending side doesn't care, it's your problem to store and deal with the stream. This tends to get used with games to do positional updates, which is why tight bandwidth or throttling causes people to jump around and rubberband. UDP packets have a particular size and you want to stay inside that, or the client has to deal with trunca

TCP is pendantic. It has to be received, and received in the right order. A client will ask for a sequence again if it arrives out of order, and if it misses a packet, it'll do the same. Downloading files works like this, because getting chunks of file in the wrong order will make it useless.

if you're firing key/value updates with UDP, then some of them may not get through. Firing with TCP means they get through, eventually. This is why there is an older model of using UDP to do updates, then having TCP rebuild the key/value store. Small, frequent updates of vitals, with larger sync updates for abstracts.

He is _completely right_ about the challenges they still face; the number, frequency and priority of the messaging are _the things that will kill bandwidth_ and limit their instance occupancy, particular unless they shard that server. They're looking at packet size x packet frequency x packet quantity x player and will shag themselves over if they don't build in some of the things that Eve has been doing to calm the packetstorm.

very tl;dr - They've discovered how to do __get and __set over the network between the store and the client; news at 11. Get a goddamned refund.

(A10s make me irrationally angry)

you dont know anything about game devleopment

Beet Wagon
Oct 19, 2015






I only understand a couple of the things you wrote here but this is a very good post, thank you.

Tippis
Mar 21, 2008

It's yet another day in the wasteland.

Hav posted:

(A10s make me irrationally angry)

Edit: This -

Not this -

Better be. If the latter makes you irrationally angry, very mean words will have to be said. :colbert:

Quavers
Feb 26, 2016

You clearly don't understand game development

Hav posted:

Thanks. (I don't advise anyone read this rant.)

Okay, the first thing he's doing is mush-mouthing the concept of 'entities' (or objects) with the idea that all the 'entities' (or objects) need to be networked. That's what we call a 'sweeping generalization', or a very reductive model. It is vaguely meaningless.

Handwave the backend communication, that's all Austin...

Client/Server communication, alright...

Okay, he's describing a problem of bandwidth and fidelity, where bandwidth is the limitation in supplying bits to the client/server and fidelity is the detail of the 'model' that it's trying to sling around. What they're doing is trying to offload the problem of a lack of awareness in the programmers into a formalized process.

Network programming is not *very hard*, and while it takes years to learn the ins and outs, stay the gently caress out of the OSI model, it's layered for a reason. It's certainly _esoteric_, but it's entirely logical and while the scale can blow your mind, it's patterned behavior that just iterates really quickly.

huh, API? Why is that man using an OO analogy? Why is he refusing to call it an interface?

Oh Application _Programmer_ Interface, not Application _Program_ Interface, like the rest of the world.

None of this is networking. He's completely handwaving anything to do with networking.

Every 'entity has it's own table' is a key-value store. This is how anything persists; mysql, SQL, NoSQL, Mongo, SQLite, csv, struct. This is not complex.

Updating single values within rows usually requires re-writing the row, although you can serialize a value ad infinitum; overhead comes in how it's stored.

Sending the full entity states periodicially isn't required if you hash the entity table and look for a hash comparison. eg. The md5 hash for 'I am a delicious hawaiian pizza' is always '9b019256aabd5ae063661e6b5b78b7db'. Hash your table, send a comparison, check it, if it differs, update the full state.

Hell, I used to use a system of grouped states back in the 1990s; hashed the full store and three sub-groups because bandwidth was even tighter back then.

"We have not solved the bandwidth problem."

No poo poo, you still have *n problem unless you're loading spreading and doing the backbone over extremely low latency connections, which Amazon is not going to help with.

OMIGOD, they discovered key updates.

HAH subgrouping.

Wait, so their big idea is to binary-pack a key-value pair to send via UDP? That puts them back in the same place they were; TCP would indicate that a value was received, but not changed. I'm not seeing how this isn't entirely circular back to the start of the piece apart from the binary pack?

Lol at the macros being the timesaver.

Oh, dear god, previously we would have needed functions in each class, or read the chapter on polymorphism.

Admission that there's no unit testing that would stop a programmer 'forgetting' a variable.

The API is an _abstraction_ of the concrete class. I'm hoping C++ programmers can correct my poo poo, because there's no actual networking in this piece other than an acknowledgment that they're running into problems with physics. This is normally an _interface_ that strips down a more anal definition or model into a more bite-sized chunk so you don't spin cycles on defining the color of something if you only need it's speed. It's a way of stopping polymorphism hell.

Okay, their network engineer is describing object oriented programming. He's also tacitly admitting that they have a problem with key/value updates on an atomic level because there is finite bandwidth involved. One of the reasons why this is a problem is because there are two types of packet in the world; TCP and UDP.

UDP is just a stream of poo poo. It's thrown at the client and can arrive in any order, or not arrive at all. The sending side doesn't care, it's your problem to store and deal with the stream. This tends to get used with games to do positional updates, which is why tight bandwidth or throttling causes people to jump around and rubberband. UDP packets have a particular size and you want to stay inside that, or the client has to deal with trunca

TCP is pendantic. It has to be received, and received in the right order. A client will ask for a sequence again if it arrives out of order, and if it misses a packet, it'll do the same. Downloading files works like this, because getting chunks of file in the wrong order will make it useless.

if you're firing key/value updates with UDP, then some of them may not get through. Firing with TCP means they get through, eventually. This is why there is an older model of using UDP to do updates, then having TCP rebuild the key/value store. Small, frequent updates of vitals, with larger sync updates for abstracts.

He is _completely right_ about the challenges they still face; the number, frequency and priority of the messaging are _the things that will kill bandwidth_ and limit their instance occupancy, particular unless they shard that server. They're looking at packet size x packet frequency x packet quantity x player and will shag themselves over if they don't build in some of the things that Eve has been doing to calm the packetstorm.

very tl;dr - They've discovered how to do __get and __set over the network between the store and the client; news at 11. Get a goddamned refund.

(A10s make me irrationally angry)

Edit: This -

Not this -

:golfclap:

This is a good post. I think.

I understand like 10% of it anyway.

trucutru
Jul 9, 2003

by Fluffdaddy
One day they will discover that while sending updates from a client to another is no big deal, sending updates from a thousand clients to each other is a little bit more complicated. (and this across multiple instances running over many cloud servers, lol)

Solarin
Nov 15, 2007

was trying to find something in the last thread and wanted to repost some other greatest hits i found. Something for everyone

literature:

Saw posted:

Erin came into the office and locked the door behind him. He could hear the crashing of glass in the distance. 'That would be the whales breaking through the front door' he thought to himself.
Chris said, "errrr, Erin."
"Yeah?"
"ahhhm, errr, I done another bad thing." Chris replied while putting his hands palms together in front of his chest - almost like he was praying, then he started moving them side to side, keeping his palms together.
"It doesn't matter" Erin said.
Chris said, "ehhhh, Erin."
"Yeah?"
"ummm, I'll go find another, ahhhm, job to work in, if you errrrmmm want me, I uhhh, I uhhh, I might want to become a farmer."
Erin's shoulders slumped down. "No," he said. "I want you to stay with me here."
Chris said "Tell me like you, um, you done before." He then put his index fingers & thumbs together forming a rectangle. Then he closed one eye and looked through his digit rectangle, like a director framing a shot - swooping around the office changing directions persistently.
“Tell you what?” Erin replied.
“’Bout the other umm, guys an’ about, errr, us.”
Erin said, “Game publishers out there, they don’t want PC programmers. They put their stake in console gaming – blowing their chance at real fidelity. They don’t give a hoot in hell about the PC”
“But not us,” Chris cried happily. “erm, tell about us now.”
Erin could hear a repeated thud sounding in the distance – he knew the whales were now working on the doors to the mo-cap studio. “But not us,” he said.
“ahhm, errr, Because…”
“Because I got you an’…”
Chris finally stood still, changing his hands so that his thumbs & index fingers looked like he was pantomiming two pistols, only he kept the tips of his thumbs together, both fingers pointed at Erin. “An’ I got you. We got each other, that’s what, we give a hoot in hell about PC gaming” Chris cried in triumph using the words he’d said so many times before that his mouth didn’t stumble once while reciting them. When he got to “each other”, his right hand alternated between pointing at Erin and them himself.
Chris said, “ah, tell how it’s gonna, ah, erm, be.”
“Look at the monitor over there Chris, and I’ll tell you so you can almost see it.”
Chris turned his head and looked at the monitor. He was so anxious to hear Erin tell their dream once more that his hands stopped their near perpetual motion. He still swayed his body though.
“We’re gonna get a new development studio and this time we’ll finally finish creating the best damned space game ever,” Erin began.
Both men could now hear the sounds of the whales working on breaking through the door to Lesnick’s office. That’s the last one before this one Erin thought. Erin pulled a pistol from the back of his waistband. He took off the safety and put the pistol on the table behind Chris, who was still looking raptly at the monitor as Erin had told him. He stared at the back of Chris’s head – at the area where his head and neck met.
“ahhhm, Go on,” said Chris.
Erin took up the pistol, his hands shaking.
“ummm, Go on,” said Chris. “Tell what’s ermmm, gonna be in the ahhh, game.”
“We’ll have fighters, and capital ships,” said Erin. “An we’ll have space ports, and bio-domes for farming.”
“And we’ll grow millet for the birds!” Chris shouted – once more repeating a phrase he’d said so often before that his mouth managed to say it smoothly.
“For the birds,” Erin repeated.
“And I, errr, I get to feed, the umm, birds.”
“You get to feed the birds.”
Chris giggled with happiness. “And we get to urrr, live off the ahhhm, donations.” Chris started to turn his head back to Erin.
“No, Chris. Keep looking at the monitor, like you can almost see the game.”
Chris said, “I errr, ummm, thought you was, ahhh, mad at, errr, me, Erin.”
“No,” said Erin. “No, Chris. I’m not mad. I never been mad, and I ain’t now. That’s a thing I want you to know.
Chris begged, “Let’s get to it, urrrmm, now. Let’s ahhh, ahhh, ahhh, get to programming it now.”
“Sure, right now.” Erin raised the gun and steadied it; he put the muzzle of it close to Chris’s head and pulled the trigger. Chris’s body flew to the ground and came to rest looking strikingly similar to the T-pose.
The thumps coming from the door to the office let Erin know that the whales had finally made it – he hoped that seeing Chris’s body would satiate their need for destruction and that they wouldn’t require him as a sacrifice as well.

Technology:

Risc1911 posted:

Effort Post incoming...

Just recently Chris Roberts said they are "re-factoring" the server and client net-code. At this point CIG does not have a network solution and will most likely not have one in the near future. What they have is the standard CryEngine network stack and server slightly modified (read hacked) to support a few more players.

We also heard they are sending Megabytes of data to the clients which in turn means they have not even started to optimize the serialization of their objects which is frightening to say the least.

Since they have not even started with persistence they do not have any infrastructure or server code for that either. The only thing they have is an account database for the web users which might be re-usable for the login server but most certainly not for the MMO account server.

People think making a MMO is hard because of all the content and the size. That is unfortunately not true. You can throw a ton of artists and level designers at a project without running into much of a problem, given your workflow and management is competent. They will create your art and content effortlessly when directed by professionals. Content creation scales really well in that regard.

Programming does not scale well at all even with stellar management. Especially not specialized tasks like networking or engine optimization. You can't throw 20 programmers at it, it will only slow things down. These are 1-3 man team efforts by highly qualified developers. Every code monkey can write you a quick sort but can they write you a quick sort in ASM that uses only 64 kilobytes and sorts through gigabytes of data in seconds? You get the idea.

The hardest part for CIG will be to get a stable and fast network architecture up and running. Typical MMO network architecture is extremely complex.

1. Web facing Firewall and Proxy(s)
2. Load balancing servers that spread the traffic to available login servers.
3. Login and account servers with Account Database and Backup Account Database servers.
4. Dispatch servers that hand off clients to the area server manager depending on where the players are.
5. Area Server Manager that dispatches the clients to instances.
6. World, NPC and Item Database plus Backups.

That is just a broad overview and all of these have to be developed and optimized to work flawlessly together under high load. They need to be written from scratch since every game is different. You can of cause buy a solution but it will limit you in the long run.

This is as much of a Hardware as it is a Software challenge. Physically setting up those Servers is critical to the overall success. Using cloud solutions is doomed to be a failure unless you are making a simple browser game or similar simple software. You want hundreds of clients at the same time, you better get your hands dirty and set-up those servers in your own network centre.

I have worked as a C++ Tech optimizing source code for network servers, game engines and financial software and i can tell you that i don't see CIG as a company that will be able to deliver anything remotely stable and playable in terms of network performance. Given time, they might tackle it, we are talking 3-4 years here with multiple failed attempts and serious scaling back of the initial promises.

I think they will be out of money and belly up long before we even get to the whole network infrastructure problems.

Tran... um.. scripts.. er:

SomethingJones posted:

10 for the Chairman: Episode 83
Apr 18, 2016 @ 23:20


Q: Have you had any thoughts on the direction CIG will go after Star Citizen is finished? Do you think you could put all that you as a company have learned and developed into creating additional content?

A: Well yeah absolutely SO I mean... I... I... you know I think I've said this for quite a long time but... um... Star Citizen is never going to be finished, I don't think people say EVE is finished or WORLD OF WARCRAFT is finished now, ah, Star Citizen will go on, that universe will go as long as... every... anyone's out there wanting to play in it which I'm hoping will be for a long time obviously... the games I've mentioned have been TEN YEARS PLUS, ahm, so really kind of, ah.. what we're doing... ah... with STAR CITIZEN is we're sort of WORKING on the game, adding... FEATURES for an incredibly ambitious design I don't think there's any game that's trying to do as much as we're trying to do... aah... ah... so you know degree of difficulty ELEVEN not TEN... and, awh, wuh... we'll have what will sort of determine a sort of... MINIMUM VIABLE PRODUCT FEATURE LIST for what you would call STAR CITIZEN the COMMERCIAL RELEASE, which is basically when you say, "OK! Ah, we've gotten to this point and we've still got plans to add a lot more COOL STUFF and MORE CONTENT and MORE FUNCTIONALITY and MORE FEATURES", which by the way includes some of... the LATER STRETCH GOALS we have cos not all of that's meant to be for ABSOLUTELY RIGHT HERE, on the commercial release... but we'll have SOMETHING that we'll think, "Ok yeah!", now everyone can play it you know, it doesn't matter, you can load it up, it PLAYS really well, it's really STABLE, there's lots of CONTENT, there's lots of FUN THINGS TO DO, different PROFESSIONS, lots of PLACES TO GO... aahm, you know, we've got a really good ECO SYSTEM... aaahh... so when we GET TO THAT POINT, that's sort of when we'll sort of say, "now it's not ALPHA it's not BETA, it's STAR CITIZEN ONE POINT ZERO", and, uh... but of course the team is gonna absolutely continue working on it, it's like if you look at WORLD OF WARCRAFT they continue to add content and features all the time, the same thing happens on EVE, we will update STUFF so we'll continually update the... GRAPHICS, uh.. we'll... we'll ADD, you know... like I said NEW FUNCTIONALITY, new... CONTENT, new SYSTEMS, ahm... you know, coming across additional ALIEN RACES... all that kinda stuff will be there, so, we're gonna work on this as long as you guys let us do... aah, or support us doing it... ahm... because you know, the world's HUGE, you know there's so many THINGS to do out there, it's the same on SQUADRON 42, you know once we've told the... the SQUADRON 42 TRILOGY, then we're gonna move on and we'll have other STORIES we'll tell, that may be they're not necessarily military stories, maybe it's... more an ADVENTURE, you know, sort of a HAN SOLO style adventure... aahm, and there's... a... you know... just... it's a... HUGE UNIVERSE... I mean like you know... LOOK WHAT DISNEY'S DOING WITH STAR WARS... ah, you know they... they've got a... WHOLE ROADMAP of you know, the MAIN ONES and the SPIN-OFF ONES and all the rest of the STUFF... eehhm...

So... ah, you know I think STAR CITIZEN... has a possibly it's a... you know huge interesting universe, we really put a lot of effort into the LORE of it, I mean you see the, you know, from the very beginning, that's one of the things that we made FOUNDATIONAL ahm... you know DAVE and his team constantly is... fleshing out the world in addition to WRITING STUFF for the SQUADRON series as well as doing stuff for the PU... and yeah we wanna make this world as liveable and breathable and you guys ah, you know, spend... many years of entering round it... I think in today's world it's... it's not the way it used to be were it was like 'here's a game' and you put it on the shelf and you come back to another game, a year or two years later and you sort of... ITERATE it or you know you have the GRAND THEFT THREE and FOUR and FIVE come out, I think with us it's... we're just LIVE and we're just continually improving and adding stuff and... more people are... having fun and adventuring round, so... it's kinda like what we're doing right now, but, you know obviously with more features, and more content, more better stability, better performance under our belts and, you know at a certain point we'll say, "yeah, ready for the full general public, there you go"

g0rf

G0RF posted:

Meanwhile, in a conference room overseas, a hastily-assembled gathering of already war-wounded CIG developers stare hollowly at their portly, manic leader.

'It has happened yet again', this they discern before he opens his mouth. Some new triviality, conceived in a fever-dream, born without gestation, will now be made an urgency of the highest-possible priority. This they knew the moment he reached for the red marker.

That bloody red marker!

The last time it was wielded so spastically, it demanded a procedural generation video, one which zoomed out from an extreme close up on the pupil of a soldier aside his ship, then out to reveal the subterranean hangar where he stood, then out higher to include the detailed of the planet Nyx's mining camp, then higher still to reveal the mountainous terrain of a PG planet, then higher still above clouds to finally end in space, the planet now dark ball eclipsing a distant star.

'Oh how fussy he was about that final image!', they remembered. Their leader never said it but of course they knew. It was a subtle dig at the Elite:Horizons logo, a little jab between frenemies to serve notice that "I'm coming for you, Braben. Anything you can do I can do better." Yet it was clear then as it was now there was a hint of fear powering this mania. Insecurity. A sense that without a cunning defense-- even an illusory one-- that he very well might lose customers to that frenemy.

Their leader now starts to spell out their new objective, meaningless couplets ('ultra-immersive', 'mega-fidelity') littering the whiteboard as he mumbles to himself in a frantic staccato.

In only a minute, their new task emerges from the buzzword jumble on the board.

'Arena Commander: Elite Combat' will become their sole priority. A standalone PC title, available for Steam, must be delivered in weeks. He hadn't said dates, or platforms-- yet they knew. They just knew.

Would that he trusted them, that would be enough. This would be a softer monkey wrench than many he's thrown at them. Yet he didn't, and it won't. And this they know before the catering carts start rolling in with enough food to last them 12 hours, though they've been there six already.

And then the session truly begins as he finally turns to address them.

"Let's talk about procedurally-generated hyper-explosions.... Oh-- and cockpit bobble-heads. With damage states. And PS4 friendly. And VR compatibility."

---

And somewhere, amidst the quadrophonic hum of groans and sighs, a smile, lit by the light of a phone held too close, breaks out on a lone developer's pasty face. Rockstar London is calling back. He will take the call, and no matter the offer, no matter the moving expense, he will take the job.

Music:

Truga posted:

Imagine there's no Roberts
It's easy if you try
No spy behind us
Above us only cry
Imagine all the people
Playing Elite today...

Imagine there's no Sandi
It isn't hard to do
Nothing to hate or cry for
And no shaving too
Imagine all the people
Playing Elite in peace...

You may say I'm a dreamer
But I'm not the only one
I hope someday you'll join us
And the world will game as one

Imagine no pledges
I wonder if you can
No need for greed or hunger
A brotherhood of man
Imagine all the people
Sharing all the fun...

You may say I'm a dreamer
But I'm not the only one
I hope someday you'll join us
And the world will game as one

ScruffPuff posted:

I don't know what, they want from me
It's like the more money we come across
The more problems we see

C.I.G., M-O, J-P-G
Every patch, thirty, whole G.B.
Derek Smart alts are mad cause I'm flagrant
Doxxed my wife, and my kids, yeah I claimed that
I troll my own dev team
The Connie, every whale's dream, I made that
Can't you see it's all about me
rear end in porsches, Stimpire tortures
Backers, I told ya, send your cash to me
Think too much, I lose, too much
Star Marine made whales boo too much
I guess you don't get how game dev works too much
Me lose my touch, never that
If I did, ain't no problem to get it back
Where the true players at?
See your Connies in the sky
Janking side to side poo poo can barely fly
While my bitch is getting high, Sandi please
Such a tease, backers see, C.I.G.
I lost my poo poo when I read the Escapist
Watch Braben go, man's got my number
His game, it got to grow, I got to go
Make a fake game trailer, planetary
lizandings, Dangerous
On trizack, leaves my rear end kizzacked

I don't know what, they want from me
It's like the more money we come across
The more problems we see

MFin toops knows video gaymes:

Toops posted:



Ok, few pages back, but I'm gonna try to answer this honestly. I've thought a lot about it. I'm not sorry about the length.

No, I don't think it's possible to make a game of Star Citizen's scope today. It's not because game engines can't do it. It's because we lack the communication and dev tools required to break the art-code boundary.

There's a huge problem in game design that's been there from the start: 3d art assets are tightly coupled to the code that controls them, but they are developed almost completely separately by people with very different kinds of brains. Artists operate in the visual control space. Programmers operate in the logical control space. These modes of thought aren't very compatible. This problem becomes magnified by scope, which is another word for complexity.

The pressure on the art-code boundary rises exponentially with increased complexity. This is why simple games with limited scope have been hitting so hard, and why large projects with unbounded scope keep falling flat. Fallout 4 is a good game, but you can see right where the vision and the execution exploded and had to be walked back to feasibility.

No one can deny CIG has brilliant artists, and very talented programmers. But we can all see what's happening: Some senior 3d artist takes specific vision for an asset and works hard, using every ounce of their technical and creative knowledge to build that asset. Then, through a primitive and largely un-evolved process, they "hand it off" to the engineers, who have poured out every ounce of their capability into a complex framework to control those assets, which meets the technical requirements. Without fail, when the engineers are handed the assets, they go "gently caress. Well, that's not gonna work with the system we've designed." So they hack apart their logical framework, or send it back to the artist to hack apart their visual framework, or both (usually both), and generally squash and dismember the original intent just to get the loving thing to work at all.

Now, throw into this the third wheel, the "visionary," who sees this compromised end-product, and says "Guys, this isn't good enough. Do it again." The artists and engineers know that in a way he's right. He's just an idiot for asking for it in the first place, and not giving them the tools to succeed. But gently caress it, they're still getting a paycheck so they embark again to get it right, and end up make the same exact mistakes.

This is the precise loop that SC is in right now, and the only solution is to reduce complexity. That's the only possible way anything will ever be playable. This is why Derek is spot-on when he says this game won't be delivered as described. But Chris won't do it.

The bottom line is, Chris Roberts is a loving fool for having such hubris and ignorance. You think it's "revolutionary" to take every feature you think is cool and throw it in a soup?? That's the opposite of vision. A visionary sees what other don't, and everyone has seen what he does, and said "nope, that's a terrible idea, because it's not feasible."

Toops posted:

Thanks dude! Nvidia's PhysX engine is fantastic, and comes native to Unity and UE. The guys that designed it are way smarter than I'll ever be, so I try to let PhysX do all the real work. I think of the ship as a simple sphere with mass, then just push on it with forces and twist it with torque. Contrast this with CryEngine which doesn't use PhysX, and CIG's ultima-fidelity-online approach, and tbh I'm impressed CIG's FM is as good as it is. It's immeasurably more complex to do individual thruster forces, and it's a wonder those ships fly at all. Literally every ship CIG makes needs its own custom physics-based flight model code, whereas I can use the same exact script, just tune the parameters, and get a completely different feeling ship based on those params alone. The time saved could be, oh, I don't know, spent working on the actual GAME?

The way I designed the flight model was just forces, torques, and per-axis dampening. When I pull in a new ship model, I just slap the FlightController on there and specify the forces for each direction of flight. Each direction also has a "damping" value, so (theoretically) you can "reduce" the net force in a given direction. Say if your main thrusters get damaged or something, you'd take forceDampeningZ from 1 to 2. Now you have half the force. I haven't found cause to use it yet, because although I register where ramming damage came from, the damage model doesn't care atm. All damage is created equal. If at some point if feels like that would add to the experience, I'll hook it up. But it's good enough for now just to have the hooks flapping around free. I try not to pre-solve problems, or add features "just because" unless the game feels like it needs it.

Then I jacked E:D's "flight assist" idea, so if you're moving but not thrusting in a given direction, the flight model applies a force opposite that direction of travel until you stop. So if you're strafing left, and you stop strafing, your ship will "strafe right" to counteract your velocity until it reaches 0. The only direction this isn't true for is forward/reverse. It feels really good to kind of "power coast" through space.

As for pitch/yaw/roll, same deal. There's a torque value per axis, and a "dampening" value. I set the torque values for each axis to limit rotation in certain directions (another Elite feature). You can pitch (rotate around x axis) much faster than you can yaw (rotate around z-axis). This naturally encourages you to roll your ship and pitch, because looking left and right feels too slow. But it also gives the ship a feeling of weight, and puts you in pilot-problem-solving mode, which I find more fun that twitch-turret-in-space mode. The net result feels way better to me than freelook noclip wallhax mode in SC.

The final bit was "boost," which is just as simple as adding an impulse force in the forward direction. In PhysX, you have several different force types. The one used for thrusters is just generic constant Force:

code:

rigidbody.AddForce(someValue, ForceMode.Force)

but you can add a "blast" of force (which handles jerk values) by:

code:

rigidbody.AddForce(someValue, ForceMode.Impulse)

PhysX handles the rest. No reason to re-invent the wheel.

You can also disable the "flight assist", and you'll get the "decoupled" or "KSP" mode, which is as simple as flipping a boolean to false, and the "anti-velocity" logic won't act on the body. The Neutron Paaarp Horn will temporarily disable people's flight assist if they're in the blast radius. So once again, I spent the time coding it this way to satisfy a gameplay requirement.

The only place things get hairy is working with rotation, really. Rotation is expressed as a Quaternion (4-dimensional projection of 3-dimensional rotation), which has literally no application to reality whatsoever, and so solutions aren't always intuitive.

Jesus loving effortpost man. I hope that wasn't boring.

Toops posted:



I started properly "game dev" coding about a year ago, but I've been a programmer for over a decade. I did work for Sierra doing grunt work back in the late 90's/early 2000's but I didn't learn that much, I was really green. There are particular, ehm, NUANCES to programming for games, but if you have coding experience it's really no different.

I will now share my detailed thoughts, apologies if it's overly geeky.

Game programming tends to be centered around your main "update" loop. At a basic level, if you're running at 60 frames per second, every 1/60th a second the game accepts input and decides how to act on it. For example, the FlightController in SP checks whether the user moved their mouse, and if so, sends the mouse movement to the CalculateRotation method where that mouse movement is translated to flight rotation. Then that rotation is delegated to the ApplyTorque method which, as you can guess, applies torque to the ship's "Rigidbody" physics object.

So this example highlights what I consider the biggest challenge of game development: If you're not careful, game logic will wind up tightly coupled to static objects (ships, asteroids, FPS animation rigs, etc). This is bad because objects tend to change a lot, and there are lots of them. "Objects" in this case are typically made by artists, and they're constantly being updated, modified, refined, etc. The hard part of game programming is writing logic that's agnostic to the object(s) it acts on. This allows your artists and level designers to rapidly iterate without you constantly having to change the logic in kind. The bigger your team, the harder this is to maintain. Great communication in big teams is a necessity.

Along these lines, I've found the need to constantly refactor my code. In Unity, they (unfortunately) teach you to directly reference game objects using the editor "drag and drop" model. Basically instead of the code "finding" the object it wants, they tell you to literally drag the object into the script's variable "field." While this is really fast and seemingly convenient, you can wind up with spaghetti code. Change a variable name and forget to re-drag the object to the variable field, and you get null pointers all over.

I decided in a previous game (that I never finished) to use a message bus whenever possible. This allows objects to "subscribe" to the types of messages it cares about, and other objects can "produce" those message types. Basically, instead of the FlightController sending debug info directly to the debug "UI" object, and anyone else who needs it, the FC just plops "DebugInfo" messages on the message bus, and since the UI controller subscribes to it, it just updates the debug info indirectly. This de-couples the FC and DebugInfo UI, and allows me to change things in one place instead of all N places that read debug info.

So you have to have good design rules, and build a flexible architecture, just like with any program. This is my main criticism of CIG.. I can tell they have tightly-coupled code/config/objects, and this (imo) is why they take so long to do anything, why there's no game emerging, and why they're pretty deeply hosed.



Toops posted:


I will make Humility feel special if it's the last thing I do on this green earth.



Art:


Reharakhti posted:





Here is my 15 minute live sketch/summary of the stream, please do not steal

TODD BONZALEZ posted:

I'M SO MAD about Ryan Archer being a stupid lazy bitch who can't fake a work in progress sequence of a painting that I want to show how you would hypothetically go about painting Sandi Gardiner without tracing something you found on deviantart

Get some references and do a sketch of her awful face. You don't have to trace a picture to get it how you want, you can do a composite of a few references to get the features right



Put down some base colours under the sketch



put down some basic shading to start with to block out the basic shapes. it will look like a piece of poo poo at this point but that's ok. set your brush opacity and flow low so you can start building up shading



set the sketch to a low opacity and start working over it. you'll want a colour palette for quick sampling, with warm shadows and cooler highlights. it'll still look like a rough piece of poo poo but messy is ok at this point you can clean it up later. check your references for where to drop shadows and things, keeping in mind your light source



Add more and more detail, layering your colouring. see the bright turquoise and orange in the colour samples? as this is a painting you don't have to obey reality and monotone paintings looks flat. add a small amount of a bright orange to areas with high blood flow like noses and ears, and cooler blues to areas around the mouth and thin skin around the eyes



When you start adding finer detail it's a good idea to zoom in, it's also a good idea to name your layers so you can keep track of them easily



looking a bit less messy now, she's starting to shape up! i hate looking at her awful harpy face and go for a cigarette at this point



now is a good time to add satan's horns, lest we forget. a personal preference is adding some backlighting of a blueish hue to areas of shadow, makes it look good imo



add some hair detail, it's a sketch so you don't have to go overboard, and we're done!"



follow these steps and you too can be better in every way than a concept artist who has worked for CIG. good luck commandos o9


Saint Isaias Boner posted:


Another quick bit of concept art for Star Plebean:



A new alien race called the Chilldankli (because they like to chill and they do it dankly, it's genius)

They like to help crashed pilots so long as they're cool, but if anyone doesn't want to party or calls the cops they can get pretty rude

They fly around in a growhouse class frigate

don't steal any of this poo poo

Galarox posted:


Well now I could hardly make sandi into dorothy could I?




Galarox posted:


Sgt Parpers Lonely Smarts Club Band




make that pixel bloom that way:

sorla78 posted:


While I agree with your analysis, I think most of us have settled down that the core issue in this case is Chris Roberts. This project will either succeed and deliver something that will transform him into the Steve Jobs of Games Development or it will shatter and burn and destroy Chris Roberts reputation for all times, there's going to be nothing in between, because the issue with CR is that he is a person that doesn't compromise on his vision.

Also Chris Roberts has build a reputation for being quite trigger-friendly in firing people if they clash with his vision - there is this really interesting master class session from Warren Spector with Richard Gariott and at some point they discuss their management styles and Chris Roberts is brought up, it starts at 2h11m - remember these are the people working along his side on various projects. And as far as we know at least Richard is still his friend as well. https://www.youtube.com/watch?v=TuA-zV6B4vQ#t=7861s


Richard Gariott:
When you went to work with Chris Roberts, you did everything exactly the way he said to do it. Period. Or you were fired almost immediately. Eh. No second chances. To me...

Warren Spector:
To the pixel...

Richard Gariott:
Yeah, he was very explicit with what he wanted and you either did it that way or you were not part of his team...

Warren Spector:
I literally heard him say make that pixel bloom that way.

Richard Gariott:
And erm...

Warren Spector:
Bloom that way...

Richard Garriott:
Yeah. So it was a place where only certain individuals could survive it. I mean they had to be one very talented but on the other hand they also had to be very subserviant in their demeanor if you know what I mean.

ATXSperg posts hilarious workplace gossip about CIG austin (link to post history)

atxsperg posted:


another tidbit.
croberts doesn't beleive in normal maps. he thinks their cheating. no normal maps, model it in geometry! drat the torpedoes and melt those graphics cards!
you cant mip verts, so sparklys and poo poo performance for everyone! what are LODs? low resolution geometry??? no! not the fidelity! No lod's! no normal maps!
its possible he doesn't even know what a normal map is anyway. if an artist used them they had to be very silent about it lest they anger the beast.

atxsperg posted:


why not heres some more.

I can confirm that for a long period of time it was considered a firing offense to acknowledge that chris and sandi were married. it was not spoken on or mentioned, new employees where warned about this very soon after starting. people were fired in part because they called her "chris's wife".

drinking in the austin office was banned before noon. lots of new alcoholics were born in cig. one, it was available, two it was one of the only ways some people could make it through the day.
it finally ended when some one who was drunk at 10am spilled some nasty whiskey or some other poo poo on the floor and made the office stink like a 6th street bar after a UT game.

atxsperg posted:


another fun one.
an employee who has personally run out a whole host of good people with his petulant attitude decided one day to rage quit. he drank himself stupid and wandered into the LA night.
a sigh of relief was heard across the cig land, the idiot man-child was gone. maybe work could finally be done? maybe the hemorrhaging of good employees would finally stop?
but alas chris ran him down and not only begged him to come back but gave him a promotion.

atxsperg posted:

someone once poo poo all over the austin bathroom. requiring a pants change mid day. this was before the new atx office. it facilitated new bathroom rules.

bootcha's insider musings:


Bootcha posted:

Post-hockey partial-alcohol musing time:

I got VoidSinger fired.

I'm not guessing many of you readers remember the old LTI laundering days. There was an incident involving a chat/forum volunteer moderator who was advertising she was doing LTI laundering in the RSI chatroll. Goons pointed me at it, seeing I was the big fish with the insider communication track (benphone.gif).

I looked at the evidence, considered the ramifications, and decided that a CIG mod, as lowly a position it was, was still a representative of CIG and should not conduct herself in this manner.

I wasn't very forgiving in my position, many before me had told her what she was doing was wrong, and she constantly made excuses for it. So I tracked her down to her home base forums, where she advertised the service, and confronted her. My position was that she had two options: To cease any further LTI laundering transactions as she was a CIG representative, or cease being a CIG representative. Her response was that she asked Sandi about it and she was cool with it, she had done nothing wrong and felt no need to stop LTI laundering.

Ben was sympathetic, he didn't like her either, but she was "friends" with Sandi so his objections were met with a brick wall.

So the solution was to go straight to Sandi. Long story short I stated my position on the matter. I didn't get a response. Shortly thereafter, VoidSinger was no longer a mod on CIG media.

I guess you can say it was the most productive interaction I had with Sandi. I have no idea what happened to Void after that. I wonder sometimes, but not for very long.

I think back on it, and consider my options at the time. It's a footnote, barely. And yet it was power projection on my part. Made me feel like I was doing something to make the product better. All things considered, I would have done the same again.

Deep down, I still want Star Citizen to succeed, it was something I was a part of, gave time and professional effort to it. I want to have fun reliving old GHSC antics of espionage, theft, and murder-for-hire.

But there's no excusing bad judgement and petty excuses, no matter if it's at the bottom of the company...

Or at the top.

Bootcha posted:

You have no idea how much I wish some of this stuff isn't true.

Spiteful belittling and vicious demeaning of media and CS staff in office. Abusive verbal behavior towards lower development team members. Petty grudges and scare tactics towards senior staff.

I don't care about the money questions, or the production questions. I leave those to Derek and other goons to question and probe.

I care about the treatment of employees. And what I've heard from past and present employees is disgusting, and has no place in this industry.

Yes, Sandi is the primary culprit in these grievances, but they also all make the point to say "Chris could have stopped this". By all accounts, CR has allowed Sandi to run roughshod over the whole organization with no accountability for her actions.

EDIT: I do not do my investigations to "find someone to pin to the wall" for shits'n'giggles. I do my investigations so I can find out what went wrong and why, and to determine responsibility for such actions.

Bootcha posted:

Elijah, man that takes me back...

Back when CIG Austin was in the house basement. So CR was in town, and took the whole team out to Perry's for the lunch pork special and a pep talk. Folks grouped up for car pools, and all except one were ready to go: Elijah. He was finishing up some art and wanted to get to a proper stopping point. I volunteered to stay behind, wait for him, and give him a ride to the lunch.

I didn't pay attention to what he was working on, I spent the time wandering around the office, looking at the white boards and the planning. The whiteboard in the art office was at the time littered with fungal dicks and a Swanson'ed version of Skelton stating "Dicks": Skelton was fond of saying "Dicks" a lot at the time. Anyway, Elijah finished up and we hopped into my pickup and drove downtown. We chatted a little, and he had a call from home. As far as I remember from my not-listening listening of the convo, his wife was expecting, don't remember how far along.

Elijah struck me as an angry artist. I could respect that, I too was an angry man at some point in my life. We talked about the office and how it was small and cramped, that as I understood it there were plans to move into a proper office. But it was mostly a quiet ride, I think he didn't understand I was an investor instead of a crazy backer. Or maybe he did. He got a ride back with someone else.

At some point after the Khartu concept art went live/public, and I *belive* around the Arena Commander launch, Elijah was fired, and having known the man I wondered why. From what I remember, CR sent out a company wide email thanking the programmers for crunching to make the launch of something big, which is why I think it was the Arena Commander launch. Elijah had reply'ed all angerly stating that Chris should also thank the artists for their work too during that time. All accounts stopped after that but I could surmise what happened, that Elijah and CR got into a public spat that gave Peterson little chance to protect/shield Elijah from dismissal.

The general consensus was that Elijah painted a target on his back. I don't disagree with that assessment, but looking back on it I wonder if it wasn't a symptom of something else going on.


:piss: this got longer than i thought. Last thread was really drat good. Rip pg 6666

Hav
Dec 11, 2009

Fun Shoe

Nicholas posted:

you dont know anything about game devleopment

Absolutely not, but I've been doing client-server comms since 200MHz webservers. Built my first subnetting and load-balancing system back in the late-nineties. I know the secret incantations of tcpdump and frequently send pissy notes about SHA1 hashes in this day and age, for fucks sake.

Nothing he said was new, or revolutionary, although they co-opted a bunch of words. Serialization is normally a way of _packing_ an object or structure for storage or transmission. I know nothing about game development, but I do tend the packet moving logic engines and frequently have to talk to people about using too much bandwidth.

For example, we recently had someone deploy a bunch of erlang behind a particular set of ADCs; millions of packets a second, normally around 60% utilisation, but that changes throughout the day. We start getting the alarming about the packet CPU on the devices rising, which then causes the packet queue to be invoked...that's then latency. After that, you get packet drop. After packet drop, you get every fucker hitting 'F5' to refresh the pages.

Turns out that this was caused by Erlang making frequent (around 11k/sec) DNS requests for 'localhost', which raised bandwidth used across the plant by a good 3 million requests a second, which meant that east coast traffic was being routed through SF. When you troubleshoot that kind of issue, you're sampling packets and looking for commonalities, which in this case was an incredibly stupid number of 'NXDOMAIN' failures.

more this -

than this -

trucutru posted:

One day they will discover that while sending updates from a client to another is no big deal, sending updates from a thousand clients to each other is a little bit more complicated. (and this across multiple instances running over many cloud servers, lol)

I wish I could express how _goofy_ this whole thing is simply from this angle. It's doable, but huge compromises have to be made, mainly because the biggest advance in networking technology has basically been in bandwidth, but it doesn't scale well for games that demand accurate positional updates from clients in the hand of filthy lying, cheating gamers.

Tippis posted:

Better be. If the latter makes you irrationally angry, very mean words will have to be said. :colbert:

One of them is a death-machine designed to sap the morale and will of anyone that manages to raise it's ire, and the other is a plane.

Hav fucked around with this message at 19:03 on Jun 16, 2017

D_Smart
May 11, 2010

by FactsAreUseless
College Slice

Hav posted:

Thanks. (I don't advise anyone read this rant.)

Okay, the first thing he's doing is mush-mouthing the concept of 'entities' (or objects) with the idea that all the 'entities' (or objects) need to be networked. That's what we call a 'sweeping generalization', or a very reductive model. It is vaguely meaningless.

Handwave the backend communication, that's all Austin...

Client/Server communication, alright...

Okay, he's describing a problem of bandwidth and fidelity, where bandwidth is the limitation in supplying bits to the client/server and fidelity is the detail of the 'model' that it's trying to sling around. What they're doing is trying to offload the problem of a lack of awareness in the programmers into a formalized process.

Network programming is not *very hard*, and while it takes years to learn the ins and outs, stay the gently caress out of the OSI model, it's layered for a reason. It's certainly _esoteric_, but it's entirely logical and while the scale can blow your mind, it's patterned behavior that just iterates really quickly.

huh, API? Why is that man using an OO analogy? Why is he refusing to call it an interface?

Oh Application _Programmer_ Interface, not Application _Program_ Interface, like the rest of the world.

None of this is networking. He's completely handwaving anything to do with networking.

Every 'entity has it's own table' is a key-value store. This is how anything persists; mysql, SQL, NoSQL, Mongo, SQLite, csv, struct. This is not complex.

Updating single values within rows usually requires re-writing the row, although you can serialize a value ad infinitum; overhead comes in how it's stored.

Sending the full entity states periodicially isn't required if you hash the entity table and look for a hash comparison. eg. The md5 hash for 'I am a delicious hawaiian pizza' is always '9b019256aabd5ae063661e6b5b78b7db'. Hash your table, send a comparison, check it, if it differs, update the full state.

Hell, I used to use a system of grouped states back in the 1990s; hashed the full store and three sub-groups because bandwidth was even tighter back then.

"We have not solved the bandwidth problem."

No poo poo, you still have *n problem unless you're loading spreading and doing the backbone over extremely low latency connections, which Amazon is not going to help with.

OMIGOD, they discovered key updates.

HAH subgrouping.

Wait, so their big idea is to binary-pack a key-value pair to send via UDP? That puts them back in the same place they were; TCP would indicate that a value was received, but not changed. I'm not seeing how this isn't entirely circular back to the start of the piece apart from the binary pack?

Lol at the macros being the timesaver.

Oh, dear god, previously we would have needed functions in each class, or read the chapter on polymorphism.

Admission that there's no unit testing that would stop a programmer 'forgetting' a variable.

The API is an _abstraction_ of the concrete class. I'm hoping C++ programmers can correct my poo poo, because there's no actual networking in this piece other than an acknowledgment that they're running into problems with physics. This is normally an _interface_ that strips down a more anal definition or model into a more bite-sized chunk so you don't spin cycles on defining the color of something if you only need it's speed. It's a way of stopping polymorphism hell.

Okay, their network engineer is describing object oriented programming. He's also tacitly admitting that they have a problem with key/value updates on an atomic level because there is finite bandwidth involved. One of the reasons why this is a problem is because there are two types of packet in the world; TCP and UDP.

UDP is just a stream of poo poo. It's thrown at the client and can arrive in any order, or not arrive at all. The sending side doesn't care, it's your problem to store and deal with the stream. This tends to get used with games to do positional updates, which is why tight bandwidth or throttling causes people to jump around and rubberband. UDP packets have a particular size and you want to stay inside that, or the client has to deal with trunca

TCP is pendantic. It has to be received, and received in the right order. A client will ask for a sequence again if it arrives out of order, and if it misses a packet, it'll do the same. Downloading files works like this, because getting chunks of file in the wrong order will make it useless.

if you're firing key/value updates with UDP, then some of them may not get through. Firing with TCP means they get through, eventually. This is why there is an older model of using UDP to do updates, then having TCP rebuild the key/value store. Small, frequent updates of vitals, with larger sync updates for abstracts.

He is _completely right_ about the challenges they still face; the number, frequency and priority of the messaging are _the things that will kill bandwidth_ and limit their instance occupancy, particular unless they shard that server. They're looking at packet size x packet frequency x packet quantity x player and will shag themselves over if they don't build in some of the things that Eve has been doing to calm the packetstorm.

very tl;dr - They've discovered how to do __get and __set over the network between the store and the client; news at 11. Get a goddamned refund.

(A10s make me irrationally angry)

Edit: This -

Not this -

I read all of that.

ps: http://www.dereksmart.com/forum/index.php?topic=29.msg1696#msg1696

MedicineHut
Feb 25, 2016

Solarin posted:

was trying to find something in the last thread and wanted to repost some other greatest hits i found. Something for everyone

literature:


Technology:


Tran... um.. scripts.. er:


g0rf


Music:



MFin toops knows video gaymes:





Art:







make that pixel bloom that way:


ATXSperg posts hilarious workplace gossip about CIG austin (link to post history)





bootcha's insider musings:





:piss: this got longer than i thought. Last thread was really drat good. Rip pg 6666

Holy poo poo :iia:

I miss g0rf

Bofast
Feb 21, 2011

Grimey Drawer

Hav posted:

Thanks. (I don't advise anyone read this rant.)

Okay, the first thing he's doing is mush-mouthing the concept of 'entities' (or objects) with the idea that all the 'entities' (or objects) need to be networked. That's what we call a 'sweeping generalization', or a very reductive model. It is vaguely meaningless.

Handwave the backend communication, that's all Austin...

Client/Server communication, alright...

Okay, he's describing a problem of bandwidth and fidelity, where bandwidth is the limitation in supplying bits to the client/server and fidelity is the detail of the 'model' that it's trying to sling around. What they're doing is trying to offload the problem of a lack of awareness in the programmers into a formalized process.

Network programming is not *very hard*, and while it takes years to learn the ins and outs, stay the gently caress out of the OSI model, it's layered for a reason. It's certainly _esoteric_, but it's entirely logical and while the scale can blow your mind, it's patterned behavior that just iterates really quickly.

huh, API? Why is that man using an OO analogy? Why is he refusing to call it an interface?

Oh Application _Programmer_ Interface, not Application _Program_ Interface, like the rest of the world.

None of this is networking. He's completely handwaving anything to do with networking.

Every 'entity has it's own table' is a key-value store. This is how anything persists; mysql, SQL, NoSQL, Mongo, SQLite, csv, struct. This is not complex.

Updating single values within rows usually requires re-writing the row, although you can serialize a value ad infinitum; overhead comes in how it's stored.

Sending the full entity states periodicially isn't required if you hash the entity table and look for a hash comparison. eg. The md5 hash for 'I am a delicious hawaiian pizza' is always '9b019256aabd5ae063661e6b5b78b7db'. Hash your table, send a comparison, check it, if it differs, update the full state.

Hell, I used to use a system of grouped states back in the 1990s; hashed the full store and three sub-groups because bandwidth was even tighter back then.

"We have not solved the bandwidth problem."

No poo poo, you still have *n problem unless you're loading spreading and doing the backbone over extremely low latency connections, which Amazon is not going to help with.

OMIGOD, they discovered key updates.

HAH subgrouping.

Wait, so their big idea is to binary-pack a key-value pair to send via UDP? That puts them back in the same place they were; TCP would indicate that a value was received, but not changed. I'm not seeing how this isn't entirely circular back to the start of the piece apart from the binary pack?

Lol at the macros being the timesaver.

Oh, dear god, previously we would have needed functions in each class, or read the chapter on polymorphism.

Admission that there's no unit testing that would stop a programmer 'forgetting' a variable.

The API is an _abstraction_ of the concrete class. I'm hoping C++ programmers can correct my poo poo, because there's no actual networking in this piece other than an acknowledgment that they're running into problems with physics. This is normally an _interface_ that strips down a more anal definition or model into a more bite-sized chunk so you don't spin cycles on defining the color of something if you only need it's speed. It's a way of stopping polymorphism hell.

Okay, their network engineer is describing object oriented programming. He's also tacitly admitting that they have a problem with key/value updates on an atomic level because there is finite bandwidth involved. One of the reasons why this is a problem is because there are two types of packet in the world; TCP and UDP.

UDP is just a stream of poo poo. It's thrown at the client and can arrive in any order, or not arrive at all. The sending side doesn't care, it's your problem to store and deal with the stream. This tends to get used with games to do positional updates, which is why tight bandwidth or throttling causes people to jump around and rubberband. UDP packets have a particular size and you want to stay inside that, or the client has to deal with trunca

TCP is pendantic. It has to be received, and received in the right order. A client will ask for a sequence again if it arrives out of order, and if it misses a packet, it'll do the same. Downloading files works like this, because getting chunks of file in the wrong order will make it useless.

if you're firing key/value updates with UDP, then some of them may not get through. Firing with TCP means they get through, eventually. This is why there is an older model of using UDP to do updates, then having TCP rebuild the key/value store. Small, frequent updates of vitals, with larger sync updates for abstracts.

He is _completely right_ about the challenges they still face; the number, frequency and priority of the messaging are _the things that will kill bandwidth_ and limit their instance occupancy, particular unless they shard that server. They're looking at packet size x packet frequency x packet quantity x player and will shag themselves over if they don't build in some of the things that Eve has been doing to calm the packetstorm.

very tl;dr - They've discovered how to do __get and __set over the network between the store and the client; news at 11. Get a goddamned refund.

(A10s make me irrationally angry)

Edit: This -

Not this -

Thank you for this post.

TheAgent
Feb 16, 2002

The call is coming from inside Dr. House
Grimey Drawer
lol I had forgotten about that spector/garriott talk

citizens, open your fuckin eyes already, goddamn

D_Smart
May 11, 2010

by FactsAreUseless
College Slice
Ho Lee Cow! I got nuthin'

http://massivelyop.com/2017/06/16/star-citizen-around-the-verse-female-character-meshes-engineering-and-the-la-studio/#comment-432209

quote:

Knowing you haven’t released a product to the public in over a decade makes me sleep pretty well. Also knowing that our juggernaut development progression was partially fueled by you, makes it that much sweeter.

:vince:

Tippis
Mar 21, 2008

It's yet another day in the wasteland.

TheAgent posted:

lol I had forgotten about that spector/garriott talk

citizens, open your fuckin eyes already, goddamn

Hmm… Are there any Origin alumni other than Spector that has had any success, or indeed displayed any kind of competence, in the last decade or so?

Beet Wagon
Oct 19, 2015






Hahahaha that dude felt the need to point out "Oh by the way that last part doesn't give you any credit for future success. When I say you helped massively I don't mean you helped massively."

Good God, we might as well just shut this thread down, the citizens are trolling themselves far more efficiently than we ever could.

D_Smart
May 11, 2010

by FactsAreUseless
College Slice

Beet Wagon posted:

Hahahaha that dude felt the need to point out "Oh by the way that last part doesn't give you any credit for future success. When I say you helped massively I don't mean you helped massively."

Good God, we might as well just shut this thread down, the citizens are trolling themselves far more efficiently than we ever could.

It's amazing. The self-owns just never stop.

tooterfish
Jul 13, 2013

quote:

‘Serialized Variables’, the new technology
lol

1500
Nov 3, 2015

Give me all your crackers

D_Smart posted:

quote:

Knowing you haven’t released a product to the public in over a decade makes me sleep pretty well.

I think he is confusing you with CR.

1500 fucked around with this message at 20:25 on Jun 16, 2017

Kellanved
Sep 7, 2009
Well, serialization. It's a bit late to think about this, no?
They can use some easy solution but then it'll be a security nightmare, something that you can't really allow in an MMO. Also depending on the format transmission errors can kill it. I think the rate of flipped bits in usual internets tubes is around 10^-4? They'll need a format robust enough to handle these transmission errors. I know little about networking, so there are likely methods to manage these errors, but they mean more bandwidth used when they don't have much of a budget.

It's not an impossible task, but you need to have a good handle on your codebase, so someone won't be able to see the code's underwear by intercepting those packets. And with their frankencode, I bet it's a pain in the rear end to develop a tidy solution.

Colostomy Bag
Jan 11, 2016

:lesnick: C-Bangin' it :lesnick:

The Xi'an Nox sale begins Friday, June 23rd - $40!

:toot:

Thoatse
Feb 29, 2016

Lol said the scorpion, lmao
https://i.imgur.com/NZkVM3I.gifv

Scruffpuff
Dec 23, 2015

Fidelity. Wait, was I'm working on again?

Kellanved posted:

Well, serialization. It's a bit late to think about this, no?
They can use some easy solution but then it'll be a security nightmare, something that you can't really allow in an MMO. Also depending on the format transmission errors can kill it. I think the rate of flipped bits in usual internets tubes is around 10^-4? They'll need a format robust enough to handle these transmission errors. I know little about networking, so there are likely methods to manage these errors, but they mean more bandwidth used when they don't have much of a budget.

It's not an impossible task, but you need to have a good handle on your codebase, so someone won't be able to see the code's underwear by intercepting those packets. And with their frankencode, I bet it's a pain in the rear end to develop a tidy solution.

I don't see it as a big problem. This is usually something you keep until more than 5 years into the project and then sort of bolt it on last-minute. Once that's done all they have to do is plug in the JPEGS and we've got ourselves the BDSSE.

D_Smart
May 11, 2010

by FactsAreUseless
College Slice

Scruffpuff posted:

I don't see it as a big problem. This is usually something you keep until more than 5 years into the project and then sort of bolt it on last-minute. Once that's done all they have to do is plug in the JPEGS and we've got ourselves the BDSSE.

:perfect:

Thoatse
Feb 29, 2016

Lol said the scorpion, lmao
Will Star Citizen have serialized killers?

MilesK
Nov 5, 2015

Ben Lesnick owns a paper plate with the Wing Commander 3 logo on it.

Adbot
ADBOT LOVES YOU

Tippis
Mar 21, 2008

It's yet another day in the wasteland.

Scruffpuff posted:

I don't see it as a big problem. This is usually something you keep until more than 5 years into the project and then sort of bolt it on last-minute. Once that's done all they have to do is plug in the JPEGS and we've got ourselves the BDSSE.

And anyway, it's not like it's anything new to them. After all, what is a jpeg but a big chunk of serialised variable?

  • 1
  • 2
  • 3
  • 4
  • 5