Game Development Community

Platformer Starter Kit - New feature incoming!

by Phillip O'Shea · 03/16/2008 (3:04 pm) · 15 comments

img160.imageshack.us/img160/2773/titlebarqr8.jpg
It has been nearly a week since the TGB Platformer Starter Kit was launched and I couldn't be happier with the reception it received from the community. I am ecstatic that I have been able to get a product created and out onto the market. I hope that this will be the first of many, not only starter kits, but games down the track.

I would just like to give a small introduction about my experience with GG and a brief description of my time developing the kit. If you want to get straight to my announcement, just scroll down.

My Introduction to Garage Games

I first stumbled upon GarageGames and TGB when I was wondering how much an XBLA game made. Google bought me to the Make It Big in Games blog written by Jeff Tunnell and Josh Dallman. Once I had stumbled upon this website, I was hooked.

It didn't take long for me to understand that, for the most part, this is a great community with a great passion for developing games. So many people were out there helping others, donating their own time and energy to help accomplish something new.

One of the first posts I had read on the TGB forum was related to creating a Platform game in TGB, containing all of the pitfalls and hurdles that one would have to avoid in development. I opened up TGB 1.3.1 and hoped over to the TDN to start creating the Mini Platformer. The users in that post were right and many problems mentioned were frequently displaying, one of which was the good ol' walk up wall trick.

I played around with everything a bit more and bought it upon myself to improve its current state by making my own platformer from a new direction. It turned out okay, way more buggy than the Mini Platformer, but I had learnt a lot and elements from that tutorial would go on to help in the PSK.

I had already purchased the TX PSK but had very little experience in C#, which deterred me from actually using it. In my opinion, the TX PSK is a great example of what a few guys can do with a bit of free time. They had laid an excellent point of reference for anybody looking to create a platformer game in TGB, but nobody had done it. Being the budding game developer and part time entrepreneur that I am, I saw an excellent way for me to create my own game and learn TGB and TS. Since most programming languages are easy enough to read through and understand, I decided to use that as a foundation to my own platformer.

The Development

The first, what some would call a *build*, was just a black cube running around a white background. I had to implement a method of movement first. This was a critical aspect that added an element of difficulty in production, but made everything worthwhile.

When you come across difficulties in game development, you have to sit down and ask yourself "Is it worth it?" I bet that in many indie and commercial games there are elements which should have been scrapped due to the input cost in relation to benefit for the user. I believe that critical aspects of your game should be reviewed if you spend weeks of developing prototypes with little improvement. I am one of those people who need to walk away when I encounter a problem. I know that if I sit there and spend a few more hours on a stubborn bug that I can fix it, but I also know that if I walk away and come back to it later, I will fix it in minutes. I learnt quickly that you need to take breaks.

I upgraded from the little black box to the ninja art from the Mini Platformer. At this point I had started to ponder the use of source modifications in order to get One-Way collisions working as well as sloped surfaces. I messed around with a few mods and got both elements to work.

I added the ability to ignore collisions from specific objects. It was just a vector of scene objects stored away in an object that was checked upon collision. It did its job and gave me the ability to jump through platforms.

My method of detecting sloped surfaces was a glorified cast-collision (a function I strongly disliked at the time). There wasn't much too it really. I created a function that simulated a collision between the ground poly and a shape that I could create. It would return collision details including the contact normal and the position, two critical elements for sloped surfaces.

It was at this point that I started work on my animation FSM. I had been using a rather large quantity of if statements which got really, really confusing and prompted me to upgrade. I had never used FSM's of even understood the concept, but I was able to get the manager working in a few days. It turned out to be really simple system and I am really happy with the results. The FSM was written in TS and I have outlined its framework in this post. Carpenter Software went on to develop a larger, more detailed FSM here.

It was at this point that I had started to add a lot of the TX PSK's features and I decided that there might be some commercial gain in this for me. I contacted Thomas (the GG employee who created the TX PSK) threw over a build and enquired about the possibility of a starter kit. A few emails were sent back and forth and when I had it to a stage where critical elements were working (relatively) bug free, I got in contact with Derek Bronson.

Derek manages 3rd party content at GG is someone who I get along with quite well. He was incredibly supportive (as was the whole GG team) and helped me get everything prepped and ready for release. I had never done anything like this before and it was fantastic to have someone like Derek there to help me package the kit.

Derek prompted me find a method of one-way platforms and sloped surfaces without using source modifications. I saw the obvious potential in this requirement, but did not fancy the idea of actually doing it. I argued with Dan Maruschak and boldly stated that it was not possible to do either of these two things in TS. A week later, I had been proved wrong.

These two elements were the biggest pain in the ass, period.

From this point it would take a few more months of refining and adding features to get it to the point where it works just as well (if not better) as the TX PSK. The next phase in my scheme for world domination would be the announcement.

The Announcement

Derek approached me and asked if he could display my work at the GG booth in this year's GDC. I was over the moon! The feeling was incredible. I had achieved what many developers dream of, a product that is shown to the world and that people take interest in.

I whipped up a snapshot to submit and wrote a small blog highlighting some of the finer points of the kit. Personally, I was surprised that I didn't receive any comments about my "Object Manager". I thought that this little system was awesome and it certainly saved me the trouble of remembering object groups. Anyway, everything had been announced and I was one step closer to release.

Derek and I sat down and discussed price.

I know that a lot of people were disappointed in the price difference between the TX PSK and my own, but there were reasons for it.

I don't think some people fully appreciate the amount of work that goes into developing something like this. Platform games have been absent from the TGB scene since its introduction a few years back. This is because it is a difficult system to implement. 4,000 lines of code and comments went into the kit and it has taken me 6 months of work to get it to this stage. If it wasn't a difficult system to implement, then I am sure that someone else would have done it.

I also think that quite a few people thought that I was a GG employee. I am just another one of you guys, no different. I worked hard and managed to create something great. I am sure that you have the potential too.

There have been quite a few people who have purchased the kit and made the comment that it was well worth the investment. I hope that it continues to be the case. In saying that, I would like to make an announcement.

Something New!

I wanted to add something to the kit that most of the TGB community would have thought it impossible to do in its current setup. Network support.

For the past few weeks I have been working on a network layer for the PSK. I have successfully linked the majority of the PSK's features between two clients and am thoroughly testing my work. I am smoothing out the movement to get everything the two clients as synchronized as possible.

In order to add smooth movement I created a basic pathing system to the kit. It is like the moveTo function in TGB, except it uses the x-axis only and tells the player to run to the point. I might try to improve it later on, but at the moment I am focusing on more important elements.

I don't have an ETA on the upgrade, but it is coming, promise!

In my opinion, a networkable version of the PSK will justify the $50 price tag. Just remember that all future upgrades will be free to all TGB PSK users!

About the author

Head of Violent Tulip, a small independent software development company working in Wollongong, Australia. Go to http://www.violent-tulip.com/ to see our latest offerings.


#1
03/16/2008 (5:09 pm)
Phillip I am indeed impressed. And I would say a networkable version of the PSK would justify the $50 price tag. If you can pull it off with a smooth networkable version I could defently see myself paying the $50 for the PSK.

(And I would like to say.. Its not that I think the PSK wasnt worth the $50 before. Just that I had a hard time justifing it to myself as I felt it did not anything beyound what could be accoumplished myself. Now something like a networkable version of platformer is indeed something that would take afair amount of work for myself to do and goes along way to justifing the $50 price tag in my eyes. But that is just my opinion.)
#2
03/16/2008 (6:03 pm)
Wow that is amazing news, looking forward to the results!
#3
03/17/2008 (1:50 am)
Quote:I argued with Dan Maruschak and boldly stated that it was not possible to do either of these two things in TS. A week later, I had been proved wrong.
Hehe, you make me think that I had these feature working in my project (IceWolf) for a looong time, beside being a working platformer ^^'
But, well, making a kit is not only about the code, but also about the support and documentation. Making stuff that people can easily understand, that's the true hard part.
#4
03/17/2008 (2:38 am)
Network support as in multi-player (no turn based / turn based)?
That would be smashing... I was going to buy it in a few days and wit network support it will be a must.

Does you PSK also deal with saving values (e.g. health, score...) from level to level... loading next level and 'progressive' stuff like that?

Keep up the good work!
#5
03/17/2008 (5:37 am)
Quote:Network support as in multi-player (no turn based / turn based)?
Yeah, I'm slightly confused about this announcement Phillip, surely this update isn't suggesting realtime multiplayer support, that would be a pack/upgrade in itself, so I'm guessing your saying the pack as it is somehow doesn't support the current turnbased multiplayer architecture?

In any case, great work and regarding the few pricing criticisms, indies man, stop being cheapskates, you ain't that broke are you! **just joking, do not flame!**
#6
03/17/2008 (7:03 am)
@Hokuto / Leroy Frederick
Actually, TGB is not turn-based but event-based. It's a rather large terminology shift in thought. You are not restricted to making "turn-based" games in TGB. You just have to manage your event updates to the server correctly. Now, for a fast-action title, like a fighting game (ala Street Fighter) with a large number of extremely fast updates, it can be nightmarish to control this in an event-based system because the updates most likely will occur and be queued before the event can either be sent out or received. But for something on the level of a platformer, it is more manageable since there are often less things which require updates. Now, machine gun bullets in Metal Slug hitting a thousand on-screen enemies...that's still a nightmare. I've been a long-time advocate of changing the terminology stated from turn-based to event-based because of the confusion between turn-based gametypes and the network model.

Not sure exactly how Philip is working out the reporting mechanism, but his object manager that he was excited about (and no one commented on, sadly) is a likely culprit for network registration and updates.

Regardless, kudos! I'm hoping to pick up the pack on my next paycheck (or the one after, depending on debt).
#7
03/17/2008 (12:37 pm)
Thanks for the explanation on turn-based and event-based David.
Quote:network registration and updates
Does that mean you think the announcement is an improvement/change to the event-based networking of TGB then? (hope I asked that right, I'm still a little baffled).
#8
03/17/2008 (12:58 pm)
I don't want to give too much detail away to the people who haven't purchased the kit, but basically I track user input and pass it between clients. There is more involved than that to keep everything syncronized, but that is the basic element.

As David said, there will be limitations in that you aren't going to be able to network something massively demanding. All that I am trying to achieve at this stage is get every feature of the kit in its current form to be network savvy and synced between clients. I will then add a dialog system which will enable communication between clients and I might attempt to improve the pathing system that I had to implement.

I haven't changed anything to do with the current networking structure of TGB. I have just figured out exactly what I need to do to get my kit working in its current form. If you own the kit already, you will notice that I tend to build a series of functions to act as a go between for other systems (like the Object and the Sound Managers). The idea for this is to reduce the complexity of the systems and promote users to invest time and energy into using them. This is what I plan on doing for the network system.

On a side note, I am not a programmer by trade and I have never created anything to do with networking. I may be doing it incorrectly, but, it is working! If anybody who knows a lot about networking and is interested in discussing my methods with me, please throw me an email (in profile).
#9
03/17/2008 (5:39 pm)
Thanks for the kind words Phillip. Just wanted to let everyone know that the demo is now available for Mac users as well. Enjoy!
#10
03/19/2008 (8:40 am)
Hey Phillip the kit it great. I know how hard it is to get something out of the the door. I have worked on one shipped Title and working on a new prototype that a publisher is ask to see the prototype each day almost.
#11
03/21/2008 (2:18 pm)
I bought the kit three days ago and it's amazing.

Now, this network system - I can't wait! And dialog system? oh oh oh! This puts my brain on spin for game concepts as side scrolling two player roleplaying or cooperative adventure cavestory-like jumping-thinking-madness.

I'm truly a beginner with coding and the PSK has helped my learning progress immensely. Thanks Phillip.
#12
04/08/2008 (11:47 am)
Cant wait too ^^
#13
04/28/2008 (1:40 pm)
I bought the kit about a week ago and just finished running through the tutorials, it's impressive stuff! I appreciate you developing this, thanks to your hard work I finally feel like making my own game is feasible. On the shoulders of giants and all that...
#14
09/18/2008 (6:58 am)
New feature born dead? Long time that I heared about this :-(
#15
09/18/2008 (1:23 pm)
It is still coming, I promise!