Paradox Game Engine Tutorial Part 4: Extending Game and Controlling Resolution


In this part of the ongoing Paradox3D Game Engine tutorial series we are going to accomplish two tasks.  First we are going to show how to set the resolution of our game in Paradox Studio.  We will then look at an example of extending Game and implementing the same thing using code.  This will be a fairly short tutorial, but needed, as the process isn’t entirely intuitive.


As always, there is an HD video version of this tutorial available here.


Setting the Screen Resolution using Paradox Studio


The process of setting the resolution is incredibly easy, but certainly not intuitive.  To set the resolution, in Solution Explorer within Paradox Studio, right click the game package ( FullScreen in my case ), then select Package properties.



Then in the Property grid, set the width and height desired:


And done.


Extending Game


Create a new class in your .Game project, I’m calling mine MyGame.cs.  Now enter the following code:

using SiliconStudio.Paradox.Engine;    namespace FullScreen  {      public class MyGame : Game      {          protected override void Initialize()          {              // Set the window size to 720x480              GraphicsDeviceManager.PreferredBackBufferWidth = 720;              GraphicsDeviceManager.PreferredBackBufferHeight = 480;                base.Initialize();          }      }  }  

This code simply sets the resolution by using GraphicsDeviceManager to set the PreferredBackBufferWidth and Height to our desired dimensions.  Initialize is called after your applications constructor, but before a window is displayed, making it an ideal location to set the resolution.  Why preferred?  Well because frankly outside of desktop platforms (mobile), you often don’t have control over the window size.  Like the previous tutorial, it’s very important to remember to make your class public.


Please note, Initialize() is just one point in the application lifecycle, there are several other protected methods you can override to gain much more precise control over the lifecycle of your game:



Now that we have created our own custom game class, we now need to update the entry point for each target platform to create an instance of our new class instead of using Game.



Edit the ___App.cs file accordingly:


using SiliconStudio.Paradox.Engine;    namespace FullScreen  {      class FullScreenApp      {          static void Main(string[] args)          {              using (var game = new FullScreen.MyGame())              {                  game.Run();              }          }      }  }  



The Video

Programming Paradox

Scroll to Top