20131126 - Random Next Generation Notes

Have Level Streaming - Booting into the main game menu with no delay is a great step. Getting time into level down is the next important evolution. For multiplayer FPS, choose the next level while loading the current level. This way part of the load time is factored into the usually idle post-match time.

Support The Non-Party Player - If your multiplayer FPS is nearly always matching up two teams, one with random single players against a team with a party of players who often play together, then you are doing something wrong. Sending the non-party players constantly to slaughter is not fun, even if the non-party player is always getting first place in team rank. Being assigned always to the loosing team results in players quiting the game, and likely the series of games which might follow.

Show Matchup During Level Load - Given long level loads, no player wants to wait, only to find themselves in a game of just a few people. Show matchup before load, allow players to join conditionally on a good grouping of players.

Provide Option to Skip Over Sequences of the Game - After someone pays for a game, if they rage quit (never to play again) because of some section of the game that they don't feel like retrying over and over again, then the developer has failed. It is trivially easy to allow people to skip sections of the game. Support the graphics and art spectator.

Rotate DOF Sample Patterns - Every sample in any DOF gather pattern should not share the same x or y coordinates. This way thin vertical and horizontal features are not missed with sparse sampling patterns.

DOF is NOT Just a Lerp Between an In-Focus and Uniform Large Bokeh Background Image - Circle of confusion changes diameter. Adjust kernel size, point sample to avoid bleeding artifacts.

AA - The morphological tree of AA algorithms (FXAA, etc) are not AA solutions. Anti-aliasing isn't just for edges, super-sampled shading is required. Try something new specifically something with multiple samples/pixel temporally and spatially, and ideally, something which does not align with the display's iron grid of pixels.

Upsample Ringing - If the hardware scalar adds ringing during up-sampling, then it is junk. Either use a shader to up-sample to native resolution (optionally combine with the pass which writes the back buffer), or alternatively have the device output at the lower resolution and have the display scale. Some displays add latency on scaling, so expose this option to the user.

Displays Need App Requested Game-Mode - Default HDTV settings are junk. There should be some protocol for devices attached to get the unmolested display mode (low latency, no extra sharpening filter, etc).

Let the User Choose Res vs FPS - Ideally if the game hits 1080p at 30Hz, then it would also offer the option of lower resolution at 60Hz, and alternatively if the game does 60Hz at lower resolution, then it would support 1080p at 30Hz option to the user.