Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Game Engines

Options
  • 06-11-2010 4:53am
    #1
    Registered Users Posts: 156 ✭✭


    Anyone here interested in game programming? Been getting into it a lot lately but its hard. What would ye all say would be prerequisites for it?

    I think I've a solid enough grounding in C++ and tipping away at design patterns and software engineering books. I havent done much graphics though (tiny bit of openGL only). Also, what engines do you think would be the easiest to start with? I tried irrlicht a bit but I get so far and hit a brick wall...

    Any help or advice appreciated :)


Comments

  • Registered Users Posts: 981 ✭✭✭fasty


    I do a bit of game development on the side.

    OGRE is a popular C++ engine that uses a lot of good (and bad) design patterns. UDK is another one that's free for non commercial titles and Unreal Engine is industry standard.

    I decided against using any third party engine. I wrote my own little framework for window, device and resource creation and management and it serves me well. I'd actually recommend that, too. Just get simple stuff working on screen and build on it instead of looking at a massive base of code thinking "how to I even display a model???"

    Are you using Windows? I could post some basic Window and D3D creation code if you like.


  • Registered Users Posts: 1,481 ✭✭✭satchmo


    I work in games as a graphics programmer. I'd say it depends what you want to get out of it, but I'd agree with fasty and say you should try and roll your own if possible. You'll learn a lot more that way. If you're just looking to get a game up and running quickly, something like UDK or Unity might be a good idea. However afaik both those engines' free versions don't let you write any code yourself, instead you have to program it through their editor and scripting language which might not be so interesting. Ogre or something similar might be better alright.

    But if you're interested in trying to get a job in games, writing your own (even simple) engine is the only way to go - excellent programming skills and a good demo are very important. As for prerequisites in general, I'd say C++, persistence and patience!


  • Registered Users Posts: 156 ✭✭MoogPoo


    Thanks guys, yeah thanks i'm trying that approach at the moment. Got two good books 'Game Engine Architecture' and 'Game Coding Complete' but its slow going through them and as I'm only going through them topic by topic and slowly building it's hard to kinda see where its going because I kind of need a complete picture of an engine before understanding it all. Looked at Ogre and Irrlicht engine but yeah theres a lot in there and its overwhelming.

    What kind of design patterns are the main ones by the way. I'm new to design patterns so it's difficult going through them. What kind of ones are necessary for making an engine? The books have singletons for different managers like resource manager and stuff, then I think theres a factory for building things too(havent gotten to that) and I think they use Observers for Event managers, does that make sense? Do you think I should just go through a load of patterns first or just go through the books and learn them as necessary? Any other prerequisites to programming I should know, the books are kind of heavy going through...

    Thanks fasty, I wouldnt mind a look at your code it might help to see something running without all the bells and whistles.

    Oh also I havent done that much DirectX or OpenGL, but I understand most of the theory behind it and did some OpenGL tutorials ages ago. Should I brush up on this first or is the rendering part pretty basic?
    Edit: Should I learn about the windows API first too? Sorry about all the questions I don't know about a lot of areas still...


  • Registered Users Posts: 981 ✭✭✭fasty


    Game Engine Architecture is excellent. It's written by one of the guys who worked on the Uncharted series!

    I think you're better off learning patterns as you go. Design patterns all have their place, but it's a mistake to learn them first then try to make every problem you come across fit a pattern.

    Coding is about getting things done, and it's not always perfect or pretty. I think you're way better off looking to design patterns or solutions online when you're stuck, if you just study them, you'll get nothing done. Trust me, I've been there!


  • Registered Users Posts: 156 ✭✭MoogPoo


    Great I was hoping you'd say that! Did you learn DirectX before you made your engine by the way? Also you know all the code from that book, will that alone be enough for a basic engine or is it a starting point only?


  • Advertisement
  • Registered Users Posts: 1,332 ✭✭✭the untitled user


    Some good advice here already. To add my own, if you're having difficulty with some of the more general concepts involved, say for example the linear algebra, you could always use the likes of XNA (C# and .NET). Won't be much use in terms of the architecture side of things but it's very quick to get up and running so can be useful as a 'proof of concept' tool.


  • Registered Users Posts: 981 ✭✭✭fasty


    MoogPoo wrote: »
    Great I was hoping you'd say that! Did you learn DirectX before you made your engine by the way? Also you know all the code from that book, will that alone be enough for a basic engine or is it a starting point only?

    I didn't make an engine, I made a small framework of code for demoing ideas and one of those has evolved into a simple game. I knew the basics of DirectX when I started, but the more complicated stuff I picked up as I went along. I focussed on having some actual game play that I can flesh out.

    There's plenty of learning in getting a window on screen and drawing some geometric shapes, then having them respond to input then lighting and texturing them with HLSL and so on.


  • Registered Users Posts: 156 ✭✭MoogPoo


    great thanks guys. Tried XNA before but got a bit bored. Im ok with the maths side of things, did linear algebra and 3d math and stuff in college. Started making flash games before too a bit using a framework i had found too so I'm not too bad from that side of things. Mainly just trying to get to grips with architecture and engine of a 'proper' game but its a big step up.


  • Registered Users Posts: 2,762 ✭✭✭Sheeps


    XNA is definitely the best for messing about with. Very easy to put ideas in to working 3D or 2D prototypes in a very short period of time.


  • Registered Users Posts: 981 ✭✭✭fasty


    I came across this article - Write Games, Not Engines this morning and thought it might be good to post it here.

    Basically, this is bang on. There's no point in trying to make and engine in isolation, but if you try to make games, you'll find yourself with loads of reusable code for the next prototype or demo!


  • Advertisement
  • Registered Users Posts: 156 ✭✭MoogPoo


    Great link, they got me in one...
    Nonetheless, every so often comes the obligatory post on GDNet by somebody who has decided its time for them to write their engine, so they can start making some real games. These posts usually consist of requests for resources about the engine design and development process, and in fact chances are that if you’re reading this, it’s because I caught you making just such a post and linked you here so that I could crush your dreams with a minimum of effort on my part.
    Im just starting directx now anyway, i think im gonna start making tetris clones and things like that for a while...


  • Registered Users Posts: 856 ✭✭✭firefly08


    Im just starting directx now anyway, i think im gonna start making tetris clones and things like that for a while...

    Since you're interested in starting at the basics, I can't recommend Andre Lamothe's books enough: Tricks Of The Windows Game Programming Gurus and Tricks Of The 3D Game Programming Gurus. The info on DirectX might not be totally up to date (the first edition was contemporary with DirectX 7, after which MS changed a lot of the interfaces, although they maintained backward compatibility) but the stuff explained in the book is for the most part independent of any specific graphics API - he shows you how to use it, then it's abstracted away for the rest of the book.

    Lamothe is the best technical author I've ever read. There seems to be no concept he can't make accessible - I wish he wrote on more subjects than just games. I only ever dabbled in this as a hobby, but I 'd say there is enough info in his 3D book to get you from a novice C programmer to a 3D graphics engine guru, if you can handle the maths.

    (Also, if you have any interest in console design at all, his more recent book The Black Art Of Video Game Console Design is one of the most incredible books I've ever read. If you have only a basic grasp of programming, it will teach you literally everything you need to know to be able to pick a CPU, design and build a working computer around it, and program that computer. )


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    firefly08 wrote: »
    Since you're interested in starting at the basics, I can't recommend Andre Lamothe's books enough: Tricks Of The Windows Game Programming Gurus and Tricks Of The 3D Game Programming Gurus. The info on DirectX might not be totally up to date (the first edition was contemporary with DirectX 7, after which MS changed a lot of the interfaces, although they maintained backward compatibility) but the stuff explained in the book is for the most part independent of any specific graphics API - he shows you how to use it, then it's abstracted away for the rest of the book.

    Lamothe is the best technical author I've ever read. There seems to be no concept he can't make accessible - I wish he wrote on more subjects than just games. I only ever dabbled in this as a hobby, but I 'd say there is enough info in his 3D book to get you from a novice C programmer to a 3D graphics engine guru, if you can handle the maths.

    (Also, if you have any interest in console design at all, his more recent book The Black Art Of Video Game Console Design is one of the most incredible books I've ever read. If you have only a basic grasp of programming, it will teach you literally everything you need to know to be able to pick a CPU, design and build a working computer around it, and program that computer. )


    Incidentally, seeing as I come across this, I've got a copy of LaMothe's
    'Tricks of the 3d game programming gurus', which has just been mentioned, for sale.

    (And some other books: http://www.adverts.ie/187370/non-fiction/soft-eng-and-games-programming-high-quality-books/ ) if you are interested.

    Its very much about writing a renderer from the ground up, and a good book.


  • Registered Users Posts: 156 ✭✭MoogPoo


    wow some great books there, Im in Cork though. My brother ususally goes up to Dublin most weekends anyway, so I wouldnt mind getting one or two of them. Ill get back to ya...


  • Closed Accounts Posts: 5,482 ✭✭✭Kidchameleon


    Try SFML, nice little API. XNA is good but if you ever make anything that you'd like to show off its bad for distribution, with all the prerequisites required.


Advertisement