over 1 year
ago -
Coffee Stain Studios
-
Direct link
Transcript (by Youtube)
0s | oh |
---|---|
3s | this is like old code |
7s | my name is uh G2 and now my name is not |
11s | YouTube |
14s | my name is G2 |
17s | um my real name is Gustav and I work as |
21s | a lead programmer here for coffee |
24s | Studios why do people call me G2 |
28s | because I was the second ago stop that |
32s | started here |
36s | that's how easy it is |
38s | but you're the only good stuff now |
41s | now yes |
43s | should we change it do you want to be G1 |
45s | no no |
47s | okay yeah |
49s | I've been at coffee stand Studios for |
52s | almost 11 years |
54s | and the first game I started working on |
57s | was sanctum 2 and since then I worked on |
60s | code simulator and now on satisfactory |
64s | and I was a programmer on all of these |
66s | games and for the last part of |
68s | satisfactory I have been the elite |
70s | programmer so as a lead programmer I |
72s | have a bit more responsibility like |
75s | getting the bigger picture of the |
77s | project and the and the code and |
80s | planning a little bit around when we do |
82s | stuff how we do stuff interacting with |
85s | the rest of the team to try to think |
88s | I find ways to work |
91s | as a lead I'm also |
94s | responsible for the the perforce |
97s | branches we have perforce is our version |
99s | and control we use |
101s | to submit our code so we have a history |
103s | of all all the changes we have so if we |
106s | are working on a new update we might be |
108s | working here and then we are fixing bugs |
110s | for the current release over here |
112s | and then those two needs to be synced |
114s | right around the release there's a lot |
116s | of things to organize but then after a |
119s | release it's usually more common I get |
122s | more College time to program I do miss |
124s | programming |
125s | yes but I also like helping other people |
129s | with the organizing stuff and make sure |
131s | that they can focus on the programming |
133s | in the programming team we are seven |
136s | programmers on paper |
138s | but we also have a |
140s | Tech artist who is doing a lot of |
142s | programming and a build engineer and I |
145s | consider those two parts of the |
146s | programming team as well for software I |
149s | use jet paints writer for the |
151s | programming part and then I use |
154s | Microsoft Paint for the art part |
160s | uh what Hardware do you use |
163s | what Hardware do I guess |
168s | say the line |
171s | a computer |
174s | in studios we use Unreal Engine it was |
178s | the first engine we used so we have |
181s | developed contact with good contacts at |
184s | Epic and continued using their products |
186s | so the upgrade from 144 to 5 has been |
192s | a big task I think we underestimated not |
197s | the operating of the engine but the part |
199s | of migrating all of our systems to some |
202s | of the new systems provided in |
204s | the version 5. there have been a lot of |
206s | fixing and a lot of bugs to just picks |
209s | up the content when you migrate from one |
212s | system to a new system we used mainly C |
215s | plus for the game code and then we also |
219s | use blueprint when interfacing with the |
222s | UI and the design team blueprints that |
225s | is light code but it's a visual coding |
229s | language so you drag lines between boxes |
233s | basically and it's easy to use for our |
237s | designers and the UI thing to to get |
240s | things going so a typical day for me |
242s | usually start with me getting to the |
245s | office filling up my glass of water |
247s | having a look at my my teams see if I |
252s | have any messages having the standoff |
254s | meeting and after that it's helping Jace |
257s | with programming |
259s | for the rest of the day yep |
261s | all day |
264s | the stand up is where we programmers |
268s | talk together and |
270s | we tell each other what we have been |
272s | working on and what we are going to work |
273s | on and also bringing up any problems |
276s | that would arise during the day or any |
278s | questions we have about the code and the |
280s | project |
281s | things like that code simulator and |
283s | satisfactory is very different games |
288s | I think the day-to-day tasks |
291s | they are a programmer they're kind of |
293s | the same |
294s | but the challenges are a bit different |
297s | so go team is a single player game and |
299s | satisfactory some multiplayer game |
301s | I think that that's one of the big ones |
304s | and such factor is much more scalable |
307s | that the place can build whatever they |
309s | want |
310s | and then go team you you really don't |
312s | have that got him was a little bit more |
314s | free as well I mean we could you could |
317s | add more more stuff like I have this |
319s | idea I had it in three games |
321s | satisfactory you might |
323s | want a whole discussion around it first |
325s | if it fits the game and things like that |
327s | my favorite thing about programming is |
330s | the creativity part like having a |
333s | feeling that that you are creating |
334s | something you are making making a game |
337s | you're making things in a game world |
338s | come to life I mean you have the idea in |
341s | your head I want to make this feature |
343s | for the game or |
345s | like for instance I want to make trains |
347s | and that is a creative process to to |
350s | code and to create solutions for how do |
353s | we have trains in satisfactory so the |
356s | process of making trains I was a |
359s | contributing factor to to having that |
361s | feature and getting people around |
364s | talking about how how do we make trains |
366s | what kind of systems do we need do we |
369s | have signaling how should the train work |
371s | and I started brainstorming on on IDs |
375s | and how we could technically solve this |
377s | issue and I'm also talking to to the |
381s | others involved |
382s | and starting the coding starting the |
386s | people starting the concepting how it |
389s | should look there was some challenging |
391s | parts and there's actually still a bug |
393s | in one of those challenging parts and |
395s | that is to get the trains to schedule |
398s | correctly when you have multiple trains |
400s | sharing the same tracks |
402s | and they can sometimes still look up in |
405s | what's called a deadlock so they stand |
407s | head to head just staring at each other |
410s | and that's not fully sold but that's |
413s | that's a tricky tricky thing to solve |
415s | it's a lot of |
416s | thinking about what happens if they meet |
420s | up in this way what happens if they do |
422s | this |
423s | that's definitely one of the most |
425s | challenging Parts there it sounds like |
427s | it should be simple but that that's a |
429s | big part of programming you can have |
430s | this great idea and then when you start |
433s | doing it you realize oh this is really |
435s | hard this is gonna take some time some |
438s | of the other features I were involved |
440s | with is pipes and the power system I |
445s | think those are two two big ones |
447s | since I've been here since the beginning |
449s | of the project I'll probably have my |
451s | hands on a lot of other features but the |
454s | main ones would be those so talking |
457s | about difficult issues for programmers I |
460s | think the fluid simulation is probably |
463s | one of the harder challenges I've had in |
465s | satisfactory |
467s | me and one of the other programmers in |
470s | Dylan we have |
472s | bounced a lot back and forth on on the |
474s | math and on that is how how do we solve |
476s | fluids like we are not a physicists or |
479s | scientists but |
481s | we have looked at a lot of resources |
483s | online tried to figure out okay how can |
485s | we fake fluids in a pipe |
487s | that's that's hard there is an issue |
490s | that I'm hoping to get some time to look |
492s | into right now you can you can set up to |
495s | buffers one is field and one is zero and |
497s | then you create a pipe between them and |
499s | they start flowing over |
501s | and then they go back |
502s | I'll only continue he definitely like |
505s | this so I wanted to settle like it goes |
508s | a little bit up and then slower and |
510s | slower until it settles at an equal |
511s | level that would be the solution my |
513s | least favorite aspect about programming |
516s | that's uh that's a hard question |
518s | programming can take time and sometimes |
521s | you have a great idea but |
523s | you realize it will take half a year to |
526s | make it so |
527s | that can be a bit of boring |
530s | I don't like merge conflicts probably |
532s | because I do a lot of the mergers here |
535s | at work between the different places |
537s | people work and you need to go to the |
539s | other person involved and say what |
541s | changes did you make |
543s | what should I keep if it's a lot of |
545s | conflict and emerged and you might need |
548s | to poke like five different people to |
549s | solve a resolve all the conflicts it's |
551s | not the work itself it's mostly time |
553s | consuming I did sign up to do problem |
555s | solving and this problem solving so yes |
559s | so the strangers bugged when I was |
561s | helping Jace with programming |
563s | we had a vehicle bug on our test level |
567s | we have like it's a flat level and we |
569s | have a little ramp and some other stuff |
571s | around the level |
572s | so when you would drive the vehicle off |
575s | the ramp in a specific way jumping out |
577s | than a vehicle is disappear when you |
581s | looked around like |
582s | on the map and where's the vehicle and |
585s | on this level we had a portal just the |
589s | designers were testing some things out |
590s | and when you looked at the portal and |
592s | went to it you saw the vehicle like |
594s | group coming out to the work portal |
597s | so that was a pretty funny bug uh we did |
601s | track it down to some wonkiness with the |
603s | math with the with the suspension |
606s | physics those were causing the the |
608s | bounce of the vehicles the bounce is |
610s | like what the vehicle is colliding with |
612s | so the physics went wrong |
614s | and the bonds started to grow like this |
617s | until it touched the portal and entered |
619s | it |
621s | yeah because it was a divide by zero |
622s | with a force |
624s | that's what it was and so so one of the |
626s | forces so the forces caused the vehicle |
628s | to scale infinitely large yeah uh and |
633s | then it touched the portal and then came |
635s | back on the portal with reset physics |
636s | yes |
638s | what advice I would give to |
642s | new programmers or those who want to |
645s | study programming first of all like why |
647s | do you want to learn programming and |
649s | what parts are you interested in |
651s | I would say it's the first thing to to |
653s | think about because that's going to |
654s | affect a little bit |
656s | which resources you get and stuff like |
658s | that so if you want to learn game |
661s | programming |
662s | you might want to learn C plus plus or C |
664s | sharp because that's used by the two two |
666s | major engines out there then I would |
670s | start with the basics learning like the |
673s | basics of the language |
674s | like what what's a variable what's the |
677s | for Loop |
678s | I will start with just the basics and do |
681s | some exercises on that and when doing |
684s | the exercises don't just follow the |
686s | tutorial but play around a little bit |
688s | with them and see what you can do with |
689s | it and I think it's important to choose |
693s | good |
694s | projects to to start |
697s | and not go too difficult like if you're |
701s | just starting to learn programming maybe |
703s | a console program to do rock paper |
705s | scissors is a good first start |
708s | and then move on to like Tic-tac-toe and |
712s | then if you want to learn some |
715s | some more game programming and a little |
717s | bit of math going into games |
719s | I would |
721s | do something like Space Invaders or |
723s | asteroids like those kinds of games what |
726s | programming languages |
728s | or what programming language you choose |
731s | doesn't matter too much I would say |
734s | because the basics of programming will |
737s | stay the same so if you start in one |
738s | language it will be easy to learn |
740s | another one |
741s | but if you if you do want to get into |
744s | game program then maybe |
746s | you shouldn't learn like a language used |
749s | mainly for web development things like |
751s | that some languages are easier to learn |
753s | yes |
754s | some languages are easier to get results |
757s | in |
758s | C plus plus is |
760s | known for being like |
762s | hard and boring to learn because you |
765s | spend your first hours days weeks just |
769s | in a console application |
771s | giving text input and text output that |
774s | can be a bit be motivating |
777s | but I wouldn't stress it too much which |
780s | one you choose |
781s | is there anything that you would like to |
784s | say maybe to the community I do love |
786s | your your feedback |
789s | to us developers because I I also play |
792s | the game and I love this game and I |
795s | I really like when I get some feedback |
798s | on on the features like oh we would be |
801s | cool to have this and this |
802s | but also getting cool saves sent by |
806s | people and just be amazed at what they |
809s | built programming is pretty cool yes and |
813s | good luck to everyone out there who is |
815s | trying it out |
817s | foreign |