Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Everything posted by Leo_E_49

  1. Leo_E_49

    Why do you like programming

    Unlike physical construction, like with mechanical engineering or robotics, computer graphics have virtually no constraints. I like this a great deal. :)
  2. Leo_E_49

    THE best tools for

    Quote:Original post by Promit P.S. I hear ScummVM based games are actually very reliably write once run anywhere. Far more portable than probably any other environment in existence. Interesting... What do you think makes ScummVM based games so portable compared to other engines which claim to be cross platform?
  3. Leo_E_49

    OpenGL vs. DirectX?

    I learned mostly from the OpenGL Superbible. It's a good resource to have handy too. I think that when it comes to learning about games, writing from scratch may be educational but I agree that starting with an existing game engine will be easier and faster for making games.
  4. Leo_E_49

    My Demo Reel

    Hi Folks, I've just made a demo reel of a few of my projects in my undergrad and graduate degrees so I thought I might share it with you all. So, here you go: I attended the BSc (Hons) Computer Games Technology degree at the University of Abertay Dundee for my undergrad and I'm currently an MS Computer Science student at Stanford University. Laurence Emms
  5. Leo_E_49

    My Demo Reel

    Sounds good. Thanks for the advice. I don't really know anyone else who is applying for this kind of job in my degree program so I don't really have the chance here to talk to other people about the sort of thing to put in a demo reel. Most of my classmates are PhD students who're looking to go into research or MS students looking to go into simulations rather than graphics or games.
  6. Leo_E_49

    My Demo Reel

    Thanks for the advice. I'll swap the space shooter to the front of the video for the ones I submit when I'm applying for jobs. :) I did the 2D art for these projects myself. I only really included the 2D game because it's a networked game and might create a conversation point in an interview. I don't like being thought of as a one-trick pony, especially when I've got a wide variety of skills. :p That said, I'll probably remove that 2D section for my final reel. I was a bit worried about the way it looked from the start... P.S. Maybe I should have explained but the particle things at the end are fluid dynamics simulations in 2D and 3D respectively.
  7. Leo_E_49

    MMO topic: Is MMO still appropriate?

    Quote:Original post by Merluche Why hasn't any game that I know of offered yet an experience about having to interfere into someone else's online avatar? Why isn't there a quest to go and HELP someone? or Block someone from doing something? I mean someone REAL, who actually plays the same game too? Why aren't there negociation quests? Why aren't there any other way to interact with people than either kill or ask something from them? Specifically when either one or the other are meaningless in terms of interactions, given that PvPing is usually useless and gratuitous, and that buying something from a crafter won't help either the buyer or the producer, save in terms of property or combat efficiency? Sad fact is, most of what you mention is not actually fun in practice. People get annoyed when someone blocks them from doing something or helps them to do something (reducing the experience they gain from whatever quest they were doing). You should look into metagaming, there are plenty of people who go around role playing in MMORPGs but they do so of their own will, rather than being forced to by the designers of the game.
  8. I wonder how C++0x is going to affect all of these standards and best practices. I'm looking forward to all the new features to be added but it'll take a while to change my coding style accordingly...
  9. Leo_E_49

    3d point-in-triangle algorithm

    Oh right, I thought he already knew that the point was on the plane of the triangle. In that case, it's probably best to try both out if necessary and profile to see which is faster.
  10. Leo_E_49

    My Video game addiction

    4 hours isn't that long, I used to go 6-8 without stopping back in the day. :p What I used to do back in uni was only play on the weekends and only after I got some work done that day. I use games to relax and unwind so it's not a big deal if I don't play around the time when I've got work to do.
  11. Leo_E_49

    3d point-in-triangle algorithm

    Fastest way I know of is using the barycentric technique described in the link in the first response. You can find a pretty fast version of it in the book "Real Time Rendering" by Moller and Haines.
  12. Quote:Original post by ashmantle I recently started learning C++ through books and 3DBuzz's excellent C++ VTM's, but it just stomps me sometimes when they cover something that seems to break the C++ syntax. I'm pretty sure it won't be breaking the syntax, otherwise you'd get a compile error. Quote:A good example is double pointers.. I feel like I grasp the concept of pointers, but suddenly they throw in another asterisk and just assume that I understand that as well. Did the char **pName just become a new pointer to a pointer of type char? or is it a preprocessor directive? or is it an operator of all base types? Stuff like this confuses me. That is called a pointer to a pointer. Basically it works like a pointer to another pointer to an object. You can dereference it like this: int data = 0; int *pointerToData = &data; int **pointerToPointerToData = &pointerToData; **pointerToPointerToData = 10; // This sets data to 10 Remember that pointers and arrays are somewhat interchangable. So often when you see a **, it refers to a pointer to an array. Quote:Then there's []. I understand arrays, but is the double brackets here a keyword for 'Array' or a preprocessor keyword? To clarify, I understand the *p usage, but not the 'delete [] m_buffer' usage. The [] specifies that an operation is to be carried out on an array and is context sensitive. delete[] is necessary for deleting arrays, because array allocation on the free store (heap) is not the same as allocating one single object. It has nothing to do with the preprocessor, as far as I understand it. Quote:Don't get me started on <>'s. I can't find any information about them in the C++ language references I've read, but they're all over the source code I've seen. You have them in include statements, but sometimes I've seen "" been used instead? You have them in the middle of operator overloading functions, for example when 3DBuzz tried to explain how to overload the << stream operator, they threw all the syntax I had learned and understand out the window and riddled the statements with all kinds of brackets. <> is used in a number of contexts. Firstly in the context of #include <iostream>, it means that you are including a header file which is contained in one of the compiler's directories (you can also usually specify other directories for use with the <> notation in your IDE). It also relates to templates for example: template < class T > class sampleClass { public: T myT; }; Templates are used for generic programming in C++. Quote:a good example is the std::list class(?). std::list <var *> varList this looks like an ordinary variable declaration, but now there's <>'s instead of the normal ()'s.. A perfect example of template metaprogramming. Quote:Could anyone help me shed some light on this, my hair is turning gray :) Sorry, can't help you with that one... :(
  13. Leo_E_49

    Need help!

    Perlin Noise Description
  14. Leo_E_49

    3D engine help

    By "3D engine" do you mean an actual game engine or just a graphics engine? If you're just looking for a graphics engine, you might want to try Ogre3D or Irrlicht. For an actual game engine, it's pretty tough to say how to make one, because every game must have its own type of game engine. For example, RTS games use RTS engines, etc. Some engines out there can be used for generic games, but they are few and far between and tend not to be as useful as specialised engines. In terms of actually writing game engines, the book you were referring to is probably the best resource I can think of. I'm sure that if you know design patterns well enough, you'll be able to design your own game engine based on abstract factories, factories, mediators, etc. There's no "right" way to write a game engine, so just do whatever works and optimise later.
  15. Leo_E_49

    Calc how many Verts on screen

    Only way I know would be to construct a frustum from your camera data and then do a frustum intersection test on each vertex in the scene, which would be very slow indeed.
  16. Leo_E_49

    Async mouse input

    Ah thanks for the correction. First time I've ever seen that function before. Win32 code still gives me a headache these days... Hey, while we're at it, you know any good books which deal with Win32 API stuff like this? I've been looking for something other than MSDN for this subject for years.
  17. Leo_E_49

    Async mouse input

    GetCursorPos is one way of doing it as stated above. (If you need an FPS style mouse control, you can call SetCursorPos after getting your mouse delta from GetCursorPos in order to fix the mouse to a point on screen) Make sure that if you use GetCursorPos, you setup your window such that the client area is the size that you originally defined as your window width and height, otherwise your GetCursorPos coordinates will include the window border. Refer to: clicky if(!p_fullscreen){ GetClientRect(*p_window,&client_rect); MoveWindow(*p_window, 0, //Left edge 0, //Top Edge window_width+(window_width-client_rect.right), //New Width window_height+(window_height-client_rect.bottom), //New Height TRUE); }
  18. Leo_E_49

    PC Gaming Slump

    This slump in the PC game market must be hurting Intel, AMD, ATI and NVidia like nothing else. I can't imagine they'll be too happy about that.
  19. Leo_E_49

    Anyone ever feel like theres too much to learn?

    I love learning about programming and game development so it's no problem for me. At the moment, I'm learning Python just for the heck of it. :p Sure, I don't know whether I'll ever know everything there is to know about game development, but I'm sure I'll know a whole lot. :D
  20. Absolutely, design patterns save me a LOT of time designing, especially when my code goes above 10k lines. I don't know what I'd do without UML + design patterns. Head First Design Patterns was also my first design patterns book, and it's an excellent basic coverage of the subject. :)
  21. Leo_E_49

    Stuck on Classes

    Best entry level C++ book I know is "Accelerated C++". Go down to a library or a book store or something and check it out. If you like the way it's written get a copy, it's worth the very reasonable price. Accelerated C++ teaches C++ starting with a coverage of the higher level concepts and working down to the lower level concepts. Imho this is the way that a programming language should be taught. A super simple class might look like this: class SuperSimple { }; in order to add member data, you would declare it inside as in: class SuperSimple { int memberData; }; member functions (methods) work in a similar fasion: class SuperSimple { void memberFunction( void ) { return; } }; It's important that you understand public, protected and private access. You should read a book to understand those, because it takes a lot of time to figure them out but here's the syntax for a public member function and public member data for example: class SuperSimple { public: void publicFunction( void ) { return; } int publicData; }; NOTE: It's generally a VERY bad idea to declare any member data public or protected because it's free for anyone to mess around with, potentially breaking any invariants in your code. There are exceptions to this rule of course, but for general use, make sure you declare your member data as private. Constructors and destructors are kind-of, sort-of optional. You can choose not to define them but it's usually not a good idea to leave them out. Constructors are simply member functions which have the name of the class and no return type. Destructors are simply member functions which have a ~ followed by the name of the class and no return type or parameters. Constructors are automatically called when an instance of a class is created and destructors are automatically called when an instance of a class goes out of scope or is deleted. In general, you use constructors for setting the initial values for member data and allocating memory for member data stored on the free store (heap). Destructors are generally used for deleting member data stored on the free store. You can declare constructors and destructors like so: class SuperSimple { public: SuperSimple( void ) { // Do setup stuff in here } ~SuperSimple() { // Do cleanup stuff in here } }; Using a class: int main( int argc, char **argv ) { // Create an instance of class SuperSimple SuperSimple myInstance; // The constructor is called here // Accessing public member data myInstance.publicData = 0; // Calling a public member function myInstance.publicFunction(); return 0; } // The class goes out of scope when the function it is created in ends // The destructor is called here When accessing data using a pointer to an object, a different syntax is used. For example: int main( int argc, char **argv ) { // Create an instance of class SuperSimple SuperSimple myInstance; // The constructor is called here SuperSimple *pointerToMyInstance = &myInstance; // Accessing public member data pointerToMyInstance->publicData = 0; // Calling a public member function pointerToMyInstance->publicFunction(); return 0; } Of course, the above are simply one way of declaring functions in a class, it's possible to define a function outside of the class definition, or even in another file, if you use a different syntax (like the syntax described in one of the posts above). Once you get into more complex stuff, the syntax becomes more complex so take your time to learn all of these and use what you're comfortable with. Learning C++ is a gradual progression, you can use what you know and learn as you go. :) [Edited by - Leo_E_49 on February 6, 2008 3:27:22 AM]
  22. Leo_E_49

    C++ and doing it right

    The industry continues to produce games, despite having some really horrible code. Often the benefits of using "correct" code to readablity and performance are outweighed by the costs to development times and programmer retraining. In other words, retraining programmers to use best practices and rewriting code to support it is most likely too costly to be worthwhile. Also, always striving to create the most readable or optimised solution is not always the most efficient development mindset. You can be refining your code indefinitely but with millions of lines of code per computer game today, striving to make the whole thing perfect is an exercise in wasting time. If the code is generally understandable by the team, is relatively error free, can be produced on or before deadline and works with acceptable performance, then it's fine for a computer game. If optimisations are needed, the code can simply be refactored. This mindset towards development has the benefit that if you are running short on time for the project, at least a working prototype of the code to be optimised is in place before refactoring. This demonstrates that the module can be made to work; effectively serving as a proof of concept. In my meagre programming experience, it's better to write the code in a fashion which my team can easily understand and then run a code profiler and optimise areas in which bottlenecks are found. Sure, it doesn't suit a perfectionist's mindset and I certainly would love to have all my code, including legacy code, completely optimised and written according to best practices, but sometimes things just don't work out that way... Oh and just so I don't get bashed for all this; I do like to code as best I can, I use STL for most of my containers, I avoid using old style C coding, I despise macros and defines and use them sparingly, I like the syntax of exceptions and I cast using static_cast, dynamic_cast, etc (I don't tend to use smart pointers, I tend to manage data using my own memory management because of legacy code, although I have been researching them); but in practice, not everyone codes the way I do and sometimes, when I want other people to understand what I'm up to, I code the way they're used to. It takes a lot of time and effort to learn best practices and most of the resources available to even the best programmers (books, websites, etc) contain poor practices in one form or another. N.B. I'm not a professional developer, just giving my personal opinion.
  23. Leo_E_49

    How to develop a game

    I think the reason I use C++ more than anything else is because there are WAY, WAY more resources on game programming using C++, especially when talking about advanced topics, than any other language. If I could find all the information that I know about C++ game programming in other languages, not to mention libraries for each of them, I'd have swapped to those languages ages ago. I'm a big fan of Java but I just can't imagine swapping away from C++ at this point or anytime in the near future. There's just a prevalence of C++ code in this industry. I definitely think it's worth knowing C++ well if you are considering a job in game programming but knowing more languages, such as C#, Java and Python never hurt anybody. A good language doesn't necessarily make a good program, a good programmer makes a good program. Imho a good programmer should be able to cope with whatever language they require to do their job. P.S. You don't have to make a Tetris clone first if you don't want to. It's a bit over-used and unoriginal. If you're going to bother making a game, make something which is your own IP but keep it simple; it's more fun that way.
  24. Leo_E_49

    Making an Engine...

    Making a game engine is a massive endeavour usually undertaken by a team of programmers, rather than an individual; much less a beginner at programming. I wish you the best of luck in your endeavour, you're going to need it. If you want to have a higher chance of success, start small and build your way up to a full game engine. 2-3 actual small games, completed fully and polished, under your belt and you'll find it much easier to build a simple game engine from scratch. Why waste time on a convoluted generic engine at the start when you can actually go out and make small games first? That way you have something cool to show for all your efforts. Later you can work on an engine which will be much more impressive and effective. I say this because I hate to see such enthusiasm as you have go to waste. Furthermore, if you are serious about making games, get yourself good grades in higher mathematics (A or B grade) and apply for a degree in Computer Games Technology at the University of Abertay. The degree is a no-nonsense degree which will take you from knowing basically nothing about programming to being a halfway decent game programmer in 4 years. One note: they will NOT accept you if you do not have an A or a B in mathematics at advanced highers level. I've spoken to the lecturers personally, and I've just finished the course this year. They won't even look at an application with mathematics less than a B grade. The mathematics in the course is VERY difficult, especially at 4th year, so an excellent foundation in high-school mathematics is essential. Other degrees such as those at Teesside and Hull are equally as good but I don't know about their entry requirements. (Teesside appears to have lower mathematics requirement for entry with only a C grade required) [Edited by - Leo_E_49 on May 25, 2007 11:11:24 AM]
  25. Book The original source of the space marine concept. I would highly recommend that people read this book to get an idea as to where it came from. Space marines were originally designed as a propaganda machine in the story for ensuring that the human forces were seen as invincible. They would terrorise enemy settlements to ensure that an easy surrender would be achieved. I like Heinlein's original portrayal of the space marine better than any portrayal since (his book, not the movie made later). There can be a much deeper meaning to the space marine concept than just as a "unit".
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!