• Advertisement

OrenGL

Member
  • Content count

    234
  • Joined

  • Last visited

Everything posted by OrenGL

  1. Gal, I came to the US to pursue a career in the games industry, as you are interested in doing, but I did my computer science degree in Israel before coming. Other than getting good grades the most important asset in helping me get my first job was my game demo. At a game specific school you'll often write a few game related projects you can show off when seeking a job. However I still would recommend getting a traditional computer science degree, since I do believe that it prepares you better for solving new problems, which is a much more useful skill in the long run. On caveat is that it is not uncommon to see a graduate who does not know how to program. When someone hires you they want you to be effective. Make sure you you complete your degree feeling comfortable programming in C++ and can prove it. As far as schools go, try and find a school in a city that has a lot of developers. San Francisco, Seattle, Austin, LA. The more the better. These cities host large game related conferences (such as GDC, E3 or PAX) and many small ones too. It will also make it easier for you to find an internship. Good luck!
  2. Hi Everyone I'd like to learn more about FEM, in particular I'd like to write a little real-time 2D solver, perhaps a bending rod or some other deformable object. There is a lot of info out there on Google and plenty of books, but none seem geared towards video games (or real time visual simulation). Does anyone have a recommendation as to were to start? Regards, Oren
  3. Thanks Maze. I'm processing the math, which may take a while. I'll be sure to get back to you if I have questions :)
  4. There certainly is a huge variety of material on the subject, which is why I’m seeking help to point me to the right direction. I’ll go over the wikipedia article thanks! Calculus and Linear algebra don’t scare me, although it been a while since I’ve done any deep academic work, both have always been fun. Programming in C/C++ is second nature, I can get by in Python and C# and probably anything else if there was reason to. First I’d like to understand of the theory behind FEM and know what areas I would need to learn more deeply so that I could write a 2D solver. If I were to compare this to rigid body physics, I’d want to know that I needed to learn a bit about collision detection and response, integration methods, contact resolution, ext. At the very least I could write some pseudo code describing how an FEM solver works and then dig into the details of each part. You’d probably be better qualified to label the problems I’d like to solve. I can describe them with the features of the sample app I had in mind. For example: 1. A metal rod that could bend by user interaction and return to its original shape (completely or partially). 2. A ball that could inflate or deflate. 3. Being able to launch a metal ball at a metal wall and have the wall bend. 4. Displaying the stress of each element by a different color. 5. An elastic rope that could stretch if pulled. Thanks for your insight!
  5. Collision Detection for 3D platformer

    The way I've seen collision for 3D plaformer characters done before is to use two spheres one on top of the other. The collision code is simpler (and faster). This also allows for shrinking the top sphere into the bottom one to support collision when the character crouches/balls-up/whatever.
  6. So at some point the program starts slowing down, but you can still debug it remotely? You should be able to take a profile snapshot when it starts out and compare it to when it slows down to hunt for clues. It will at least tell you where it is slowing down. Also another trick that works for me once in a while is to simply pause the app via Visual Studio. If you pause it 5 times (when it is slow) and it stops at the same place 4 times, you probably have a solid lead.
  7. My guess would be that you need to normalize the direction vector before you try get the Euler rotation from it.
  8. Getting A Foot In

    If you're not that great on the technical or artistic side I would suggest trying to create a board game or a card game. A physical version that is! Let your friends/family/co-workers play it and get some feedback. I've worked with some designers on big budget games that still did this in their spare time.
  9. Random puzzle spawns?

    Have you played puzzle quest?
  10. Debugging C++

    Quote:Original post by glPetter3f Hi, the bug isn't some particular thing that doesn't work, everything becomes different, it is impossile to walk, all ennemies dissapear things become black and then the program crash or freeze. And eventhough some particular thing wouldn't work isn't it possible that the error is somewhere else in te code? I am wondering if there are any good debugging programs or anything like that? You're using visual studio 2003, that is a great tool for figuring out what is going on. When this happens, place a break point in an area you are familiar that is not working properly. For example if you are unable to walk, place a breakpoint in the part of code that makes your character walk. Investigate the state of things, you might not find the source of the problem immediately however you should be able to narrow down the list of possibilities. I'm assuming you are using version control? Since the game was running just fine for a while, you try binary searching for you change list in which the problem started. Check in what you have, and sync to an earlier version of your game. Test it, see if it happens and keep going until you find the problematic version. Then diff the changes and maybe you'll be able to eyeball the problem.
  11. Working on Your Own Project

    I'm in the same situation. If you're working 14hr days now, I don't think it's possible to do anything out side of work. You're probably readying this post on a Sunday evening at work in that case anyway... But once you're back to 9hr days, what I find best is getting up an hour early and heading out to a coffee shop. For me it's like "going to my other office" which keeps it productive. Certainly go before work (and do the gym after work). YMMV, if you need a desktop to compile, you might want to just to planning or brain storming out of home.
  12. Access Violation Error

    Would you mind posting the call stack?
  13. The thing I would like the most is to be able to select the window I'm looking at by just looking at it and not needing to alt-tab or mouse clicking it. This is something that I need especially when working with multiple applications and keyboard short cuts. - Oren
  14. Access Violation Error

    Without looking at your code, the message: Access violation reading location 0x00000000. means that you are trying to dereference a null pointer. On the call stack you can usually go one frame up from where the program stopped to see the null variable.
  15. I'm having a weird problem with debugging. My application is a C# GUI and MC++ wrapper for an unmanaged C++ core. When the C# part calls the render function the MC++ is called and then the unmanaged part is called. I can debug line by line with no problem until I reach an unmanaged function containing the line: D3DXMATRIXA16 mWorldViewProjection = g_matWorld * g_matView * g_matProj; Then the debugger just goes strait into the functions within that function (like useing F11) skipping the function body. If I put a line like: int stop_here = 0; with a break point on it in the function the debugger just skips it (and has a '?' on the break point). If I remove every thing from the function and only leave the line: int stop_here = 0; it has no problem stopping there. Anyone every have this problem before? Could it be something with compilation settings? Thanks for any leads :)
  16. Navigation and real time combat would be the first IMO. From the list though it sounds like you can make this a non real time game if you prefer.
  17. angle in a circle

    You know I really like these questions. Every few months I run into it again and realize I totally forgot how to solve it... After scratching my head for a bit here it is. Let a = x-o Let b = p-o Let alpha be the angle you are trying to find a cross b = ||a||*||b||*sin(alpha) a dot b = ||a||*||b||*cos(alpha) so (a cross b) / (a dot b) = sin(alpha)/cos(alpha) = tan(alpha) So alpha = atan( (a cross b) / (a dot b) ) Edit: a cross b is a vector and you need a scalar. There is a 2d version of the cross product that gives a scalar... Oh my rusty brain...
  18. collision penetration correction

    Lets assume you can find the orange point. Then: green + R - orange point == red point. So you have the orange line. You also have the direction the ball was going. Project the orange onto that vector and you have the vector to offset the ball. To project the vectors you dot them. Normalize the ball direction vector and dot it with the orange line vector. Then multiply this size by the direction vector.
  19. Finding closest attack target?

    "know which direction I must go to catch the closest rabbit" 1) Find the closest rabbit. This can be done by iterating over all rabbits, computing the distance and saving only the smallest one 2) Create a vector to that rabbit from your monsters position. 3) Compute the angle between the two vector (or a planar angle?). What I did want to say is that when choosing a rabbit you might also want to take into account the direction to that rabbit and not only the distance. In Game Gems 5 there is good article about such a function that is easy to tweak and visualize.
  20. Variables disappearing

    What you can do is breakpoint at the point you set the variables. Then set a data breakpoint on them and run. If someone overrides them you'll hit the data breakpoint.
  21. Do you know what the width of each character is?
  22. Have you guys played this 'OGame' that madsravn is referring to? It's not an RTS in the PC manner, it's almost turn based. A lot of these problems of real time communication and being animation heavy are solved by the gameplay. I don't think you'd need to do any flash programming for this type of game.
  23. Equally partitioning a Curve

    Hmm, gets me wondering if there is no elegant way to integrate splines. A Bezier spline for example.
  24. Mikle3, IMO inheritance is used to group things that have different functionality into one system. A good example I think would be an event from animation system. All events get triggered the same way (after a certain time in the animation), but when executed they do different things (one plays a sound, on does damage to adjacent enemies). The common thing is that they are all triggered the same way. If in using multiple inheritance your ancestors are not orthogonal; then your derived classes no longer override, they compose. Composition by inheritance makes the base classes dependent on one another. For example if both base classes had health functionality, then the derived class would have 2 kinds of health which are really the same thing. When you ask yourself what is common to an Orc, an Elf, a Catapult and a soldier what do you come up with? What is different about an Orc than a Half Orc?
  25. Jsloan, Figure out what you are trying to do first. Why is the functionality grouped? What do they share and what is not shared? I would consider using a component system over a hierarchy for characters. Some things of your characters may only differ by a few stats and some might behave differently. If the difference is only stats or visuals, you can load these from data (make an xml or txt file for each character). If they are going to behave differently you'll need to read in that data and then do some kind of processing in code. For example, the mage can use magic bolts but the solders only has melee. Then you can read in and create and then add different types of functionality to different characters. For example the mage file would have a magic attribute. When using inheritance for characters you end up with things that don't always make sense or you limit yourself. For example a troll that does magic and melee, is he a mage or a soldier? You could use multiple inheritance to solve it but you might end up with a web of dependencies. With components you can add a melee component and a magic component. What constitutes as a component and what is a variation is up to you. For example a long sword and a short sword might both be melee components with a different range value.
  • Advertisement