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