Track Update

Hmm… Its been quite some time since I had time to post anything. I have been crazy busy lately making sure I get reasonable marks in school. But anyway, Track has had some interesting additions. The really big news is that Track will be showcased at Mass DiGI’s Game Challenge event on March 2. Track is not actually competing in the event, its just there with a few other local indie games to keep people entertained through some of the downtime.

The first really big addition to Track has got to be the level editor. When Track was shown at the FIG, there was a set of predefined levels players could choose from. Those levels will still be available of course, but now users have the capability to build their own levels. Right now, a player can build the track, add spawn points, physics bodies, laser walls, text, and all sorts of game logic. The editor supports timers, trigger zones, switches, and OR/AND/XOR/NOT logic gates. This means you can have a laser wall that is triggered on and off by a timer AND a trigger zone XOR a switch. The logical possibilities are really endless. All of the editable objects have a whole slew of properties to mess around with too. The editor is written in such a way that adding new objects to the editor is really a piece of cake. All I have to do is code up a C# class and mark some of the properties with a custom [Editable] tag. The rest of the import work lies in coding the file IO for each object. Over all, I’m really happy with how the system works and how easy it is to get new objects into the editor space. There are definitely still a few major bugs with the editor. Most of them come from users doing things that don’t make any sort of sense, like not finishing the placement of an object. I am in the middle of making an error system that will prevent the user from saving a map if it has errors. You can get a sense for the complexity of the editor by watching this nifty video!!!

YouTube Preview Image

The other big change to Track is special abilities. This is in experimental stages right now, but I think it will stick around. When a player spawns, they get the chance to pick a special weapon. They are stuck with that weapon until they die, though, so they have to pick wisely. There are four different options. The first one gives the player prolonged turbo. This is really dangerous because I changed what happened when players collide. Damage is dealt to players proportional to the difference in speeds of the colliding players. This means that the faster guy takes way less damage, so zooming around the track at warp 9 means the other players have to get out of your way! The second ability is a teleporter. All you have to do is aim at a spot you want to go, and press the ability button. You will travel there in an instant. This is a really good defensive ability. The third ability is a shield that you can hold over yourself. It has a basic energy burn as you use it. Instead of being invulnerable during this time, each bit of damage you would have taken, you take a fraction of in relation to how much health you have left. This means you CANNOT die while holding down the shield, but you can come very close. When you release the shield, all of the bullets you absorbed go flying where ever you tell them to. This ability may seem a bit OP, but the energy burn makes it a tool you can only use sparingly. The fourth and final ability is a grabber. If you aim at an enemy, and press the ability button, then they come flying towards you. This is a very offensive play. The ability stuns both your, and your target’s weapons momentarily. These four abilities add an extra level of wackyness to the game. I like the gameplay they bring, because depending on what abilities people are using, the game play changes dramatically.

One last thing I forgot to mention. At the FIG, there were three game modes, Death Match, Domination, and Chaos. Chaos was kinda a cheap shot at getting a third game mode in there, since it was just the combination of the previous two. Death Match and Domination are there to stay. I think Chaos is going to get ix-nayed. Two new game modes are coming to fill its place though. Swarm will be the classic horde. Team up with your buddies and take on increasingly difficult waves of bad guys. The other game mode is a Juggernaught clone I suppose. One player will be the target for everyone else to kill. The more time you spend as a the target, the more points you get.

 

Okay, I think that is all for now. As always, if you have any questions, feel free to shoot me an email at cdhanna@wpi.edu

Follow The Track

-Chris

Posted in Uncategorized | Leave a comment

Track

So it has been awhile since I wrote anything here. But quite a lot has happened. The last thing I wrote about was the Xbox play test of some Small Engine stuff. I don’t exactly know how to sum that up. I am no longer working on the Small Engine, and I am not sure if it is because I don’t think it is as important as I thought it was, or if it was because I finished it. By working on it for a long time, I gained a lot of useful skills and programs that I can re-use in my future projects. In fact, a lot of what showed up in the April test is stuff I still use in every game project I start. If an engine is a set of tools, then I think the Small Engine is pretty much done. With that being said, I don’t feel guilty admitting that I moved onto a new project called Track.

Track is a game that has been sitting in the back of my head for years now. While hiking down Blueberry Mt in N. Chatham NH, my dad and I came up with this idea. It was going to be like pong, but on a circle, and not really like pong at all. As we discussed, and as the years rolled on, my friends and I developed the idea into a giant physics fluster cluck. Every time I sat down to try writing the game, I got stuck on a technical aspect, and so I was unable to make this awesome game that existed only in my head. Until this past summer while on vacation in NH. With a burst of technical inspiration, I got a quick prototype of the game done. When I came home, I submitted it to the http://bostonfig.com/ . I showed my game to a lot of people, and they all seemed to like it enough to give me an award for game design. From there, I took a break to make sure I passed all my courses at WPI, and after that it was back to Track. Since I started back up again, I estimate that around 25 hours have gone into Track.

Track’s end goal is to wind up on XBLA, which means it needs to run smoothly on the Xbox. Sadly, the bostonfig version only ran at a stunning 2 fps on my 360. But the new version I have been working on runs at a nice 40-60  (usually). There are still lots of things to do on performance. And there are still lots of things to do game play wise.

I have said all this, and yet I have not really said what Track IS yet. Track is a top down 2D shooter game. It is currently only really a local multiplayer action game, but soon I should get some of the single player elements in, which are going to be a bit slower paced with a puzzle here and there. In Track, your objective is to kill everyone else. The big catch to Track is that you confined to a “Track” on which you can either go forwards, or backwards. Luckily, the Track bends and twists, so you can blast your guns off the track at your enemies on the other side. You also have the ability to detach from the Track in an attempt to attach somewhere else. But being separated from the Track has some disadvantages, namely being you cannot steer very well, and you only have 5 seconds to live.

Here is a video of the current version. [I can’t seem to make it autoplay at HD, despite linking it with the ?hd=1 tag. You should change it to HD]

YouTube Preview Image

For people who have been following this already, here are the big changes…

  1. new spawning system. Instead of exploding onto the track into the middle of chaos and certain doom, players who respawn fly towards the Track from off screen, and then have 2 seconds of invulnerability. During this time, they may not shoot.
  2. Changed all the weapon visuals (slightly). Everything is a bit more slick and sexy now. Lots of particles, yo.
  3. The ‘Laser’ weapon that cuts the Track deals a lot more damage. If you get hit with the laser, chances are you are dead.
  4. The enemy AI has been updated to be able to form teams with humans.
  5. New kind of AI. They are the orange buggers in the video. They have very little health, and will pester players by shooting pulse shots at them. In small numbers, these guys are not a threat, but once they achieve a critical mass, they become very dangerous.
  6. Player’s energy level is now represented by a white inner circle instead of a black circle.
  7. The aiming dot is now a large aiming line. In the video, the green player is the only human player, so the aiming line only shows up for them.
  8. Hot-joining. instead of having to start a new game to change the amount of players in a match, a person can pick up a controller, press start, and instantly hop into the game. When they have had enough, they can press start again, and leave the game.
  9. And a lot of technology changes. The largest of which would be how the Track is represented in data, and how Missiles detect the Track. Instead of using a grid spatial partitioning system like before, they snap their position to a grid position. There is no grid in memory, but the positions are just vectors. Then that vector breaks down into a unique hash code (x*3*y*7), and is remembered by the program. When a Missile wants to find possible Track pieces to collide with, it just checks if there are any Track pieces with the same hash code as itself.

 

I think that is it for now. I am really excited with the progress so far. The fps increase from 2 to 60 on the Xbox is really fantastic. If anyone wants to know more, just shoot me an email at cdhanna@wpi.edu

 

Follow The Track.

 

Posted in Games, Works in Progress | Leave a comment

The Small Engine. The Xbox

Today marked our first “play test” of our small little engine. After spending an hour or so plodding through Microsoft’s rules for developing a project onto the Xbox 360, the project finally showed up on the big screen. Everyone was very excited for about 2 seconds before the heart stopping lag kicked us in the chest. We pulled out a lot of the game world and eventually the project started to run with out lag. Then people started breaking the system, which is the point of a play test. The longer the play sessions went on without a crash, the slower and slower the game out. After a little while, it would be chugging along trying to keep up with people’s insane lust for flying around at warp 9 blowing stuff apart. We found a lot of bugs. But we also had a lot of fun!

The main thing to worry about is definitely the lag, although we have some ideas on how to get rid of some of it. There were some fun physics glitches that caused objects to go flying off into oblivion which single handeldly destroyed the music code aswell as the camera tracking code. And then there was a slew of other minor things like being able to shoot oneself and having a controller that would vibrate until the end of time. Like I said, minor things.

Despite the upsetting amount of lag and the barrage of glitches and bugs, it was a fun day and definitely a step in the right direction.

Posted in Uncategorized | Leave a comment

The Small Engine. Music

I’ve been working on some audio code to give the small engine a nice little one up on common music systems. Maybe a lot of games do this and I just don’t notice, but I was inspired by one of Introversion updates to make a nice audio system that would allow us to change the feel of the game on the fly. Here is how the system works, instead of the audio composer giving the programmer one audio file to play, he gives him one for every instrument. The system then plays all the instruments at once so they all sync up with one another and sound like a normal song. However, because they are all each different tracks, the game can adjust different features of each track in-game such as volume, frequency or pitch. The combination of swapping around different effects can really change the mood of a scene. See for yourself in this video.

YouTube Preview Image

The audio is tied loosely to the visual effects going on in the video, but I didn’t make the link easy to see. It might be easier to see the awesomeness of the audio system if you look at this video from Introversion’s audio.

This is the same song but with no visual and different effect changing. Audio Testing

Next on the line up is working the kinematics of the physics testing back into the nice graphics. With the new SAT Collision I think the process will go over better than before. The first problem I’ve run into is SAT’s inability to return a point of collision which is important for the correct physics response. I think I found a way around it, but I shall have to report back later on this matter.

Posted in Uncategorized | Leave a comment

The Small Engine. Looks

The physics stuff in the last post started to fall apart, and the reason for that was their 2D collision code. Their collision code was, more than awful. That inspired me to find a better way. And that inspired me to write an entire new shape class. And as I looked into the matter, I found that not only was the old collision bad, but that everything was bad. And of course that inspired me to re-write the entire darned thing. But that was a good thing, because the results have been fantastic.

This video shows off the new Shape class. Unfortunately, fraps decided to go bust half way through the recording process, so I don’t have as much footage as I would have liked. But within this youtube video, there is some neat stuff. Other than simple operations, there is some great bloom, blur, motion blur, and desaturation. The shapes are made up of vertices, and the program gets full control over them, allowing for vertex manipulation, which I’m sure will be useful at some point! The big thing that the video never gets around to showcasing is the implementation of SAT, or Separating Axis Theorem. SAT is the new collision code, and it works like a charm! There was a great methodology Tutorial written by the guys who made N+.

Anyway, here is the video.

YouTube Preview Image

I think next along the line is going to be some music control and some particle effects.

 

Posted in Works in Progress | Leave a comment

The Small Engine. Physics

There isn’t much to say, except that Small Group needs their own engine, an engine that thousands of jealous indie developers will wish to have because it is just so awesome. I am aware that there are already a lot of tools out there to use so as to avoid the creation of an ‘engine’. Farseer is a wonderful piece of physics, and I have wondered why I am toiling away writing a custom physics engine when something so fantastic already exists. Re-inventing the wheel seems like a stupid idea. But the key is that even though the wheel has been invented, its not the right size for Small Group.

In writing our own engine, I think we will have a nice little special nitch to work out of. And that’s not to say that collaboration is bad or unoriginal, I just want our own set of tools to work with.

But what is an ‘engine’, really? No one really knows, but we can take a good guess. An ‘engine’ is a system of tools that you can fit together to make some truly splendid, like cake, or a space ship. The engine usually handles all sorts of components of a game, such as the physics, the core graphics, the lighting techniques, the scripting systems, and a whole bunch of other crap that I wish I didn’t have to think about. Pretty much, if you want to make a sweet awesome-tastic video game, you need all these things, and since we are all super busy people, we dont want to spend the time to write these systems ourselves, so we just mosey on over to FarseerPhysics.com, or AwesomeEngine.org and then were set! But, instead of doing that, Small Group is going to get their OWN engine, and it is going to suit our purposes just fine.

So to start with, physics.

Yes, its a daunting word, but it so prevalent in games that there is no avoiding it, and so the first part of writing the Small Engine, is writing a basic physics dynamics simulation. And looky looky, its mostly all done! You can even see in the video below.

YouTube Preview Image

Its still a work in progress, but I think its coming along quite nicely. More on this LATER.

Edit: I feel as though I should say that XNA is a framework for graphics within C# and a stepping stone to the Xbox 360 platform. Its sort of an engine in that way, and I have no intention of re-writing that just because.

Posted in Uncategorized | Leave a comment

Intel Indie Fund of Fun

Intel is trying to get their new netbook appstore off the ground by providing a challenge or two to indie developers (like sgp). The challenge is, “give us your game by the end of march, and maybe we will give you some money”. The mere hope of cash is enough for me to jump on this challenge.

I started a few days ago, with the intention of creating a hybrid of zuma and snake. However, as things progressed, it just turned into a new style of snake game. This game has the basic single player and up to 4 player local head to head.

The idea behind snake is that if you hit anything, you die, and then its game over. However, in this version, if you hit your tail, then the part of your tail that isnt connected to your head, falls off and turns into food again. This gets fun when you have a bunch of people playing, because you can just tool around and chop off your buddys body parts.

But dont let me do all the talking, watch this fancy video to get an idea of what Im talking about.

YouTube Preview Image

So yea, Snake is back.

Posted in Works in Progress | Tagged | Leave a comment

Welcome to 4.0

Yes, its true.  Small Group Productions 4.0 is almost here!  If you have ie6 then we don’t want you you should upgrade to ie8 or better yet, firefox or chrome or safari or …anything else.

Thanks!

Posted in Uncategorized | 2 Comments