How can I achieve the "pre-welcome" screen effect?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • How can I achieve the "pre-welcome" screen effect?

      Some games, like Kingdoms of Amalur: Reckoning, as well as many software like Microsoft Office Word and Matlab, have "pre-welcome" screen right after its launch. It looks like a partly-transparent image. The "pre-welcome" screen of Word, for example, is just a small, simple window; however, for Matlab and those games, they are more than an image than a little window, especially when the image is shapeless, instead of being rectangular.

      So, how can we achieve that?
    • This can be accomplished using a really simple window, its usually borderless and lacks any toolbars, system buttons, etc. This is usually something really simply like an image or logo, and so you might attempt to use very basic blitting utilities to accomplish this so that it can be accomplished really quickly. I think from a user point of view I would expect

      - Click the executable file
      - Immediately be presented with the welcome screen
      - Game loads in the background (systems, first splash screen data, etc).
      - Once the first splash screen is ready to go I would kick off the welcome screen and enable my first window, which I think would be best to pre-create and set up the rendering contexts and such, only leaving it invisible until everything else was ready.

      I think this is a good approach because at no point should the user be at a point where they don't know what is happening, having some games do this to me either by having to wait for the first window to display which can take 5-10 seconds on some games, or having the first window appear, only to leave me hanging at a blank screen for a short time.
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz
    • mholley519 wrote:

      This can be accomplished using a really simple window, its usually borderless and lacks any toolbars, system buttons, etc. This is usually something really simply like an image or logo, and so you might attempt to use very basic blitting utilities to accomplish this so that it can be accomplished really quickly. I think from a user point of view I would expect

      - Click the executable file
      - Immediately be presented with the welcome screen
      - Game loads in the background (systems, first splash screen data, etc).
      - Once the first splash screen is ready to go I would kick off the welcome screen and enable my first window, which I think would be best to pre-create and set up the rendering contexts and such, only leaving it invisible until everything else was ready.

      I think this is a good approach because at no point should the user be at a point where they don't know what is happening, having some games do this to me either by having to wait for the first window to display which can take 5-10 seconds on some games, or having the first window appear, only to leave me hanging at a blank screen for a short time.


      Thanks for your reply! But I still wonder how I should achieve that when the initialization is still goiong on, especially when the welcome image is halfly transparent?
    • Yes, generally what I do is load all of my resources in the resource cache (mine is asynchronous), in the main thread I can actively draw a loading screen, including if I wanted to, the 'welcome screen' that you are asking about. As far as the transparency of the image, as I mentioned in order for this to happen VERY quickly, you are going to want to use the native drawing (WinAPI stuff), here is what I found on the web code.logos.com/blog/2008/09/di…_with_c_introduction.html
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz