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.
 
  • Post
  • Reply
more falafel please
Feb 26, 2005

forums poster



Other than "surviving at home during a pandemic" concerns, I miss the office for the social aspect. Also VPN is terrible and I have too much poo poo on/next to my desk.

Adbot
ADBOT LOVES YOU

more falafel please
Feb 26, 2005

forums poster



Vino posted:

I moved to a new team a few weeks ago and I haven't met anyone in person and I only talk to four people daily and I have no concept of the size or culture of the team, it feels weird. I feed off that social energy and it's been hard for me to connect with the new team as a result. It all makes me rethink the whole "we're all going to be WFH after the pandemic" idea because humans are social animals and like in-person work.

We've hired like 40 people since March, and I don't have any idea how they're making it work. It's gotta suck.

more falafel please
Feb 26, 2005

forums poster



Anyone have a way to talk to your non gamedev friends about why games (and specifically updates) are so much bigger these days?

Like I think it was CoD that announced that their next-gen versions are gonna be 40 gigs larger. I see that and think "texture go up" but I don't think most people who play games get that

more falafel please
Feb 26, 2005

forums poster



Commander Keene posted:

Show them a lovely jpeg at like 50% compression and then show them the same image at PNG compression, then show them the file sizes. Explain that as image and sound quality get better, file sizes increase.

It's more like "when you say you want it in 4K, this is what you mean" but I think people really think that "graphics" is a function of how fast processor go, whereas improvements in hardware basically just mean you can push 4x as much textures through the pipe now, so everything is 4x bigger

also I think people's brains got broken some when the disc the game came on wasn't the entire game anymore. like even in 360 days, since they didn't assume internet access, you couldn't waive a submission failure by saying you'd patch it unless it was online only, and even then, you have 8MB for a patch, so if you're on a data-driven engine, let's hope you have delta-based package loads already. now a 40GB update is normal, because they added some skins for Halloween

more falafel please
Feb 26, 2005

forums poster



Akuma posted:

The structure of that sort of stuff is usually lead by TRCs/XRs/etc., a common way of doing things across all platforms that satisfies all requirements. I can't be sure but I bet starting to connect to a networked service in the background without any notification or ability to stop it breaks one of the first party rules.

If you're connecting to a network service as a user, i.e. logging into a publisher-owned backend with an account linked to the platform online service account, you need to know what user you're logging in as first. Some consoles require explicit action from the user ("Press A button to start") before taking any action on a player's behalf, and logging into a linked service counts.

I imagine a lot of it is just that the game takes a long time to load and initialize all the engine/base game resources before it gets into its main state machine/loops, and the logic about connecting to servers, checking updates, downloading the weekend promotion images, etc is driven by main menu scene/map logic, which isn't ready until a bunch of stuff is loaded.

more falafel please
Feb 26, 2005

forums poster



Chev posted:

Yeah, in a peer to peer structure like the one used in fighting games or strategy games, lockstep, rollback, all those things, the idea is that everyone runs the same code which is why they're named, well, peers. The notion of an authoritative host doesn't exist. You can only check that every peer agrees on the game state within a certain tolerance (which, in the lockstep and rollback model, is zero tolerance thus the whole determinism rigmarole). If a peer drops the others just go on without any need for adjustment.

If you've got a host to migrate then you aren't peer to peer, you're client-server. The whole host vs server thing is really a matter of terminology but for our discussion here they're the same thing. People call them hosts nowadays because the Destiny presentation that popularized the host migration concept for a lot of devs called them hosts. And the concept is simple, really: you put the server/host on a player's machine so you have less server bills to pay. Somehow Bungie calls it "P2P client-host networking" in the same sentence they mention the host has full authority, due to the fact the host is hosted on the same machine as one of the clients, but it's a misnomer, you can't be both P2P and client-host, and there's no actual peer in that networking model, a client's gonna get promoted to host if the host drops.

Maybe this is wrong, but I've always talked about both lockstep and client-server with one client serving as the server as under the "peer to peer" umbrella, as opposed to a dedicated server, which is a separate process, and probably running on a separate machine, probably one you can't physically touch.

Host migration comes into play for any system that uses one of the clients as an authoritative host, even if they're authoritative over the session metadata (XBL session or equivalent). If that player drops, the other players can select who the new host is supposed to be. Depending on the game and the engine, it may be difficult or impossible for a game to seamlessly migrate between player A being the server and player B being the server. For UE3/UE4, which is what I have the most experience with, it's not supported out of the box, and it would be pretty hairy to make it work.

Client-as-server topologies aren't anywhere near as common anymore, the main reason being that cloud servers are Cheap As Hell, Actually, and basically every major publisher has their own backend with a framework for spinning up dedicated server instances. It's usually a better experience for players, and no one has to know what NAT Type is anymore.

more falafel please
Feb 26, 2005

forums poster



djkillingspree posted:

I think this is ultimately a question of terminology and the actually relevant information is what state is transmitted and available to any given machine in the network, what happens when one of the machines in the network drops, and how/to what extent truth is maintained in the system.

From the point of view of what is transmitted, I think a hybrid "client that also is running the server" is closer to a dedicated server than what's sent in what is generally called p2p in my experience. In p2p systems, each peer is required to send whatever information they need to send to each other peer, whereas in either a dedicated server or in a listen server/hybrid client-server or whatever you want to call it, each client sends their information to the host/server and then that host/server updates the state and sends updated state back out to each client. I think the fundamental difference is that pattern (each client sending to each other client, or each client sending to a central place and then the central place replying to each client)

Yeah, I think that's the fundamental difference to developers, I think the fundamental difference to players is "does my game get hosed up when Randy's internet hiccups", or "are we all gonna suffer because Jimothy's mom started watching Netflix".

more falafel please
Feb 26, 2005

forums poster



Chev posted:

Yeah, not technically. But that the server is running on the same machine as one of the clients is the rationale behind bungie wrongfully calling it peer to peer when it's really client-server.

regarding who sends to whom, there are peer to peer topologies where each peer doesn't send to every other peer. This is for practical scaling reasons (since the number of links grows proportional to the square of the number of peers) and, sometimes, NAT shenanigans (you may need a peer to act as an explicit relay between two peers because they can't punch through their respective NATs).

One example of an unusual p2p mesh is the format adopted by the various "casters" netplay modes for fighting games (like MBcaster or rollcaster), where two fighting peers are connected to each other and spectator peers can be added, but each of the fighting peers will only send data to one of the spectators, who in turn will send it to one or more spectators, etc, because some relay lag isn't important for spectators. So the topology ends up being a tree or even line instead of a full mesh.

Yup, I developed the lockstep network topology for an unnamed fighting game whose 9th iteration had a "king of the hill" mode where 8 spectators would be in the proverbial arcade line to play the winner of the current match. P2 would send inputs to P1, P1 would send inputs to P2 and their combined inputs to S1, S1 sends to S2, etc. This was also on the 360/PS3, where there were requirements about how much data you could send upstream, and sending data at 60FPS is a lot of overhead (we sent at lower rates to spectators as well, but still).

more falafel please
Feb 26, 2005

forums poster



That reminds me of how clueless Midway was on pricing, marketing, etc. When WB came in to buy us, they had a meeting to talk strategy with the entire principal/high level business staff and asked why they had dropped MK vs. DCU to $20 like 3 months after release, when the sales were still strong. No one had an answer, and WB estimated we had lost about half the lifetime profit of the game.

more falafel please
Feb 26, 2005

forums poster



Popete posted:

How are ASCII games usually implemented? Are they actual text output using extended ASCII like you would write to a console? Or do they draw ASCII characters to a window using a tileset image?

Typically the former -- there are various control sequences that allow you to print a character at any location on a terminal that supports it. There are libraries that make this much easier (ncurses). If you wanted it to be able to run in either a GUI window with an ASCII tileset or a terminal, it would be pretty straightforward to make an abstract interface that supports both. If I had to guess, that's what I'd guess, say, dwarf fortress does.

more falafel please
Feb 26, 2005

forums poster



mutata posted:

This was ages ago, but we had a Wall of TVs on a big wheeled rack when I worked on Disney Infinity. Anyone who wanted to wheel it into their workspace and hook up their dev kit and see their art on a reasonable spread of 9-12 different makes models and manufacturers.

That reminds me of a bug I found on Major 3D Fighting Game Franchise 9 where screen-space coordinates were being used to determine relative positions of the two fighters, i.e. is this fighter on the left side of the screen. If one player was playing in 16:9 and one player was playing in 4:3, float precision could cause a desync where the clients disagreed about who was on the left for a frame. This was in the last installment and was never found because a) no one played the game in 4:3 except UI folks and b) no one played online except the online folks.

more falafel please
Feb 26, 2005

forums poster



Kanine posted:

Gonna ask a potentially stupid/uncomfortable question for other devs in the thread:

As a junior artist (currently on a contract but looking for more remote work soon) in the games industry how bad for my career is it that I tweet/retweet/like stuff on my public twitter about crunch, unionization, etc. (where I post my art and have a few hundred followers comprised of mostly other people in the games industry)

Am I basically loving myself over and making myself unhireable? Is it enough for me to make my account private when I send out applications or is me doing this essentially getting me put on a literal blacklist that will prevent me from obtaining gainful employment in the industry ever again.

I'm obviously not stupid enough to talk about this on the work slack/discord in the company I'm currently contracting for but several of my coworkers have followed me on twitter since I started there a few months ago.

So I'm a programmer, I've been at my job for almost 10 years, and in the industry for almost 15, so we're in somewhat different situations, but I've had my twitter profile pic be the Game Workers Unite logo for years, and I'm very outspoken publicly about all that stuff. It hasn't been an issue for me, but my company is maybe just sort of cool about it?

That said, I know a lot of people who keep the activist stuff on a private account, but obviously that doesn't have the same reach by definition.

more falafel please
Feb 26, 2005

forums poster



Kanine posted:

also if im applying to a studio, is it reasonable for me to message a current employee of the company to ask what their experiences have been so far with the place?

should i just limit to asking former employees?

If it's people you know outside of that, then sure, absolutely ask them how they feel about it. If it's people you don't know, you can definitely ask them, but it's entirely possible that they'll talk about what you talked about to other folks at their company, including potentially the people trying to hire you. But again, if there's a backstabbing/pledge your life style culture there, you probably don't want to work there.

more falafel please
Feb 26, 2005

forums poster



Most big engines have some form of serialization code for game objects, and typically the save system is implemented with that. Using something like SQLite is good for games with a lot of tabular data, like sports game rosters, RPGs with loot tables, etc, but save data isn't usually very relational.

more falafel please
Feb 26, 2005

forums poster



We're hiring, by the way: https://irongalaxystudios.com/careers

Chicago and Orlando, we do a lot of contract work on major AAA titles as well as some original stuff. Positions in basically all disciplines (I don't think we have audio openings at the moment, but we would certainly take a look at the right person).

No crunch, actually, for real. If you're still in the office when I'm done going for an after-work run, I'm going to tell you to go home. Focus on stability, mentorship, and work/life balance. Everything remote for now, we'll be going back to the offices once things are "back to normal".

more falafel please
Feb 26, 2005

forums poster



I've got 15 years in a couple weeks, and the fact that my skills are pretty specialized to games now is definitely a big part of it. C++ jobs around here anyway are mostly in finance, and I don't want anything to do with that. I could definitely learn to poo poo out CRUD web apps in a year or so, but like, I don't know anything about that, I'd have to learn what a docker is.

more falafel please
Feb 26, 2005

forums poster



al-azad posted:

This is how Supergiant and Valve formed. Double Fine as well. Work for 10 years and capitalize your own company.

Obviously it's possible, but it's not like rank-and-file devs make enough money to self-finance a game after 10 years. It's possible to make the connections that might get you funding from a publisher, but that's not the same thing as "just work for 10 years and you can just start your own thing!" I knew a loooooooot of devs who went indie after the 2008 crash and the "indie revolution". A couple of the companies are still around, but most of those devs got new AAA jobs or switched industries.

The extremely successful indie case here in Chicago is Young Horses, and they started right out of college (working other jobs and running through their savings, a super sustainable model) and aren't exactly rolling in it. They have jobs and a couple of moderately successful, well-reviewed games.

more falafel please
Feb 26, 2005

forums poster



AAA has also gotten much more expensive to produce in the last 20 years -- $100m dev budget is normal for big franchises. Publishers are just starting to test the waters about charging $70 instead of the $60 they've been charging since the 90s. (This has gotten a little better with GaaS, digital distribution, DLC, MTX, etc). In 2001, if you sell a million copies, you're a big success. A million copies of a AAA game gets a studio closed now. Marketing has to be a big budget, because you need to sell way more copies than you used to to break even.

more falafel please
Feb 26, 2005

forums poster



MJBuddy posted:

id is around 200 people give or take right now including their QA team and have some smaller projects that aren't Doom Eternal.

Zenimax (like a lot of big publishers) does also pull people from other studios to lend a hand on projects though, like Machinegames and Arkane working on Youngblood together and I'm sure some folks from other studios did things here and there in Eternal.

Most of these numbers don't include temp QA staff either, though. It's hard to peg down dev sizes inclusive of QA.

Yeah, and I'd be willing to bet they used outsourced art as well. Plus, speaking from experience, plenty of games use outsourced programming support that doesn't end up being in the credits, for any number of reasons.

e: yup, just looked myself up on mobygames, my last credit is a Special Thanks from 2017, and I've been on 3 projects since

more falafel please
Feb 26, 2005

forums poster



thebardyspoon posted:

One thing I've always been curious about, with people in the games industry who lose their jobs when a game comes out and just doesn't hit, like what's happened with V1 Interactive where it actually killed the studio or the crucible devs where Amazon just cut that game lose (and I assume, the people). Or even worse, a game just getting cancelled after being in development for ages so people don't even have their name in any credits for a released product. How do those various things affect like, a programmer, an artist, a QA persons, prospects for future jobs?

Is it basically just accepted by people in the industry as a standard, unfortunate thing that can happen? I've only worked at a big platform holder where I didn't have to worry about the consequences of a thing I worked on failing really but now I'm curious. I guess if a game was ridiculously buggy that'd reflect badly on a QA lead maybe?

It doesn't affect my evaluation, really. I'm well aware of how many different things can cause a project to go terribly wrong, and a rank-and-file developer has effectively no control over any of them. And a title that got cancelled before shipping I treat the same as a title that hasn't shipped yet -- I won't ask what the game was, but I still want to know what you did on it.

I've done some of my best work on titles that sucked or never saw the light of day, and if anyone judged me based on the actual products that came out (or didn't) that'd be pretty stupid. Vice versa too -- just because you worked on a great/successful game doesn't mean I'm automatically going to think higher of you.

more falafel please
Feb 26, 2005

forums poster



I remember there was a 15 minute period where Metacritic was going to start rating individual developers based on the Metacritic scores of their credited titles, and, uh, lol

more falafel please
Feb 26, 2005

forums poster



On the flip side I've seen people coming from bad studio situations where everything was dysfunctional, they just got done crunching for a year, they got laid off, and the game flopped, but they're absolutely convinced that everyone did everything right and it was just the Cruel Hand Of Fate that hosed their entire life up.

People at midway would keep track of how many divorces happened during each project, and a higher number was meant to be a point of pride. It can be a truly hosed up culture

more falafel please
Feb 26, 2005

forums poster



The audience for Blizzcon is press. The fact that they sell tickets is purely so they can get a bunch of money out of cosplayers.

more falafel please
Feb 26, 2005

forums poster



The outsourcing industry is entirely hosed. I don't know how you fix it, unionization doesn't help in countries with lax labor laws.

I'm the weirdo who reads the credits because there's almost always someone I know in there, but I guess that and a travel pillow thanking you for your crunch hours is what you get from 15 years in this industry

more falafel please
Feb 26, 2005

forums poster



In my experience, tools are typically tightly coupled to the engine, especially in the case of licensed engines. UE4's tools are its major selling point. Even in custom engines, the tools (asset importers, baking/build tools, level editors, etc) are so coupled to the engine that it would be hard to make a clean break. You could build a new animation importer for a custom engine, but it would have to do the same thing as the previous one.

more falafel please
Feb 26, 2005

forums poster



If you take networking as a base example -- Unreal has a networking model that works really, really well for things that are kind of like FPS. That means games that have a lot of clients per server, where you want client prediction to make everything look good while you're playing, but have the server resolving everything to be fair, and honestly don't care about frame-perfect simulations (sorry FPS gamers). It makes it easy for gameplay programmers who have never cared about networking to internalize a few axioms and make a game that works really well without having to care about it much.

Then take something like a fighting game. A fighting game needs perfect deterministic simulation between two clients. It's peer to peer, lock-step, which means the same inputs (often literally the button presses) are being fed to the game simulation to simulate the same frame, and hopefully they're doing rollback to compensate for latency. You can't do that in Unreal's actor replication model, at least not without fighting it tooth and nail at every turn and ending up with something lovely. Does that mean you can't make a fighting game in Unreal? No, it just means you don't get one of the big selling points for free, and you might have to fight unreal a bit to make it work.

Same goes for RTS/MOBA games -- usually also lock-step, but with multiple (<=10) clients on a server. The model is completely different.

Could Unreal make totally separate networking models that made these things work nicely? Absolutely. They haven't, though, and they're not going to do it soon, or at least they won't tell you about it soon

Adbot
ADBOT LOVES YOU

more falafel please
Feb 26, 2005

forums poster



Beef posted:

I wonder if Valve had to rip out and replace the Source and then Source 2 network model for DotA2. It's still a client/server model, so likely not a complete overhaul.

I wouldn't be surprised, I've never worked in Source, but I'm pretty sure it's a server-authoritative client-prediction model similar to Unreal, because that's how you make online FPS. Honestly, very little has changed since Quake (it just works better because internet service is better).

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply