actorartathleteauthorbizcrimecrosspostcustomerservicedirectoredufoodgaminghealthjournalistmedicalmilmodpostmunimusicnewsworthynonprofitotherphilpolretailscispecialisedspecializedtechtourismtravelunique

GamingIamA Recent College Graduate/Game Developer who just released his first game! AMA!

Mar 31st 2018 by hobofreddy55 • 27 Questions • 644 Points

My short bio: Hello! My name is Jacob Dunbar and over the last three months I spent my time developing the game "Mayor! Mayor!" that has just been released on the Google Play Store. This past December I graduated from Purdue University with a degree in Computer Science and wanted to pursue my passion for games and game development! Ask me anything about doing game development full time, computer science, Unity, or whatever!

My Proof: Website: http://www.mayormayor.com Twitter: https://twitter.com/JacobFDunbar Google Play Link: http://play.google.com/store/apps/details?id=com.JacobDunbarGames.MayorMayor

EDIT: Thanks to everyone for the questions and thanks to the mods for taking time out of their weekend to help fix the automod issues we were having earlier. I think I answered just about every question posted, but if you have any more I'm game to keep going! Thanks again!

Q:

Honestly? This was the recent post on r/pics that sparked my comment about artists. There's a lot of people that post on reddit to drum up their business, that would otherwise wallow in mediocrity if reddit didn't exist. I get it...reddit is the new marketing tool to reach the masses and the first people to take advantage of the new advertising medium are going to be the ones to reap the biggest rewards. But it doesn't mean that what they're selling is better than the rest.

A:

Sorry for the confusion! I had posted a comment on this post very early but it seems like it never went through some how...copy pasted that comment to post it again about a half hour ago but it still seems like it isn't showing up! Here's a link to an imgur screenshot of my comment for proof: https://imgur.com/a/n0ZpG

EDIT Since this post actually seems to be showing up for other people here is my original comment to the parent: "Yes, I developed the game solo aside from like 2-3 sound effects. Everything except those including the music, art, and programming was done by me. The 3D art/animation stuff wasn't exactly part of my degree. My degree is computer science but with a concentration in computer graphics and visualization, but that is more related to working on the software like Blender/Maya used to create art than the art itself. I did take an Intro to 3D Animation course that taught me to use Maya, but I used Blender for this project which was self/YouTube-taught.

I did search search for jobs but did not have much luck but also was planning on doing development during that time too. The jobs I applied to were mostly game-related stuff though and without a ton of prior experience I wasn't expecting to hear back from many of the places I had applied to."


Q:

Hey guys OP messaged me and his replies are not showing up and is trying to get it figured out with the mods. He said my comment was one of the first he replied to and left this link as proof

https://imgur.com/a/n0ZpG

A:

Thanks for helping! I realized that it must have been some issue with the text of the comment I made being automodded so I made another comment above without the original comment.


Q:

What kind of classes/activities/events would you recommend for a teenager who wants to start learning about game development?(I have a 14 yr old who is determined to start studying about it this year)

A:

I highly recommend using an engine like Unity or Unreal to get started. Unreal has a pretty good visual-scripting system (think drag and drop boxes) that can be good for beginners but I don't have experience with it. My suggestion would be for them to look into learning how to program and to look at doing computer science in college. There are colleges that offer game design or game development degrees but I feel that computer science gives you a very good fallback if neither of those work out (or if they just decide they don't want to work in games later). Unity can be a bit of a leap if you're just starting out but they'll learn a lot by trying it. I highly recommend the YouTubers Brackeys (/u/brackeys) and Sebastion Lague as their videos have helped me a lot in the past and are always enjoyable to watch! If they're very interesting into game design as well they should check out the GDC youtube channel and watch some of the talks on there.


Q:

thank you for the suggestions! He has really picked up on the interest and I had no idea where to even begin with it. He's already taking a couple advanced computer science classes within his high school so I guess he's got a jump on it too and I didn't even realize it would go hand in hand! I'll have him check our the YouTube channels also! Congrats on the release of your game too!

A:

Thank you very much! Glad to help :)


Q:

I think Lua is a great language for learning those foundations, for that very reason.
It's maybe a bit too forgiving, for example not needing semi-colons rich most other languages do require, and it's very easy to create global variables which will often bite beginners in the arse later on.
For the basics of variables, functions, loops etc though, it's very easy to get your bearings.

A:

I agree with that too...I feel like it varies between people and people will learn better one way or the other. Thanks!


Q:

Ill ask the obvious as it pertains to me as well, any advice for someone wanting to get into development?

A:

I would never just jump straight into doing development full time without a good plan and some experience. If you are looking at seriously doing it then I would begin by learning a game-making method, usually an engine like Unity, Unreal, or GameMaker. I had about 3 years of experience with Unity before starting this project. Not all of that was full-time working with Unity but I would do side projects here and there for fun. PM me if you want any more advice or have any specific questions!


Q:

What kind of games would you like to develop? Do you want to work for yourself or for a major developer?

A:

The range of game ideas I have is pretty broad, but aren't super fleshed-out. I know I'd like to work on a goofy multiplayer shooter of some kind and I really like the platformer genre but would need an interesting enough mechanic to justify that.

As nice as it was to develop this game solo I don't know that I'd want to continue to work entirely alone. I'm not the greatest at art (why I do a lot of pixel/low poly stuff) and I think getting someone to do that end of things would produce a better result and allow me to focus more on the development of game from a design/programming side of things. I'd also prefer to not work at a major developer but doing so would probably give me good experience. A small team of dedicated individuals would be my ideal situation!


Q:

How hard was it to keep up the motivation when making this game? Did/do you wonder if you made the right decision by not going into a "real" job? Assuming you were working on this full time independently, you must have been a little worried financially

A:

I have been worried financially but am lucky to have saved a bit of money up from an internship this past summer as well as a bit of support from family! I actually thought about the "real job" aspect of it yesterday as there was an open position available at the company I had worked at but I realized that I wanted to complete a game project and that I wouldn't have been able to maintain the motivation to work on it in the evenings after having done a full day at work already. Plus, even when I was at that job over the summer, all I could really think about was how I would much rather be doing this type of creative work than just normal software development (though I do love programming).


Q:

I'm a software developer who has toyed with Unity and other game development tools at a surface level, but always lose motivation to complete anything.

How did you get through the very beginning stages of development? Basically, how did you get things started to a point where you could iterate/improve? When I've tried to begin a project in a game engine, I always feel like it's a multi-dimensional chicken and egg problem between graphics, game mechanics, and level design.

A:

I should probably mention that this is not the first project I've worked on on Unity, just my first "actual" game. I've been using Unity for about 3 years or so developing fun projects on the side (and two for coursework). My suggestion is starting out with the very basics to learn the engine and C# if you're unfamiliar and then work from there. Getting a prototype of something, even if its small, is a huge confidence boost. It can be a lot of fun to tinker around with the infamous Roll-A-Ball tutorial and try to add mechanics to it. I can't recommend the YouTubers Brackeys and Sebastian Lague enough...their Unity tutorials are awesome.

For this project I started with a really rough prototype that was just some key commands to add buildings (colored rectangles) and some text displaying how much money you had. After that I developed the whole grid tile system and added some simple buildings and just kept going from there. I think doing development with minimal assets (quite literally greyboxing) but it helps to add some visuals early on depending on what your game is. I recommend this GDC talk where one of the speakers talks about adding "pizazz" to your game early to keep motivated: https://www.youtube.com/watch?v=d8QAVGeEj-U


Q:

Favourite animated movie?

A:

I don't know that I can narrow it down to just one, but here are my categorized favorites: New Disney: Big Hero 6 (close seconds are Tangled and Moana) Old Disney: The Lion King Other: Howl's Moving Castle (most Miyazaki/Studio Ghibli is awesome)


Q:

What programming language do you use to develop games with? Also where do you start if you want to start developing, like I’d imagine it’s not as simple as opening up visual studio and writing some code, compiling it and magically having a game

A:

Using Unity you can choose between C# and Javascript, of which I use C#. I highly recommend trying Unity especially if you have some past programming experience...there are loads of YouTube tutorials available to help you get started. You'd be surprised how quickly you can get a very simple game up and running in Unity (check out the Roll-A-Ball tutorial from Unity). Even making something super simple like that is a huge excitement and can give you the encouragement to keep going.


Q:

Game looks nice! Did you do the assets yourselves or just work with someone or purchase them? I’ve felt that to be the biggest hurdle in game development. Any advice on the assets part would be appreciated!

A:

I created all of the assets myself using Blender. That's partially why I chose to do a low-poly style but I wanted to keep it simple regardless. As far as assets go there are loads of free asset packs available online, many of which are free to use for commercial use as well. I recommend checking out OpenGameArt.org and Kenney assets (including Kenney's Asset Forge software for simple 3D models).


Q:

went to University of Wisconsin. the requirements were:

basic electrical engineering (to understand how the physical machine works).

machine language (to understand how hex commands move data to registers and perform operations - add reg 1 to reg 2 store result in reg three. if reg 1 is greater than reg 2 store reg 3 to HDD, etc).

basic programming. (we did Java and C).

a class where we wrote our own programming language (understand how parsers work which makes any language your bitch).

a class on operating systems (learn how that all works, many of us added to UNIX open source code with our work optimizing facets of memory allocation or HDD tables).

various classes on algorithms (sorting and traveling sales men, etc. learn to optimize), AI (we needed to make a program that would read hand writing and teach itself to be better with every fail - like the post office zip code reader), networks (TCP/IP), data compression (graphic and sound, lots of wavelets and splines - fast Fourier transform), lots of linear algebra (store a 3D object and project into 2D, it is all matrix algebra).

I am likely forgetting stuff but it was a cool path to understanding how what I type on the keyboard goes into the CPU and does stuff.

A:

I'm sorry for getting to this comment late...been troubleshooting reddit issues. I actually don't have anything to add though since the other commenters already gave you some really useful info/advice! Good luck!


Q:

Are you planning to branch out to other platforms or do you think mobile is the right one for your style?

A:

For the style of game that it is (especially having the idle genre aspects it does) I felt that it made the most sense to release for mobile. I tried to make the game so that it could be enjoyable to play it continuously or to check a couple times a day. That said though putting it on desktop platforms would just require a rehaul of the UI and Unity takes care of the rest on its own.


Q:

Hey, thanks for doing this! I wondered if you could give me a push in the right direction - I'm an old school developer, into Windows desktop stuff using VB/C#/Java etc and also web stuff (PHP, JavaScript, ASP etc). I'm a decent coder, but I wouldn't have a clue where to start with developing games. What environment / languages have you used and would you recommend any to pick or avoid?

A:

I think that game engines are the way to go. Unless you are really wanting to develop your own engine from scratch (which can be helpful in extreme cases), using an engine allows you to see results faster. Granted, there is a decent learning curve to engines like Unity and Unreal so it can take time. I have really only tried Java (using LWJGL) and Unity using C#. I really do recommend Unity as it was very intuitive to me from a software/programming side of things whereas Unreal's visual scripting was not (that's probably just me though...didn't put a ton of time into learning). Plus, the only "downside" Unity had compared to Unreal was the supposed graphics quality but that has gone away entirely imo. If you haven't watched some of the recent live demos on the Unity YouTube channel you should definitely check them out, they're remarkable!


Q:

Which games over the years influenced you to make your own game?

A:

Other indie titles definitely started my interest in making games as a whole. This game specifically was inspired by games I played growing up like Age of Empires (always wanted to make a city builder) and recent games I've played like Machi Koro (actually a board game).


Q:

What tips do you have for someone struggling with learning computer science?

A:

One thing that I have found is that it is much easier to learn through actually DOING something rather than staring at a book or lecture slides. Try implemented something you'd been learning about, especially if its an algorithm or data structure.


Q:

What are your thoughts on people who aspire to be a game creator but have no tech background? If there is a way for non-tech people, what would your suggestions be? Thank you :)

A:

There are actually a lot of things that go into the creation of game: art, music, sound design, game design, level design, marketing, etc. If you aren't interested in pursuing the tech side of things at all then there is definitely room for you in those departments! Otherwise, its never too late to learn to program!


Q:

Is doing an ama a good marketing strategy? All I see from this sub is "come buy my stuff". What other marketing angles are you pursuing?

A:

While it helps to get the word out I don't think it should be your only strategy. To be honest I didn't expect the amount of questions I am getting and was originally doing this to help people that might be interested in pursuing similar goals.


Q:

Congrats on your game!

I'm also a recent CS grad, from RIT, working on a simple Fire Emblem inspired tactics game as a personal project. Doing it in Rust because learning new languages is fun!

My question: what resources would you recommend for learning good design patterns and architecture of games? I'm leaning towards MVC but that seems too... straightforward?

A:

MVC is definitely the go-to architecture for games...there is at least one more but I can't think of it off the top of my head. I think it varies widely on what engine/language you are using. Before you begin programming it definitely helps to create a class diagram to lay out all of the different components of your game and what functionality you think they might need. Obviously it would all be subject to change but it can help you get started on a much safer path.


Q:

Visual Studio, would be my guess.

A:

I'm a vim guy myself B)


Q:

How do you go about the process of finding music for your projects? Do you go the royalty free route, or do you hire a composer? I'm a Music Composition/Percussion Performance student at the University of North Texas so I'm looking for ways to break into the field

A:

I think most people will look at doing royalty free for mobile games. Some mobile games and most indie commercial titles will usually hire a freelancer though. There's currently on one track in Mayor! Mayor! and I actually wrote it myself using Ableton Live Lite in a couple hours.


Q:

Hi, congrats on the game!

How did you study programming before university? Was it books, or online courses etc? I'm still a student nearing uni and I thought programming would be useful and I am certainly interested in it.

Thanks!

A:

To be honest I didn't do much programming before college. I took an online Java class but it was poorly structured and I wasn't motivated enough at the time to get much out of it. I also learned a bit from Codecademy but that was all before I started at Purdue.


Q:

Pineapple on pizza or no?

A:

Depends on the pizza, but I'm ok with it given the other toppings.


Q:

What makes a game replayable? Memorable? Great?

A:

I think any game that allows for some amount of discovery has always been a game that sticks with me. Games that just throw you into their world and give you the tools you need but don't tell you how to use them.


Q:

Do you think it’s possible for a physics major to get a job in the gaming industry? I’ve programmed before, but it’s normally for solving complicated problems. Any tips for physics majors trying to make it in the gaming industry?

Thanks!

A:

Very much so! Physics engine programming is commonplace in the industry and those who work on that sort of stuff definitely benefit from having a food understanding of, well, physics.


Q:

How much did you pay to get essentially a reddit ad placed?

A:

I initially did start the AMA to create some exposure and to share my work with others but I also wanted to answer questions from other redditors who may be interested in game development.