The Programmer's Hangout
Ninetyninenumbers Q&A - Sep 01st, 2019
63 messages
Nano BOT 01-Sep-19 01:03 PM
ninetyninenumbers is answering sudonym's Question:
Question: What advice would you give to someone who wants to get into gamedev?
ninetyninenumbers: Aside from the obvious of 'do your comp-sci education'... Take time to work on your own games in your free time. This will expose you to some of the realities of making a game such as limitations of hardware, why algorithmic complexity is important to understand, and how to practically use data structures. Aside from the technical advantages learned through this experience, it demonstrates passion in the field. Getting a job at a game company often has you going up against hordes of people - you need to distinguish yourself somehow when coming in with no/little experience.
ninetyninenumbers is answering supergrecko's Question:
Question: Favorite programming language / stack?
ninetyninenumbers: C++, backed by cmake & conan (for package management). Because of cmake + conan, CPP finally starts to feel relevant again. Big ups to the web-dev world for trail-blazing what a 'modern dev' environment feels like.
ninetyninenumbers is answering XEqualsPenguin's Question:
Question: What's the weirdest bug you've encountered when working on a game?
ninetyninenumbers: In a game - sounds are supposed to occur based on events. This is standard. What tends to happen is you cache the most commonly used sound in low memory. This means it's quick to access and you don't risk dropping audio due to missing it's frame targets. Welp, it's important to flush a cache in-between levels otherwise you have metallic footsteps on snow. That took me ages to figure out what the hell was going on - could have been poorly baked game data, the wrong event firing. Yeah, cache staleness. Ever since then, whenever a cache is involved that's always my first hunch
ninetyninenumbers is answering Megh's Question:
Question: how did you get into the industry?
ninetyninenumbers: Aside from getting my computer science degree, I focused on building my portfolio of custom work. My brother and I used to make NeverWinter Nights 2 mods - one of them was actually awarded mod of the year by the community. Having something like this on my resume was really helpful in getting the attention of hiring managers.
ninetyninenumbers is answering Zomatree's Question:
Question: What's one of your favorite technologies?
ninetyninenumbers: Unity
ninetyninenumbers is answering ยง«'s Question:
Question: What is your favourite programming language and why
ninetyninenumbers: C++ - it gives you access and means to do pretty much anything. This also comes with the caveat of you can ruin everything because of yourself.
๐Ÿ‘Œ 1
bloblul 3
ninetyninenumbers is answering Gateway's Question:
Question: What was the most fulfilling project you've worked on?
ninetyninenumbers: This is a complicated one. Title shipped: Battlefront 2 (honestly, it was a great game aside from all the 'other' stuff that was a part of that game). Technical project: Creating a workflow to obtain back hundreds of engine improvements from a game team. Game teams will often have to modify engine code in order to 1) get functionality they are missing in order to satiate a feature 2) bug fixes. It's a massive exercise in coordination to identify meaningful changes, and connect the correct parties together to bring that change back into the mainline of the engine development. I oversaw this project for 2 years, and it was one of the most challenging but fulfilling things I've ever worked on.
ninetyninenumbers is answering Zenohm's Question:
Question: What gets you through the darkest days when the deadlines are approaching and you need to work harder than you feel you can.
ninetyninenumbers: Trying to deliver fun to people that buy the games I work on. It's a labour of love quite honestly.
ninetyninenumbers is answering Djolo's Question:
Question: Do you find it difficult to manage your time? Any tips?
ninetyninenumbers: It can be at times when people constantly interrupt you to ask questions/for help. I've found it important to do the following: 1) write a very discrete list of what you want to get done in a day. 3-5 items. 2) check in on the list half day - if you're off track don't be afraid to cancel meetings or notify folks that you need some heads-down time. Creating a small list gives you an honest representation of what you want to get done in the day, and declutters your mind as you won't be thinking about all the other things you should be doing.
ninetyninenumbers is answering NastyGamer's Question:
Question: When and how did you start coding?
ninetyninenumbers: When I was in grad 5, I wanted to create a game and the most approachable way I could fathom was by building it in a website. This was before google existed so it was a slog through trial and error. Learning javascript was non-trivial haha
๐Ÿ˜น 3
โญ 7
ninetyninenumbers is answering pos1tr0n's Question:
Question: How do you overcome burnout?
ninetyninenumbers: Tough question - I still haven't found a great solution to this and am somewhat in a burnout stage now. What I've found somewhat useful in the past is 1) exercise 2) take 3 weeks off in a row, where the first week is just staying at home, and the next two are spent somewhere else. One piece of advice I picked up while I was working in Sweden was that in order to truly start separating your thoughts from work, you need to spend a week away from work. After that, you can then start to recover mentally.
ninetyninenumbers is answering Discord's Question:
Question: How do you come up with game ideas?
ninetyninenumbers: I don't - really talented people who are game designers do. It's a lot more science and system design than people give it credit for. Because of this, there is focused and concise training in this space.
ninetyninenumbers is answering XEqualsPenguin's Question:
Question: Which do you think is more important, a believable premise/plot or easy-to-learn gameplay?
ninetyninenumbers: Neither really - I think an incredible core gameplay loop will prevail above all. Rocket League is a fantastic example of a easy-to-learn-hard-to-master core gameplay loop that is addictive, easy to fit into a busy day, and fun. I'm definitely not the authority on this though - this is just my opinion.
ninetyninenumbers is answering KAZUHIRA's Question:
Question: Do you think 3D adventure games are do-able by one person only? Story and everything
ninetyninenumbers: If you're using an engine - perhaps. You can get enough free assets off of the unreal/unity spaces where you can cobble together most of it. Your biggest challenge will be art/content.
ninetyninenumbers is answering moss's Question:
Question: What one thing do you wish you could change about the gaming industry?
ninetyninenumbers: Tough question. Fandom is a double-edged sword. It's nice that people care so much about the games the industry makes, but sometimes the vitriol we receive can be unbearable. I've considered leaving the industry several times because of how hateful gamers can be when something doesn't align with their expectations. (edited)
ninetyninenumbers is answering RedKnight's Question:
Question: Have you ever wished certain technologies were more widely adopted in the games industry?
ninetyninenumbers: Oh boy... Yes. A million times yes. I can tell you that the games industry (from an engineering practice perspective) is almost always 5 years behind "web". There is still constant infighting about package configuration management, and using modern source control. I'd like to see more 1) git 2) open source modern package systems used. Also, stop rewriting everything because we are special.
ninetyninenumbers is answering Kyrix's Question:
Question: What are some things you suggest to learn/practice that can help you in your professional career in jobs in the future?
ninetyninenumbers: I'll answer this from a games perspective. Technical 1) Know algorithms and data structures - they are insanely important in games 2) Math - most areas of games development requires an understanding of linear/calc. Soft 1) in games you work with everyone. Artists, QA, management - you need to be able to relate to folks who don't have an engineering background 2) A hobby - having something else that you can grow and put effort into will prevent a lot of heartache in the future. Without hobbies, I've seen people attach their entire identity to the work they do, and it's craft. You will be on a project that fails... that under-performs. If you don't have a life outside of work, this can be a huge blow to your morale & confidence. Save yourself a lot of heartache and don't forget to be someone outside of your profession.
ninetyninenumbers is answering sudonym's Question:
Question: How did you create the marvel that is blaze?
ninetyninenumbers: I was reading through the BBC news one day, and found this image of a kid who was starring right into my soul. I was mortified, frightened.... intrigued. I sent a screenshot to Fox and the rest is history. May god forgive us all.
โญ 49
๐Ÿ† 2
wack 12
baguette_muncher 23
wew_lad 12
blazehaw 19
ezalB 24
australianblaze 24
blazesmart 23
blaze 46
ninetyninenumbers is answering Zenohm's Question:
Question: Who would you call out as a hero, the person or people that helped you get where you are now and inspired you to keep going?
ninetyninenumbers: My older brother.
๐ŸŒŸ 23
aww 10
ninetyninenumbers is answering XEqualsPenguin's Question:
Question: what do you think about ECS? Everyone I've talked to loves it but I don't understand why.
ninetyninenumbers: It's a nice way to think about game system design. It really focuses on SOLID principles - which is always a nice core methodology to follow. It also has a tremendous bias towards reusability, which saves a lot of time. Unity is effectively predicated on the component system - it's why it's such an easy thing to use IMO.
ninetyninenumbers: Einhander - it's a masterful example in using audio to solicit an emotional response so strong that it engages the end user. Symphony of the Night - will always be a classic, and the benchmark for metroidvanias IMO.
ninetyninenumbers is answering Vadim's Question:
Question: if you could go back in time and change your occupation, would you?
ninetyninenumbers: Nope. Best decision I ever made was switching my major from Chemical Engineering to CompSci.
ninetyninenumbers is answering Datberry's Question:
Question: What do you think of your time as team leader and did you enjoy team leading more than actual development?
ninetyninenumbers: I personally enjoy it more than doing actual development. The only catch that comes from that is you need to be able to step away from the gratification of bringing something into existence from nothing (the job of the developer) and get the catharsis of that through your team.
ninetyninenumbers is answering Hope's Question:
Question: A piece of advice you learnt that you could give to a programmer?
ninetyninenumbers: Be open to being wrong. Don't be afraid of code reviews. Never attach your self worth to your code - it can always be improved.
๐Ÿ‘ 11
ninetyninenumbers is answering Akko.isBestGirl(){return true;}'s Question:
Question: What's your favorite thing about your work?
ninetyninenumbers: The people I work with. The games industry attracts a lot of really energetic, and exciting folks.
ninetyninenumbers is answering moss's Question:
Question: What's your favorite ice cream flavor?
ninetyninenumbers: Pistachio
๐Ÿฆ 11
ninetyninenumbers is answering Zenohm's Question:
Question: How do you do proper estimation of what you can produce in a given timeframe, and when have you pushed back on a timeframe you were given?
ninetyninenumbers: Experience is the most useful heuristic here, but it will still usually be way off (sorry development directors ๐Ÿ™‚ ). I've pushed back many times - It's a regular occurrence in my line of work to go back to a product owner/producer and give them the trade-off of what they initially asked for, and why it will take way longer than initially thought. It's important to give people the set of options, and not compromise yourself by having to work endlessly to match an unrealistic ask.
ninetyninenumbers is answering Shady Mike's Question:
Question: What is you opinion on the discussion of OOP vs. ECS?
ninetyninenumbers: They both have their place. Most games/game engines are built upon a philosophical model of ECS, but have tonnes of OOP sprinkled throughout.
ninetyninenumbers: I know it's an unsavoury answer to the question, but in reality there is no pure form of these in any game. Sometimes you need a component rooted entity because it vastly cuts down on your cost of development, and sometimes polymorphism is the clear solution.
ninetyninenumbers is answering hl3c's Question:
Question: What math classes have you taken in the past, and up to what level of math are you currently comfortable with?
ninetyninenumbers: Abstract algebra, discrete match, statistics, calc. I am comfortable enough with calculus to do DSP regularly, and need my fundamentals of linear algebra whenever working in the gameplay space.
ninetyninenumbers is answering Exouxas's Question:
Question: Do you have any rituals before starting a coding session?
ninetyninenumbers: Coffee.
โ˜• 31
coffeeblob 28
Coffee 24
whale_coffee 21
ninetyninenumbers is answering Xetera's Question:
Question: How much college level math do you use when it comes to creating games at your job? Do you use tools that already have the math portion of the problem solved or do you often have to create new solutions to specific problems using your math knowledge?
ninetyninenumbers: Me personally, I use an OK amount. Many other folks I work with use incredibly advanced mathematics for their work. Being on the engine team requires you to build the fundamental systems that people rely on, which often requires a great deal of writing math-related code. The closer in the development loop you get to the 'game' the less math you need on average (as you'll rely on the engine components to do the heavy lifting). tldr; tools engineers in game companies need lots of math. Engineers writing gameplay code will need a lot of linear algebra.
Elliott 01-Sep-19 01:46 PM
(That concludes today's AMA, massive thanks to @ninetyninenumbers for being willing to answer our questions, and our community for participating!)
๐Ÿ‘Œ 2
wait 13
happycat 19
yay 17
aww 22
rooexcited 15
wew_lad 5
eatmyass 3
pogslide 6