Results 1 to 13 of 13

Thread: Getting Started in Game Development (Programmer)

  1. #1
    Retired Staff Reputation: 75
    Eriond's Avatar
    Join Date
    May 2006
    Location
    Montreal
    Posts
    1,790
    Rep Power
    19

    Default Getting Started in Game Development (Programmer)

    Getting Started with Game Development
    Introduction

    Okay, so I'm going to have a couple sections in here, for the various stages of people who'd like to do games programming, but don't know how (again, at various levels of knowledge). I'll try to be as concise as possible. Basically, the four stages I'll talk about are beginner, console, pre-graphical and graphical. I'll outline them shortly here:
    [LIST][*]Beginner: You've never programmed before.[*]Console: You've done hello world, maybe a bit of string manipulation, some arithmetic, used variables, and done a few loops; you can compile a basic program and run it. Probably where people who've taken a single basic C++/Java class should be.[*]Pre-Graphical:
    Last edited by Eriond; 02-24-2013 at 11:25 PM.

  2. #2
    Retired Staff Reputation: 268
    shadowsworn's Avatar
    Join Date
    May 2006
    Posts
    12,137
    Rep Power
    29

    Default

    thanks, eriond :] this looks really helpful so far.
    Last edited by shadowsworn; 02-19-2012 at 11:32 PM.

  3. #3
    Orc's Breathmint Reputation: 10
    pb_destiny's Avatar
    Join Date
    May 2006
    Location
    Ottawa, Ontario, Canada
    Posts
    101
    Rep Power
    18

    Default Well Done

    Very nice piece Eriond, great to see you've become the heart of the game development forums, keeping them alive. So when I come back to visit, there's not just a lot of the same old that I use to enjoy, but fresh content to look over too.

    Most was pretty familiar except I've never actually used git, I learned STL first and found it very powerful, I am weary of using it unless really necessary like for more complex applications/game engine.

    I must check out git, sounds like it would be good for me considering I'm a very inconsistent on my programming projects. It leaves me unorganized, sometimes writing functions for the wrong programs. I jumped between small apps and a new game engine, as well as picC interfacing and microprocessor programming.

    You're not the first person I've heard speak so highly of pearl, I often hear it in contrast with php scripting which I learned instead of pearl. I started learning python in between c++ and web development, never really applied the scripting for anything more than hobby projects and simple script games.
    Last edited by pb_destiny; 03-06-2012 at 08:56 AM.

  4. #4
    Retired Staff Reputation: 75
    Eriond's Avatar
    Join Date
    May 2006
    Location
    Montreal
    Posts
    1,790
    Rep Power
    19

    Default

    Quote Originally Posted by pb_destiny View Post
    Very nice piece Eriond, great to see you've become the heart of the game development forums, keeping them alive. So when I come back to visit, there's not just a lot of the same old that I use to enjoy, but fresh content to look over too.

    Most was pretty familiar except I've never actually used git, I learned STL first and found it very powerful, I am weary of using it unless really necessary like for more complex applications/game engine.

    I must check out git, sounds like it would be good for me considering I'm a very inconsistent on my programming projects. It leaves me unorganized, sometimes writing functions for the wrong programs. I jumped between small apps and a new game engine, as well as picC interfacing and microprocessor programming.

    You're not the first person I've heard speak so highly of pearl, I often hear it in contrast with php scripting which I learned instead of pearl. I started learning python in between c++ and web development, never really applied the scripting for anything more than hobby projects and simple script games.
    Always nice to see you on your annual visit, pb .

    Yeah, Perl is definitely easier for system-level scripting (not so much for web-scripting, PHP may be a better choice there). Nothing wrong with writing projects in scripts, but I find the best use you can get out of them is in complementing tools (auto-builder, assets organizer/generator, etc...)

    And yeah, git is definitely an interesting way to do version control. If you have lots of projects (and it sounds like you do; very cool about the microcontroller programming, I've done some of that myself ) and you don't want to set up a server for each one, git is basically a distributed version of SVN, meaning that you can actually make local commits, meaning that you can have all the same functionality without actually having a server-side of the thing sitting somewhere. Useful.

  5. #5
    Heads or Tails Reputation: 30
    Frostbitten's Avatar
    Join Date
    May 2011
    Posts
    326
    Rep Power
    13

    Default

    I feel like those c++ tutorials leave a lot of, maybe not critical, but still important, stuff out. Can you recommend any other resource I could use in addition to those tutorials, to round out my knowledge of what I can do with the language?

    Also, I feel like those tutorials are mm, reasonably good at explaining "how" you do things, but not "why" you would want to do things.

  6. #6
    Retired Staff Reputation: 75
    Eriond's Avatar
    Join Date
    May 2006
    Location
    Montreal
    Posts
    1,790
    Rep Power
    19

    Default

    Quote Originally Posted by Frostbitten View Post
    I feel like those c++ tutorials leave a lot of, maybe not critical, but still important, stuff out. Can you recommend any other resource I could use in addition to those tutorials, to round out my knowledge of what I can do with the language?

    Also, I feel like those tutorials are mm, reasonably good at explaining "how" you do things, but not "why" you would want to do things.
    Well, that's a good point. To be honest, the best I've found for to you to find out the why is to set yourself a goal, and actually try to do it yourself, with what you know.

    For example, try and write a simple text-based RPG, where you have rooms, and you can go n,s,e,w, pick up and drop items, and maybe even have a fight or two.

    That'll go a huge way to rounding out your knowledge of the basic language, and getting your familiar with stuff like input and output, math and the basic data structures.

  7. #7
    Heads or Tails Reputation: 30
    Frostbitten's Avatar
    Join Date
    May 2011
    Posts
    326
    Rep Power
    13

    Default

    um, one more question I think. the cprogramming tutorials don't explain everything there is to know (for obvious reasons) by a long shot. In fact, especially later on, they make reference to things that the writer never bothered to cover at all fairly frequently.

    So, upon getting to pre-graphical, should I just get some sort of encyclopaedia type thing? because all of the stuff that was left out of the cprogramming tutorials seems important, albeit not critical, and I feel like I should at least have a reference handy

    or is the writing in any such source likely to be beyond me at this point (beginning pre-graphical, according to your guide)?

    and finally, if I am ready to read some sort of encyclopaedia or whatever on c++, what would you recommend?
    Last edited by Frostbitten; 04-06-2012 at 09:43 PM.

  8. #8
    Retired Staff Reputation: 75
    Eriond's Avatar
    Join Date
    May 2006
    Location
    Montreal
    Posts
    1,790
    Rep Power
    19

    Default

    You raise a good point; I never really acquired a full grasp of the language until I actually worked with it professionally; the tutorials do tend to leave out some of the features of the language; simply because it's so huge to begin with, very few online tutorials will cover every little bit.

    If you're looking for the be-all, and end-all guide, it's here: http://www.amazon.com/Programming-La...3750707&sr=8-1.

    Written by the man himself, that should pretty much cover everything you need to know. If you really want to know everything there is to know about C++, that's it.

    However, this may not be what you're looking for; what stuff specifically, do you feel was left out? You said you were interested in 'why' you'd want to do things a certain way, rather than 'how'. That's a good question, and it deserves a proper answer that I didn't give you in my previous post.

    For a lot of things, in my opinion, to understand the why, you need a low-level understanding of how a processor works and executes instructions, how it manipulates memory and interfaces with the hard drive, etc... Since I took a university course on this stuff, instead of looking it up myself, I don't have the best list of sources to give you. The university textbook that taught me the basics of computer hardware, and why it behaves the way it does (which in turn, reflect the basics of C (and in turn C++) and why it behaves the way it does) was this one: http://books.google.ca/books?id=7pEX...page&q&f=false, but it doesn't seem to be available on amazon.

    It's a lot to read, and absorb, and it's not easy. It's good that you're asking the question though, because knowing these things will make you a better programmer, that, I can guarantee you. So, in the interest of maybe providing you at least a topic summary, so you can do individual research on your own, I'll try and summarize, as briefly as possible, while glossing over, generalizing and assuming many points, the 'why of C++'. I'll probably fail miserably, but here goes.

    Why C++ was invented?: FORTRAN and C are the two fastest current mainstream languages. C is the current gold standard by which other languages are judged. C++ is C with added features, that, when used properly, do not cause programs to run any (in some cases, a little) slower, yet are easier to read, and more concise (debatable, but for now, just assume this is true).

    Why is C++ used by game developers?: Historical reasons, speed and portability. More games now are using other languages, but all the major AAA games use C++, because historically, the majority of large game engines are written in C++, it's almost as fast as C (more FPS, more effects, more everything), and it can be used on any system on which a C++ compiler can target (which is almost all of them, PS3 (Cell), Xbox360 (PowerPC), Desktops/Servers (x86, x64), Phones (ARM) etc..).

    Why can't I do X easily in C++/Why is X not a feature of C++?: C++ is organized along the lines of "You don't pay for what you don't use.". Meaning that anything that would make your life, as a programmer, easier, but make the computer's life harder (in terms of longer execution, larger program size), that you wouldn't be using in all situations, is not present in the language itself, or needs to specifically invoked to be used. (Garbage Collection, Reflection, Weak Typing, Virtual Functions, etc..). Other languages like Java, or the scripting languages, go for ease-of-use and development, over speed and size, meaning that they have features that C++ does not (garbage collection), or have features that C++ has, but always enabled (virtual functions), yet they run slower, and are larger, in some cases, significantly. This guides a lot of the reasoning behind C++.

    That's the basic three whys that I can think of. If you have a specific 'why' question, I'd love to try and help; it'd give me a better idea of what kind of answer you're looking for.
    Last edited by Eriond; 04-06-2012 at 10:55 PM.

  9. #9
    Sandman's Slave Reputation: 80
    ASNZern's Avatar
    Join Date
    Jun 2006
    Posts
    3,815
    Rep Power
    19

    Default

    Starting C++ now.
    Yup, from scratch. >_<"

    Wonder how much my background in HTML and CSS will help >_>"

  10. #10
    Retired Staff Reputation: 75
    Eriond's Avatar
    Join Date
    May 2006
    Location
    Montreal
    Posts
    1,790
    Rep Power
    19

    Default

    Quote Originally Posted by ASNZern View Post
    Starting C++ now.
    Yup, from scratch. >_<"

    Wonder how much my background in HTML and CSS will help >_>"
    Glad to hear it! And yeah... HTML CSS won't help so much. Sorry >.<

    But anyway; feel free to PM me with any questions you may have about pretty much anything (setting up the environment, compiling your first program, etc...), or you know, post something. Lord knows this board could use a bit of posting.

  11. #11
    Sandman's Slave Reputation: 80
    ASNZern's Avatar
    Join Date
    Jun 2006
    Posts
    3,815
    Rep Power
    19

    Default

    Just done with If, Else, etc.
    About to start learning Loop now.


    On a side note, my 3d character is coming along well.
    Dunno what to do with the details on her armors though.
    http://i28.photobucket.com/albums/c2...Warrior011.png

  12. #12
    Retired Staff Reputation: 75
    Eriond's Avatar
    Join Date
    May 2006
    Location
    Montreal
    Posts
    1,790
    Rep Power
    19

    Default

    Awesome. Keep trying to do practical examples to really cement what you've learned.

    Also, for the armor: scales. Scale armor is awesome.

  13. #13
    Marios's Mustache Wax Reputation: 10
    nullpointer0's Avatar
    Join Date
    Apr 2019
    Posts
    2
    Rep Power
    0

    Default Open Source projects

    Another great way to get started is to find a volunteer/open-source project that allows you to learn and grow with other professionals. A lot of these projects have opportunities to tackle different aspects of game development.
    One such project I've been working on is Open Perpetuum, its a great team of folks, many very well versed in the tech stack we use. Check it out https://openperpetuum.com

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •