Game Development Community

Few questions before buying...

by Marco Bancale · in Torque Game Builder · 12/29/2005 (1:11 pm) · 11 replies

Hi guys!

I'm moving to Mac game development (after years of PC's) and I find T2D the only good 2D engine available that supports 3D hardware.
I'm also an owner of TGE and since T2D is derived from it, here are few questions:

I downloaded both the demos (fishtank and spaceshooter) for Mac, but there's no sound! Am I missing something?

It's been many years since last time I took a look on a TGE code, but I remember that the structure of a typical TGE game was always the same (server scripts, client scripts) and to modify the C code was not that easy.
Now, I really don't want to use the scripting language, I love C/C++, but with T2D how hard is to create a game from scratch without the scripting language?
Is it like TGE that almost "forces" you to use it (since all the tutorials and examples are based on the same structure and scripts)?
Is the C/C++ API interface clean and easy to use?
Do you sincerely think that if I want to use only C/C++, I won't get anywhere? (beside my skills)

Can I avoid that server/client structure used in all TGE examples and tutorials?

Last one: is GISH written with T2D?

Sorry for the amount of questions, but my last experience with TGE was almost a nightmare.
80$ is not that much and I'm sure T2D is worth the price, but I don't want to get stuck again in some script labirynth or unmodifiable C code...

Thanks in advance!

Bye

#1
12/29/2005 (2:55 pm)
Marco,

T2D is written primarily for people to write the majority of their games using scripts. This proves to be a very powerful way to generate games and there are a few casual games already out on major portals written using T2D scripting.

It is completely possible however to write a complete game in C++ and I'm currently working on a set of tutorials that cover the basics of doing this. Writing a game completely using C++ however is completely dependant upon your C++ experience (which I don't know) so it's a hard one to call.

I will say that the T2D codebase is well commented, adheres to a consistent coding standard and provides the ability to generate your own scene-objects very quickly. I'd also like to add that this isn't a framework so you obviously don't start from a simple "main()"; it's an engine extending the TGE. The good thing is that there's lots of documentation on ALL the function calls for all objects ("T2D Reference PDF") that T2D provides (as well as being on TDN) and the script-calls are identical to the C++ calls so the complete functional reference works for C++ in the same way it does the scripts. There's also a starter tutorial document that goes through the steps of creating a game from scratch albeit using the scripts.

It's a difficult call; I'm not here for the hard sell. Currently, we don't have any method to provide a real example of what you'll get code-wise but that will come in the near future.

If I was to make a call, I'd say that you should perhaps hold-out for a few months until we can get a more reasonable demonstration of T2Ds capabilities.

GISH wasn't written in T2D. The demos haven't been updated in a long time but we're currently in a v1.1 alpha#2 release and will be updating them in the near future.

With regards to avoiding the server/client structure; sure, T2D is client only so you don't have to write all you code as a single client running under a server. All the scripts for the client exist in the "client" folder though. T2D objects currently don't support realtime networking (there is network support though). We put out T2D in a similar structure using the "package" methods that torque-script provides although it's real easy to change this (real easy).

I certainly wouldn't compare the TGE scripts with the T2D ones. T2D is, by its very nature, much simpler to get objects up and running, react using callbacks and all that. There simply isn't the need for the complexity that the TGE needs. I don't think this says anything bad about TGE it's just that a 3D game gets more complex much more quickly than a 2D game (generally).

I'd like to think that you'd be pleasantly surprised after running through some of the tutorials. I'm a keen C++ guy but I'd never consider writing a game completely in C++. I do however realise that for any game, adding custom objects that control AI, do fancy rendering or inherit from existing objects is a must and it's this stuff that is easy to do in T2D by design. You can extend many aspects of T2D in C++, again this is by design.

The current documentation I'm working on will help with all the bread and butter work of working with T2D in C++. This information will also be useful for working with TGE because at some levels there are functional overlaps.

In the end, I can't make the call for you but if you absolutely don't want to use scripts (because you think that it will as complex as TGE) and you want an API rather than an engine then you may want to consider something else. Again, I'd like to think that you'd be pleasantly surprised by T2D.

- Melv.
#2
12/29/2005 (2:57 pm)
... did I also mention that I stalk the forums answering questions like an angry dad? So if you get stuck on anything just ask! I personally think the T2D forums are some of the most friendliest forums I've ever been to on the net.

Hopefully, others will post here to give you a broader insight.

- Melv.
#3
12/29/2005 (3:05 pm)
T2D is built directly on top of the TGE core, so fundamentally the experience is nearly identical. HOWEVER....

The T2D engine extension code itself is obviously fresh and new, organized well, and lends itself to modification.

Additionally, TGE 1.4 was recently released which cleaned up a *ton* of things (since you're already a TGE owner I'd suggest checking it out and see what's new and different if you haven't already) and the next release of T2D will be migrated to TGE 1.4. So if you like what TGE 1.4 brought in terms of engine clean-up, you can expect to benefit from this in T2D soon too.

T2D as it currently stands does not focus on network multiplayer, certainly not to the extent that TGE does; there is no forced client/server script architecture at this time (well, the directory structure alludes to it a bit, but much of it is just organizational and can be stripped away very easily.) T2D 1.02 only supports command-based networking, T2D entities aren't syncronized across the network automatically like TGE does. You can do turn-based multiplayer or anything else that doesn't require per-frame syncronization right now. More advanced state-synchronicity may be coming down the road, but I can't remember any specific offical word so I won't imply anything with certainty here. :) The upshot is, you can completely ignore the TGE-style client/server architecture right now.

I would have to say that you would be losing a big chunk of the benefits of T2D if you chose not to use scripting. I'm a C++ and Java developer by trade but I'd hate to think of doing the things I've done so far purely in C.

The nice thing about the scripting language - idiosyncracies aside - is the general flexiblity of it. You can usually enforce your own architectural style in it easily enough and avoid some of the sloppiness inherent with typeless scripting langauges, provided you are somewhat disciplined.

GISH was not written in T2D, but Little Gods, Fortune Tiles, Gold Fever and more recently King Kong are all T2D games. A great testiment to T2D's capabilities is that Gold Fever was commercially released incredibly quickly, only a couple of months after T2D 1.02 came out.

Hope that answers some of your questions! I've owned T2D for about eight months now and I can definitely say it is worth the money overall.
#4
12/29/2005 (3:10 pm)
Thanks Luke; you said what I tried to say but much more concise than I could manage at this late hour. :)

- Melv.
#5
12/29/2005 (3:23 pm)
@Marco: i started with t2d and overall, i think it's the best 2d engine available...

by 'best' i mean price VS performance.

I however am a windows-only guy, so while the cross-platform support of t2d is a great feature, it's not one that affected my decision to go with it.

and i can vouche for melv's (the writer of t2d) statement that he is very good with answering dev-user questions.

that, and the community is pretty good for peer-answered questions
#6
12/29/2005 (3:35 pm)
First of all, thank you very much for the quick and long replies, Melv and Luke!

But something is still not clear.
Melv, when you say that T2D is not an API, but it's an engine, what do you mean exactly?
I know that it's an engine, but you mean that it doesn't expose any interface actually?
You say that I couldn't start from an empty main()... what should I do then?
Can you make an example? I just don't get the idea...

Maybe you'll think that I'm a bit mind-closed because I don't want to use the scripting language, but... yes I really don't like scripting languages in general. I don't have any doubts that T2D scripts are very powerful and that I could do everything just with them... but, well... I'm a C++ lover and I always coded my games in C++...

Anyway, I'm happy that I can get rid of the server/client structure very easily. That's good.
About the network... Luke, you say that I could write a multiplayer turn-based game, but not a real-time one, because T2D doesn't support any automatic object update via network. Ok, but I could just use any 3rd party network library to do that, couldn't I?
Or maybe this is the perfect example of the current limitation of T2D: since the engine itself doesn't support network communication, so the scripting language doesn't either and integrating it with an external library would be a mess. Am I right?

Ops... again a lot of questions, sorry! :)

Oh, you didn't reply to the trivial one: I don't get any sound with the two Mac demos... why?

Thank you again!

Bye
#7
12/29/2005 (3:43 pm)
Hi Jason!

I know that T2D is probably the best 2D engine out there... the list of features is impressive, no doubts.
And I know that the community is very nice... even three years ago when I was using TGE, the community was very active.

I'll probably buy it eventually... as I said the price is very low compared to what the product can offer.

But if I can be frank... I never understood why you keep your products so "closed". I mean, there is no evaluation version, documentation is secret, forums are not accessible... you can't even show me a piece of real code.
I don't agree, but I respect your policy of course. I just don't understand the reasons behind it!
Also because if I buy the product I even get the source code!

Well... I always wondered about it... :)

Thanks

Bye
#8
12/29/2005 (3:48 pm)
Marco,

It's late so I'm not being as clear as I could be. There has been alot of confusion over people coming to T2D and expecting a framework not an engine. This is what I was at least attempting to cover although I should have guess that as you've already had some experience with TGE. It just wanted to be clear on that as people have been trying to compare it to something like the POPCAP framework. Sorry, that was probably confusing.

You don't need to use a third-party network library, you can use the fantastic one that comes as part of the TGE core. The point was that unlike all the TGE objects, the T2D objects don't have to be created on a server, ghost themselves to a client etc. You just create a scenegraph object, create some scene-objects and add them to the scene. Real easy and no need to worry about networking; was this what you wanted?

If you want, you can create a server and connect clients and use the standard TGE calls "commandToServer()" or "commandToClient()" as before. The point trying to be made though is that you don't have to battle with the server/client stuff because by default, it doesn't exist, neither do the scripts.

With regards to the MAC demos; I seem to recall that there was a problem but I cannot at this late hour recall what it was. There are no sound problems using the MAC currently, especially as we're merging with the latest shiny TGE v1.4. You might want to go and try TGE v1.4, especially the sound.

- Melv.
#9
12/29/2005 (3:54 pm)
I purchased T2D and I guess that there is no evaluation version simply becouase T2D is not finished yet. Also scripting is really very very and very one more time powerfull. It's possible to create game in less then a month (if you have art ready). My shooter was done in two weeks (with programmer art ) and it looks great.

Personally I think that it's waste of time to create whole game in C++ with T2D but if you have patience and knowledge then I guess that it could be done.

Networking exist in T2D, but it's very basic, if you want better network support then maybe you should wait a while.

I would like to help you with sound issues but I am on windows, however checkout console log. If there are driver problem console log should report that.
#10
12/30/2005 (2:20 am)
I downloaded TGE 1.4 and the sound works... so, either it's a bug in the T2D demos or even in T2D itself (probaby not).

I think I confused you with my network example... I don't need any network in my game, it was just an example of how difficult might be to integrate a 3rd party C++ library into a T2D game. Not that I'm sure about it, actually it was just a question. Another example could be to integrate a "steering behaviors" library...

Anyway what you guys are saying is that the scripting is very powerful and usually you do everything with it without even touching a C line. But you're also saying that probably it's possible to create a game just using C++ calls, but it would take longer development time for sure.
Time is not a problem for me, since I'm doing this mainly for fun (I'm not an indie developer), this is why I am so "stressed" about it... I want to enjoy coding a game and coding in C++ with a good 2D engine.
But I understand that T2D focuses on giving the developer a tool to optimize his development time.

So... if anyone could answer my last question, I promise I'll stop whining and go home. :)

Well, actually I would need an example of code in C/C++ using T2D, but if this is not allowed, then even a pseudocode would be ok. It would be great to see a simple piece of code to create a window and display an image with the usual event loop. In C/C++.

Please...

Thank you again! I promise, I'll stop!

Bye
#11
12/30/2005 (3:58 am)
There isn't an eval version of T2D because of the way it works. Most of T2D is accessed via the scripts rather than through C++.

If a demo version was released ala TGE, then everyone would be able to create games with it. That's also why posting code for T2D in a public forum is against the EULA. With TGE, the C++ side of things is key, so it's unlikely you could create an entire game from just script.

Various C++ components can be plugged in. Somone managed to get ODE integrated with T2D, so if you have the knowledge and the time, there's nothing to stop you integrating other things into the core engine.