Matt the Terrorist Game Engine: Introducing New and Interesting Game Mechanics

Hey guys,
Steve here.
Twelve days ago, I told you all that the first step of Matt the Terrorist, the adventure game, had been completed. It was just a game with the ability to walk, nothing more, really. But apparently, a lot can happen in twelve days, and the following list should clearly point out my reasoning for proclaiming the preceding statement.
Because I got pumped at having started on this game that had been nothing but ideas for months, and was curious as to whether or not coding some of these radical game mechanics I’d been dreaming up could actually be done, I pretty much got carried away. The following is a list of what I managed to achieve, in about 910 lines, and probably 6 or 7 hours of accumulated coding time.
-Platform like structures, building material, and walls, all of which have length and thickness properties.
-leveling. In the current game I’m building with the engine, Matt the Terrorist: Engine Test, levels don’t mean much, as this game has no real objective, it’s just a test of the game engine after all. Still, levels affect things, as you will see below.
-Items that can spawn or be spawned on the map. These could be building materials, stat upgrades, money, etc. The stat upgrades, such as money, increase as you level up.
-A shop. Only two items in there so far, but again there’s not really too much to work with in terms of objects. Prices of all the items increase as your level does.
-Some… uh… I wouldn’t really call them physics, but items can break if dropped too hard, players and items can fall, and walls can actually be kicked in, (that excludes the edges of the map).
-And finally, I’ve been working on a complex system for arms. These really aren’t the “realistic” idea of arms, but they work like this.
You hold down the left or right shift key, to control the respective arm. (Non realistic element coming)… the right arm can only extend to the right side of your character, the left arm only to the left. Both can move up and down (up as high as they can reach, down to the surface you are standing on).
In addition, the arms can be used to “feel” things, if that’s really what you want to call it. If you move your arm over to the edges of the map, you will be told, “border.” If you reach up to a surface, or are standing on one and move your arm down to it, the length and thickness of the surface segment will be announced. If you are standing on a platform, it’s name will be spoken as well.
In addition to the feeling aspect, the arms can do the basic things, such as dropping and throwing items, as well as exchanging them with your inventory.
It’s not a whole lot, but I’ve been slowly creating functions as I go, such as location and collision detectors, that have helped me a lot. I’d say that the hardest part so far is defining the physics for items, as it requires me to type a bunch of unproven code that I am only about 33% sure will work. I guess I’ll let you all know whether or not it does, once I have a chance to fully test it.
As for developing S Quad Racing, that has gone slower, because of course with my new burst of coding energy I’ve been focusing on Matt the Terrorist’s engine, and unfortunately I have a one track mind. Well, I guess one and a quarter, because I worked a little bit on it, — a few bugs I previously didn’t even know about due to me not racing multi lap races were fixed, and crashing was implemented.
I hope to have audio demos of both games I’m working on in my next post. Also, for those curious as to why there haven’t been updates on the S Quad Racing page, I forgot about them when I started my alpha testing folder, that’s why I haven’t posted many of them recently. This does not mean a lack of work on that project for the last couple of months, — the two audio demos I’ve posted since then should prove that.
Thanks for reading,
type you later,
Steve.

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.

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.