DEV Community

IAMA Gaming/AI/Cloud Architect Turned Designer/Product Lead, Ask Me Anything!

Ryland G on June 21, 2019

Hey, I'm Ryland Goldstein a 24 y/o dev based in the bay. TL;DR Built a high performance C game engine optimized for realtime terrain gen Went...
Collapse
 
labibllaca profile image
labibllaca

Very impressive. Is it necessary to know as many design patterns if you need to creade a new software or are there just a handfull of patterns that are actually needed in the area of software engeneering ?

Do you learn new stuff by reading books/docs about it or do you just dive in with a new project and then you see what you need ?

Greetings from Germany

Collapse
 
taillogs profile image
Ryland G

Honestly, great questions.

Is it necessary to know as many design patterns if you need to create a new software or are there just a handful of patterns that are actually needed.

Learning design patterns is a bit like learning phrases in a language. Yes you now know how to say “can I go to the bathroom?” but it doesn’t mean you can say “the bathroom is on fire”.

One of the best books you will ever read is Inside the Machine. If you can understand how a computer actually works, the way you write software will change. You will understand how your code affects the CPU, cache, memory etc. I really believe in learning the lowest granularity concepts you can handle. If you learn enough, you don’t need to focus as much on patterns and instead on recognizing the problems they attempt to solve. Also, I want to be honest with you. Most of the time, none of that crap matters. Minecraft had one of the worst codebases I’ve seen (not as bad as old terraria). It still made the guy 2 billion dollars.

Do you learn new stuff by reading books/docs about it or do you just dive in...

I’ve never really liked reading books to learn software stuff (with the above book as a limited exception). Nowadays I know enough building blocks that I can usually just dive into stuff and work things out as they happen. I definitely use docs.

In fact, I avoid memorizing most random stuff for languages I know, just google it. Don’t clutter your brain with the specific syntax of some JS API you’ll use 1 time a month. If you use it every day, commit it to memory.

Greetings from Sunnyvale, thanks for the great questions.

Collapse
 
smeijer profile image
Stephan Meijer • Edited

I don't think we should share illegal copies of (e)books here. If you want to do justice to the author, please share a link where people can pay for his work.

For example, Amazon: amazon.com/Inside-Machine-Introduc...

Thread Thread
 
taillogs profile image
Ryland G • Edited

Why did you respond to my AMA when this is seems to be about my other post? Also, as I wrote in my article, the book is open source and partially available on Github.

Update: Also I reread and realized that I got confused earlier about the posts and thought you were replying to my very recent article (you can see why probably lol). So sorry about that.

Thread Thread
 
smeijer profile image
Stephan Meijer • Edited

Sorry about that. I haven't read your other post. I was responding to your comment in which you link to that PDF. So my comment is posted at the right place.

And page 6 of that PDF clearly states:

INSIDE THE MACHINE. Copyright © 2007 by Jon Stokes.

All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior
written permission of the copyright owner and the publisher.

Printed in Canada

10 09 08 07 2 3 4 5 6 7 8 9
ISBN-10: 1-59327-104-2
ISBN-13: 978-1-59327-104-6

You write here, "the book is literally open source and partially available on github." Partially? So not all? I guess you should link to the GitHub repo than. Even when the source is published on GitHub, the final product (this (e)book) can still contain copyright notices and have different licenses assigned, as page 6 clearly states.

*edit,
Checking the repo github.com/collectiveidea/inside_t... it is also clear that the author of this book started a second edition. That second edition is not finished, but indeed released under the license CC BY-NC-SA 4.0. That does however not automatically mean that the first edition (your pdf) is also being republished under that license. So you do violate copyright here. And are linking to an illegal share of that book.

The second edition can be read here: inside-the-machine.com/ and contains currently 2 chapters. Where the first edition contains 12 chapters. The second edition is not finished and had its last contribution 4 years ago.

Thread Thread
 
taillogs profile image
Ryland G • Edited

Considering that Jon (author of Inside the Machine) is promoting my tweet about the post, I doubt there is an issue. In fact, he said that it was the best thing he’d see on in a long time.

Thanks for genuine concern, it’s nice that someone is watching out for that stuff.

twitter.com/jonst0kes/status/11460...

Thread Thread
 
taillogs profile image
Ryland G

Also I reread and realized that I got confused earlier about the posts and thought you were replying to my very recent article (you can see why probably lol). So sorry about that.

Collapse
 
labibllaca profile image
labibllaca

Thank you for your quick and detailed response. And the source of the book is great, awesome. It looks like its that old but interesting thoughts about the processes. I guess a quick reading with a speedreader software wont do it. I also need to process the thought.

If I wouldn't know better (I still don't know :D), I'd say you programmed/trained your personal AI to be able answering all the questions here in a very detailed manner, right ?

Have a greate day !

Collapse
 
michaeltharrington profile image
Michael Tharrington

What's it like building a game engine? Do you have any game devs (or game dev companies) that you follow and think are doing particularly cool stuff?

Collapse
 
taillogs profile image
Ryland G

Building game engines has been one of the most rewarding experiences in my life. You get part of the thrill of playing games, but you feel so much more connected to the outcome. I also think that game engines are unique, because they require you to cover such a broad array of topics. My math, and physics skills improved tremendously. It taught me how to do proper architecture design, and showed me the danger of feature creep, and other pitfalls. Obviously it made me a very strong developer, mostly because it forced me to be aware of performance. There are just so many topics you learn about with a game engine, programming, parallelism, performance, design patterns, math, physics, art and much more.

Do you have any game devs (or game dev companies) that you follow and think are doing particularly cool stuff?

I do follow Jon Carmack and the guy who makes "binding of isaac" (probably top 3 favorite game of mine). I think indie is where it's at these days, the big studios have really let us down. I also like everything going on with Godot, and have built a few games with it recently. Grinding Gear Games is also pretty decent, although they were recently acquired by Tenecent.

Collapse
 
michaeltharrington profile image
Michael Tharrington

Nice! Jon Carmack is great! I still have yet to read Masters of Doom but it's on my list!

I actually got to interview John Romero ages ago... and I never published it. 😓I should've... I was trying to get it out there prior to him speaking at a show, then I got buried in other work and ended up discarding it. But, he was definitely a fun person to talk to. The early id team sound very much like indie devs. I remember I dug their ten development commandments.

Thread Thread
 
taillogs profile image
Ryland G

The original ID team was honestly amazing, would have loved to work with them.

You can still publish that John Romero interview. I would read it.

The ten dev commandments only mostly held up with time. A few questionable items these days.

Collapse
 
ausworkshop profile image
Andrew W.

Love your humour! Can I really ask you anything?
I have some questions about cloud hosting.
I'm new here so please be nice, I don't know much about coding sorry.
My background was hardware.

Thread Thread
 
taillogs profile image
Ryland G

Love your humour! Can I really ask you anything?

Hey, of course you can. Feel free to ask away,

Thread Thread
 
ausworkshop profile image
Andrew W.

I'm currently with wpEngine, been contacted by Google as part of my G-suite they are encouraging me to move all my business to the cloud platform. I'm not too experienced so I love having wpEngine with their live chat. Do you think I'd get much support if I moved my website to the cloud or would I be on my own and have to hire developers if I have problems or need to ask a question? What's your opinion. My website is my only source of income for the past 15 years pretty much so it's an important decision to make and a half hour chat with a cloud engineer from G didn't help as they are biased I guess. Thanks for your time I appreciate it.

Thread Thread
 
taillogs profile image
Ryland G • Edited

Pretty tough choice.

The easy part of the answer is my opinion on Google cloud. I think it’s a really decent offering and the support for the actual cloud service is top notch. In fact, snapchat basically made a 2 billion dollar deal with google cloud just for the support. They did this because Google SREs(sort of like dev ops) are full fledged Google engineers. They aren’t contract employees or part timers, they are as qualified as anyone else working at Google.

Now here’s the thing. Unless cost of wpengine is an issue, I think they already run on top of Google cloud or AWS. The only change would be the support. And since it seems like wpengine makes you happy in that area, I would just stick with them.

Hope I helped!

Thread Thread
 
ausworkshop profile image
Andrew W.

Thanks yes that's pretty much what I thought. Thanks for clearing that up for me.

Collapse
 
thefern profile image
Fernando B 🚀

I wanna ask you how many megs your profile picture is? Is loading like dial up on my fast wifi lol. Or is that a gif to imitate slow loading?

Collapse
 
taillogs profile image
Ryland G • Edited

It's a gif. It was a huge deal on twitter the other day

Collapse
 
thefern profile image
Fernando B 🚀

That's hilarious!

Thread Thread
 
taillogs profile image
Ryland G

Glad you think so.

Collapse
 
aldine_ruturi profile image
Aldine Ruturi

Super hilarious, you got me too with that one had to briefly stop streaming before figuring it out.

Collapse
 
jitheshkt profile image
Jithesh. KT

I have a product idea. But it's core part contains a graphics engine (or game engine). Since I am just a coder (who hardly writes python but does lots of JS) do you think I can pull the MVP myself.? Where should I start when it comes to graphics engine?

Collapse
 
taillogs profile image
Ryland G

Without knowing the specifics, there's less advice I can give.

Since I am just a coder (who hardly writes python but does lots of JS) do you think I can pull the MVP myself.?

Even with the little information I do have, I feel comfortable answering yes to this. There are so many free, open source options in the software world. Unless you want to innovate the graphics engine itself, it should be pretty easy to find something that doesn't require much understanding of graphics.

Where should I start when it comes to graphics engine?

Again, hard to answer without knowing more. If you want to keep using JS, there is the threejs framework, which has a moderate barrier of entry. If you want something less technical phaser is also great. I wrote a moderately complex browser based engine in threejs for a talk I gave at Serverless conf last year. That code is available here if you wanted a reference.

As a product guy, I would advise you to really make sure you understand the "problem" your product solves. ALL great products solve a problem. What is the need from users that is being satisfied by your concept?

Remember, as long as it works, users won't care if you built your own graphics engine or used something off the shelf. Focus spending your time on the things that will bring more value to your users.

I hope that answered your question, if not let me know.

Collapse
 
andy profile image
Andy Zhao (he/him)

Haha hey, cheats for WoW 🙃

Do you have any advice for college students looking to build connections?

Collapse
 
taillogs profile image
Ryland G

Haha hey, cheats for WoW 🙃

Someone who knows the addiction.

Do you have any advice for college students looking to build connections?

Focus on a project that you're passionate about and search for others that share that interest, either through meetups, forums or your school. I never have found building connections for the sake of building connections a worthy cause. Instead, develop expertise in an area you're passionate about, and people will notice. If you want a more practical answer, let me know.

Collapse
 
michaeltharrington profile image
Michael Tharrington • Edited

Bonus question: what's your dog's name?

Collapse
 
taillogs profile image
Ryland G

Thanks for asking. Her name is Audrey and she’s a 1 year old border collie. I really really thinks she’s awesome.

bonus pic

She also has her own blog