TorqueX Newbie Diary #1
by David Everhart · 11/26/2007 (4:51 pm) · 2 comments
Well, my foray into the world of Torque X has begun. I recently went through and paired down my scope to test out the viablity of using Torque X. Arillian (formerly World of Arillian) has around 20 races, 40 skill trees with each skill tree having around 10-15 skills (around 450 skills ), and a playable area roughly 5 times larger than Diablo II. For my feasibility test , I plan on the following:
Phase 1:
- Implement 1 Race (Human) with animations
- Implement 1 Enemy (skeleton) with animations
- Implement 2 Skills (1 active and 1 Passive)
- Implement 2 Areas (1 part of a town and a graveyard)
- Implement and Test Physics for player and enemy
- Implement and Test Basic AI for Enemy
- Implement Canvas State Machine [*Completed*]
- Implement Intro Splash Screen, Main Menu, Main Game GUI
- Implement Level State Machine
- Integrate 1 sound track, and several sounds for actions
- Test Basic combat
Phase 2:
- Implement Basic Inventory System
- Implement 1 NPC merchant and merchant framework
- Implement Basic quest framework
- Impement character selection GUI, character creation GUI, cutscene GUI
Now, I realize that looks ambitious, but given the scope of Arillian, this is a tiny slice to see if it is even viable. I want to make sure that all the above peices work before I progress any further. The goal is to get to the point where I can focus on content implementation. I want to ensure the framework I build makes it easy to do that, and although I could buy an addon or the like, I find its better to learn from the ground up (to some extent, Torque X looks like they already did the legwork on wrapping XNA) so I REALLY understand whats going on and what this baby can do! I have only had TorqueX for about two and a half weeks so far, and it has really impressed me. I went ahead and bought the source, because its easier for me to understand the intent of the Torque Engine components when I can see what it is wrapping in XNA, and how I can utilize it.
I have decided that Arillian will be done as a 2.5D game. I know it is possible now thanks to the help of this community. I am going for the 2d isometric look (for the environment), with 3d art assets (characters,items,effects, etc). I get the utility of using 3d for character runtime itemization while retaining an awesome 2d look and feel. More than likely, I will outsource my 3d modeling aspects as well as my soundtracks, and focus more on the game programming.
Since Torque X doesnt fully support 3d yet (in particular T2dShape3D), I decided to work on the GUI. My first test was to put some text on the screen, with the Exocet font (same font as diablo). I ran into a lot of issues with it, but finally found a XNAExtras pack that allowed me to convert the font I wanted into the format the TorqueX framework requires.
With that out of the way, I built a basic framework, using TorqueCombatPro as my tutorial project to look at. I used StarterGamePro as my basic template, and began adding in peices from torquecombat pro. I dissected each peice I moved over to fully understand how it works, why it works that way, and how I can extend it if need be. Having the source, and being able to trace it through the framework has helped me a lot on what is happening.
At this point, I have a functioning Canvas State Machine, that allows me to switch what is rendered on the GUICanvas by just simply setting the NextCanvasState variable from anywhere in the game. The Canvas state is checked for changes on each tick of an overidden update in my main game program. I have a basic splash screen which renders, then switches to a main menu page (nothing on it atm). I realize I will need roughly around 8-10 GUIs, but the framework to put them and manage the state of the GUICanvas has been implemented.
The next peice I am working on is the Level State Machine, which from skimming over it, looks to be a lot more complex. I will also be flushing out the intro splash screen, main menu GUI and basic main game gui. So much to do, but man is this fun!! Till the next update!
Phase 1:
- Implement 1 Race (Human) with animations
- Implement 1 Enemy (skeleton) with animations
- Implement 2 Skills (1 active and 1 Passive)
- Implement 2 Areas (1 part of a town and a graveyard)
- Implement and Test Physics for player and enemy
- Implement and Test Basic AI for Enemy
- Implement Canvas State Machine [*Completed*]
- Implement Intro Splash Screen, Main Menu, Main Game GUI
- Implement Level State Machine
- Integrate 1 sound track, and several sounds for actions
- Test Basic combat
Phase 2:
- Implement Basic Inventory System
- Implement 1 NPC merchant and merchant framework
- Implement Basic quest framework
- Impement character selection GUI, character creation GUI, cutscene GUI
Now, I realize that looks ambitious, but given the scope of Arillian, this is a tiny slice to see if it is even viable. I want to make sure that all the above peices work before I progress any further. The goal is to get to the point where I can focus on content implementation. I want to ensure the framework I build makes it easy to do that, and although I could buy an addon or the like, I find its better to learn from the ground up (to some extent, Torque X looks like they already did the legwork on wrapping XNA) so I REALLY understand whats going on and what this baby can do! I have only had TorqueX for about two and a half weeks so far, and it has really impressed me. I went ahead and bought the source, because its easier for me to understand the intent of the Torque Engine components when I can see what it is wrapping in XNA, and how I can utilize it.
I have decided that Arillian will be done as a 2.5D game. I know it is possible now thanks to the help of this community. I am going for the 2d isometric look (for the environment), with 3d art assets (characters,items,effects, etc). I get the utility of using 3d for character runtime itemization while retaining an awesome 2d look and feel. More than likely, I will outsource my 3d modeling aspects as well as my soundtracks, and focus more on the game programming.
Since Torque X doesnt fully support 3d yet (in particular T2dShape3D), I decided to work on the GUI. My first test was to put some text on the screen, with the Exocet font (same font as diablo). I ran into a lot of issues with it, but finally found a XNAExtras pack that allowed me to convert the font I wanted into the format the TorqueX framework requires.
With that out of the way, I built a basic framework, using TorqueCombatPro as my tutorial project to look at. I used StarterGamePro as my basic template, and began adding in peices from torquecombat pro. I dissected each peice I moved over to fully understand how it works, why it works that way, and how I can extend it if need be. Having the source, and being able to trace it through the framework has helped me a lot on what is happening.
At this point, I have a functioning Canvas State Machine, that allows me to switch what is rendered on the GUICanvas by just simply setting the NextCanvasState variable from anywhere in the game. The Canvas state is checked for changes on each tick of an overidden update in my main game program. I have a basic splash screen which renders, then switches to a main menu page (nothing on it atm). I realize I will need roughly around 8-10 GUIs, but the framework to put them and manage the state of the GUICanvas has been implemented.
The next peice I am working on is the Level State Machine, which from skimming over it, looks to be a lot more complex. I will also be flushing out the intro splash screen, main menu GUI and basic main game gui. So much to do, but man is this fun!! Till the next update!
About the author
#2
I have made some attempts in the past with Direct X, Managed Direct X, and some XNA. I guess I am at a point in my life where I have the time and resources to make a serious attempt. I look at it as a long term hobby. I am a systems architect in my daytime job, so I deal with large systems on a daily basis. So far this seems pretty smooth and easy to get going and the best part of it all, is I know the user requirements intimately. :) While I can code in my sleep , I understand there are parts of a system I wont be proficient in, and it is easier (usually) to have those parts done by experts.
TorqueX has done a lot of the hard stuff already, and once I get to the point of really understanding how everything interacts and all the peices, the programming will become the easy part. The hard part for me will be trying to match whats in my head visually to the actual game itself.
I guess I have been obsessed with Arillian for the last 10 years. The Diablo series has given me inspiration. As corny as it sounds, I actually listen to Diablo II's soundtrack while I work on the Arillian :P
11/26/2007 (7:56 pm)
Thanks Kevin! I have made some attempts in the past with Direct X, Managed Direct X, and some XNA. I guess I am at a point in my life where I have the time and resources to make a serious attempt. I look at it as a long term hobby. I am a systems architect in my daytime job, so I deal with large systems on a daily basis. So far this seems pretty smooth and easy to get going and the best part of it all, is I know the user requirements intimately. :) While I can code in my sleep , I understand there are parts of a system I wont be proficient in, and it is easier (usually) to have those parts done by experts.
TorqueX has done a lot of the hard stuff already, and once I get to the point of really understanding how everything interacts and all the peices, the programming will become the easy part. The hard part for me will be trying to match whats in my head visually to the actual game itself.
I guess I have been obsessed with Arillian for the last 10 years. The Diablo series has given me inspiration. As corny as it sounds, I actually listen to Diablo II's soundtrack while I work on the Arillian :P

Torque Owner Kevin James
Quite honestly, I've been waiting for a good RPG to developed with TGB for a long time. A top down RPG is actually what I want to develop next, but the sheer complexity and unimaginable longevity of a simple 2d space shooter that I'm working on now deters me from such an idea. Of course, my scripting skills are somewhat lacking, so that may be slowing me down somewhat. I can't wait to see your progress on this project!