Death Match and Programming updates

Hey guys,
Steve here.
I’m very sorry to say this, but I was unable to record podcast episode 34 this Sunday. This is because Lightstar had a rough encounter with Viper, a mean old battle ship that was piloted by a fellow player of Death Match, Kenny to be exact. Well old Kenny challenged me to a space battle, and I’d have been a fool not to agree, well, maybe I was a fool to agree. Because though I was able to vanquish him in 10 minutes, he significantly damaged my hull, and it took nearly 12 hours to repair.
On Monday, when I found my ship repaired, I thought I’d go ahead and record that podcast. However, Danny was away from his computer, and I found myself getting bored. The result, was me going on my first actual true bounty mission, one that I profitted from. This time, I had a crew of three to four people with me, and two of them manning the warhead launchers. Even still, my ship took significant damage, though not nearly enough to call it a critical fight. This, along with the fact that I never managed to get Danny online to record the podcast, completely put pod casting out of the question. Maybe, just maybe, I’ll try again tonight.
In other news, I’ve made quite a bit of progress on S Quad Racing. First of all, I’m glad to say that the track parser that took a good deal of time and frustration to get working has been successfully implemented. And, because I was in such a good mood after finally getting it working yesterday, I even added error checking that will prevent the track from loading and tell you where corrections are needed. This shouldn’t really be needed, since I’m about 93% sure that most people are going to use the in-game track builder anyway, but I figured I’d add it just in case since I myself made some mistakes in the beginner track. Meanwhile, in my free time I will be looking for rain sounds, particularly sounds of rain falling upon a car, and I’d prefer to have such sounds in varying degrees of intensity, though I’m sure I could produce this affect with a bit of audio editing. In addition, if at all possible, I want to implement random hailstorms that could damage your car, as this is indeed something that could happen in the real world. At the time of this writing, hail storms are more of a possibility than anything, as I’ve not even yet programmed a propper vehicle structuring system, and it’s more than obvious that you can’t damage something that’s not really there.
To that end, implementing rain storms should take less than 20 minutes, if all goes well. Unlike most other track and weather features, I don’t need these to affect either the player or AI much, although I might make it necessary to slow down below a certain speed lest a player would like to experience the affects of a sticky mud obstacle, and that goes for the opponent as well.
Another thing that might enspire game entities to want to slow down, is that I plan to make these storms move across the track as well, at roughly the same speed as a car, give or take some. And if you continue to move at a fast speed, you’ll be moving at nearly the same speed as a storm, so you’ll be under it longer.
Overall, I plan for the main affect of these storms to be to impair a player’s ability to hear obstacles and opponents, to give the affect that heavy rain causes to sighted people. And since some storms could be farely large, you can rest assured that none will be included on the small beginner track. And if I decide that I want to put a few on the second track, they will occur rarely, and will not likely contain very heavy rain.
Moving on, today is April 21, which marks yet another year I’ve been blogging. As most of you know, I started this blog in 2011, and some times go back and laugh at my posts from back then. In case you don’t know, I used to do the following things which I no longer do now:
1. post like three or four times a day some times. lol
2. Post nearly every day.
3. not write very good at all.
4. write blog posts that were sometimes frivolous, unnecessary, and boring. 😀
More importantly, though, having a blog has improved my writing skills, and given me a place to talk tech when the people around me were too confused to listen.
Well, I’ve certainly enjoyed these past few years I’ve been able to do this, and look forward to producing more posts as I get closer to becoming a programmer, and perhaps even a writer! Have a good week, everyone.
Thanks for reading,
type you later,
Steve.

Coding Frustrations and Space Battles

Hey guys,
Steve here.
Coding can be an extraordinarily painful, irritating thorn in ones side sometimes. Tonight it feels as though my only consolation is that experienced coders go through the same thing, and my unfailing passion for technology.
I say this because the track parser I’ve been implementing into S Quad Racing is not turning out the way I want it to. Basically, the procedure I want the program to initiate when a player selects a track is as follows:

  • Open the file that corresponds to the track that was selected. For example, if the player chose Beginner, the game would load tracks\Beginner.track into memory.
  • Read through the text of the file. It would then:
    -set the track size as determined in the file.
    -set spawning of obstacles properties such as how fast they would appear, and the maximum number that was allowed.
    -Finally, the turns and straight sections would be generated, laying out the track structure.

  • After all of this, the idea is that players would start the game, and be placed on the track that they selected, exactly as it was structured.

However, as is the main focus of my frustration, I’m encountering some major mishaps. On the first three or four compilation trials, I couldn’t even get the game to load the track file. Rather, it would create a file called “0” with no file extension inside the tracks directory, and attempt to read from that instead. The result was a barren, completely straight track that, if raced upon, would likely last forever, as there were no defined finish line boundaries set. And though the player could move forward, the enemy could not. Instead, he would just sit there at the beginning of the lap, winning first and second place, thus eliminating the player’s chance of winning. 😛
After tweaking the code, and by that I mean changing two characters of it, I resolved this issue. However, I still cannot, get turns working, no matter what I try, and ever since I implemented this system, obstacles refuse to spawn.
Though it might seem almost hopeless, there is some good news. As has already been mentioned, God has given me the blessing of having a best friend who is quite efficient when it comes to audio game coding. In the coming days, I will be examining the code for his snowboard racing game. Hopefully, this will help me come up with a working solution to this issue.
Once this blows over, I will look into adding more environmental features such as rain pockets, road hazards, power ups, wall sections, and perhaps some more turn types. Stay tuned!
In other news, I’ve had a rather active week on Death Match a New Beginning, engaging in some intents battles with pirate ships of various hull strengths, one of which rendered my ship useless for 35 hours. Since I spawned all of the enemies I fought this week, I was able to give them creative names. Vladdiator, Chad Dungie, and Virwag14 were just some of the names I came up with, the latter being the most recent battle I was involved in.
In fact, after Virwag14 was destroyed, I founded a colony in its honor. But the twisted thing is, I docked the very ship that was used to kill Virwag14 the ship, on the barren grasslands of Virwag14 the planet. 🙂
That concludes the posting for tonight. The next time you will be hearing from me is on Podcast Episode 34, when I will be performing a bounty mission on Death Match. and once again, Danny will most certainly be there!
Thanks for reading,
type you later,
Steve.

Life and technology updates

Hey guys,
Steve here.
Disregarding the poem I wrote on Monday, it’s been roughly 10 days since my last blog update. And during those 10 days, there have been multiple blog worthy events.
To start off, Danny has decided to take a break from administrating Death Match: a New Beginning, (the game demonstrated in podcast episode 32). As a result, He placed me in charge as main admin, a position I’ve held for four days now.
Secondly, I was also promoted to administrator position on Survive the Wild, a realistic wilderness survival game developed by Sam Tupy, and featured on this week’s pod cast episode.
Funny thing is, I’d gone from having zero experience running an online game, to being co administrator on one, and main administrator on another, in the span of 30 minutes.
In other news, I once again opened up the S Quad Racing code, something I haven’t done in three weeks as a result of an extended break I took to prevent from pushing and burning myself out on coding it. Rather than doing the wise thing and check where I left off in the change logs, I instead decided to begin implementing track creation.
Track creation is quite simple. For the time being, it is possible to edit tracks within text files, and they use an extremely simplified language; one so simple, in fact, that some one who knows little about computers can create their own tracks. To make matters even less complicated, I plan to include a track builder that will make it so that one need not type out tracks by hand. This is not due to the complexity of the track language itself. Rather, I’ve learned the hard way that the procedure of track creation can get very repetitive when typing it out.
The following is just a little example of how a track should be built. track size is the length of each lap, spawn is how fast obstacles, and max obstacles is the maximum number of obstacles that are allowed.

Excerpt from beginner track

This will create a 400 square long track segment, with two left turns, two right turns, and one right turn. Notice how each track part has two lines–a start, and end. These are to insure that the parts of the track keep within their boundaries.

track size 2000
maximum obstacles 50
spawn 10000
straight start 0
straight end 150
left start 151
left end 170
straight start 171
straight end 280
left start 281
left end 300
straight start 301
straight end 370
right start 371
right end 400

At the time of this writing, this system has not been propperly tested, in fact I have not compiled a version of the code with this system implemented at all. So as you can gather, this is just about as stable right now as a rotting wooden fense in a hurricane. However, I’ll update on the progress, and resume production of audio demos should any changes be made to game play.
On a final note, Choir UIL was last Wednesday. We made mostly all ones, except for one little two, but even that still averages to one. So while I didn’t like having to get up early and go to school and sing at such an early hour, I dare say it paid off in the end.
That is the end of this post. I’ll blog again later this week. Enjoy this week’s Survive the Wild pod cast, (episode 33), and be looking for Episode 34 next week when I’ll be demonstrating bounty missions on death match if my ship, Lightstar, manages to survive that long.
Thanks for reading,
type you later,
Steve.

Living In a Yard

Hey guys,
Steve here.
First of all, I want to tell you that though it says “you” a lot, this poem is not aimed at any individual or group of people. It’s just a work of humor, and no offense is intended.
I was extremely bored when I wrote this, although I’ve had the idea as a small outcast in my mind for some time. However, I couldn’t figure out how to get it into a poem, until about 15 minutes before I went to bed last night. It required some revisions, though. 😛
Nonetheless, have fun reading. I hope this makes you laugh!
How does it feel,
to live in a yard?
To stare at a house,
from which you are barred?
To feel like a mouse,
who’s dignity is scarred,
because alas,
you live in a yard?
Does it make you frown,
To be torn and scarred?
or to sleep on a ground,
that is cold and hard?
To look filthy brown,
Your body marred,
To come to a town,
and live in a yard?
There are many a home,
close and far.
to which you could go,
by foot or car.
So don’t you know,
that it is quite bizarre,
that the home you chose,
was my front yard?
There you go. As you could see, it was more humor than anything else. However, should some one randomly decide that your front yard makes a good home, then this is something you can say to them. However, since such a behavior would be highly unusual, and most people would rather stay in a house than the associated yard, I don’t believe you’ll ever have to use this.
Anyways,
Happy Monday! I’ll post an actual update in the coming days, just needed to get this little poem out.
Thanks for reading,
type you later,
Steve.

A Great Week of Bringing Poems to Life and Other Things

Hey guys,
Steve here.
You’re not going to believe this! It turns out that “Flamity Flame the Lame Audio Game,” the poem I wrote and published on last Wednesday’s blog post, has become…exactly what it talks about–an audio game!
Though I’ve indeed brought this game to reality, it is a twisted one; the audio game is not exactly as it was depicted in the poem. Nonetheless, I tried to structure it around most of the rules outlined therein, so that the result was mostly as expected: You are placed on a game board, James is there as well, he does not make a sound, and you must kill him.
However, I strayed a bit from the main idea. James is able to shoot back, if you give him time to anyway. When you square up with him, he is raising up his gun, and you’d better fire like crazy before he has time to. However, if you’re too slow to fire enough shots to take him down, as is likely to be the case, it will be necessary to step to the left or right one time to get out of the line of fire, and take a small 5 second break or so, before moving back to where James is and proceeding to blast him to oblivion. This system helps to test one’s quick thinking and reflexive skills, while also laying the foundations for an action packed, quick paced arcade style shooter game, something that was definitely not described in the poem.
Secondly, rather than killing James once, there are five levels; James has five lives; four less than your average cat, four greater than your average James. In each of these unfortunate, short lives, James’s is more angry than in previous ones. Proceeding the burning out of one of James’s lives, you will advance a level, and hear a threat. As you achieve higher levels, you will notice that these comments grow more angry and bloodthirsty. This is only the precursor to a level filled with faster shots from James that could easily slice off a significant chunk of health, and result in your quick and almost, and I emphasize almost, painless death.
There is some good news for you, though. Unlike poor old, slow, angry James who cannot actually walk, You can move away from him safely and confide in the fact that he won’t follow. Also, though your health does not reset following the start of a new level, you’ll notice that it takes less shots to kill James in the higher levels; though the main goal in those levels is still to kill James, the underlying goal is to time your attacks so that James doesn’t have time to shoot back, a task that can be quite daunting.
Another perk is that unlike James, the firing time limit on your gun is not directly set in the game; this means that you will be able to fire as fast as you can press the space bar. So while the game gets increasingly challenging, there are several constant factors that place the game mostly in your favor.
For the first time, I actually have a reward for those of you who just read that–a download link! Since Flamity Flame was such a small project, it is already released, and can be Downloaded from this link.
In the package, I’ve included both a documentation, and an audio strategy demo, and I recommend that you have a look at both.
Moving away from Flamity flame, I suppose I’ll include a short update on my life, by that I mean a quick summary, since the previous part of this post went a lot longer than I intended it to.
My birthday went exactly as I thought it would. I overloaded on some great food, relaxed, and went to school, that list of events being in order from most to least important. The only unexpected occurrence, was that I bought a space upgrade for the blog, meaning that instead of having to upload pod casts and such to Drop Box, I can now upload those files to my blog, and have been in the process of doing so. Since I transferred pod casts first, both the feed and page work, though for those of you who are subscribed to the feed you might be asked to download all episodes again.
As for the weekend, there’s not much to say there. My sister and dad were out of town, so it was just me and my mom. I basically spent the weekend relaxing, eating junk food, and then Sunday we were at church all day. Also, I recorded a podcast on Death Match A New Beginning, and had the privilege of having Danny on the podcast over Skype. You should seriously listen to it.
That concludes this quite lengthy post. Enjoy the new little game, and Happy Flaming!
Thanks for reading,
Type you later,
Steve.