Page 1 of 3 1 23 LastLast
Results 1 to 10 of 30

Thread: The "Developers" FAQ

  1. #1

    Default The "Developers" FAQ


    Written by Nova

    What is the job of a developer?
    The best way to understand what a developer does, is to give an example of a job everyone can relate to, building a game, is much like building a house, first you need an architect to create the plans for the new house, this would be your games designer, then you need someone to create your raw materials which your house is made from, thats your game artist, finally you need a builder to take the materials and build the house according to the plan, this is the job of a developer.

    How does a developer go about building a game?
    Plans and raw materials are not enough to build a house, a builder still needs tools to get the job done, and in games development, the main tool that a developer uses, is known as the game engine, unity3d and unreal development kit are both examples of game engines, with them, developers have the tools to build the game and make the various components of the game work together, they allow developers to import the materials made for them by the graphic artists and animators, and then bring them to life.

    Where does programming come in?
    One thing that always confused me about game development, was how a computer could control an image, an image after all, is just a drawing, just pixels, how can a computer know what to do with it ?
    This is were object-orientated programming comes in, an area of programming used more by game developers than any other, think of the object, in object-orientated, as an invisible image, but one that the computer understands, you can "program" these game objects to do things like move and jump, and the game engine will allow you to attach them to the images the artists have made for you, when you move a character in a game, your not really moving the character at all, your moving the object, and since the object is attached to the image, the image moves also.
    Objects are defined as something that has both a state and behaviour, take for example, a light, and a light switch, both of these have 2 states and 2 behaviours, they both have the state off and on, when the light is on its behaviour is to emit light, when the light switch is on, its behaviour is to tell the light to turn itself on, we would also need a character object to tell the light to turn on when we told it to do so.

    Whats the difference between a programmer and a developer?
    There is no such thing as a programmer in the true sense of the word , programming is what developers do, but thats not there job, if you took a programming course in university, it would most likely be called computer science, which is the study of solving problems using computers, computer science is as much about programming as astronomy is about building telescopes, the most important thing about a telescope is not that it is built really well, but that it is really good at viewing the stars, although some might argue that well written code is as important as what the code does when developing games, and they would be right, but a developer is someone who uses programming to get the job done, which is making games

    I dont even understand how a computer works, can i be a developer?
    Yes, understanding how a computer does what it does, wouldnt stop you being able to code, but its a bonus, and interesting if nothing else, so heres a short intro.
    When a developer finishes writing some code, he needs to give that information to the computer to run, but the computer doesnt understand C++, or java, or delphi, it doesnt understand any programming language, the only thing a computer understands is 0s and 1s, so the code is given to a compiler, which compiles your code into binary code, so the computer knows what to do with it, any program you have ever used with the file name ".exe"(which stands for executable), is just a file filled with binary 0s and 1s which is sent to the computers CPU to execute.
    But wait, is my computer alive, how does my computer work out anything i hear you cry, well, your computers brain, or CPU, is rather special, if you take some copper wire, it will conduct electricity, if you take the insulation the copper wire is wrapped in, it will not conduct electricity, your computers CPU does both, yes BOTH, your CPU is made from silicone, which is known as a "superconductor", this means that it will conduct, or not conduct, depending on what current is passed through it, we can call these two different currents "current 0", and "current 1", or binary code, think of the CPU like a mail sorting office, taking letters with 32 digits in and sorting them into pigeon holes, depending on how the 0s and 1s end up, the CPU can then send them were they need to go, now you know how a 32 bit operating system works

    Is games development for me?
    If you were like me at school, you hated maths, and looking at being able to program games you think you will have to use maths on a daily basis, so you give it a miss on the other hand, mabye you also thought you would never get a job that you needed to be good at maths in, so you would end up with a maths book untouched by ink, also like me.
    I personally do not believe that people can be good at some things and not at others, the only limiting factor to someones abilitys is there drive to succeed, if something really doesnt intrest you, then your not going to have the drive to do it, i couldnt see myself as an accountant, using maths sorting out peoples finances would bore me to death, if i can use maths to create a fantastic computer game, then its worth sticking at it, physics is also my favourite subject, i and did a little development before I started this course and realised I loved it, the only real walls are those in your mind, you never going to succeed at something you hate, as with anything in life, do it because you love it.

    Written By _Q_

    Q: "How do I set up the directory options in Visual Studio ?"
    A:The Windows SDK and Direct X SDK directories could be missing in the configuration properties.
    This can happen if the SDK's were already installed when you installed Visual Studio.
    You have to do this anyway when you set up a new Empty Project targetting Windows with Direct X

    For Visual Studio 2010
    In Solution Explorer, right click the project name and select Properties

    Select VC++ Directories in the left pane
    In the right pane, click the text in the Include Directories edit box and replace it with
    $(IncludePath);$(DXSDK_DIR)include;
    (Highlight the text and paste it in)
    Click Apply

    In the right pane, click the the text in the Library Directories edit box and replace it with
    $(LibraryPath);$(DXSDK_DIR)lib\x86 for 32 bit development or
    $(LibraryPath);$(DXSDK_DIR)lib\x64 for 64 bit development
    (Highlight the text and paste it in)
    Click OK

    The Windows SDK directories should have been set up by VS2010 already (as it's clever), if not add the line
    $(WindowsSdkDir)include
    to Include Directories and
    $(WindowsSdkDir)lib
    to Library Directories
    - they must come after the DXSDK so the correct ddraw.h is used


    For Visual Studio 2008
    In Solution Explorer, right click the project name and select Properties

    For the Compiler directories:
    Expand Configuration Properties
    Select C/C++ in the left pane
    In the right pane, click the browse button on Additional Include Directories
    Click New Line button then Browse button
    Browse to and select your Direct X SDK Include folder, usually at
    X:\Program Files (x86)\Microsoft DirectX SDK (August 2007\Include
    Click OK
    Click New Line button again
    Click Browse and this time select your Windows SDK Include directory, usually at
    X:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Include
    Click OK

    For the Linker directories:
    Expand Configuration Properties
    Select Linker in the left pane
    In the right pane, click the browse button on Additional Library Directories
    Click New Line button then Browse button
    Browse to and select your Direct X SDK Library folder, usually at
    X:\Program Files (x86)\Microsoft DirectX SDK (August 2007)\Lib\x86
    Click OK
    Click New Line button again
    Click Browse and this time select your Windows SDK Library directory, usually at
    X:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Lib\x86
    Click OK.

    Written by yaustar

    Q: What is a pointer and why is it used?
    A: Every variable, class instance and function is stored in memory. A pointer holds an memory address of a particular type (the exception is a void pointer but that's something you want to avoid at all costs). E.g

    int * blah; // Stores a memory address to an instance of Foo
    Foo * blah; // Stores a memory address to an instance of Foo

    And for functions:
    void (*blah)(int); // Stores a memory address to a void function that takes one int parameter. Known as a 'function pointer'

    When you dereference a pointer, you can access the actual variable/class instance/function itself to use. E.g
    int meh = 0;
    int * blah = &meh; // The & means 'get the memory address of'
    (*blah) = 10; // Dereferencing the pointer means we are now accessing the int at the memory directly which in this case is meh. So now meh = 10

    If you really wanted to, you can have a pointer pointing to a pointer pointing to a pointer etc.

    For classes and structs, you will see '->' being used to access the functions and member variables instead of the usual '.'. E.g

    Foo * blah = &anInstance;
    blah->randomFunction();

    All the -> is really doing is:
    (*blah).randomFunction();

    When you pass a pointer to a function, it means you can directly access the object that pointer is holding the address of instead of a copy of the object. However, it is preferable in C++ to pass by reference instead whenever possible.

    Other Q&A
    Q: What about Unit Testing?
    A: Here's a few links provided by desterhuizen:
    http://gamesfromwithin.com/backwards...en-development
    http://alexott.net/en/cpp/CppTestingIntro.html
    http://geosoft.no/development/unittesting.html

    Q: Got any tutorials on C++?
    A: Nothing a google or forum search wouldnt solve but go here It has a link to some I would recommend

    Q: I want to write a game in Java - where can I find tutorials?
    A: Here's a link provided by Gnarles:
    http://www.youtube.com/playlist?list...aylist-comment

    Q: Got any Unity Coding Tips?
    A: Here's a link provided by Smoothnshiny:
    http://www.youtube.com/watch?v=N2zdw...e_gdata_player

    Q: Are there any good SDL (Simple DirectMedia Layer) tutorials out there?
    A: Here's a link provided by dev1:
    http://lazyfoo.net/SDL_tutorials/
    Last edited by MarkMD76; 01-03-2012 at 10:38 AM. Reason: Added SDL link

  2. #2

    Default

    This looks like it could be awesome.

    My frequently asked question is : Who is currently furthest on this course and where are they?

  3. #3
    Join Date
    Sep 2009
    Location
    Mitcham, London
    Posts
    820

    Default

    Is this technical faqs ? Good idea as the same concepts keep coming up that new students get confused with, like references, templates..
    would be good to have a common confusions page

  4. #4

    Default

    I'm open to any suggestions here guys and gals. Feel free to write some Q & A's and I'll sling them in.

  5. #5

    Default

    Think that can go into the new students FAQ and All Encompassing FAQ

  6. #6

    Default

    Thanks MattB you're a hero! Yea.. I get it.. the whole data protection thing.. But until people start graduating it would be interesting to know where the furthest person maybe not who they are.. But Section 3 Awesome!

  7. Default

    I have a question.......

    With regards to Portfolio's is it better to have am mixture of games to show a variation in skills or just one or two completely finished all singing all dancing games to show on a portfolio reel?

  8. #8

    Default

    It would be a nice idea to add some stuff about learning C++ for absolute beginners.
    I was one before I started the course
    Maybe add a link to antiRTFM channel on YouTube.
    The guy has a very nice collection of videos,
    that will teach you some basic things about C++.
    It's usefull for anyone from starting point till around section 2 part B.
    As by that point you should know everything the guy is talking about.
    He also explains pointers and references very , also a bit more definition on classes it's a great watch for beginners.
    Visit my blog site : Angler Fish Games
    Try out the first version of pixel fixor : link
    Then check out the update video that is coming soon to this game : link

  9. #9

    Default

    Nova's gone out of his way to write some good Q&A for this FAQ so I've stuck them into this FAQ.

    Will add the Anti-RTFM links soon.

  10. #10
    Join Date
    Jun 2010
    Location
    Derby
    Posts
    503

    Default

    Thanks indi, hope this comes in usefull to some folks

Similar Threads

  1. Replies: 20
    Last Post: 07-31-2010, 06:21 PM
  2. Replies: 0
    Last Post: 06-22-2010, 11:59 AM
  3. Just Signed up on "Game Design Course" Paolo
    By Godfather10 in forum Newbies Area
    Replies: 7
    Last Post: 06-10-2010, 11:16 AM

Posting Permissions

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