Hi all, hopefully I can get some good opinions on this topic. I spent the last year writing and releasing my first game using Torque 2D from Garage Games. It was a complete flop but that's ok, I learned a lot and hopefully the next one will be better.
As some of you might know, Garage Games announced last week they are petty much going out of business and looking for a buyer. I have already started coding a RPG using the Torque 2D engine. I've been thinking if I'm making a mistake by using Torque 2D at this point, sure it's perfectly suitable now but what about a few years from now? What if GG doesn't find a buyer or what if the Torque 2D engine doesn't get supported anymore?
My programming experience and abilities are probably still at the novice level, I coded the entire game using script because I don't need a lot of complicated things to happen. All of my interests are in 2D so I don't require advanced graphics, just basic mechanics like a GUI, moving objects (sprites) around the screen, sound, pathfinding, etc.
So does anyone any advice on what I should be thinking of doing? Should I continue to use the torque 2D engine and hope someone buys GG and their 2D version of the engine continues to get updated? Or should I invest a ton of time and energy into making my own "engine" at this point so I won't have to depend on a third party?
If were to try and build my own game, should I do it in c# or c++? I would hopefully like to port it to the Mac as well so should I use DirectX or something else?
Thanks guys!
Need some expert advice on what direction to go in
If torque works for you now, why worry about it? Even if it never gets another update; does it do what you want it to do for the project you have started on?
As for the latter: C#, no doubt about it. If you describe yourself as a novice, there really isnt any point in using C++, since you are not going to get that extra bit of performance out of it anyway.
As for the latter: C#, no doubt about it. If you describe yourself as a novice, there really isnt any point in using C++, since you are not going to get that extra bit of performance out of it anyway.
Eelco is right. If Torque can presently do what YOU need it to do to make your next game, then why worry? It's not as if your working copy of Torque and your license to it will suddenly catch on fire and be destroyed when they officially drop the ball. :) You can happily finish your game with Torque, and then worry about the future when your needs change. For now, it sounds to me like you're fine.
However, I assume that in the near future you will either get bored with doing simple 2D games or want to get deeper into what game creation is all about. I agree again with Eelco, C# is the sure-fire choice. But I don't agree that C++ is an assured way of getting "better" or "extra" performance. C/C++ programs start faster and don't have the initial JIT overhead when something first runs, but after that, you'd be hard pressed to prove that C# is any slower in practical use cases. After all, after JIT compilation, they are both native binary instructions; tailor-made for the processor. Sure, the CLR performs runtime checks for things like array indexes, but you can skirt around these if it really matters. Usually, it doesn't. And you're better off paying that negligible toll than suffering the common (and hard to detect) programming errors one makes when manipulating their own raw memory block. .NET applications also generally have a much smaller memory footprint and make more efficient use of resources. This isn't always true, but again, sure seems that way almost every time.
So if you decide to expand your horizons or move away from Torque some day, my suggestion is to first start with the basics of C# and the .NET Framework. Learn to write simple console applications. Then learn to write useful ones. Then learn to write a simple GUI/Winforms application; then try a useful one. Then you'll have a very strong core knowledge and experience with the language, and be adequately prepared for the complex world of game programming. The XNA Framework is a great place to start, since you can learn the ins and outs without worry about the nitty-gritty details of the system and the DirectX API. Later, you can easily pick up SlimDX or even more on to C/C++ and finally Direct-DirectX. :)
My advice is never limit yourself to one engine, one type of game or one language. Learn everything you can!
However, I assume that in the near future you will either get bored with doing simple 2D games or want to get deeper into what game creation is all about. I agree again with Eelco, C# is the sure-fire choice. But I don't agree that C++ is an assured way of getting "better" or "extra" performance. C/C++ programs start faster and don't have the initial JIT overhead when something first runs, but after that, you'd be hard pressed to prove that C# is any slower in practical use cases. After all, after JIT compilation, they are both native binary instructions; tailor-made for the processor. Sure, the CLR performs runtime checks for things like array indexes, but you can skirt around these if it really matters. Usually, it doesn't. And you're better off paying that negligible toll than suffering the common (and hard to detect) programming errors one makes when manipulating their own raw memory block. .NET applications also generally have a much smaller memory footprint and make more efficient use of resources. This isn't always true, but again, sure seems that way almost every time.
So if you decide to expand your horizons or move away from Torque some day, my suggestion is to first start with the basics of C# and the .NET Framework. Learn to write simple console applications. Then learn to write useful ones. Then learn to write a simple GUI/Winforms application; then try a useful one. Then you'll have a very strong core knowledge and experience with the language, and be adequately prepared for the complex world of game programming. The XNA Framework is a great place to start, since you can learn the ins and outs without worry about the nitty-gritty details of the system and the DirectX API. Later, you can easily pick up SlimDX or even more on to C/C++ and finally Direct-DirectX. :)
My advice is never limit yourself to one engine, one type of game or one language. Learn everything you can!
Quote: Original post by keinmannBut I don't agree that C++ is an assured way of getting "better" or "extra" performance. C/C++ programs start faster and don't have the initial JIT overhead when something first runs, but after that, you'd be hard pressed to prove that C# is any slower in practical use cases.
Sounds like more agreement to me.
However, I am not hard pressed to find the cases where it is slower; I do scientific computing in it, and yeah, it can be quite a bit slower. Always in the same ballpark, but a factor two slowdown isnt exactly unheard of.
But then I add in an AsParrelel here and there, spend some peanuts on another 4 cores, and see who has the last laugh.
Essentially, all off the bat C++ programming is premature optimization in my opinion. Profile, and if it matters, write your core algorithms in a C++ lib. The less people using your app, the more likely your time is worth more than the processors'.
Quote: My advice is never limit yourself to one engine, one type of game or one language. Learn everything you can!
Very true.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement