Racing Game Updates and a Programming Venture

Hey guys,
Steve here.
Nearly a month it has been, without one single word from me on this blog. Good lord! I can’t believe it! So much has been going on in that time frame, and recently it feels as though my creativity is spiking again, which may or may not be a good thing. You decide. As a result, I completed S Quad Racing’s Race Mode, and did away with the few bugs that have been so stubbornly plaguing this game and hindering its further advancement. That burden being lifted has allowed me to expound more on the opponent AI, building auto gear shifting in for them as well. However, that’s not what matters so much, or in fact what puts me in such a jovial state of mind at having completed Race Mode. It turns out, that another goal was accomplished that day. I actually managed to do it on the last day of the first six weeks of school, which was the deadline my Digital Interactive Media teacher and I had set. So not only did my game achieve a great milestone on its path to the metaphorical finish line, I managed not to let my teacher down in the process.
After completing Race Mode, I took a small break from S Quad Racing, and decided to experiment with linked lists in Pure Basic. One of my main reasons for wanting to use BGT for the complex adventure platformer I’ve been realizing was Pure Basic’s rather flawed array system, which does not allow programmers to directly interface with elements, (I.E. removing, inserting, swapping), which is a necessity that, although can be worked around if not available, is not at all worth the pain since most languages have that ability. But I came across Linked lists, and have recently been experimenting with them. Here’s what I can gather so far. (Non-geeks, just bear with me a moment, this is about to get over your heads)
One cannot access an element directly. In order to get to a certain element of a list, a programmer must first tell the program to go to the first or last element, and sycle to the next or previous element respectively, until they reach the particular element. This has the potential to make apps that use linked-lists run slower, because they have to move element by element until they reach the desired one, whereas elements of an array can be accessed on the fly.
Nonetheless, I’ve begun incorporating these into S Quad Racing, and unsurprisingly they have made things a lot less painful. Remember the problems I’ve had with obstacles? How their affects would loop and loop and loop unrealistically? That ended because I am now directly able to… in non programmer turns, make that obstacle disappear from the track, or more realistically become ineffective because it was driven upon. This also means that turns will now be able to be taken out of tracks by builders, with no unnecessary headache for me as the developer.
Bottom line, I think these linked lists provide an advantage over arrays, even though they may make things a bit slower and accessing elements can be difficult at times.
That wraps up tonight’s post. I have more to talk about, but this is getting quite lengthy as it is, so I’ll save the rest of it for later posts. See you all in a week, not four.
Thanks for reading,
type you later,
Steve.

A Lot of Coding and A Lost Friend

Hey guys,
Steve here.
Tonight, I bring to you all some very sad news. Unfortunately, me and Nevaeh are not, friends. I tried to talk to her again the other day, but instead of replying, all she did was look at Danny’s I Pad, which he was using to Skype with me. Oh well, so be it. For all she knows, my name is Meow, I’m from the great state of Meow, I’m meow years old, and my ultimate goal in life is to meow. You can’t really blame her for never wanting to talk to me again, because judging by that conversation I’m quite a big loser. (LOL)
On the contrary, I actually have quite a bit to talk about, all of that being productive, well not really if my ultimate goal in life is actually to meow. But as it turns out, school is going along well this year, especially my Digital Interactive Media class, which is surprising since I was really scared at the beginning of the school year when I found out what the class actually was. I’m not talking about Business Information Management, the class I’m referring to is a massively visual class, where it’s barely the fourth week of school and Adobe Photo Shop is being used already. Fortunately, the teacher is allowing me to use that time to work on S Quad Racing, and setting deadlines for things, a plus since I now have another person motivating me to get things done. Anyway, he asked that I finish the regular racing mode, and I’ll be pretty well darned if I don’t. Maybe opponents won’t be perfectly matched with players, but he asked me to complete the racing mode, and he’s the only person pushing me to go forward, and I’m not letting him down. I have a lot of people who are proud, but he’s the first that is pressing me to get things done in a certain amount of time, and that’s what I’ll have to deal with in the professional workforce. And when telling him about the game, he especially got pumped about the Aggressive mode, and I will provide that to him by the time I leave his class in 8 months if it means halting progress on all the other aspects of the game until it’s complete.
Aside from that, the day after my last post, I finally broke down and employed a beta team for S Quad Racing, due to frustration at having to find and fix bugs on my own, bugs I thought were fixed already. I felt bad for them for having to test such a primitive product with so many bugs, but thanks to them I’ve been doing all the coding and fixing, and letting them test for the bugs for me to fix. This has definitely been a great help to me, because it lifts one of the most annoying jobs of being a developer off my shoulders, and results in me not having to sweep over sections of the game I thought I’d already tested through and through.
For one thing, today I solved all the crashing issues known to S Quad Racing, and also made it impossible for anyone working on a track to lose their work due to closing the application or it crashing. When I say I solved them all, I don’t literally mean I came up with a magic formula that made everything work 100% as I envisioned, however, rather than crashing, the program will simply log the error, notify the player, and save their progress. So, while I’m off coding a new feature, or doing something else entirely, the program will be logging vital errors, allowing me to pop over to that section of the code and fix what needs fixing, though my testers will still need to report bugs that don’t halt program execution to me.
Another plus side to this, is that now I’ll definitely be able to record the audio demo, without having to worry about the program hanging on me like it did in my last attempts. So, and I say this with the finality of a slamming solid stone door, there will be an audio demo by Saturday!
On a final note, I once again decided to revisit BGT, and am surprisingly grasping the subject matter fast, and more completely than ever. My main reason for doing so is a complex game idea I have, one that I’ll save for another post. For now, though, I am signing off, and will more than likely going to bed here shortly.
Thanks for reading,
type you later,
Steve.

Interesting Game Development Updates

Hey Guys,
Steve here.
So I’ve had an idea for a rather unique track building system for S Quad Racing, and it is quickly becoming reality. In this track builder, which is nearly complete as far as current game functionality goes, users are offered two ways of building tracks.
When a user first begins editing a track, they are placed at the starting line, and the builder is in driving mode. In driving mode, the builder works exactly how the game portion works, minus opponents. There is one difference, however. While driving in the builder, a user can hit the P key at any time to enter pause mode. When in pause mode, the car, and all obstacles, are frozen in place on the track. In addition, the turning keys are not used to move the car; instead, they are used to add turns to the track. The idea, is that a user can add either a left turn or right turn of any severity to the track, by pressing the corresponding arrow keys. For example: pressing left arrow once will set the turn type to easy, twice will make it moderate, a third press of the key will start a hard left turn, and the fourth and final press of the key will begin a hairpin left, the sharpest turn possible in S Quad Racing.
When the user has selected the type of turn they want to insert, they would press P to enter back into driving mode, and their car would enter the turn, just as if they were encountering it in the race portion. When the user felt the turn was long enough, they could end it by first entering pause mode, and then pressing the opposite arrow key (if they were working on a left turn, for example, they would press right arrow), until they heard the words “go straight.” Upon entering back into driving mode, they would find that their car was no longer in a turn.
While I’m sure my explanation confused some of you to no end, an audio demonstration of the system will be released within the next week, which should help to clear up some of the confusion.
The second way to add turns to tracks, (the less confusing, more familiar way), is to use the built in track edit menu. This menu can be accessed only within pause mode, by pressing m. Using this menu, players can add or remove turns, change track settings, as well as build structures. The way turns are added in this menu is that the user keys in the start and end position the turn is to be placed on the track, and then the type of turn it is they are adding. As this is the more familiar approach in most other racing games, I figured I’d add this as an option.
Still, even if the user chooses not to use the build-as-you-go method, they can still use driving mode to test and make sure their turns are placed exactly how they want them, making this a unique, flexible, easy to use system.
Besides the track builder, I took out obstacle functionality for the moment. Obstacles are still in the game, but nothing happens if you or an opponent runs over them, as I have new ideas that are, in my opinion, far better than the systems I’d previously implemented. In addition, I finally encrypted all character data, to prevent people from going in and setting their stats to cheat their way through the game.
As it currently stands, S Quad Racing will soon be ready for early testing, which comes as a relief to me, because after 5 months I’m about ready for people to at least try out my work.
Coding aside, I’ve had quite a good couple of weeks. Besides it being Summer of course, I spent the first half of the week hanging out with my friend, and the rest of the time I’ve been doing a lot of sleeping in, working out, and, of course, GAMING!
Thanks for reading,
type you later,
Steve.

Another Small Release and a Few Updates

Hey guys,
Steve here.
I said I’d have a surprise for you all, and that was not an empty promise.
Over the last week, I’ve been sporadically coding on a little game, one which is similar to the classic Pong, but with quite a few twists. And not only did I create this game, but I included the source code, which is heavily commented, so that anyone interested could have a look at how games are actually coded in Pure Basic.
Similar to flamity flame, you are placed upon a side scrolling grid that is twenty squares wide. Your goal in this game, however, is to run after the ball and hit it to prevent it from hitting the ground.
To accomplish this task, you are given a paddle, which you will swing once you are beneath the ball and it is low enough to hit because, after all, you can only reach so far.
Since the ball can go just about anywhere when you hit it, it is impossible to develop much of a strategy. Plus, the game gets difficult, rather quickly. So quickly, in fact, that the likelihood of you lasting over two minutes is nearly zero.
Fortunately, though, there is help. Firstly, you don’t really have to worry about centering yourself exactly beneath the ball; you will hear a beep when you are centered. Secondly, there are platforms. If you are not near the ball when it is coming down, and it happens to be above a platform, it will bounce off of it rather than making the journey to the ground.
Initially, you start out with three platforms, spaced out evenly in intervals of five. However, as you play, additional platforms will spawn, though considering the level of difficulty in the game it’s likely you’ll only get one, if any, platform spawns before the end of the game.
While the fact that more platforms will spawn might enspire you to work your hardest, there is one thing to bear in mind about platforms–they are not the nutral, happy-to-help objects you might think of them to be. When the ball bounces off of a platform, it will rebound faster, and you must work a lot faster to get to, and hit the ball. This affect is called catapult, and only lasts 3 to 10 seconds after the ball bounces off of a platform. So while it is true that platforms can be a life saver, you might want to avoid letting the ball hit them as much as possible, otherwise you’re going to lose more than you gain.
Well, if you’re interested, you can Click here to download it.
Also, I have recorded an audio demonstration, which you can listen to below.

There are a few things I might change, such as how quickly the game gets hard, and the interval between platform spawns.
In other news, I haven’t worked much on S Quad racing, in fact I’ll confess I didn’t work on it at all this week. I was mainly focused on coding the game released in this post, which I named “Bouncy Ball” because I was too bored to name it anything else, to code something as complex as S Quad Racing. I probably won’t open it up tonight either, as I’m rather tired, but hopefully tomorroww I’ll get back to work. I think that before I implement dynamic weather, ambiance, and cheering into the creation of tracks, I’ll go ahead and see what I can do about implementing gears, as that is a task that I’ve put off for several weeks now but needs to be done.
Well, that’s about all I have to report. I’ll blog again later this week. As far as pod casting goes, I’m not quite sure. I want to do an episode tomorrow, but we all know me. So who actually knows–but hopefully tomorrow.
Thanks for reading,
type you later,
Steve.

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.

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.

An Update On Game Development and Other Things

Hey guys,
Steve here.
Over the last few days, I’ve done quite a bit of coding on the Racing project I’ve been working on. Now that I completed the basics such as driving and such, I was able to begin on some things that should make the game much more interesting. One such implementation is the opponents’ rather comical ability to “rage” at you while in the midst of a race. As it currently stands, opponents driving by you can: glare at you, yell at you, or honk. I plan to add more amusing possibilities, but the aforementioned were just tests to insure that the system was working.
Similarly, opponents can now crash into obstacles, but at the time of this writing there are still some major bugs to fix: instead of Enemies always dodging obstacles, they now crash into nearly every single one. The most probable cause for this issue is that I coded it so there was a 1 out of 6 chance that the opponent would hit an obstacle, which averages just over 8 obstacles per lap. Considering that an average player only hits 1 to 3 obstacles per lap, I’ve come to the conclusion that this must be reworked.
More importantly, I’m currently in the process of coding in a stat management system. It is now possible to earn money at the end of the race, and level up as well. A detailed summary of this can be found here.
At some point this week, I’ll begin to work on some more built in tracks. In these next tracks, I’ll be adding more items: walled navigation sections, and perhaps power ups. I already have a good idea of how I want to build track two, and very much look forward to playing it.
Aside from the racing game, my weekend was awesome! Yesterday, I took a break from my coding and relaxing to attend the 2015 Winter Jam concert with my church. It was a total blast, and I wish I’d gotten pictures or something. It was a whole bunch of worship, rock and roll, Gospel singers, and… Skillet! :))
Well, I guess that wraps up tonight’s post. Expect another one later this week, along with an audio progress demo of my Racing game. Also, though I might need some assistance, I need to come up with a name for the game, because “My Racing Game” just isn’t gonna cut it!
Thanks for reading,
type you later,
Steve.

Monday’s Musings 12: Is the world of accessible technology going backward, for computers anyway?

Hey guys,
Steve here.

Warning: If you aren’t in any way intrested in technology, don’t read this post. But I have some thoughts on it that I need to get out… so… I thought I might as well post this.
This particular subject has been bugging me since I was first introduced to Google, and it intensified once I got into using Windows 8. What I am here to muse about, as the title says, is the world of accessible technology.
You’ve seen a similar post from me before, however that one was me wondering why it has to cost so much. While on the subject of that, I recently found out about an accessible Twitter client, that someone is celling for $15. Crazy, huh?
Anyway, getting back on topic, let me elaborate a little bit. A while back, in 2009, google’s gMail was accessible right out of the box. However, through the recent years, it has come to a point blind users who wish to use it must first search for the “basic html” link, activate it, so they can get a basic accessible view. That is only one example. In fact, google in general has been slowly getting less screen reader friendly. Google sights, youtube, and google docs are just three things from google that have accessibility issues. Although youtube is fairly usable, some buttons and graphics are not clearly labeled, so it’s definitely not a site I would recommend to a blind person just starting out with computers. As for google sites and docs, the two products, as of the last time I tried to use them, are practically unusable if you are using a screen reader.
Google is not the only problem here. Let’s take Microsoft Windows, another product I use daily, for example. Windows XP, a version of the Windows operating system that is so old it will no longer be supported as of April 8, was the most basic, accessible verson I’ve used. Windows 7, released in 2009 or 2010, was pretty much just as accessible. However, Windows 8 introduced a whole new layout, one that I am so unhappy with, I will probably install classic shell, an application that will give windows 8 the feel of windows XP or 7. Why you ask? Well let’s just say this. The menues, and even task manager application, are laid out in a grid. The task manager, I’ll admit, is quite useful, and I like the way they did it. But the start menu… well not so much.
The reason, I think, has to do with the increasing popularity of GUI (graphical user interface). I think, that with new technology available, Microsoft, like most other software companies, google included, is trying to make their software more appealing to sighted users. And although Microsoft has worked hard on a narrator application that is better than it has been before, the overall look and feel of windows 8 is still hard to get used to. And to top it off, what is google doing? Even edmodo, a social media platform used by schools, what is that doing to make it more accessible?
Just to let you know, I’m not ticked off or anything. I believe that these companies lay out their software this way for a reason. And if I really want something accessible like that, maybe one day someware far down the road I’ll program it. And besides, to end this post on a good note, I can feel better knowing that there are people out there developing software for us. As long as there are people like that out there, I can believe that we are heading toward a future with more accessware, a future in which I will be included.

Thanks for reading,
type you later,
Steve.