Building an XNA Game Studio XBox360 Indie Game.

[page 0002] ~ Constructural Analysis:

The Vlog has its first entry, FarNiche_0000_TheScapesTour.

So far so good. It’s a big environment out there, lots to see and much to do. If you stay in one spot and don’t move, the world actually can revolve around you. And now for the treachery. How can it be, that the view of the world is from a point where the center of its revolutions are not formed from the center of the object in focus, or is it all ‘ceteris paribus’. It seems that, as the game cameras viewing frustum is what is portrayed on the screen, there is a need for an attended focus. The large picture is that the terrain map has some sort of resolution. It’s a boundary and a place setting for the playable objects in the game. So, in keeping with the idea that a ship is being flown about the terrain, it is of more concern that its flight is recognizable as a ship that can fly through air and water, while still observing the terrains restrictions. Also, having the ship fly away and out of the understood center of focus, would leave the pilot to find another way, if possible, to correctly navigate the ship.

So it looks like this game so far is about flying a ship through the Scapes.

If a ship crashes, its not flying. If a ship is not understood as being piloted, the general assertion is that the control of a ships actions are either no longer accessible or somehow now limited. If there is no discernable response to a derived and deduced action, the conclusion is, the lack of correlated responce expressed has been created by some degree of erroneous reasoning. Something between the game pad and the screen has produced a conceivably conflicted behavior. As a result, the assumption, would be noticed in that the ships controllable existence has ceased to portray a cohiesive bond to a desired affect. So the controls of the ship need to reveal changes as subjectively observable reactions occurring through the game screen. At this point in time a minimal HUD is the only analog reference for the game pads interface and for what is going on under the hood as it relates to the movement of the ship while it moves through the Scapes. The terrain map can be seen as a terrestrial environment moving closer or further from what is recognized as a potentially hazardous position in relation to the ships well being. The HUD can give numeric, graphic and texted clues as to how close to sea level the ship is, and the altitude above the absolute floor of the terrains model mesh, that is, hard ground, which is above where all game play will ensue.

Belaboring thus far. Refining the obvious.

The ships viability is wrested from the game pad and affirmed from the game screen. Seeing that the two entities up to this point consist of the players ship and the NPC (non-player character) terrain, the understandable inbetweenness of both the ship and the scapes will require an improved HUD. The ship would do well if its responsiveness could be better observed and contoured through a tweakable interface, i.e. the HUD.

HUD and HUD what is HUD? (Heads Up Display).

There are a lot of golden nuggets in the “education catalog” apart from what the samples title might suggest. Small graphical bar-meter utilities are used to show what portions of Distance, Angle and Time are applied in the FuzzyLogic example in the AI section. These I’ve changed and used for the Altitude and Sea Level meters. I have found how to draw a 2D Texture over a portion of the game screen, and so in my game, over the 3D terrain in which I have built so far. This I found in CardsStarterKit, a black jack card game example. SpriteBatch and SpriteFont are found in most, if not nearly all, of the examples and can be used to textually display the property information of a given Matrix, Vector3, float or whatever mystery that is encountered. Unblack-boxing the sample code in this way has provided to me a means to encorporate these techniques into my own game. And therein lies my HUD, made of bits and pieces that allow the game to become a more coordinated flow of quickly accessable pertinent information.

Information – The Elixir of Life, or at least a better chance of continued survival.

I’m having trouble with my newly added mini-map. I can zoom in and out, but there is no correlation between where the ship is in the 3D world map when compared to the image of the 2D mini-map. I have made a function that moves the view about the 2D image, but its logic is faulty. Some things I should line up are the forward vectors. There initial settings should face in the same direction to cut down on the guess work.

Well, so much for the treachery.

What I need for this mini-map is that the 2D image center is positioned at the point of the ships current position on the 3D map. That the scale from the large 3D map and the 2D mini-map have a consistent ratio as the scale of view changes. A new function that will take that ratio, and because of the new position of the ship, will realign the center of the mini-map to the new position of the ship.

To coordinate the changes in scale and position I need to use the TimeSpan object because running the changes primarily dependent on the game Update method uses a looping construct that is much more inconsistent than the system clock. Yeah, treachery, I guess its something like what I was expecting.

Getting on with it.

GameOn is the first integrated system and prototype of FarNiche the game. The next is called, for lack of a too much over-thought name, HUDOn. It will take most of what is in GameOn, only that it will clean out the commented out trial and error code and get some pseudo-logical reconstruction. A general tidying is in order, so instead of a purely manufactured mile stone project for its own set aside purpose, a new and clean GUID solution built to hit the ground running will need to do. This next step might as well be a working mile stone solution. It should consist of building a HUD that is a blend of: seeing the ship fly, coupling the surrounding 2D terrain map to the ships position in the 3D environment, giving it some vector icons to show its direction and velocity, improving the Land and Sea Level meters and inserting the capability of contouring the sensitivity of the flying controls. All of this, while trying to consolidate the above information into a space so this can be run by four players with controllers that are connected to the same XBox360 console. Hopefully I can cut through most of this in a month and make it ready for the Vlog. Until then…

July 1, 2011 Posted by | 2011 [0000] to [0005], The Process | Leave a comment