Previous Blog Next Blog
Prev/Next Blog
by date

Plan for Melv May

Plan for Melv May
Name:Melv May
Date Posted:Dec 13, 2004
Rating:5.0 out of 5
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Melv May

Blog post
... continued from previous .plan.
... T2D .plans.
... T2D .Discussions.

Wow, November and December have been really busy for me; T2D is absorbing nearly all my free time and I'm so exhausted but I have to say that it's been worth it. T2D is really coming together now and although I know that when it's released, that'll just be the beginning of the journey, it is starting to turn into a great 2D product. Sure, it hasn't got every single feature at the moment you're going to want but it does have a solid core that's easy to expand upon as well as a great scripted interface for every object. Post the initial release, there'll be a push towards improving the support tools such as the particle-editor, tile-map editor and better networking support.

Rather than blurbing about tech, I thought I'd take the time to provide some history leading up to where I am today so that everyone can see where it's come from and where it's ultimately going. Hopefully, you'll see why my plans have been few and far between lately and see that T2D is really surging forwards and I'm working like the devil himself!

To be honest, when I first began T2D, it was only as a distraction from other projects but even then I was seriously interested in creating a method of generating 2D visuals within the TGE. The reason I was so excited was two-fold. The first reason was that working in 2D is so very cool (no really), especially as the algorithms are much easier to deal with and very nostalgic at times! The second reason was that it seemed there was a definate requirement for 2D in this very powerful 3D engine of ours. There are so many people on the forums who desperately want to make games but don't have the basic background knowledge for doing so and perhaps won't admit it! My idea was that folks could use T2D for learning how to write classic games without getting bogged-down with 3D tech or even simply use it to suppliment your 3D game with a cool 2D gui! It could also be used as a stepping-stone to using the TGE itself.

I remember thinking that it wouldn't be too difficult to do and my initial feature set was fairly minimal but I did have a view to future development. I decided to go down the 2D scene-graph route and generate a core object that would be the basis of everything. In short order, I had things whizzing around with basic collision-detection and partial approximated physics. It was really cool that I could get things moving around autonomously with very little effort using the scripts and I did a flurry of plans at the time as I was so hyped.

I finally got to the point where I had a fast scene-graph, multiple window support, basic physics, an image handling standard, both static and animated sprites, a scrolling background object and finally a tile-map object that supported arbitrary rotations, unlimited layers and viewport-panning; mucho coolio. The only thing I had to finish then was the particle-engine so I decided to take what I had planned for the Strategem particle engine and adapt it to meet the requirements for T2D. I went out on a limb and laid-down a pretty huge set of capabilities (why do I do it to myself?). After a full week of design and almost two weeks of solid coding, it was ready and it worked like a dream and again, all driven from the scripts. T2D was getting seriously cool.

At this point, I had a good feature set that was more than capable of making games although there were some problems for anyone wanting to do more sophisticated games. Firstly, the collision detection, although fast, was fairly limited. There were also problems with tile-map collisions. The other problem was that T2D was only an API and didn't have any editor support so although capable, some of the functionality wasn't that intuitive for newbies. I decided to start working on some documentation and spent six evenings writing both a simple tutorial and a reference guide. I made a decision to keep this up to date as I made changes to the API, no easy task I can assure you!

It was around this point that Jeff Tunnell approached me about forming a collaboration so that I could release T2D through GG. After I received Jeffs email, I was honoured to be asked to work on it as a product for GG. With that said, I thought about it for quite a while as I needed to decide if I wanted to dedicate my time to an actual product or simply do some part-time coding. I didn't want to promise something that I couldn't deliver as the GG guys have been so good to me over the last few years. It was then that I realised that T2D could be something special and all it would take was dedication and time, and with GG behind me, how could I go wrong? World domination through collaboration? Yes!

My idea of what T2D could become changed almost overnight when, after Jeffs email, I started thinking about all the possibilities for T2D. My ideas were soon to become almost trivial when I started discussing the possibilities with Jeff/Josh. They had so many ideas on how it could be used by the community and ultimately turned into a 2D game-maker product, something I hadn't considered as it was always going to 'simply' be an API to me. I was convinced that I'd made the correct decision to work with GG at this point. I'm no fan-boy, I mean this sincerely.

IGC'04 was now looming and it became apparent that we needed to show-off something more flashy than the crappy programmer-art demos that I'd done so far. The GG guys didn't have too much time pre-IGC as they were really busy with other preparations but Ben, Pat and Josh did an admirable job getting the stuff together. For my input, I decided all I could really do was get a preliminary particle editor together and that's exactly what I did. It only took just over a weekend but it was capable of accessing nearly all the features of the particle engine. I spent a few days generating effects, some of which were shown at the IGC (maybe you saw them?)

With IGC over and lots of good feedback, it was time to start getting things together and making plans on what we could do and what we couldn't. It was about now that the roadmap for T2D was taking shape and plans for release started emerging. This is when the real stress began. The realisation that people may be actually purchasing this thing! If I was selling the fxReplicator, it wouldn't be anything like it is; it'd be faster, more configurable and well documented. This is where T2D had to go.

The final features for T2D were nearly complete and "Game in a day" was now looming (isn't something always looming?) T2D, as it was then, was made available to the nice GID#7 folks. The timing wasn't that great and so people didn't really have the time to get to grips with it but on the whole, the feedback was very good with most people saying that it was easy to simply "get stuff working". One thing that taking part in the GID#7 did was that it identified things in T2D that could be better and things that would be nice to have.

I knew for certain in my mind that I wasn't happy with one thing, the collision system, particularly when it came to more complicated objects such as the tile-maps. If you speak to anyone about 2D collisions, they'll probably brush it aside as "easy" but to actually implement it in such a manner as to make it not only intuitive but fast and extendible, is definitely not "easy". My other concern, although not as much, was that the physics was pretty basic although it was enough for a wide variety of games.

At this point I was talking heavily with Josh Williams (a fantastic sounding-board) and, after plenty of discussions and agreements on the collision system, I decided to take another leap of software tech and implement something special. I must admit that Josh had reservations about what I wanted to achieve but I promised that I could do it and in short order. After the chat I thought to myself, "why did I commit myself to this!!!!"

I organised a long weekend so that I could commit to this new code which was a completely new and sophisticated physics and collision system. I'd be happy if I could do this and sleep better at night!

My goals were to have a collision system that could do a swept polygon-polygon check and provide information on both overlaps as well as disjoint collisions in forward-time. I wanted the system to be able to solve overlaps and provide solutions as well as do something extra special, feed into the new physics system. The new physics system was also a big leap; I wanted to do proper rigid-body physics where the mass and inertia were calculated from the collision polygon area based upon initial parameters such as density. I wanted to be able to define a collision material that could be applied to any T2D object and the physics system would respond accordingly. Properties such as density, restitution, relaxation, static/dynamic friction needed to be there. This is all great but I wanted this to be configurable with minimal script-calls and not impede games that didn't explicitly require fancy physics! I also needed to ensure that it didn't break everything that went before! Hmmmm.....

Now there's only one thing worse than doing such a system at pace; doing it at pace on a code-base that already has an approximate system! I had to remove all existing traces of physics/collisions and rework many of the internals. This is one of the reasons why Josh (quite correctly) was worried about me doing the work. My wife Sarah had put aside the stuff we were originally going to do so that I could work Fri, Sat, Sun and Mon solid on it. I did lots of homework on both subjects prior to development and spent many an hour chatting online with some folks I met on 'GameDev.net' as well as reading a few chapters of a book on calculus! I had very little sleep over four days, waking early, sleeping late but I must say, I enjoyed it immensely but I did deplete the house of coffee. I was in my element; difficult problem, short-time span, big reward!

By mid-afternoon Monday, I had gotten so far that I was amazed at it all (pre-planning is all good!) I had achieved everything I set out to do and more. The collision system was working perfectly and was really fast and the rigid-body physics worked like a dream. I had objects hitting each other causing linear and angular changes. I had gravity causing objects to stack and things sliding down ramps and bumping into each other ... totally sweet! I was really happy! I put together a basic demo for the GG guys and they were really, really happy with it but no-one could be as pleased as I was with it!

The question now was whether to release T2D with the "old" code or the new. The problem here being that we'd need to change the existing tools, albeit preliminary ones. Finally, it was decided that we should bring the very best to the community that we can so the decision was made to go with the new code. This meant that I had to dedicate another long weekend to correctly integrate the new system. Sure, the new system was ready, but it didn't have all the capabilities exposed via scripts so I needed to do that. That was the 12-13th Dec weekend for me! I don't remember what freetime is now!!

Well that's the story so far! When T2D is finally released, it'll have only preliminary network support and editors but it will have a 2D engine with huge potential. Want a 2D game where you can knock objects around and they respond correctly to collisions? No problem! Want to generate your own 2D objects quickly? No problem. Get the Early Adopter version and I can guarantee you that whilst all the editor support is preliminary, it'll have everything else and soon after the initial release, focus will shift to editors as well as additional objects such as internal text support etc. You'll also be able to feedback into what kind of features go into it and be part of the design process. T2D will be designed by the community, developed by a community member and GG will make this happen!

- Melv.
T2D Slave.


For those who like development shots, here you go! Oh yes, there's only one thing better than T2D and that's baby Jessica (now 15lb 8oz) at nearly 4 months. Look at those chubby cheeks, I want to pinch them. :)




Recent Blog Posts
List:06/10/08 - The long overdue blog...
10/24/07 - New Baby Girl...
03/19/06 - The GG Journey...
03/05/06 - Just arrived in Eugene...
11/18/05 - Plan for Melv May
10/10/05 - Plan for Melv May
09/01/05 - Plan for Melv May
07/27/05 - Plan for Melv May

Submit ResourceSubmit your own resources!

Josh Williams   (Dec 13, 2004 at 17:25 GMT)
Melv, it has been a total pleasure working with you. I'm constantly amazed at how quickly you get stuff done, and I always enjoy our tech design sessions. :)

I'm very excited about T2D. It's so much fun to play around with, and I can't wait both to get it in people's hands and to continue working on it with you in the future!
Edited on Dec 13, 2004 17:30 GMT

David Montgomery-Blake   (Dec 13, 2004 at 17:31 GMT)   Resource Rating: 5
Wow. Just wow. This is one of my favorite plans. Ever.

I cannot wait for the EA release to see all the hard work you've put into this!

That's about all I can think of to say, and considering the flippant nature of my tongue, that's pretty amazing!

Pat Wilson   (Dec 13, 2004 at 17:39 GMT)
Quote:


My goals were to have a collision system that could do a swept polygon-polygon check and provide information on both overlaps as well as disjoint collisions in forward-time.


Sweeeeeeet. That is going to make life so much easier when we do the networking part, the swept polygon stuff.

The win!

Thomas \"Man of Ice\" Lund   (Dec 13, 2004 at 19:27 GMT)   Resource Rating: 5
Melv for president

David Loomis   (Dec 13, 2004 at 23:26 GMT)
I second that! : )

Jay Moore   (Dec 14, 2004 at 02:29 GMT)   Resource Rating: 5
[quote] I had gravity causing objects to stack and things sliding down ramps and bumping into each other

Melv May   (Dec 14, 2004 at 06:23 GMT)
Thanks everyone,

@Jay: Didn't mean it to sound like that; I've had nothing but great comments from you guys. I was trying to emphasis how hyped I was to get it working correctly. :)

You're correct, it's really good to see T2D getting better each week. It'll be great to see people putting it to good use.

- Melv.

Dylan Sale   (Dec 14, 2004 at 06:59 GMT)
I want it so bad. Take me now T2D!

Melv, you are a god among men.

Melv May   (Dec 14, 2004 at 17:12 GMT)
@Dylan: Soon, soon!

@Jay: Editted the plan to say what I actually intended to say. ;)

- Melv.

Quest Johnny   (Dec 16, 2004 at 00:57 GMT)
soon soon soon?

Melv May   (Dec 17, 2004 at 15:21 GMT)
Soon!

- Melv.

Matthew Langley   (Dec 21, 2004 at 16:10 GMT)
spent the past couple hours at work following the path of your plans... (ok ok its one of those days at work that I need to take an 'unscheduled' break lol)... Incredible ! amazing ! Awesome!... at first I read the plans because of your previous work I've seen, some on the fxReplicator and fxFoliage that I use and enjoy...

this is going to be amazing... you definately have a customer for it here... great 2d games are a blast... what is the future possibility of making some sort of rpg out of such ?

edit: btw wonderful pictures, beautiful and adorable little girl :) ...

can't wait to get it just for the purposes of looking through the code, maybe using it as a starting point to understand more code
Edited on Dec 21, 2004 16:12 GMT

Melv May   (Dec 22, 2004 at 08:32 GMT)
@Matthew: Thanks! I sincerely hope that lots of people jump onto the T2D rocket and enjoy what's in there. I also hope that everyone understands that if a specific feature they want isn't there, it'll more than likely be there next time they look. :) GG quite rightly say that it has to be released sometime and I'm terrible for wanting to add "just one more feature"! I see now that an early adopter will be great for people to follow the changes as well as have input to them. I'm sure you'll enjoy it.

Jessica is the love of my life; totally adorable and nothing like what I expected e.g. a crying, dribbling baby. She's bright, alert and very smiley but I guess most parents would say that. :)

- Melv.

Rodney Jacks   (Dec 26, 2004 at 15:34 GMT)
It's great to see T2D nearing completion. Has a release date been set??? I have been waiting to port an old Mac game of mine to Windows and T2D sounds like it would be perfect for it.

Best Regards,
Rodney

Melv May   (Dec 26, 2004 at 15:45 GMT)
@Rodney: It certainly is good now we're getting close to a release. I'm not allowed to give you the release date yet unfortunately but it will be soon! As you can understand, as soon as we say a date, it'll mean we can't go a few days over or even bring it forward without upsetting lots of people. I'm working on it all over xmas (even right now) so you can have it soon. :)

- Melv.

Matt Harpold   (Jan 10, 2005 at 01:01 GMT)
Melv, is there any support for isometric (2dish) views?
If not, would be easy(ier) add isometric/tile based views to T2D?
We're definitely holding out for a release, even if it's not entirely complete, it will gives us something to work on!

Melv May   (Jan 10, 2005 at 07:04 GMT)
@Matt: Ooh, a release is so close I can smell it! ISO-tiles are not available in the current release but I would like to see them in ASAP as ISO-tiled games make up a good proportion of what I considered 2.5D games, lots of which I loved so yes, I think you can expect this support without too much delay. Rectilinear tiles are in and are solid, meaning that they have all the new collision/physics goodies and are very fast. There's just been so many other things to get done/improve. :)

- Melv.

Matthew Langley   (Jan 12, 2005 at 16:11 GMT)
Can't wait ! ... ok now you and Josh Williams' plan are getting me too excited, your not allowed to do that until after the release ;p ... but I guess I can forgive you since you put so much time into this awesome creation !

Melv May   (Jan 12, 2005 at 17:56 GMT)
Hey Hey, sorry about that. :)

The good news is that it's not well-timed marketing, it really, really is that we're excited about T2D. That's partially because we're sad geeks (well I know I am) but mostly because T2D is really easy to use and you get an awful lot of 2D bang for your buck.

T2D is sooooo close, you can smell it, or is that me?

- Melv.
Edited on Jan 12, 2005 17:56 GMT

Grant Lucas   (Jan 13, 2005 at 01:29 GMT)
when you say buck you mean its not free.....
Edited on Jan 13, 2005 01:32 GMT

Melv May   (Jan 13, 2005 at 17:48 GMT)
@Grant: Why, would you not pay for it? :(

James Rozee   (Jan 13, 2005 at 21:05 GMT)
From what I've seen, I'd pay for it! Do you know if GG plans any 2D content packs or an adventure engine pack like they did with the RTS? I'm going to hold out using T2D until ISO is supported but I'll probably purchase it as an EA. I feel like Pavlov's dog whenever someone mentions T2d. :)

Rodney Jacks   (Jan 15, 2005 at 17:11 GMT)
Melv,

Any word on a release date for T2D? I am anxious to get going converting an old Mac game of mine. I want to be an early adopter, assuming T2D works on Linux.

Best Regards,
Rodney

Melv May   (Jan 15, 2005 at 17:30 GMT)
@James: At this point, we're only about getting T2D out ASAP. At the moment we're in beta#2 and eager to release. I'm sure that content-packs will be released, more than likely by community members. I'd like to see sprite-packs with image-maps/animations pre-configured, 2D-genre frameworks for adventure games, side-scrollers (SPS? - side-person-scrollers), platform games etc. It's great to hear enthusiasm from the community; gives me a warm fuzzy feeling inside. Can't wait for release and then to work with the community on it.

@Rodney: I've got potential dates but as you'd expect, I'm not at liberty to dicuss, sorry. Very, very soon which doesn't mean months. :)

Oh yeah, T2D is multi-platform, linux, mac and I suppose we may do a windows version. ;)

- Melv.

Matthew Langley   (Jan 17, 2005 at 15:34 GMT)
lol, my mind is still dancing with the possible cross platform 2d games... T2D has been on my mind for the past two weeks. A friend I know is a great programmer, though he hasn't done much 3d game programming, hes done a lot of 2d. Hes intimidated in approaching Torque, this is perfect. Should help him break away from what hes used to using and get used to a form of Torque. He will have a field day with this. Well of course I will too. Already have the art for some 2d games to port over quickly so will put the T2D ease to the test :) Though I have no question of how great it will be !

Melv May   (Jan 17, 2005 at 18:37 GMT)
That's great news Matthew. Come release date (which is soon), I'll be both terrified and excited at the same time. Definately exciting to see peoples enthusiasm on making 2D games. Some of the SlashDot comments were of the ilk of "who wants to make 2D games anyway?". Me thinks they just don't get it. Of course, I'll be making myself available to answer any/all questions after release date for those of you who do want to make cool 2D games! I expect my life to be dedicate for at least a few weeks post EA1.

Coming soon, promise. Hold on bud.

- Melv.

James Rozee   (Jan 18, 2005 at 14:11 GMT)
Melv, good to know. As for the ilk on Slashdot, sometimes I think there isn't a toilet deep enough for critics. :) They're the ones who have no depth -- not T2D. ;)

Melv May   (Jan 18, 2005 at 17:22 GMT)
@James: I hear yer. ;)

Donavan Hoepcke   (Jan 24, 2005 at 21:00 GMT)
Ok, it's been 6 days since you said soon . . . what gives? ;) Actually, my team is pretty anxious to see this. We've been looking at SDL to build a cross-platform 2D game but if the TGE provides it, then we'll go with that.

-Dono

Matthew Langley   (Jan 25, 2005 at 04:51 GMT)
lol glad I'm not the only one anticipating this and hounding his plan... thought I was becoming some crazy like stalker person... ok maybe I still am, lol...
Have complete faith in you Melv, though the anticipation is building and building....

Melv May   (Jan 25, 2005 at 06:38 GMT)
Yeah, sorry for the wait guys. We're knee-deep in demos/tutorials at the moment. Gotta' have demos and tutorials right? ;)

Just finished a 5 day off-work period just so that we can accellerate the process. I'm not going to say "soon" this time; perhaps I'll say "not long".

Not long ... not long ... not long ...

- Melv.

Matthew Langley   (Jan 25, 2005 at 17:24 GMT)
lol... no need for a sorry, the more time you spend on it the better it gets so the wait is well worth it,

were just a bit ancy... lol... and/or crazy... or both

Phil Shenk   (Feb 02, 2005 at 16:41 GMT)
I must say, T2D looks amazingly fun. I have a great fondness for 2D games, and a nostalgia for working on them. This will be a great chance to get back to roots and try out some ideas I've been kicking around.

I have two questions:
1) are you planning to have any lighting (gouraud shading) on sprites and tiles, maybe tessellating the elements for better fidelity?
2) and 2, which I just thought of as I was formulating the question... what about shader support on 2D graphics? Can you imagine how cool a sidescroller would look with dynamic lights on specular and normal mapped tiles? It would be an awesome effect!

Melv May   (Feb 11, 2005 at 10:27 GMT)
Thanks everyone. :)

continued here.

- Melv.

You must be a member and be logged in to either append comments or rate this resource.