• Advertisement
  • entries
    503
  • comments
    1888
  • views
    334590

productive weekend

Sign in to follow this  

79 views

So over the weekend I implented the new hands-free,no-fail graphics device mode system.

Basically works like such:

  • Any and all graphics modes are tested for compatibility
  • if the mode is found to be invalid, it selects the 'closest' mode (by using propery weighting (ty to VertexNormal)), and prompts the user
  • a different graphics mode can be chosen in-game by a list
  • it can also be manually changed by a user through the boot.conf

    This system accounts for the following:
  • don't pester the user with pre-game config box
  • what mode to run in 'out of the box'
  • provides a list of 'safe' modes
  • saftey for user-entered modes
  • protects against hardware change (gpu or monitor change)

    Seems like a good system, and is working fine, pretty easy to implement too once you gather all the cold-hard fact about what a device can 'really' support.

    So with that part of the graphics core done (initialization and management) I am going to move on to Input and Sound

    Ive used DirectSound before, so it should be a huge hassle, however my emphasis this time around is 'absolutely' iron-clad code, no bugs, well tested, etc. etc.

    So to achive that ususaly means lots of documentation digging and of course loads of testing (turning sound card off, different sound cards, etc. etc.), plus graceful feature degrading. The audio will be implemented much like in Flare3, in that it will be a totaly streaming audio system (no large static buffers), buffers will likely be 1 second in size (or optimal size if i can find that in the devcaps) and will be recycled (a store of buffers that can grow but not shrink, and can be reused (less memory alloc/free) Like before we will be using ogg, because it is simply a wonderful developer-friendly file format.

    Input:

    Input is another story, a lot of complaints in MW was inability to control motion with the Keyboard, also others would have liked to use a joystick. While I am not positive, I am going to try and set-up a system that allows for more flexiable control options. Depending on what I find it may only be (control mouse via joystick, which is probably not what people want) All in all DirectInput is new to me so I will need to learn what all is involved in it.
  • Sign in to follow this  


    1 Comment


    Recommended Comments

    If you really want iron-clad code, there's no better way to do it than Unit Tests. Really. There isn't.

    Share this comment


    Link to comment

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    • Advertisement