Thread: So you want to be a game programmer?

  1. #1
    Software engineer
    Join Date
    Aug 2005
    Location
    Oregon
    Posts
    283

    ...

    Removed. I think programming five years straight causes the mind to draw up conclusions on programming and on other people. I was wrong, and I understand your points. Everyone here has insight to game programming whether it is graphics, gameplay, etc. I should take advantage of your input more often rather than categorizing everyone. I could be right or wrong, but the post wasn't necessary other than proving I need a vacation. Anyway, I'm sorry and I hope you guys can forgive my nonsense. I'm still learning from others. I have no reason to be biased against them.

    I'll confess that one of my reasons includes writing software engines. I feel like a god when I write them, so I have felt that I am more superior than the rest. Another reason may include that writing to forums for years about Tricks and software had led to several arguements and that's all my mind wants to do now: arguements. A third reason includes a different attitude on the web. I'm actually normal in person, but on the web I seem more angry probably due to those bad experiences. It always had to do with my recommendations and they were probably bad to begin with on my side. I'll just stop recommending them because trying to get today's 3D to work in software is indeed a frustrating process. I'm just going to work in hardware now to reduce this stress (that's what it's there for!), and I'll definitely start listening more. I hope you guys will know later that I am trying.

    dxfoo
    Last edited by dxfoo; 09-25-2006 at 08:34 AM.

  2. #2
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    I think this belongs on the GD board.

    But while we are on the topic we've come across some problems in our game design. We were wondering if you may be able to assist.


    Here is a list of issues that must be addressed:

    • Script synchronization with the objects - sending messages to objects that are off screen doesn't make much sense b/c even if they respond, it won't be seen
    • Objects that are off screen need not be updated because this engine scrolls 1 screen at a time. So essentially objects that are off screen are non-existent at runtime
    • Object that are on screen must follow their assigned waypoints and scripts as well as execute their attack scripts when the engine deems the main character or some other character is a threat
    • The engine must be able to fire off the correct animation according to the character state. Wouldn't make sense to fire off a walk right animation while attacking. Also animations must also take place while the object is in motion which mean constant updating of both position and animation.
    • When the user walks to the edge of the screen, the current screen is scrolled out and essentially goes out of scope, yet the entire script for all objects does not. How do you account for this?
    • There are certain levels in the game that are implemented as per-pixel scrolling and the update algo must account for this. This means that as objects are scrolling into view, they are then script activated and/or engine activated depending on the object state and type, script state and type, game state, quest state, and character state.
    • Conversations can be initiated with certain characters so how do we track which conversation belongs to which character and how do we track what has already been done? Talking twice to a character should alter things. Also how do we track the conversation state and how do we implement a window system with controls to do a scrolling window under DirectX.
    • Our entire system is message-based so we must account for this as well. Messages are sent to a message router class which resolves a script object ID into an object pointer. The script ID's are arranged by ID so certain ID's resolve to certain types of commands. Based on the range of the ID which is a UINT the msg router class will send messages to the correct manager class. The engine and object container have a ScriptMsgProc that is called from CMsgRouter::RouteMessage(SCRIPTFUNC Func). How do we implement a message pump from Script to CMsgRouter?
    • How would we go about doing animated tiles when our entire system does not use a vertex buffer, a regular grid, or a linked list. It uses a simple array of of CMap objects which wrap access to a linear array of UINTs. Our texture manager uses an array of CTexture objects which encapsulate the IDirect3DDevice9 interface and also supports custom loading of a custom file format into an IDirect3DTexture9 texture. So how do we do animated tiles given this component design we've chosen?
    • How do we account for the fact that some messages may have already been sent to our objects? Executing them again amidst executing another doesn't make sense b/c the object will never execute the entire script.
    • How should we pass information back from the objects to the Script class?
    • How would we implement quests, if conditionals, random events, etc?
    • How would we implement a simple weather system into the game?
    • How could we simulate lighting flashes and thunder for stormy days?
    • How could we simulate per-quad or even better yet per-pixel lighting in our tile engine without using any of the fixed function pipeline? In fact none of the game uses the T&L engine.


    Please help.

    BTW graphics are simple. The rest is very complicated. I'd say that out of our 134 some source files 70% or more are just for efficient resource management. 10% of them are for getting a DirectX framework up and running, 2% for DirectAudio, 4% for DirectInput, 4% for a graphical message-based GUI, and the remaining 10% for script execution and maintenance. And 134 files for a game is extremely small. Most of our code right now has been for MFC editors and tools just to get the data to disk in a format our engine can load.

    Serialization of objects is a big issue in games and in applications. If you do it wrong, you won't have a very good game.

    GDI sucks. It has nothing to do with modern graphics or even outdated graphics. Selecting a bitmap into a DC as a scratchpad for pixels and then blitting to the DC from another DC has squat to do with real graphics concepts. It's more of a MS convoluted approach to merge printing and drawing so that a single DC object can do both. In essence drawing to a DC is nearly the same as printing to a DC so printing becomes a snap because you can use the same OnPaint() function.

    You have gone way too far with this one my friend. It would be best if you learned a bit more before embarking on a thread such as this. Humility is a good thing.

    And since this forum is so below your leet skills feel free to leave any time. You haven't contributed anything to it that I deem of value, interest, or demonstrates you even know what the hell you are talking about. You keep talking about the low level stuff yet you haven't showed anything that tells me you even understand it. You haven't showed texture mapping w/o hardware and you haven't showed rasterizing w/o hardware so who are you? I've done all of these in DOS and all I can say is I'm glad those days are gone.

    There are a lot of people on this forum that do know what they are talking about as well as on gamedev and gamasutra and what you see here rarely conflicts with what you see there. But since you've had probs at gamedev, which I can understand why now, you prob wouldn't know that. And we've done research on you and if you are the same dxfoo you seem to like C# and Java over C++ or anything else and it does not appear you understand basic memory management.

    So I say leave if you want to. I wouldn't want someone like you on my team and I'd take any of these 'dependent' game developers here over you any day, any time. Your attitude sucks.
    Last edited by VirtualAce; 09-24-2006 at 09:40 PM.

  3. #3
    Registered User Tonto's Avatar
    Join Date
    Jun 2005
    Location
    New York
    Posts
    1,465
    This is slanted, and I think the terms independant and dependant are inappropriate.

  4. #4
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    > The first step in becoming a game programmer is take out the 'game' and throw in the 'graphics,'

    Really?

    I don't think so.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  5. #5
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    >The first step in becoming a game programmer is take out the 'game' and throw in the
    >'graphics,' since that often is what you do.
    No offense, but that sounds like an overly biased and ignorant statement. The actual graphics management of a game is only a small portion of the code base.
    My best code is written with the delete key.

  6. #6
    Registered User
    Join Date
    Aug 2003
    Posts
    1,218
    I think bubba forgot some questions, so to help him ill fill in his blanks.

    How would you, in an rpg, keep track of which conversation to load, depending on which quest has been completed, has yet to be completed and are running at the moment??

    Which way would be the best way to load a script, which has been created in a script editor?? Should i go with plain text, or would an assembly like system be better?? Is there any way to load a script back to the editor without parsing through text or assembled code?

    How would you override an enemys AI to, if some conditions are met, the enemy runs instead of fights (as an example)??

    How would you ensure that an object loaded into a gameworld always loads with the correct texture, animation and script. And how would you ensure that the script always calls functions to the correct objects?

    Would you run a script as its own thread or would you run it in the main thread??

    How would you execute a script for maximum performance at runtime?? What would the basicy script-system be like?

    What, in your opinion, is the best way to setup a GUI system? The system has to be easily maintained, it must be easy to add stuff. And maybe most importantly, how would you keep track of what to show and what not to show??

    How would you ensure that the GUI system responds to a keyboard-even/mouse-event when it should and only when it should respond to that?

    How should one create a GUI-system where 1 system is the main-screen (think BF) and 1 completely other layout is the ingame system?

    How would you implement scrolling textboxes?

    How should the gui-system access the objects (think backpack of an rpg)??

    Where do we store scripts, objects, textures, animations GUI objects, and how will objects be able to access scripts textures and animations?? How will gui-stuff access objects??

    How should a script, that allows both php-style variables, and variables that is just a number, keep track of if a number is the actual number or if a number is a variable? How do you access the variables?

    Consider a script like this:
    if(SomeCondition(objID))
    SomeAction(objID, param1)
    end
    What would be the fastest way to determine what should do what?? How does the script make sure the destination is reached?

    Take this script:
    SetVar($var, 10)
    SetVar(10, 11)
    SetVar(54, GetNum())

    Considering that the second parameter can be a variable, a normal number and a functioncall. Now also consider that variables can be represented both by a number and a php-style variable, how do you determine which is the case?? How do you call the function in the third SetVar call?

    What is the best way to implement a construct like this, in terms of runtime speed?
    if(Cond1() AND Cond2() OR Cond3())

    How do you implement an if-else if-else construct in a script? Runtime speed once again an issue?


    You post is ignorant, telling people that gamemaking is all about graphics is beyond words. These are some issues I deal with at the moment (as a hobbyist programmer i might add, not employeed at a company). Consider game-making as a puzzle, graphics isnt a very big piece of that puzzle. Sure graphics has to be fast, but the rest has to be smooth, wellorganized, robust, and foolproof.
    STL Util a small headers-only library with various utility functions. Mainly for fun but feedback is welcome.

  7. #7
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    Quote Originally Posted by dxfoo
    They are not usually the brightest people on the team though and may have a hard time tagging around with the brightest graphics innovators in the industry.
    This one is just offensive.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  8. #8
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    >This one is just offensive.
    Well, in this case it would have to be with tongue firmly planted in cheek, wouldn't it?
    My best code is written with the delete key.

  9. #9
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    LOL, indeed (i'll be honest. I sat here for about 10 minutes trying to figure out what that meant).

    Last edited by psychopath; 09-24-2006 at 07:20 PM.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  10. #10
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    It seems to work okay...
    My best code is written with the delete key.

  11. #11
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    Hrm....then either me or my browser is being stupid.

    EDIT: problem solved. Not sure how though.
    Last edited by psychopath; 09-24-2006 at 07:21 PM.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  12. #12

    Join Date
    May 2005
    Posts
    1,042
    They are not usually the brightest people on the team though
    All I have to say is this:

    I'm really really glad I decided to switch out of the computer science/IT field. I can't stand people like you.

    I'd really like to know how long you've been working at your new job (where you get this bigoted/condescending tone from is beyond me), how much $$$ you're making, and how much you hate it in a year. It's too bad that even with all of your experience you can't make a thread that is actually fair and informative, instead of this garbage.
    Last edited by BobMcGee123; 09-24-2006 at 08:29 PM.
    I'm not immature, I'm refined in the opposite direction.

  13. #13
    pwns nooblars
    Join Date
    Oct 2005
    Location
    Portland, Or
    Posts
    1,094
    0MF6 | W|5H | W45 1||<3 J00!!!

    Anyway have fun with your new job, you don't need forums like this from what that says since you are obviously biased for the so called 'independant' side. So unless you want to drop this elitist bigoted attitude... leave this forum that is so useless to you and your elite society, we will continue to slum here and be happy.

    This is complete and utter BS.

  14. #14
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Last edited by VirtualAce; 09-24-2006 at 10:26 PM.

  15. #15
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    Ehh....that thread link is broken.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Please comment on my c++ game
    By MegaManZZ in forum Game Programming
    Replies: 10
    Last Post: 01-22-2008, 11:03 AM
  2. Replies: 12
    Last Post: 05-23-2006, 11:49 PM
  3. HELP!wanting to make full screen game windowed
    By rented in forum Game Programming
    Replies: 3
    Last Post: 06-11-2004, 04:19 AM
  4. My Maze Game --- A Few Questions
    By TechWins in forum Game Programming
    Replies: 18
    Last Post: 04-24-2002, 11:00 PM