Building an XNA Game Studio XBox360 Indie Game.

[page 0011] ~Amid the Art the Code and the Plot:

Where is my Level Editor?

Another book showing what goes into building an RPG has necessitated a new solution to figure this out, and stands with this main idea where the combination of two games, FuelCell and FuzzyLogic, together become CameraAI. The game plan is to let the fuel cells be the mice and my avatar in the game be the tank. This should give me some practice at blending two games and begin to figure out what makes up a ‘Level’ in a game. The camera part will let me redefine what I have from HUDOn, which is a beefed up version of ChaseCamera, and work on a point of view that is off center of the controlled character.

But there are some things that will slow this down initially. The first bit of trouble comes from the game pad controller itself. Being that the game pads design has been fashioned to comfortably fit into the players hand, it therefore has a limited albeit convenient set of input interfaces. The controller has buttons to press as Boolean input and then graduated input seen as the joysticks and triggers. Another aspect that I have found to have relevance is the amount of time that the button is pressed to activate it and also the speed with which the joystick or trigger is moved. The last caveat holds with the three states of the joystick residing in the GamePadDeadZone, either (None, IndependentAxes or Circular). These modes can be extrapolated from the input states found in the solution InputReporter_4.0 sample. The problem is compounded when adding actions mapped to the controller. This implementation is found in the RolePlayingGame_4.0 sample where the controller inputs perform different actions because of the context stated by the game. The InputReporter sample uses delegates and events that keep the processes distinct from their utilization, and the RollPlayingGame enumerates ActionMaps that are specific to the GameState. The requirements of games larger than “sample size” continuously overload the capacity of the controllers functions. As the game grows, so does the overlap of the game pads inputs. So its time to pick apart these mechanisms and set them into a couple of game components I had previously built, PadJoin and PadIO.

Just to follow this to completion, when a game starts the first thing it seems to do is say, “HELLO… Hello…hello, is there any body out there? Just press start if you can hear me, is there any one at home?”( mostly from Pink Floyd, but you get the idea ). The game would like to assign a specific enumerator to the controller, setting it as the host. So it is asking that the player hosting this games instance press “A” or “Start” so it can initialize PlayerOne as the hosting controller to the game. And of course, that will need to instantiate some incarnation of the GameStateManagement sample, a routine which has happened to elude my greater concern and understanding, from lack of need for a menu system in any game play I’ve created thus far. Getting back to the controller pads, … Just as a thought, in the course class CompSci 351 Data Structures and Algorithms, operator overloading in C++ could be the “idea obscuro” to blend the game pad InputState class with the game state GameScreen class through the game pad state logic as an ActionMap. Hmmm.

An Ode to Muddle & Slog.

To muddle about in a paisley path step.
Belaboring hindsight in thought blinding stare.
Clueless as to my next curious connection.
My gate now a slog with what can be where?

Yep, while looking for another concerted solution attempt that will lead me to a succinct explanation for my GamePadState conundrum, I have run across yet another adaptation in the App Hub ‘education catalog’ Net Rumble 4. This solution game uses both the Windows and the Xbox360 builds simultaneously. First I built and deployed the Xbox solution, then in a separate game studio instance, built the Windows version. On the Xbox360 I run Net Rumble 4 from ‘my games’ and select “Create System Link Session”. Next, starting Net Rumble 4 as the Windows (F5) Debugging version on the computer and in the start game screen I select “Sign In”. From there I can sign into Games for Windows – LIVE using my App Hub account. Once the Windows version signs in to my account, the Xbox360 version disconnects (Code 7). Then restarting the ‘my games’ version on the Xbox 360, Net Rumble 4 can, from either application instance, go to the games “Create System Link Session” or “Join System Link Session”. From there a host game instance on either the Computer or Xbox360 will allow the other instance to client where both players are seen in both game instances. One game pad for the computer screen focuses on the ship on the computer side and another game pad for the console screen focuses on the ship for the Xbox360 side. It works.

Doah, Supra-Segue.

SpaceWar has become a Game Studio XNA Framework Version v4.0 on XBox360.

In this version the System.Xml.Serialization has a Reference in the Runtime Version. But after rebuilding and deploying my version of “SpaceWar II” to the Xbox360 in Settings.cs the File.OpenRead(…) is still producing an error. The settings.xml file isn’t found in …

An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll

Additional information: Could not find file ‘T:\584E07D1\settings.xml’.

Selecting the settings.xml file in the Solution Explorer of SpaceWar II and in the “Copy to Output Directory” field, setting it from “Do not copy” to “Copy always” allows the build to be played on the Xbox360. OK, that’s not only pretty cool, that is very cool.

Sun light above the muck and mire.

I’ll end this one by saying Thank You to those at the APP HUB place.


May 23, 2012 Posted by | 2012 [0006] to [0018], The Process | Leave a comment