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.

S Quad Racing: Gears, Track Building, and A Bit of Rewriting

Hey guys,
Steve here.
Despite what the absence of an audio demo that “should’ve” been released nearly a month ago might seem to imply, I have not neglected, or in fact been lying, about the current status of S Quad Racing. While there has been days when I haven’t worked on the game, (maybe even too many), I’m happy to report that development is still underway.
First of all, I’ve begun to rewrite and organize parts of my code. While the initial reason for doing such was to make the code a bit more readable, upon further inspection of what I previously had and after a bit of brainstorming on the gears system I discovered that my code was unintentionally designed so that any major changes, I.E. the implementation of things such as vehicles, gears, surface types, and other structured objects was out of the question, due to the way I’d programmed most of the game in its early stages in an effort to create a simple environment in which I could get a little taste of what I wanted S Quad Racing to ultimately be.
Now, though, the game has become more complex, grounds for a bit of a rewrite.
The following is a list of reasons I couldn’t possibly produce that audio demo, at least not tonight and maybe not even tomorrow:

  • I ended up organizing the code into separate files, and if I compile now I am bound to get some errors due to procedures not being declared and such and will likely have to make adjustments accordingly.
  • I’ve added a lot of new code that hasn’t been tested yet due to my not having finished making adjustments to the code.
  • I found a new bug. If you add a turn, and then strengthen or weaken it by adding another turn with greater or lesser severity right after it without first having a straight section, the game will not announce the name of the turn due to a bit of code I added without thinking, again, about the future. However, this one should be easy to fix.

    With all that said, there is good news to report. The above mentioned new code deals a lot with the gearing system, and I’m happy to report that I found and coded a solution that will work for this!
    In addition, I came up with a new idea to manage speed, and have implemented it as a result. This new way is not only future proof, but way more practical in terms of balance, as it basically tells the game how to handle each and every individual speed that a car can travel, without me ever having to touch it again. While you are unlikely to notice much of a difference when the new demo is released, the gears and ability to select different vehicles are bound to catch your attention.
    That concludes tonight’s post. Once all the code is sorted out I’ll likely be releasing two audio demos; one being on the track builder only, the second demonstrating the new gears system and ability to race with different vehicles.
    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.

    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.