Building an XNA Game Studio XBox360 Indie Game.

[page 0039] ~ Refining Wanderer:

It works, but . . .

Now for the checklist, from the top.  Change the 64×64 .png icon image to show that there have been changes made within this version of the game. Done, it shows the Spring of Life now. Next, after the icon is clicked, the player is taken to the game which presents itself on the webpage in a browser.  The look of the splash screen is the same, OR, nope, what I need to do is copy the last project build over into a new instance of Processing as Wanderer2.  Then, so the project solution will run in the browser in JavaScript mode, I need to copy the art assets into the API so they can be found by this instance within the projects data folder.  This has been made into a simple task by opening the previous game data folder in Explorer, selecting all the contents in that data folder, and dragging it onto the Processing page of the game that data is to be copied to.  Processing makes a new folder in the solution instance folder, names it data and copies all the selected art assets into the new folder.  Very cool.  All that needs to be done is to save the game, stop the last browser instance and click run.  Voila, the new version is up and running for this month.  Now I can change the game entrance button to say “. . . SEEK” which is changed from “. . . HOPE”, and change the color to reflect the change of the Dragon motif, gold, to a bluish color which is to denote the Spring of Life is to be the objective of this version build.  Open MS Paint and use the Color Editor to get the RGB settings into the code page, done. And just to give an idea of what is in this game and to get a little fancy, I might as well put the game icon, the Spring of Life, then the Hamlets and the Castle along with the existing avatar into the splash screen to add a coherency to the direction of the game.  And where might I find the splash screen in the code page?  Hmm, more recollection and searching.  Nope, I hard coded the images into the .jpg itself, so I need to open Photoshop and have at it.  Then open MS Paint and rebuild a Hamlet because it builds a clearer image for what needs to be represented, them place that image into the splash screen.  Now for the castle for the splash screen also.  Just run the game to get to the victory conditions and screen shot the vector art built by the game itself and place that in the splash screen.

Segue break.

Easier said than done, this is a tough game even if you do know the rules.  While running through the game to get to the victory conditions and the castle vector art to be copied, I’ve noticed a couple of things that could prove insightful to the player.  Click on the three by three grid of arrow directions to move the avatar in that direction.  The terrain takes care of the distance the avatar can move per day and the food and water cost.  These are shown by the green and cyan colored survival bars, which reflect the current status of the avatars health and longevity.  But, when the avatar moves into a grid space which is adjacent to the border of the playing field the mini-map disappears.  The reasoning behind this is so that the algorithm that reads the data to build the mini-map doesn’t crash out.  While reading the data to fill the three by three mini-map assets, when the avatar is on the border edge of the full map, only some of the nine grid spaces are allocated within the array.  Accessing, or trying to access the data with the current algorithm causes the program to crash because of a data over or under run error.  It is trying to access data which does not exist within the array.  The simple solution was to drop the mini-map out of the draw loop.  Its capacity to access the nonexistent data to be drawn and therefore the erroneous algorithm call were bypassed.  Simple for me to understand but possibly confusing to the player.

Another feature creep idea that might make the game more playable would be to add something that would be of concern and involve the mouse position when it hovers over one of the nine vector arrows.  The idea here would be to show where, if that button were to be clicked, the next grid position of the avatar.  This would take some of the guess work out of the equation and let the player make more insightful paths while moving towards the next Hamlet.

This game needs a help file.  Having a clearer definition of the terrain icons is needed along with some what an why.  And that is going to be the major change to this months version, an addition to this game, helpful documentation.  What can be clicked on to get this game to do what it does is very obscure at this point.  Actually what would really be nice would be to have a flowchart that I could click on that would show only the logic flow that I’m actually concerned with.  I grow weary of the overload of code I’m assailed with every time I seek to change something.  Having everything, the entire code, available and accessible is great but every time I want to do something at least ninety percent of the code I’m looking at is irrelevant.  Too much scrolling and needing to think, no, that’s not it, nope, not here, hmm this isn’t the place, ok does this have anything to do with what I need to change.  Tedium in excess, futility and grand inefficiency.  It makes me sad, and only adds to the . . . yeah whatever.  Now that would be something to build, but that would be a programming API and not a game.  Or maybe I could gamify an API, but not today, so back to it with my mindless stare and brain numbing searches.

The theme for this month is “Grow”, so I will grow a users manual for the game.  As for the side line quest, seeing that I haven’t played this game for some time, will be to come up with ideas that I can incorporate into next months version.  Forgetting what I have known and then realizing what was thought to be simple then concluding that it was not is where these ideas are going to come from.  Right then, onward to the chase.

Segue break is over.

When I start the game, the only choice is START, not CONTINUE, not RESTART.  Those last two can be dimmed out and made inaccessible, for the time being.  Beautiful, but how does this come about?  Back to MenuSystem and #707, #715 to find some booleans.  GameContinue #887, #737, #707.  Ok, that’s done.  The CONTINUE button is grayed out at the start of the game and has been disabled until the game has been started via the START button click.  Now for the RESTART button.  #930 and it was just about the same as what was needed to rectify the last problem.  Hmm, I’m building this game like how I would build applications and it seems that this game is turning into a hybridized game/app.  Somehow the menu system feels a little off, not quite gamish and not quite appish.  Its not bad, its not wonky, maybe, but it gets the job done, hmm.  Well, that’s done.  I added a boolean GameReset and stuck all the resettables inside the if() statement, and it works now.  All that needs to be done for this version is to add the documentation that will let the player know how to play the game.  Or, do some play testing and find that the little avatar doesn’t move back to center stage after RESTART, more searching to get this cleared up.  Well, the Defeat conditions don’t reset either, and so I find the function call, right click on it and find that there is no GOTO function definition in the dropdown menu.  More manual searching.  That’s silly, the victory conditions and the defeat conditions are nowhere near each other.  Yes they are, but the conditions aren’t directed back to a central boolean value.  They’re just flappin’ in the wind.  Alright, after the avatar has been defeated, the player or in this case the tester, can continue to click on the direction arrows and the avatar keeps moving.  To top it off the Food and Water bars use negative numbers to feed the width of the bars so the bars begin to grow again.  That’s another good one where if the avatar is in a state of Teleportation at the time of expireation, i.e. death, the green avatar figure is not reset to its viewable state and only the red and white dot are seen.  This I found because the movement distance retains the distance of the current movement distance of the terrain grid at which the Teleport Spell is cast.  It needs to be reset to ??? along with a disabling of the use of food and water.  No food and water is to be used during the Teleport Spell movement.  BMR is the Biome Movement Rating which is the distance the avatar will move through the terrain per turn.  #725 BFWR is Biome Food & Water Rating and is used to subtract the given amount from the avatars cache of food and water per turn.  I just noticed that I keep saying turn while a Teleport Spell, although the direction arrow is clicked multiple times, the result is to be that only one turn has passed.  This might become of consequence at some point in time but currently turns are only accounted for the progressive directed distance of the avatar.  The code could be starting to become messy, despite all my good efforts to keep it tidy.  Now I need to add a Boolean to the switch/case so that the BMR and the BFWR are not reset with each click of the direction arrows.  So if(TelePortSpell) . . . Ah ha more messy code.  I put the Food & Water restore to 100% inside the switch/case function because that was the best place to have it reset, but that actually messes up the Teleport implementation because no matter where the avatar is on the grid map the food and water is always set to full when ever the teleport button is pressed.  More changes.  Rules, I need some rules for the game if the mechanics of this code are to be found to be correct.  And the first rule I have found is that when using the TelePort Spell one days supply is consumed for that terrain type in preparation for this feature to work.  #1634  Because that is how it works.  Back to the Defeat conditions.  #555  In either case Victory or Defeat the game is over.  So how do I stop the input and keep the avatar from moving.  #693  It looks like the easiest way is to put the mouse interaction for the direction arrows inside an if statement so while GameOver is false the player will have access to that portion of the game.  Once GameOver is true there will no longer be any input for the avatar.  #532 #562 #649 #696  That should do it.  Or maybe not.  It kinda works.  It locks out the buttons, the directionals and the Teleport button, but the last button that was selected is still active.  Clicking anywhere on the 3×3 square still activates the last button that was selected and moves the avatar in that direction and continues to change the food and water meters.  In fact, clicking anywhere on the canvas object activates that button.  Ahh that was void mouseMoved() not, nope hold on, what I need to do is assure that InVectorSetBounds = false; is set outside of this function, in both the Victory and Defeat conditions.  That works.  Now if BMR or BFWR are less than or equal to zero both will be equal to zero, and where should that go?  Because at the end of the game the food and water meters want to add on a last decrement to the meters.  #563 In the Defeat conditions routines of course.

Feature Creep, kinda.

Working with the food and water meter bars has pressed an issue that will promote a change in the games interface.  Something as simple as adding numeric counters in front of the meters.  Having a value that corresponds to the meter size could be helpful.  Where then is that draw function?  Follow the meter, WaterMeterWidth.  #1188, #1200  Two lines of code, that was too easy, but I’ll take it.  It looks good and it gives a better definition of what is going on, seeing that the values are given in the legend anyway. Having that mini-map fall off the screen is somewhat disconcerting.  But that will have to wait for June.  The help file documentation manual is what the plan was.  All that forgetting over the month just to remember how it all works again and then not being able to look at it without any subjugated preconceptions wasn’t the plan.  Knowing how it works doesn’t help in building a help file when you already know what you need to know while not knowing is what the help file is all about.  Yes, that fateful dichotomy rears up once again, ha ha have at you mon ami (“my friend”), monamine (i.e. Neurotransmitter).

The Manual.

I’ll need to switch around some of the button links to the different pages in the game. #1041, #1094 Nope, I still don’t get this menu system, its too spread out in between the draw method and the mouse routines, it works, but again there is too much scrolling back an forth.  I guess that’s what peek and poke were for back in the day, just after adders, accumulators and such were in vogue, so be it.  Now how do I get back to my game after I get to my players manual. #832 Alright, it’s not the best menu system but that’s as good as it gets this month.  Until next month.

Play the Game.

Wanderer II


May 31, 2013 Posted by | 2013 [0019] to [00??], The Process | Leave a comment