|
Ranzear posted:I could actually make some weird suggestion that, from a pure skillset and resources perspective, procrastination is better than prototyping. It's too easy for temporary solutions to become permanent hobblings. Generalize your work instead: Look at all the concepts you want to make and write the code that enables some small part of as many as possible.
|
# ? May 2, 2020 20:13 |
|
|
# ? Apr 18, 2024 17:35 |
|
Random question from a non-game dev The new PlayStation is supposed to have something like 5gb/s of io speed through its “pipeline” vs the new Xbox’s 2.4. If you’re making a non-exclusive game that you want to run on both, are you able to actually make good use of that extra speed or do you need to work to the lowest common denominator?
|
# ? May 2, 2020 21:00 |
|
In the old days it used to be you could possibly find some strengths inherent to a certain machine that offsets its weaknesses, like if it has more ram and less processing power you can precompute stuff, etc. Fabien Sanglard's series on Another World is a very interesting exploration on how ports could take advantage of specificities of each platform. Anyway, these days it's more like having graphics settings on a PC game, especially if you're on a middleware engine. You can design the game for the most powerful platform (or even some platonic platform more powerful than all your targets) and tune aspects down for each less powerful version. Like if you're IO limited just throwing away the max mips on each texture is gonna trim your data down significantly, maybe more agressive lod, etc. Obviously this is gonna be profiled and fine tuned for each target platform. One caveat is if your simplifications are gonna directly affect game logic it can be something to watch out for crossplay compatibility. Aiming for the lowest common denominator's gonna be cheaper though, since you only need the least complex versions of your data.
|
# ? May 2, 2020 21:29 |
|
TooMuchAbstraction posted:It sounds like you're saying "build the idealized form of the utility you need, that can be adapted to any future requirement." The consensus I'm aware of is the opposite, viz. make the code that solves the problem you have right now, and hopefully on the next project you'll be able to cannibalize the parts from this project that are actually re-usable. The price you pay is that you'll have to rewrite some parts of your code, even in this project, because as the project advanced you realized that the current code didn't meet your current needs. But arguably you'd have to do that anyway with the "ideal" code because correctly anticipating your future needs is borderline impossible. The advantage is that by the time you need to do the rewrite, you have a much better understanding of what your actual needs are, so you'll be able to write code that is much more likely to be correct for the long term. Yeah, it's a pet peeve of mine that a lot of programmers I've worked with are in the mindset of "give me a detailed specification of everything The System needs to do, and I will descend into my cave for three months before emerging with it complete and perfect." Then whenever someone wants to try something new that wasn't predicted in the specification (because you can never predict everything you're going to want to do) they get shot down with "no, we can't do that. The System doesn't support it."
|
# ? May 2, 2020 21:56 |
|
Especially since the client/user/designer normally won't be able to correctly formulate their needs, only what they think their needs are, so they'll need prototypes and tests to understand which ideas are good or bad ideas. Like the old Ultima Online simulated emergent ecosystem thing that sounded great in pitches and specs but where it turned out the hardware couldn't run it in real time and the players were harvesting resources too fast for the ecosystem to even exist.
Chev fucked around with this message at 23:56 on May 2, 2020 |
# ? May 2, 2020 23:52 |
A while ago I read some advice to not write reusable code, but rather write replaceable code. If it's easy to rip out any part of the code and replace it with something new, you're also flexible. Also not be afraid of copy-paste for chunks that need partial reuse. Refractor the code later when it's more clear which parts make sense to have shared among modules.
|
|
# ? May 3, 2020 00:25 |
|
nielsm posted:A while ago I read some advice to not write reusable code, but rather write replaceable code. If it's easy to rip out any part of the code and replace it with something new, you're also flexible. Also not be afraid of copy-paste for chunks that need partial reuse. Refractor the code later when it's more clear which parts make sense to have shared among modules. I believe that was written by yosposter monocqc
|
# ? May 3, 2020 01:27 |
|
tef
|
# ? May 3, 2020 05:12 |
|
it's tef: https://programmingisterrible.com/post/176657481103/repeat-yourself-do-more-than-one-thing-and but mononcqc is also a very good writer
|
# ? May 3, 2020 14:24 |
|
TooMuchAbstraction posted:It sounds like you're saying "build the idealized form of the utility you need, that can be adapted to any future requirement." Nah, the suggestion was more about looking at one's current list of things one might wanna make and figure out what overlap one could write some reusable code for, not even for future application. When one finally gets halfway into one of those ideas and realizes it's kinda poo poo, one can still turn around and repurpose that modular part. It just gets ahead of trying to reuse something not intended to be reused. Still technically procrastinating on most of your projects by avoiding working on any one in particular? I'm super weird and write netcode first in almost every case, because all of my games are client-server and how one shoves stuff between those dictates almost every data structure. After moving to Rust and basically having a clean sheet, my first major chunks of code have been serialization and barebones netcode just to get most anything off the ground. My fastest way out of a funk is to just write anything, and being non-committal to any particular idea helps. I can agree that this approach might be uncommon. If it isn't good coding practice, it's at least good coding practice. Triarii posted:Yeah, it's a pet peeve of mine that a lot of programmers I've worked with are in the mindset of "give me a detailed specification of everything The System needs to do, and I will descend into my cave for three months before emerging with it complete and perfect." Then whenever someone wants to try something new that wasn't predicted in the specification (because you can never predict everything you're going to want to do) they get shot down with "no, we can't do that. The System doesn't support it." I have a related but egregious peeve with this which I don't expect is limited to gamedev: On the design side, one might say 'hey, every unit has these six stats'. If the programmer just puts their head down and makes a unit class with six named unsigned integers for those stats, they're a moron. Nobody codes that blindly in reality, I hope, but a lack of coders engaging with the design work and designers not expecting questions or pushback before implementation is a very much experienced nightmare for me. Emphasis on 'expecting' communication back too - if I were purely on design I'd be mondo concerned if anything I gave the programmer was implemented without a word thrown edgewise. My Hallmark Personalized Version of Hell is the designer wanting content changes scheduled on a weekly basis. Turn that over in your head for how "the week containing Cinco de Mayo" might be handled. How about like Mario levels; Is it 5-1? Or is it 4-4 because this week started last Sunday which was still April, so we're currently scheduling Month 5 holiday content in Week 4-4? By the way there will be a week 5-5 at the end of May. Week 16 of the year? Starting from Jan 1 or the Sunday before again? Which days of 2020 are Week 46, off the top of your head? What week is Easter 2021 in? Now the designer wants stuff to change on the first of the month as well, and that weekly stuff should alter itself to reference the current month at the same time. Take this bat and beat me over the head now, please. Communication and mutual understanding of both obstacles and goals is hugely important. nielsm posted:A while ago I read some advice to not write reusable code, but rather write replaceable code. If it's easy to rip out any part of the code and replace it with something new, you're also flexible. Also not be afraid of copy-paste for chunks that need partial reuse. Refractor the code later when it's more clear which parts make sense to have shared among modules. Captain Foo posted:it's tef: https://programmingisterrible.com/post/176657481103/repeat-yourself-do-more-than-one-thing-and I like this a lot. It gets at what I idealize but wasn't phrasing right: Isolation of code. I said generalizing, but it's 90% to do with isolation. Fast trashy code that is isolated enough to be replaced later is good, it just so happens that if one has a ton of free time and is writing something common to all their backburner projects one probably might as well write it okay-to-good and still well isolated in the first place. Isolation is always good, no matter how perfect the code inside it is perceived to be, because it works as a testing boundary too. That's my beef with prototyping. I see it as the blind head-down coding spree that produces an exact self-contained solution with no isolation of major structures. I have some horrific monstrosities that came about from 'just prototyping', we're talking 1460 lines of code with nine comments, because everything is just temporary, right? I had to put a prohibition on ever touching that project again, because it's too big to rewrite and too integrated and forgotten to fix. I still play it now and then just to remember the things I learned from it. On the other hand with all of this: Aphantasia. I am confirmed to be a weirdo, especially in designing with concepts instead of visuals. I also figure Rust is forcing me into a ton of strong isolation patterns too. It will almost automatically kick you in the balls for trying to copy and paste some piece of code into a slightly different place. Ranzear fucked around with this message at 18:05 on May 3, 2020 |
# ? May 3, 2020 17:46 |
|
edit: oops, clicked on the wrong thread
|
# ? May 4, 2020 15:46 |
|
Ranzear posted:I have a related but egregious peeve with this which I don't expect is limited to gamedev: On the design side, one might say 'hey, every unit has these six stats'. If the programmer just puts their head down and makes a unit class with six named unsigned integers for those stats, they're a moron. Nobody codes that blindly in reality, I hope, but a lack of coders engaging with the design work and designers not expecting questions or pushback before implementation is a very much experienced nightmare for me. Emphasis on 'expecting' communication back too - if I were purely on design I'd be mondo concerned if anything I gave the programmer was implemented without a word thrown edgewise. Programmers want to make sure what is the something people want to build, because aiming at a moving target generally result in failure, and the life of a programmer is a infinite swamp of failure and error. Nobody is born with the six sense to know when or where or how to add flexibility to code. Is something you learn from experience. Some people may never learn it. Communication is a two ways path. If you can't communicate in a understandable way what you want to build, it would be very hard for somebody else to make that dream into a real thing. Programming is a lot like landing a boing 747 in a road full with traffic, while everyone else in the plane is fighting for the controls: is harder with the autopilot disabled. Tei fucked around with this message at 16:42 on May 4, 2020 |
# ? May 4, 2020 16:39 |
|
Maybe you thought I was a designer making that statement, but I'm putting fellow programmers on blast there. Instead of listening to the designer who very exactly said 'land this 747 in Chicago', you could land at the airport nearest Chicago that supports heavy aircraft? I'm just spitballing here, but I fully expect the programmer to know capability better than the designer and take some responsibility for it. And good communication is making it clear to the designer that one should only land a 747 at an airport. I'm sure they'll get the idea. One doesn't get to declare all provided design will be inadequate and then hide behind the inadequacy of design for why their code can't accommodate at least some changes in the plan. That's just being a dick and I hope mine and Triarii's peeve examples don't actually exist. Ranzear fucked around with this message at 17:33 on May 4, 2020 |
# ? May 4, 2020 17:20 |
|
As a designer with a little bit of programming education, I try to design for extendability and flexibility, but often that's at the expense of usability or performance if no one checks me. The times I've gotten exactly the system I put on paper have generally had worse outcomes than the times the programmers and I worked together to figure out what I actually meant. That doesn't mean I don't spend a lot of time thinking through my system design first, but we have fundamentally different thought processes and collaboration gets us to a better end result. Usually.
|
# ? May 4, 2020 17:41 |
|
Ranzear posted:Maybe you thought I was a designer making that statement, but I'm putting fellow programmers on blast there. Instead of listening to the designer who very exactly said 'land this 747 in Chicago', you could land at the airport nearest Chicago that supports heavy aircraft? I'm just spitballing here, but I fully expect the programmer to know capability better than the designer and take some responsibility for it. Programmers with a more square shape head do exist. But then you learn their strenghs and weakness and play their strengths. Is not that communication is about? learning everyone super powers and super weakness. Don't send superman to mine kriptonite.
|
# ? May 4, 2020 18:17 |
|
Ranzear is quite reasonably expecting developers to have some domain experience and to be able to make basic judgement calls themselves. Nobody's saying "the developer must be a subject matter expert." But at minimum the developer should know the limits of their knowledge and be able to ask "Are we certain that we will only need these six stats in the future?" or "What does it mean to land an airplane?" In industry work in my experience, the way this would go would be something like: customer delivers requirements to the program manager. Program manager, tech lead (/architect/senior dev), and customer work together to hammer out the requirements, propose easier-to-implement alternatives, and try to get everything nailed down in terms of what the customer actually wants. Tech lead converts the requirements to a design, and the design into work items (tickets, deliverables, whatever you want to call them) which then get handed out to individual devs to implement. The program manager keeps tabs on development fairly directly (i.e. interacting with individual devs), and provides clarifications as they are needed. I don't know how it works in industry gamedev. I'm guessing it's usually more informal.
|
# ? May 4, 2020 18:27 |
|
It's especially true on smaller teams where one is likely to take ownership of an entire system. Again hoping these people don't exist, but I figure that 'blind' coding tendency could come from school environments, where every problem presented has an obvious solution and no complications. Treating gamedev work like homework is never gonna cut it. Hell, I find myself questioning my own design when it involves implementing a bidirectional map for a full graph of distances between objects instead of just putting them on a 2D coordinate, but I want a logical distance between those objects to fit better with moving towards or away from one-another in a turn-based system. I'm gonna keep trying to think of a way to cluster them or something, but the actual memory/network cost isn't prohibitive of the brute force solution because there won't ever be more than twelve or so, which is 78 edges.
|
# ? May 4, 2020 20:31 |
|
Tricky Ed posted:That doesn't mean I don't spend a lot of time thinking through my system design first, but we have fundamentally different thought processes and collaboration gets us to a better end result. Usually. Product designer here and big same. My goal is pretty much to never be "THAT designer" who comes up with completely ignorant concepts that aren't buildable, but to do that effectively, I need close collaboration with a dev who can make good-faith judgments about what seems achievable, without them just being rooted in laziness or fear of complexity. Sometimes the poo poo I assume we can't do because it seems too hard is actually super easy in code (or with the right library), and other things that seem very minor are full of hidden complexity. It's honestly one of the differences I've seen as my career has grown to companies with more talented engineers, that they take a more active interest in enabling the design process.
|
# ? May 7, 2020 16:00 |
|
(I am not a actual Game dev, but a dev on other areas and... ) Sometimes something is really easy or very hard or imposible when you try. Theres something that seems easy that turn to be hard, or things that seems easy that turn to be imposible. Only when something is not new, you know what to expect.
|
# ? May 7, 2020 17:12 |
|
This is more for mobile games, but what's the thread's opinion on a mobile game having it's own music? Assuming it's a little game, not something with an epic soundtrack, do you generally turn in-game music off and listen to your own? I'm asking because I've actually managed to finish a little iOS game during lockdown and want to get it released, but haven't done the music yet.
|
# ? May 7, 2020 20:24 |
|
toiletbrush posted:This is more for mobile games, but what's the thread's opinion on a mobile game having it's own music? Assuming it's a little game, not something with an epic soundtrack, do you generally turn in-game music off and listen to your own? I'm asking because I've actually managed to finish a little iOS game during lockdown and want to get it released, but haven't done the music yet. I wouldn't break the bank on it, but people probably expect it even if they only listen to it twice for 10-20s.
|
# ? May 7, 2020 20:38 |
|
I make educational games and music is pretty much my lowest priority, a lot of people don't even play with sound on. That said it does really help it stand out. If you are just making a project for fun or with no budget you can manage with royalty free music.
|
# ? May 7, 2020 23:38 |
|
Yeah, I'd say royalty free music would be a fitting solution here. Having just one or two somewhat forgettable tracks seems to be common in mobile. As it happens there's currently a Humble Bundle of music for content creators which seems all right: https://www.humblebundle.com/software/big-music-bundle-for-games-films-and-content-creators-software
|
# ? May 8, 2020 07:31 |
|
Thanks for feedback! I'll probably do the music myself tbh as its another hobby, I was just wondering how much time I should put into it!
|
# ? May 8, 2020 12:46 |
|
I mean if you make a loving bop like Threes it could end up being like half the reason people play your game!
|
# ? May 8, 2020 16:16 |
|
This may be a bit off base for the thread, but what are your opinions on Star Citizen’s business model and how it affects coalface dev? To this gamer it looks like they started with a pretty ambitious Kickstarter pitch, scope-creeped it into an impossible wishlist with their stretch goals, and then periodically scope-creeped it yet further (via selling new vehicles with novel functions, like being able to build land bases etc, at the most extreme end.) I guess my questions are: - Does it appear that way to you? - Do you think others will emulate their business model of: Pitch big to a fan base, provide early public builds, fund ongoing dev with unit pre-orders + macro purchases? - Would you want to work on such a project? (Totally understand if nobody wants to touch this one XD)
|
# ? Jun 23, 2020 02:16 |
|
Whole lot of sex pests being exposed on the twitter. Facebook, blizzard, Ubisoft, riotgames and Chris Avellone. https://www.facebook.com/photo.php?fbid=3344549348890942&set=a.187807711231804&type=3&theater  Is this normal in games?
|
# ? Jun 23, 2020 09:33 |
|
It's not 'normal' but it is fairly common in a male-dominated industry built on 'dream jobs' and 'passion' and needing to know the right person to land a sought-after job. There's a lot of weird awkward dudes in the games industry who just don't know how to talk to women that make our lives uncomfortable but there's also a lot of genuinely slimy fuckers who are skilled or charming enough that their compatriots would rather cover for them or look the other way than cause a fuss about all the sexual harassment and/or rapes they're doing.
|
# ? Jun 23, 2020 09:52 |
|
Riot is also fairly well known for having a lot of these issues, in terms of industry rumors
|
# ? Jun 23, 2020 16:07 |
|
Pixelate posted:This may be a bit off base for the thread, but what are your opinions on Star Citizen’s business model and how it affects coalface dev? Not sure what coalface dev is. But to your questions: 1) Yes, it appears mostly that way to me. Disclosure: one of my clients way back in the "when I was a game lawyer" times got me a package as part of my fee. Mind you, that was back shortly after the game first crowdfunded. It's *still* not what I'd call "stable" in any sort of form. I spun it up the other day to check it out -- my progression is permablocked because the physics are broken and cause constant crashes on moderately high-end 32/64 CPUs. There are NPCs scattered about the stations that do absolutely nothing but stand there T-posed, or standing on the furniture, ALL over the place. Lighting is broken. LODs are broken. But instead of fixing the existing systems they have and finishing them, they're moving on to expanding into new ones; all while saying "Squadron 42 is up next!" as if that's some kind of panacea, and not going to be equally subjected to the instability and polish issues. As a producer, I'd say they have the trappings of a production process, and the implementation at lower levels, but zero effective executive/senior-level production leadership. 2) If it makes money, people will emulate it. Whether that will attract success in the future, I'm skeptical of. In general though I think the "fund ongoing dev" part is going to continue to be a thing. I'm starting to see more and more games funded by vibrant Patreon communities, for instance. 3) Not unless I was running the show on the production side with clear boundaries and guardrails set as to what we can ethically market vs deliver.
|
# ? Jun 23, 2020 19:53 |
|
The indie equivalent to that I think is something like Dwarf Fortress or Caves of Qud, a.k.a. a passion project that is worked on by a small handful of devs and primarily supported through sales and crowdfunding. But those games involve less pandering to whales and ignoring of playerbase pain points. I assume that "coalface dev" is an analogy to mining coal, a.k.a. the people working on directly producing the game content and logic.
|
# ? Jun 23, 2020 20:14 |
|
Leif. posted:Not sure what coalface dev is. Thanks! (By coalface dev I meant the devs who have to make the dream pitches a reality. I guess I could have just said devs!) e: TooMuchAbstraction posted:I assume that "coalface dev" is an analogy to mining coal, a.k.a. the people working on directly producing the game content and logic. Yep this! Pixelate fucked around with this message at 20:18 on Jun 23, 2020 |
# ? Jun 23, 2020 20:16 |
|
How does someone land a first gig as a composer on a game, and then progress from there? Let's say not quite a AAA title, those seem to go to people who have already done a ton of proven work on other titles, which makes sense. Or they perhaps are already a successful composer outside of games, I'm thinking like Solar Fields, and they are given a shot on a big title. I'm assuming it's a combination of: 1. You have a solid portfolio of work that shows you can crank quality stuff out, so you're at least somewhat qualified 2. You, ideally in person at say some kind of a game dev gathering, meet people who are working on a smaller title, probably something indie - lots of luck involved here in terms of timing of projects, meeting the right people at the right time etc 3. The combination of a good portfolio and a great personal rapport leads them to want to take a leap of faith on you, or at least have you on board for a few months to see how your first few tracks for them come before deciding if to continue the relationship 4. Or you could pull of a Sonic Mayhem and send them your soundtrack to a previous game they made in the hopes they're impressed enough to bring you on board 5. Hopefully the project is successful and you can piggyback on it to build a reputation and get access to more lucrative, higher impact projects, all the way until you become Jesper Kyd or Mick Gordon. Or even if the title doesn't blow up, at least you have real shipped work to your name, which is still better than 0. 6. Go back to step 1, except bigger. What am I missing?
|
# ? Jun 24, 2020 03:55 |
|
DreadCthulhu posted:How does someone land a first gig as a composer on a game, and then progress from there? Let's say not quite a AAA title, those seem to go to people who have already done a ton of proven work on other titles, which makes sense. Or they perhaps are already a successful composer outside of games, I'm thinking like Solar Fields, and they are given a shot on a big title. Know people who make games and be the first person they think of to do audio things. Know people that do audio stuff and be the first person they think of to forward work they don't have time for. The game audio community is tiny even by the standards of the rest of the industry. The solid portfolio/etc works for artists because they probably aren't already known and that isn't necessary to secure work. There are vanishingly few cases of open auditions/etc for audio. Everyone knows someone that they'll turn to, and if they don't have time that person will refer one of their friends. Best advice I can give is to be a cool person who isn't an rear end in a top hat and don't burn bridges. The relationships matter way more than the talent, at least until you're at the top and everyone is actively trying to work with you.
|
# ? Jun 24, 2020 13:34 |
|
leper khan posted:Know people who make games and be the first person they think of to do audio things. Know people that do audio stuff and be the first person they think of to forward work they don't have time for. So sounds like it's much less about being a star and more about being a congenial, reliable and trustworthy human being that others will want to work with and will be able to count on to deliver? Like in.. every other collaborative line of business, pretty much? Also, why do you think the game audio community is that tiny? Is that purely a function of demand, where there isn't enough work to go around, so you only need a few hundred people instead of thousands and thousands of programmers and entry level asset artists?
|
# ? Jun 24, 2020 16:57 |
|
DreadCthulhu posted:So sounds like it's much less about being a star and more about being a congenial, reliable and trustworthy human being that others will want to work with and will be able to count on to deliver? Like in.. every other collaborative line of business, pretty much? Yeah; small teams usually just contract out their audio. Even large studios have maybe a couple audio people on staff and then hordes of programmers/artists.
|
# ? Jun 24, 2020 18:40 |
|
Anyone here relocating to a different state/city due to the work from home situation? I got a few friends at the larger tech companies in California who are currently moving to other western states [Colorado, New Mexico , Arizona] to continue working their jobs... I'm thinking I may ask my Central Texas studio the same thing as I wouldn't mind being in NV, AZ, UT instead of Texas and we already had a few folks working remote pre-COVID. They hinted it may be a possibility in my case but I've heard various things. More competitive positions are NOT adjusting pay [as opposed to Facebook who mentioned lowing pay if you move to a lower COL region]. I heard smaller places switch employees from W2 to 1099 because they don't want to manage out of state paperwork/tax situation/health care. In those cases, some places will give you the extra health care subsidy money they normally pay as your compensation to buy your own plan, and others not so much, just wondering whats going on in the broader sense.
|
# ? Jun 28, 2020 00:43 |
|
I haven't moved, but I do work for a remote company (full time, salaried) from Utah. It has largely spoiled me to regular job setups.
|
# ? Jun 28, 2020 00:53 |
|
Big K of Justice posted:Anyone here relocating to a different state/city due to the work from home situation? New job; currently remote. Going to move to SF whenever stay at home guidance is lifted. So maybe never.
|
# ? Jun 28, 2020 02:17 |
|
|
# ? Apr 18, 2024 17:35 |
|
One side effect of WFH is finding out the house i"m renting has insufficient wiring for amperage and lazy contractors piggybacked too many rooms on one circuit. A bunch of workstations, dev kit + TV's and monitors in one room overwhelm a residential 15Amp circuit pretty drat quick.
|
# ? Jun 28, 2020 04:59 |