Evaluating iTorque - Some questions first
by Jason LaChapelle · in iTorque 2D · 05/10/2011 (2:24 pm) · 28 replies
Hi,
I'm currently evaluating iTorque for my upcoming iPad, iPod, and iPhone game. I'm currently prototyping it in cocos2d but am thinking something like iTorque may make the final development easier because of the toolchains it provides. With that said, I'm trying to determine the feasibility of iTorque for the game and have a few questions. Hopefully I can get some answers :)
First question - our game doesn't use your standard sprite sheets. Instead our characters are created from a bunch of different part sprites (appendages) that are put together at runtime. We basically have a hat, head, body, arms, and legs. These parts are combined at runtime to create our character sprite. We did it this way because the different parts for each class has a different look, and these parts can be mixed and matched. Creating every possible combination in a sprite just wasn't feasible. For some examples on how these look/are setup, you can check my photobucket: s93.photobucket.com/albums/l64/jaylach/Patchwork%20Battle/
As I said, these need to be combined at runtime to create a single character entity that can be animated both as a whole and the parts separately. Does Torque allow you to create a game object that contains child "sprites" that can be changed at runtime, dynamically?
Second question - because we're not using your standard sprites, our animations are not in your standard sprite sheets. Instead we are programmatically animating the characters and their parts. This is not as daunting as it sounds since our animation style is pretty simple. You can check out an early alpha of the animation style here: www.youtube.com/watch?v=w9jDdcahgvA
Does the Torque animation editor tool allow you animate game object properties (i.e: rotation, scale, opacity, etc) or is it used only for spritesheet animations?
Third question - the iOS game that is probably closest to the one we're working on is Battleheart. While the gameplay is different (our's is turn based), the number of things happening on the screen is about the same (8 character sprites, simple animations, limited particles, etc). How would a game like Battleheart perform if it was built in Torque? Is Torque performant enough to use to create a game like Battleheart or are the limitations on iOS too much to warrant using Torque?
Final question - I have become a pretty big fan of Objective-C (I know, shame on me). Is it possible to use Objective-C with iTorque or am I limited to just TorqueScript and C++?
Many thanks in advance!!!
I'm currently evaluating iTorque for my upcoming iPad, iPod, and iPhone game. I'm currently prototyping it in cocos2d but am thinking something like iTorque may make the final development easier because of the toolchains it provides. With that said, I'm trying to determine the feasibility of iTorque for the game and have a few questions. Hopefully I can get some answers :)
First question - our game doesn't use your standard sprite sheets. Instead our characters are created from a bunch of different part sprites (appendages) that are put together at runtime. We basically have a hat, head, body, arms, and legs. These parts are combined at runtime to create our character sprite. We did it this way because the different parts for each class has a different look, and these parts can be mixed and matched. Creating every possible combination in a sprite just wasn't feasible. For some examples on how these look/are setup, you can check my photobucket: s93.photobucket.com/albums/l64/jaylach/Patchwork%20Battle/
As I said, these need to be combined at runtime to create a single character entity that can be animated both as a whole and the parts separately. Does Torque allow you to create a game object that contains child "sprites" that can be changed at runtime, dynamically?
Second question - because we're not using your standard sprites, our animations are not in your standard sprite sheets. Instead we are programmatically animating the characters and their parts. This is not as daunting as it sounds since our animation style is pretty simple. You can check out an early alpha of the animation style here: www.youtube.com/watch?v=w9jDdcahgvA
Does the Torque animation editor tool allow you animate game object properties (i.e: rotation, scale, opacity, etc) or is it used only for spritesheet animations?
Third question - the iOS game that is probably closest to the one we're working on is Battleheart. While the gameplay is different (our's is turn based), the number of things happening on the screen is about the same (8 character sprites, simple animations, limited particles, etc). How would a game like Battleheart perform if it was built in Torque? Is Torque performant enough to use to create a game like Battleheart or are the limitations on iOS too much to warrant using Torque?
Final question - I have become a pretty big fan of Objective-C (I know, shame on me). Is it possible to use Objective-C with iTorque or am I limited to just TorqueScript and C++?
Many thanks in advance!!!
#22
While implementing the GameKit framework, I polled our community. Rather than assume I knew what people wanted, I asked the iT2D licensees what they wanted out of the implementation. The request was to expose the achievements, scoring and Game Center views to TorqueScript via global functions and unique sets/lists. After asking various questions and "what if" scenarios, I came to a pretty sound solution.
First, I wrote the Objective C implementation of Game Center (pretty simple stuff). Next, I created a new C++ class called t2dAchievement. I used this class as a bridge between Objective C (iOS SDK) and TorqueScript. The code is commented through and through, explaining what each function does. I'm working on the written guide right now (70% complete). When I have that posted, I will provide a link. It will explain the concepts more clearly and also covers creating and managing objects in source code.
05/13/2011 (7:22 pm)
@Jason - My apologies for not getting around to this post today. I got caught up releasing iTorque 2D 1.5 Preview 1. The timing of your post is why I am kind of excited about posting the connection between Objective C, C++ and TorqueScript in iT2D.While implementing the GameKit framework, I polled our community. Rather than assume I knew what people wanted, I asked the iT2D licensees what they wanted out of the implementation. The request was to expose the achievements, scoring and Game Center views to TorqueScript via global functions and unique sets/lists. After asking various questions and "what if" scenarios, I came to a pretty sound solution.
First, I wrote the Objective C implementation of Game Center (pretty simple stuff). Next, I created a new C++ class called t2dAchievement. I used this class as a bridge between Objective C (iOS SDK) and TorqueScript. The code is commented through and through, explaining what each function does. I'm working on the written guide right now (70% complete). When I have that posted, I will provide a link. It will explain the concepts more clearly and also covers creating and managing objects in source code.
#23
I'm in the middle of purchasing iT2D as we speak, so once I get all this up and running I'll have to download the preview and see how you went from Obj-C all the way to TorqueScript (and back, I presume?).
I'm getting the feeling hardest part for me to get up and running is going to be wrapping my head around TorqueScript. Challenges are fun, though :)
Thanks again everyone!
05/14/2011 (7:01 am)
@Michael - No need to apologize! :)I'm in the middle of purchasing iT2D as we speak, so once I get all this up and running I'll have to download the preview and see how you went from Obj-C all the way to TorqueScript (and back, I presume?).
I'm getting the feeling hardest part for me to get up and running is going to be wrapping my head around TorqueScript. Challenges are fun, though :)
Thanks again everyone!
#24
- Introduction
- Syntax
05/14/2011 (7:11 am)
@Jason - Quote:'m getting the feeling hardest part for me to get up and running is going to be wrapping my head around TorqueScript.Understandable. Picking up a new language is definitely a challenge. Something to keep in mind is how TorqueScript was designed. The extension is .cs, which stands for C Script. It shares similar syntax and concepts with C/C++. The following two links should help you get started with learning TorqueScript:
- Introduction
- Syntax
Quote:Thanks again everyone!Most welcome =)
#25
Edit: Never mind. I was having problems getting the XCode Project to open through TGB, but it seems once I removed spaces from the install (I named the folder iTorque 2D, later changed to iTorque2D) folder and from my project everything worked fine. :)
05/14/2011 (7:43 am)
@Michael - I've been over those links a few times now :) I think I get it, I just need to jump in and get my hands wet.Edit: Never mind. I was having problems getting the XCode Project to open through TGB, but it seems once I removed spaces from the install (I named the folder iTorque 2D, later changed to iTorque2D) folder and from my project everything worked fine. :)
#26
The hardest part for me, right now, is wrapping my head around the way things are setup. For instance, there seems to be a global game.cs file. Is it not possible to have code that's only loaded, and only executed, when a certain level is loaded?
05/14/2011 (10:47 am)
So after playing around with TorqueScript this morning/afternoon, it seems relatively easy enough. I don't think I'm going to have a problem picking this up.The hardest part for me, right now, is wrapping my head around the way things are setup. For instance, there seems to be a global game.cs file. Is it not possible to have code that's only loaded, and only executed, when a certain level is loaded?
#27
See comment #5 in this thread.
www.garagegames.com/community/forums/viewthread/125839/
It shows how to do define a class attached to the initial level (an instance of t2dSceneGraph) that you can develop the game in. I always use this basic template, so all my game play in one source file. If there is need to change some objects I just remove them and add others (in the same level).
05/14/2011 (11:38 am)
@JasonSee comment #5 in this thread.
www.garagegames.com/community/forums/viewthread/125839/
It shows how to do define a class attached to the initial level (an instance of t2dSceneGraph) that you can develop the game in. I always use this basic template, so all my game play in one source file. If there is need to change some objects I just remove them and add others (in the same level).
#28
I'm not even certain if different objects for different levels is the right approach. I'm struggling to wrap my head around how I should architect my game in iTorque. Hopefully trying out a few approaches will help point me in the right direction.
Thanks again :)
05/14/2011 (12:27 pm)
@Pedro - once again here you are with highly useful information. Thanks!I'm not even certain if different objects for different levels is the right approach. I'm struggling to wrap my head around how I should architect my game in iTorque. Hopefully trying out a few approaches will help point me in the right direction.
Thanks again :)
Torque Owner Jason LaChapelle
Once again, thank you. Your help has been invaluable to my evaluation of Torque :)
This is okay, and probably the way I would have ultimately went anyways. I have a similar setup in cocos2d already: My Mimc class contains all logic about the Mimic (character) and my MimicSprite class handles rendering the character sprite based on the Mimic object assigned to it.
I was hoping to avoid C++, but you raise a very good point. The most platform independent I make this, the better off I am for any future ports of the game. The reason I was hoping to avoid C++ is because I haven't touched it since High School. Since then, and up until a year and a half ago, I lived in a totally managed world. I went from VB to C# and Java. It was hard enough transitioning into managing memory on iOS (reference counting, releasing, etc). Learning how to manage memory in C++ seems daunting, though I know it's not. It just seems it :)
Once again, thank you very much for your help! =)