Building an XNA Game Studio XBox360 Indie Game.

[page 0035] ~ RogueLike Challenge:


. * * * Dragons Hoard  * * * .

In the depths of my dreaming

I awoke from my slumber

to espy my new incarnation a lumbering hulk

in scaly skin gleaming.

Eyes drawing in

all the world that is mine

of taking for nought if new sleep should arise.


Day 1 : The Play.

This RL will be that of a Dragons Dream, forever reawakening to find that all of everything will run short of its desires.  Time is the drubbing force that will be its demise.  Those who hasten the Dragons repose unto death will claim its possessions.  Surviving each successive Dragon incarnation, The Interim, the Champions free thoughts of love, life and the Dragons Hoard hatches yet another Dragon whose appetite draws its ravenous maw to interpose, and the cycle begins anew.  To find the Dragon and quash its revival, for a time, the Heroes must follow the trail of the entranced minions back to the Dragons Lair.  The fight becomes more difficult as they get closer to the Lair.  The growing Dragons hold on its minions strengthens with the Dragons proximity and longevity.  The furthest from the Dragon with the most weakest of mind are most easily coerced to hinder the Champions.  Those creatures tending to villainous ways have stronger wills but are still corruptible and add to the safety of the Dragons perimeter.  Getting ever closer, nefarious monsters are singled out and are set to do the Dragons bidding in battle.  And at last the Dragon itself will task the party in a duel unto PermaDeath.

That’s a good baseline story.

Its got a plot to match the Protagonist to an Antagonist, a plot device as the Dragons Hoard and Recursion for replayability.


Day 2 : A place to stand and fight.

Ok, I’ll be needing a map of the world for my characters to roam about in and on.  I keep thinking Characters like I’ll have a whole party of adventurers, and so far I have no characters.  So, for as much as a group of players sounds like a wonderful idea, I should start with at least one and see how that plays out, just one Hero and one Dragon.  From there I can cut to the final scene and see how the final battle will turn out and a new game will restart, after the Hero or Dragon has been defeated.  Raise the lights, roll the credits, it’s all over, Dun Dun Dun T-Daaah! The End.  Restart?  I guess the next three options would be, after the START of the game, should be EXIT, CONTINUE and RESTART.  With those options the player can exit the game and leave with a push to the intro splash screen, which is almost the same as pausing the game, continue the game from a Heros player pause or restart the game if the Hero should find PermaDeath as the allotted fate.

Hm, it looks like Processing, with its last update, changed the colors of main methods from the colors of the key words, I think, not exactly sure, seems that way, maybe, anyway it might look different, I’m not sure what they did exactly but I’m good with it, anyway.

I just built the games splash screen and peeled the menu system out of last months game Streamonsters.  I tidied up the code and the comments and shuffled their placement in hopes that the global code page becomes slightly more coherent, for me at least.  It’s up and in my site as a basic game shell/framework and it will have all week to get the assets and logic in place along with the polish it so sorely needs. Now to pop this into my ever growing 7DRL blog post.

Then to finish off  the day I only need to do some stuff like rolling up the chords, getting the tools into the job box, straitening out the lumber and covering it up with a tarp, sweeping up the work areas and picking up any stray nails, talking to the foreman to see what’s going on tomorrow, grabbing my lunch pail and hitting the road for that ride home.  No, wait, that was carpentry, aah I got it, select start button, click shutdown, brush teeth go to sleep.


Day 3 : Screen Real Estate.

It seems that my next piece of work in this Hack & Slash game is to get the playing field in order.  This can only mean that I need to divvy up my 800 by 600 grid of pixels into a map side and a control panel side.  The map will consist of a scrolling grid to hold the environment, player, non-player characters, landmarks, treasures, artifacts, villains, etc. all of the viewable pieces of the game.  The control panel side will be a place to keep the score card as an updated set of statistics and good to know information as an easily accessible and somewhat configurable area.


Day 4 : Game Intro.

I’ve been shifting around the menu system and have found that having a blueprint of the game is a nice thing to have, along with some flowcharts and a consistent set of variables mapped to a table of contents/comments.  But in this challenge, small, fast and done is the modus.  Inline and block comments are the way to go, just don’t forget to change them to remain consistent with the variable, method, function or whatever if cut/copy/paste is how it is build.  That’s how I do it, ccp.  I reread my comments as a quick and dirty way of doing a hand-check of the logic flow as I go.  So comments that don’t read right or say something that seems a little off means I haven’t been through this code block lately.  Moving along . . .

With my great artistic creativeness I also have another slice of art in an Intro Screen.  It’s something like a splash screen with the only purpose of it is to allow for assuring that the player assigns a controller, in an XBox console game, as the host player.  The reality is that that screen isn’t needed at all in this game but, “It is my way”, in doing things.  I’m must be getting an itch to get back to my XBox and GS-XNA 4.0.

I started digging into the main game playing field and have the beginnings of a coordinate grid and an info panel space.  It’s a lot of making the pieces fit and not much for game play as yet.


Day 5 : Hmm, to the “n”th degree.

I need to add a Users Manual to the mix.  I fully understand this game in its entirety, NOT.  And so, I’m sure that anyone who just looks at this game will also be, “on the same page”, NOT.  So, whenever whoever starts up this game to play it, they will get an Instruction Manual going by the simple title of Manual.

OK, that was really special, in the menu system I’ve got goin’ here, do not, yes do not overlap the box that is to be clicked on, on the current screen with another clickable box on the upcoming menu system page.  It takes a while to figure this one out because it isn’t all that obvious.  To begin, everything looks right, but when the boolean switch is given the new value, the game decides that when it updates this value, it doesn’t realize that the sluggish human coding this logic, which it has given to the program, can’t fathom the general leap of faith that goes on along with the idea behind said logic.  Hmm, to the “n”th degree.  So, back to quick and dirty, just move the first box out of the way of the upcoming box in the next menu screen, alleviating the need to track down and build another boolean trap, and all is well, at last.  Next solution, oh yes the manual button and the Manual itself.  Can I have a Dragon and a Hero yet?  How about some tufts of wheat in the field around the castle?

Yeah, this coordinate plane thing is sooo counter intuitive.  Whoa, Microsoft has recognized #1GAM in a good way, Microsoft Loves #1GAM.  Now, back to the grind stone to forge ahead and strike while the iron is hot.  I’m getting closer to finishing off my 7DRL, in its most basic form.  I have a grid and my Hero in the map area.  In the control area I have my VectorSet and two coordinate pairs.  The VectorSet moves the Hero about the map while one coordinate pair is matched with the Heroes’ position and the other pair is matched to the position of the mouse pointer.

Everything is tidy.  The Hero, which looks like a little red dot, can run around the map and there is a BIG RED D for the dragon that is causing mischief in the kingdom.  But not so much that I won’t be going to sleep right now.  My Hero needs some stuff like food and who knows what else.  And my dragon is stuck in one spot, but my Hero can’t dispose of the dragon except by attrition, no weapons.  I go nighty nite right now.  bye.


Day 6 : Who gets what where.

The game has a Hamlet and a Castle.  The problem is that the map, as it stands, is quite small.  Each step for the Hero is a full grid space, twenty-five pixels.  It’s simple, but moving quickly about the map is paramount right now.  Along with the Castle and the Hamlet, our Hero and the Dragon occupy some space in the opening map.  This is something like what I was thinking initially.  What I would like is that the map should have some translation properties so the Hero will stay in the same position on the screen and the world will move underneath.  Having the map stay stationary and the Hero to move on the map is another way that would prove useful.  I have a couple of ideas that fill out the environment like Mountains, Deserts, Swamps, Waters, Forests and Prairies.  That should be more than enough for this 7DRL.  I also came up with a list of general adventurers gear that every Avatar should have at hand.  Seeing that these haven’t made it onto the game screen yet, I will set to manipulating the coordinated grid of the map.  The first thing I need to do is to tie something onto the map, like a Hamlet, so when our Hero begins this journey the happy hovel fades into a distant memory, and off the screen.  Ah-hah and sigh, auto completion is a very nice thing to have, my scrolling finger is taking a beating, but a wheel mouse does help out well enough, that and the scroll bar.

Eeek-gad, I will need another rethink because shifting the map is going to take a very critical look see at the code and probably some cross referencing with my old app FxMap.  There is no time to do this map translation process and so I will have a static map, more sigh.  What  would I like this game to do now?  What do I have already to make this game into an Outdoor Survival like RogueLike game?  I have a Castle and a Hamlet a Hero and a Dragon in a Map that has a grid and a control panel that has a VectorSet to move my Hero about the map and two coordinate sets, one for the Heroes’ position and one for the mouse pointer position and lastly a PermaDeath gauge.  Sadly I will need to grid lock my Hero to this map but, “C’est la vie”, “C’est la guerre”.  I’ll need to randomize the positions of my Castles and Hamlets on the map.  Ok, they both can be drawn as many times in a loop as need be anywhere on the map.  My Hero can be a Feudal Lord, when not slaying dragons.  And more proof in action, KISS makes my day.


Day 7 : The Last Day To-do.

Most of the parts of this game are in place.  I should start with the setup and mechanics, that being the map randomization.  It looks like I’ll need an array of 23×23 so I’ll splurge and make it 25×25.  Each grid box will have a terrain type assigned to it which will change the speed that the Hero can walk through that grid space.  The grid is populated with the dominant terrain features, that being, they have a colored boarder around the grid which represents the type of biome that is dominant in each map grid.  Also, the Prairies, Forests and Waters graphics are done and load in to each representative grid.  The Hero has one spell, the only spell in the game and lets the Hero Tele-Port to another place on the map.  This will use Magic Manna, which can be replenished at either the Castle or a Hamlet.  I believe I have won.  My game does not give me and out of memory error, but hints to me, more like something to show that my fat ham-fisted numbskull logic creation produces a game g-u-i sloooow, like a snail.  The real problem here is that I don’t have my monsters, other than my Dragon in the game.  Well, it looks like I have found the fabled Sword in the Stone and in the same Sword in the Stone, where the sword is my code and the stone is my computer.  My code is stuck in my computer and it won’t come out.  What I need is a super computer and a dedicated time slot.  Or, I could just optimize what I have, it’s only a game, you know, not a simulation.  Not nice, bad timing, happy and sad, my buddy is in town and only nine hours left to finish off this 7DRL, but I can now teleport, probably teleparty myself over there, in spirit anyway.  So, like my ol’ Master Carpenter would say when you’ve gota’ set to doin’, “It doesn’t get done by just lookin’ at it.”

I think its the arc algorithm.  I just block commented out the void function call and its back up to speed, too many screen write calculations.  I need a different draw type.   The Triangle Strip seems to work well, but the whole map is pretty much filled up with terrain features, so maybe I could half that in the setup generation part.  I better see how it runs as a web game in my browser.  OK, not bad for a turn based game.  Now to work on moving the Hero through the terrain type grid.  Hoh-boy, supra-flash back, my sister and I played the game OutDoor Survival a long time ago, mid 1970’s, and thought back then that that was a really cool, fun and entertaining game.  This game seems to have something in common with that one, and I like it.

Yes I do, and it looks similar, in part, except for the stick figure guy that slowly becomes hunched over to the point where he is crawling on all fours, to where he lay prone and splayed.  That, in this game would be the Heros bane and demise.  But alas and alack, I have but 5 hours left to end game.  The Hero can, after alot of crash and burn, move about the map with less than a 25 pixel step, in fact at any incremental step.  Glad that’s done.  The next thing is to build a pretty map in the control panel, kind of like a mini-map, to see how much food and water it takes to get to, then through, the monster hoard.  Hmm, the mini-map works but now there is the issue of bounds checking and array over/under runs.  This shouldn’t be too hard, famous last words.  It’s done, it seems fail safe, it’s in a canvas and won’t break anything accept my coders pride, so all is well.  Not much time for play testing, oh well.  4 hours to go.  What’s next?  Another incremental save with a play test to the March FarNiche OGAM web site game.  It still works on the web, so off we go.

The story line has changed again.  The way I see it, the Hero must run around the Kingdom and go to each Hamlet to get a piece of the Dragon Slaying Sword, an Artifact that will be the bane unto the Dragons demise.  So I need some Castles and Hamlets dispersed about the Kingdom.  Off like a flash.  Got the randomly positioned Castle, and now … random Hamlets good.  3 hours.  Select All in Processing should have something else underneath paste.  Yep I’m in overdrive mode now, Visual Basic is kickin’ in “for(int i = 0 to NumHam)”, hmm.  Collision needs a print to the screen.  A nice thing about Processing is that you can change the code while the host is running and update the code en-process without the “ding” from the debug runtime compiler thing.  Wow, there doesn’t seem to be any collision detection in Processing, more sluggish graphics, tick, tick, tick.  I’ve got Relational Operators to mutate.  Aaaagh AxisOrigin[] not HeroCOG[] and so it works now.  2 Hours to done did.  I think our Hero should find a better way to win in this beautiful land of Puff, the Magic Dragon.

One more time to the well.  And 1 more hour to Victory Conditions.  Forty minutes to THE END.  Pointy, clicky, test, run, test, run.  Twenty minutes to go.  One last gaze through the eye of change and into the eyes of the Dragons Hoard.  Five minutes.  Farewell.  To the web with you.  That’s all she wrote, yup, and that is what they say is that.  A week, a RogueLike, and I have a game, kinda.


To Be Continued.

Next year.

Play the Dragons Hoard Here.

Good week, G’day.

March 9, 2013 - Posted by | 2013 [0019] to [00??], The Process

No comments yet.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s