Thursday, 26 June 2014

Foundations...


Set up Microsoft Visual Studio 2013 with DirectX, and downloaded a tutorial from http://www.directxtutorial.com/ for the base window generation code. Doing this project in C++ programming code.

---

Then repositioned the window at the top center screen where I normally play games in window mode, and not simply by specifying the X/Y.
RECT desktop;
const HWND hDesktop = GetDesktopWindow ( ) ;
GetWindowRect ( hDesktop, &desktop ) ;
int WHP = (((desktop.right) / 2) - (SCREEN_WIDTH/2));
Desktop resolution X/Y, halved width, window width [screen width], halved, half desktop resolution width less halved window width goes into WHP or window half point [it was late, I know things need renaming].

Essentially it works out the screen resolution and positions the game window offset from the center by half of the game window itself, so regardless of the monitor resolution it'll always be center alinged.

---

Saves me having to reposition it every time like I do when playing League of Legends or Hearthstone.

I play games in this resolution because I watch TV during loading sequences in the smallest sized Windows Media Player window possible at the bottom right of my monitor's screen. Plus if I need to look up something or pause and check my email or whatever I can just switch to Firefox and do whatever I need to. And can make notes in Notepad and basically gain access to my PC regardless.

---

Also full screen on 1920x1080 monitors which are only a few feet from face means that the detail is too diffuse across the entire picture. In League of Legends MOBA gameplay especially, you want to be able to see everything on screen all at once so you know what you're doing [center], what your allies are doing [on the left for example], and what your enemies are doing [on the right opposite your allies], and you don't want to be flicking your vision left and right to see it. One glance and you see it all at all times.

The window resolution is 1366x768, though I'm going to add in code to just adjust this relative to the monitor, i.e. monitors at less than 1366x768 will simply show the game in full screen, and monitors bigger than 1920x1080 [which is the current standard for PC monitors as of 06/2014] will show a bigger window so people don't have to squint.

Also need to add in mouse rights so the window locks the mouse into it's borders during, e.g., MOBA gameplay like League of Legends [the camera being controlled by dragging the mouse at the screen edge] but not during play of CCG gameplay like Hearthstone [the camera being static].

This control should be set so it can be toggled on and off using, e.g. F9 maybe, at a guess, which was how League of Legends did it before they disabled it because Riot Games are a bunch of idiots.

---

I have my computer games camera perspectives demo around here somewhere and I'm doing to extract the camera class from that along with some other code in order to generate the visual interface.

Base structural games design of primary and secondary UI's [start screen and main menu > in-game menu and virtual environment] comes next, followed by implementation of MOBA transitioning into MMORPG gameplay.

Going to build the environment using voxel based landscape editing [the same method used in Minecraft and latterly in Landmark for cubical and spherical landscaping] set to spherical calculation, although this won't be required until the secondary MMORPG transition as MOBA maps are non-variable stages.

Future posts will detail updates made to Game Project One, and specific development will be described in On Design... on the Codex Vita blog.

---