Where to start (kind of)

Started by
13 comments, last by inkdrips 9 years, 8 months ago

Hi everyone,

This is my first post here. I'm a second year programming student at a community college, and my ultimate goal is to graduate and start working in game development. This is my last year of study.

I've experimented with Unity, and I even completed a work term with a local game development company. However, I'm starting to get overwhelmed. The more I learn, the more I realize how little I know, and how much more I have to learn to be ready for the industry.

I'm beginning to feel like using an engine or game development tool like Unity might not be the best way to continue. I'm starting to feel like it might be better to start from scratch and build my own engine. I really want to have a thorough and well rounded understanding of the development process and game programming. I would love nothing more than to work at a development company, and work independently on my free time. Because of my interest in independent development, I'm also interested in 3d modelling and animation, 2d graphic design and animation, as well as sound and music creation. However, programming is my key focus at the moment.

I'm interested in both 2d and 3d development (mostly for web or pc for now, with a potential interest in moving into mobile in the future).

I know it's tempting to answer these kinds of questions with "Google it", or some such unhelpful response. Believe me, I have in depth. But there's so much to sift through out there, that researching and finding a good place to start can be every bit as daunting as actually learning.

What are your thoughts on this? Do you think I should start from scratch or should I use an existing tool/engine? If you think I should start from scratch, what language(s) would you suggest? If you think I should use a tool/engine, which one? And for each, what learning materials or resources would you recommend?

Also, what is your current level of experience or employment as it relates to game development, and how did you start?

I'm not afraid of working hard or putting in the time, I just HATE wasting time learning the wrong thing.

Thanks all. Every bit of advice is appreciated.

Advertisement

Can you describe why you think going with an engine like Unity is not the best way?

Do you feel like you are not learning enough by using it? What is it that overwhelms you?

Building your own engine certainly is a useful thing to do as a learning expierience, especially if you want to concentrate on becoming a game programmer later on. Be aware though that this in itself can be very time consuming and might take away time from building your game, or in your case, studying the other aspects of game development.

Also be aware, if you mention "working in a studio but work independently on my own time", I instantly think of topics like this that come up from time to time: http://www.gamedev.net/topic/656100-can-an-employer-legally-own-work-that-you-create-outside-working-hours/

The gist of it is, you might be fine as long as you get a good contract and talk through it with your employer beforehand, but you WILL need to do that as you are basically creating a product that might be a competition to what your studio is doing.

I for my part have a bachelors degree in CS, worked as a business programmer for about 10 years (still doing that part time), and started game dev as a hobby 5 years ago, which has turned into a a very time consuming and expensive hobby by now (but then I got off "plastic crack" thanks to having no time for it anymore, as a former Tabletop gamer I am used to time consuming and expensive hobbies ;) ).

I have not released anything until now, but I am preparing a demo that maybe, one day, will be the seed for something bigger... who knows?

So yes, I have little expierience about the insides of Game Dev studios or the industry... just a lot of knowledge about Unity by now, if you have questions about that.

"Building my own engine for the sake of building my own engine" would not be a very good idea. If you mean "start making small games with the focus on components and code reusability" thats better. But you have to finish things, not just always be working on something - like an engine - or you will lose motivation soon. ...even if you have a lot of it now.

http://scientificninja.com/blog/write-games-not-engines

Here's a great opinion on the subject.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532


I'm beginning to feel like using an engine or game development tool like Unity might not be the best way to continue. I'm starting to feel like it might be better to start from scratch and build my own engine.

Building a game engine so early in your career is a dead end. If it were only a hobby then that would be fine for the fun and adventure. You can't waste months and years in your career.

A game engine worth creating would take you years until beta releases if you are working on the 3D game engine alone. It often takes a team years to create one and usually the thing is inferior to put it mildly [time, performance, results, sucks progress!]. Again, fine for a hobby but you are not ready to make a pro game engine for years to come. You need to know how games are coded before you start thinking about game engine development. The toolset alone for a game engine would take you 1-2 years to make and use already existing tool libraries. The 3D game engines just take years for a team to create, not even considering the many months or a few years to create a 3D game and publish it. By the time you did all that, it is likely that your game engine would be behind the times significantly. In contrast, if you stay the course of learning how to make games, then you might have a published one relatively soon and make some money from it.


I'm not afraid of working hard or putting in the time, I just HATE wasting time learning the wrong thing.

For professional goals it is my opinion that one should spend months or even 1-2 years in creating broad base functioning 2D games before moving to 3D. Since you mentioned having taken so much on the table, obviously you need to streamline while you are in college. About all the average student can do is school full time and a job or school full time and work on your own games on the side. To do all three is doable but you will suffer in quality and understanding of coding. It is best to handle your career in stages that you give all you got instead of too much parallelism and being spread too thin. Coding needs all your attention and uncompromising effort!

Coding skills in general are good in you, but we are talking game development here which is a different animal than almost anything else out there. To really do it right, game development should get much more of your attention if you are to learn at a pace that keeps well with technology advances (both software and hardware).

A game engine is highly recommended because you will have a development framework to show you how games are made. Added to the other huge advantage of the game engine online community of developers, you would be getting exactly what you need to learn how to make games. The only thing out there that competes with this approach is to attend a comprehensive game development school, but they will likely put you eventually on a game engine to accomplish the same process of learning. See?

Tons of help is available with any of the good game engines. Some have thousands of forum threads, hundreds of video tutorials, workshops, and many people willing to correspond or talk with you thru technical questions. All that takes time.

For now I suggest that you focus on your schoolwork and expanding your experience in the job market as you primary time consumption. When you get a little free time on the side and you want to play with a game engine, then fine. Priorities! Get you degree and then your availability and opportunity to be a dedicated game developer will open to you.

Enjoy your school and work until then. Work hard and have fun! smile.png

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer


I'm not afraid of working hard or putting in the time, I just HATE wasting time learning the wrong thing.

At start I have to say I'm not in game dev industry, but I work as developer for quite a few years. Along my career I learned some technologies are no longer used and sometimes even forgotten right now. Should I say I wasted my time learning C, because I no longer use it? Or I wasted my time learning Silverlight as it is no longer supported?

The thing is you can't tell today what will be used tomorrow. And nothing learned is a waste as at least it gives you different point of view. On the other hand you don't need to be PHD of every area to successfully use it.

Try to learn different things so you can use them. Along the way you will find one (or more) that will interest you more than others so you can specialize in that area.

Can you describe why you think going with an engine like Unity is not the best way?

Do you feel like you are not learning enough by using it? What is it that overwhelms you?

Building your own engine certainly is a useful thing to do as a learning expierience, especially if you want to concentrate on becoming a game programmer later on. Be aware though that this in itself can be very time consuming and might take away time from building your game, or in your case, studying the other aspects of game development.

Also be aware, if you mention "working in a studio but work independently on my own time", I instantly think of topics like this that come up from time to time: http://www.gamedev.net/topic/656100-can-an-employer-legally-own-work-that-you-create-outside-working-hours/

The gist of it is, you might be fine as long as you get a good contract and talk through it with your employer beforehand, but you WILL need to do that as you are basically creating a product that might be a competition to what your studio is doing.

I for my part have a bachelors degree in CS, worked as a business programmer for about 10 years (still doing that part time), and started game dev as a hobby 5 years ago, which has turned into a a very time consuming and expensive hobby by now (but then I got off "plastic crack" thanks to having no time for it anymore, as a former Tabletop gamer I am used to time consuming and expensive hobbies ;) ).

I have not released anything until now, but I am preparing a demo that maybe, one day, will be the seed for something bigger... who knows?

So yes, I have little expierience about the insides of Game Dev studios or the industry... just a lot of knowledge about Unity by now, if you have questions about that.

I guess the main reason that I felt like using an engine wasn't the best way is because it kind of feels like a shortcut. I know it's probably the quickest way to develop, but that isn't necessarily my goal at the moment. I'm more interesting in gaining as much knowledge as possible to prepare me for a career in game dev. I kind of feel like maybe I'd be missing out on some of the fundamentals of game development by using an engine.

As far as what overwhelms me: it's just the sheer amount of what I feel I need to learn to be a successful programmer and indie dev. The list that comes to mind is massive:

  • Rendering
  • Graphics Pipeline
  • Programming
  • Programming Shaders
  • Modelling
  • Animation
  • Design Principles
  • Development Principles
  • "Proper" coding and development practices ... to name a few.

And it seems that the more I research these topics, the more I add to the list. I guess the world of development is so huge and requires so many areas of expertise that it's just overwhelming to figure out how to prioritize my learning. I would love to find some book or other resource that takes multiple aspects of development into consideration, instead of just focusing on one particular skill set like programming or art. I guess I'm also concerned with understanding how all of these different parts of development integrate with one another, and being able to integrate them myself in a professional way to bring a high grade (or at least non-crappy) game to fruition.

Also, thanks for the mention of the potential problem of working on independent projects while under contract. I'd never considered that.

You mention that game dev has become an expensive hobby. How so? Just with licensing software?

"Building my own engine for the sake of building my own engine" would not be a very good idea. If you mean "start making small games with the focus on components and code reusability" thats better. But you have to finish things, not just always be working on something - like an engine - or you will lose motivation soon. ...even if you have a lot of it now.

My intention wouldn't be to build an engine just because per se. I guess I would just like to know how to develop a game without using an engine as a crutch so to speak. And when I say an engine, I don't mean something highly sophisticated, not even necessarily 3D. Even something relatively simple like a from scratch 2D platformer.

My reason for wanting to do this is just to gain a higher understanding of game development and have a more rounded skill set.

http://scientificninja.com/blog/write-games-not-engines

Here's a great opinion on the subject.

Thanks. I guess maybe what I meant by 'engine' is this:

I simply want to develop a game from scratch. And from scratch I mean taking care of the graphics and graphics handling, AI, GUI, animation, physics and other programming by my self. This isn't because I think I wouldn't be able to make the same game using something like Unity, it's simply because I want to know it ALL. I want to be able to make a game without a tool like Unity. Part of me just feels like that would make me a better and more knowledgeable dev. Maybe this is a misconception and something I have to get past.

Also, bear in mind that I don't necessarily want to develop a 3D game at the moment.

If you just want to learn, then go ahead. Just keep in mind that AI and physics are very complicated subjects. Indie game development does require you to put on many hats, but efficient programmers sidestep all the complicated, hard and (subjectively) unfulfilling tasks. For example by using existing libraries, or by researching things previously done by others to reduce risk, time waste and simply learn faster. Everyone learns new things, all the time, in programming.

It could for example be fun to make your first BMP reader and writer: My advice would be to do research the things you think sound interesting, do the least complicated version of it in tandem with some actual implementation or even a tutorial if one exists.

Being second year at college, I don't know what that means, but it sounds like you are just starting out learning to program. If I were you I would focus on how to be efficient at learning what you set out to do. If I could travel back in time, I would tell that to myself 10 years ago.

This topic is closed to new replies.

Advertisement