Starting from scratch

Discussion in 'Indie Basics' started by Jamesb187, Feb 14, 2006.

  1. Jamesb187

    Original Member

    Joined:
    Feb 11, 2006
    Messages:
    4
    Likes Received:
    0
    All,

    My first post on these pages, which I've been reading with great interest. I've been thinking about learning to code for years, but have recently decided to start taking some courses and learning coding. I'm pretty fuzzy in my ambitions at this stage, but I would like to get to the stage where I can create games for distribution via the web, and also code at a sufficiently proficient level to work for a games developer. I had some questions, and would be grateful for any comments from you all!

    For someone with no coding experience, which areas of games programming would be the easiest to get into? ie AI, physics, engines

    For the above, which languages would be the best to learn? At the moment I've started on C++...

    Can you learn sufficient expertise from books/coding at home, or is wiser to enroll in training of some sort?

    Thanks!
     
  2. Tom Gilleland

    Original Member

    Joined:
    Nov 23, 2005
    Messages:
    360
    Likes Received:
    0
    If I was just starting over today, I would look at Flash game development. It is robust enough for most of these casual games and can deliver on Windows, Mac, and even phones.

    Tom
     
  3. joe

    joe
    Original Member

    Joined:
    Sep 28, 2004
    Messages:
    420
    Likes Received:
    0
    I'm sorry to dissapoint you but I think if you start from the beginning no area of programming is easy to get into. You need a lot of time and passion to learn it. I think most of us started to code as a child every day. It's like learning playing the piano - if you want to get really good you need years of learning lessons.
     
  4. joe

    joe
    Original Member

    Joined:
    Sep 28, 2004
    Messages:
    420
    Likes Received:
    0
    Sorry, I just forgot something

    Yes, go out, buy some books and learn from them. I think most of us has learned coding using this way. C++ is a good way to start because its the most common and powerful language. But you can also start with a kind of basic because it's a lot easier in the beginning because you're getting faster results.

    For example have a look at BlitzMax, PureBasic or VisualBasic!
     
  5. GhostRik

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    39
    Likes Received:
    0
    For maximum "bang for the buck" download a free game-making program like Gamemaker (2d, www.gamemaker.nl) or 3DRad (v3 is free, www.3drad.com). Both of these have decent tutorials you can complete in a few hours and will go a long way towards demonstrating if you want to put in the time and effort required for this pursuit.
     
  6. joe

    joe
    Original Member

    Joined:
    Sep 28, 2004
    Messages:
    420
    Likes Received:
    0
    I don't recommend to use this game makers because you're very limited and you can't call this programming.
     
  7. Anthony Flack

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    2,176
    Likes Received:
    0
    Variables and other data structures, simple logic and loops, and then finally bouncing balls and space invaders are what you should be looking at getting into.

    A bouncing ball has simple physics, a space invader has simple AI, and everything you make is an engine of sorts. Just relax, take it slow, and have fun for now.
     
  8. papillon

    Indie Author

    Joined:
    Jul 26, 2004
    Messages:
    2,193
    Likes Received:
    0
    Unless you're referring to the *other* program called Game Maker (there's at least two, since it's such a silly generic name) be careful what you say - the game maker linked to can make a simple game with almost no programming but starts requiring at least a bit of code quite quickly, and people with experience end up working pretty much entirely in code. stare at my enormous piles of scripts and tell me again that you can't call this programming. :)

    That particular program allows you to shortcut the most common functions with happy shiny pictures rather than write the code, but even newbies will soon find that they need to learn to translate those pictures into actual code so they can tweak the values.

    any sort of game-helper software will generally come with its own limitations. some are more difficult for people WITH programming backgrounds because they don't behave as expected. some can more easily port to multiple systems, some can't. some can only make certain kinds of games. some will require you to purchase outside programs/plugins in order to have a true basic functionality.

    really, you'll just have to explore a lot of options and see what works for you. you may find that Flash makes you happy, or you may find something entirely different. A lot of people with a more 'artistic' than 'programming' background develop a good level of Flash proficiency, and certainly if you want to make web stuff it's not a bad toy to play with.
     
  9. bentlegen

    Original Member

    Joined:
    Dec 24, 2004
    Messages:
    116
    Likes Received:
    0
    I think the problem with starting with GameMaker is that most of the tutorials and other resources available on the web are written for object-oriented languages. I think there's a big advantage in being able to read and mess around with all the valuable sample code out there.

    That being said, I'd recommend looking at Python. It's easy to learn and easy to use. You can install it and have a "Hello World" application up and running in only a few minutes, instead of having to first properly set up your IDE, build settings, makefiles, and so on, which can be daunting for users just trying to get their feet wet.
     
    #9 bentlegen, Feb 15, 2006
    Last edited: Feb 15, 2006
  10. soniCron

    Indie Author

    Joined:
    May 4, 2005
    Messages:
    3,664
    Likes Received:
    0
    And the benefit of "real" programming is...?
     
  11. bentlegen

    Original Member

    Joined:
    Dec 24, 2004
    Messages:
    116
    Likes Received:
    0
    I think I'll just edit my original post as to not come off as an ass instead of answering this question :)
     
  12. Jamesb187

    Original Member

    Joined:
    Feb 11, 2006
    Messages:
    4
    Likes Received:
    0
    thanks!

    Thanks all for your suggestions - plenty here for me to think about.
     
  13. Uty

    Uty
    Original Member

    Joined:
    Feb 7, 2006
    Messages:
    37
    Likes Received:
    0
    The only way to learn how to write code is to write code. I would suggest you avoid Java - it is a purely object oriented language. Basically what that means is "not for beginners" because object orientation is a fairly advanced concept for the novice.

    If you buy a book, make sure you understand each line of code in the examples. You really should do some of the exercises at the end of each chapter. This is a lot like math - you can't learn it just by sitting down and reading it.

    Hope this helps :)
     
  14. impossible

    Original Member

    Joined:
    Aug 9, 2004
    Messages:
    443
    Likes Received:
    0
    Definitely, without a doubt, physics. Especially if your last real exposure to math was a highschool algebra-trigonometry class :).

    Advanced AI, physics and engine coding is something that's very hard for everyone, even if they know a lot about the subject and have been programming for years. There is no sortage of free information on the topics online. Feel free to read Baraff's physics papers, Chris Heckers physics tutorial, even look at using a physics API like ODE, Novodex or Tokamak. Look at opensource game engines. Read articles on gamedev.net, etc. You probably won't understand anything, but at least you'll have an idea of what you're reaching for.

    After you're done with that, write a few "boring" programs in your language of choice. If you find learning C++ frustrating or slow, I suggest you try another language like C# or Python. If you're completely new to programming you'll have to get used to things like loops, flow control, syntax, etc.
     
  15. Don

    Don
    Original Member

    Joined:
    Jan 25, 2006
    Messages:
    15
    Likes Received:
    0
    Stick with C++, it's a fine language and you will end with it anyways, so don't waste your time with the others.
    To get some sense of achievement, use a 2D game framework which encapsulates the system functions, compile it (often a hurdle too) and display 2D graphics, play sounds, create GUI buttons, react to user input ... this kind of stuff. Just do simple things, and get results from the beginning. The samples with those frameworks help a lot.
    I can recommend Clanlib for playing around.
    Then develop a simple game. E.g. Arkanoid/Breakout.

    Design a OO structure for your game, like World -> GameObject -> Paddle/Ball/Brick. Don't mess around with uber game engine design, it should just work and you should be able to add another game object like "Monster" easily.

    Focus to get things done. IMO it makes no sense to polish a learning project, like your arkanoid clone. As soon as collision works, and you can move the paddle, it is time to consider it done. Start out small, grow with baby steps. Every project you will learn something new and improve, and you will be faster with every iteration.
     
  16. Ricardo C

    Original Member

    Joined:
    Sep 11, 2004
    Messages:
    1,349
    Likes Received:
    3
    Took a left turn at GameDev, Don?
     
  17. Uty

    Uty
    Original Member

    Joined:
    Feb 7, 2006
    Messages:
    37
    Likes Received:
    0
    C++ is a very nice language ... but when you're doing MFC stuff why bother with a bazillion enumerations, astrices, and ampersands when other languages provide a clean syntax?
     
  18. svero

    Moderator Original Member Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    3,392
    Likes Received:
    6
    If I was just starting I think I'd go with blitzbasic or blitzmax. C++ is a good language but learning that, and putting together a game engine.. well.. thats a pretty big undertaking. I think with blitz someone who wasnt all that experienced could be up and making games quicker, and also at the same time learn some of the fundamental bits and pieces of what kinds of things you want in a game engine. (by seeing blitz's functions and what kind of interface they provide you)
     
  19. AVataRR

    Original Member

    Joined:
    Aug 19, 2004
    Messages:
    75
    Likes Received:
    0
    If I was just starting out, I'd have a look at this: n00b's guide to game making. The article is almost 3 years old, but it's still largely relevant - save for a few broken links. ^_^
     
  20. DarkCore

    Original Member

    Joined:
    Feb 26, 2006
    Messages:
    27
    Likes Received:
    0
    I suggest C++

    I suggest you learn C++. Most engines are coded in C++. If you are also learning C++ I suggest you get a powerful compiler/IDE. One is Visual Studio 2005. Though it is not free it is very powerful. (Visual Studio 2005 Express is free and it is good for beginers.) You can also try Dev C++ or MinGW they are also great compilers.
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer