Game Development 101: Tools
by Ron Kapaun · 03/24/2014 (1:08 pm) · 25 comments
GAME DEVELOPMENT 101: Blog 2, Tools:
Hey all, I wanted to take this time to expand on a few ideas that I have brought up recently in blogs and forum posts recently. The ideas all concern TOOLS and what they mean to us game developers. So, without further ado, lets start.
MY TOOLS:
I wanted to start out with some basic concepts and ideas concerning the tools I chose to use. Let's face it, there is no 'make my game button' (this is UNIVERSAL for all game engines). So, that means I have to use tools to bring my ideas from my head into a format that allows other people to experience what I am thinking.
Here is a short list of the tools I use.
1. Torque 3D (The game engine)
a. The game engine combines all of the game play elements and allows me to 'present' my ideas within a 'common' format.
2. 3D Studio Max
a. I use this program (TOOL) as my primary modeling software. I build all the objects, characters, weapons and enemies in this tool. These are created and exported to Torque 3D.
3. Blender
a. Blender is a program VERY much like 3D Studio Max. Again, I use this for characters, objects, etc. There are somethings that Blender is better at than 3D Max (IMO). In those cases I use this FREE program rather than MAX (which is NOT cheap by any means.)
4. The GIMP
a. The GIMP is an image processing program. I use this in order to make textures and in some cases, visual effects. The commercial equivalent would probably be Photoshop. (Again, not free and does not cover all aspects of texture creation.)
5. SCULPTRIS
a. I use this for a number of things.
1. I use this program (TOOL) to refine my art assets (add detail etc.)
2. I often use this (TOOL) to 'paint' on my geometry from Blender or MAX
6. TextPad/Torque Dev:
a. I use these programs (TOOLS) to work on scripts. Scripts DRIVE my game play (usually) The commercial equivalent would be Torsion.
7. Visual Studio C++
a. THE HEART and SOUL of my (TOOLS). With Visual Studio, I can manipulate the CORE engine functions for my game. If I need to remove a tool (and free up resources) I do it here. If I need to create a new 'core' class of object, I do it here. This is basically, bread and butter when it comes to game dev (in my pipeline).
8. VARIOUS TOOLS:
a. Meshlab (mesh complexity reduction)
b. Crazy Bump (Normal mapping, Parallax mapping, Specular mapping etc)
c. Bryce 7 (generic modeling (terrain etc)
d. WorldBuilder (terrains and terrain texture mapping)
e. tree[d] (branches for my environment models)
f. SketchUp (quick 'temp' models and space fillers)
g. GoldWave (sound FX and Music editing)
h. AcidPro (music production... along with my midi keyboards and other music software)
i. L3TD (yet another terrain tool)
j. Terragen (skyboxes and to a limited extent, terrains)
k. xNormal (Normal mapping and other maps)
l. Poser 4/5 (reference images and BVH animations)
j. FRAPS (Video/Screenshot capture)
k. Vegas Movie Studio (Video/cutscene editing)
l. RenderMonkey: (Shader production/along side Visual Studio)
m. Nvidia FX Composer (I run Nvidia so it's nice to make sure shaders work with those cards)
n. FileZilla (I have to be able to upload to the web)
SO WTF DOES THIS ALL MEAN TO ME?
My point with this BLOG is simple:
It takes a HUGE amount of programs and knowledge to produce digital content. (Heck, I think I count around 24 tools that I have to have MORE than a passing relationship with!) Most of you know, I have NOT produced a full game but, I have produced a number of fairly popular demo levels etc. These have been well received by this and many other communities.
It takes me a HUGE amount of time to create even a single level. My Conifer Forest Pack demo level took nearly 3 months from concept/idea to published work. Keep in mind this was just ART that you could walk around in. There is no 'game' associated with these demos. There is no AI or other 'game play' aspects. I still took nearly 3 months to complete it. Even something simple: say my Office Furniture Starter Pack, for example. That took nearly 2 months from concept to a simple video where I blew stuff up and the objects behaved 'sort of' as expected.
OK, WE GET THAT. HOW DOES THAT RELATE TO THIS BLOG?
Ahhh, now we get to the guts of all of this. You can tell by my list, I don't just use T3D. T3D is my choice for presentation. I can't really model in T3D, I can't Texture those models, much less animate or 'destroy' an object. I can't really code or script using T3D. I develop levels and games using a VAST number of programs and systems and FORCE them to work within T3D. T3D provides me with a set of 'rules' to make things happen. Sometimes, often times, forcing all the assets and playing by the rules to work in T3D can be terrible. Sometimes, again OFTEN times, it can be rewarding and quite fun. I often feel 'super SMART' when I figure out a problem or come up with (what I think) a unique solution to a problem. Sometimes, I feel 'STUPID as a BRICK' for NOT finding a solution sooner or I find something that should have been 'obvious'.
Feeling 'stupid' and feeling 'hyper-smart'.... THAT is game development! You need to feel both. You need to get use to working in a TON of different TOOLS. NOT just a game engine but, an entire suite of programs and systems. There is NO way any one 'engine' will allow you to do ALL of things we need to do in order to make a game. It's just not possible. However, because I am a developer, I AM able to identify what needs to happen and build a system (using a number of NON-related programs) to make whatever I need to happen within my choice of presentation TOOL (in this case T3D). THIS IS GAME DEVELOPMENT at it's CORE.
Regardless of your choice of 'game engine' or set of tools, your single goal is to make happen what you need to make happen in order to present your thoughts and ideas to the masses.
WOW I POSTED AND FORGOT MY BEST TOOL!
Yep, I forgot this: My Own BRAIN
This is really easy to forget, YOUR imagination, your research, your ability to identify and solve problems is probably your BEST tool concerning game development. EVERY TOOL I have listed has one thing in common;
I LEARNED THEM BECAUSE I HAD A PROBLEM TO SOLVE. Sometimes, they may not be the right answer, often they are the best solution. Either way, my thoughts and ideas DRIVE my game and my development path. In the end, I have to make things happen. Often that means thinking, planning, testing and re-testing. Time, effort, research and THOUGHT are my BEST tools. (Can't believe I left that out.... wow)
NEXT BLOG: Artificial Intelligence: How I thought I was clever and found out I was only average;
quick excerpt:
Making something generated by a computer, be it object, character or a simple box appear to be smart when there is nothing 'real' about them can be a HUGE challenge. For example; I wanted what I thought was a simple thing to occur. The idea was simple, bad guy shoots at me, I shoot back, Bad guy is hit, and dives for cover. Pretty basic yes? Well, NOT in my world.
There are a TON of program problems and issues with something like this 'simple behavior' that we take for granted.
Here is a short list;
1. Bad guy needs to know where I am at how to shoot at me.
a. This sounds simple but, it's not.
2. Bad guys needs to know when he has been hit.
a. Not only hit, but hit and how badly.
2. Bad guy then needs to be aware of his environment.
a. Where is the bad guy in relation to cover and me *the player
3. Bad guy needs to actually hide
a. LOL, sounds easy but it's not at ALL.
b. If the Bad guy hides, how do you tell it that it needs to 'duck' or be hit? (what if the only cover is a block that is half the size of the player...)
4. Bad guy needs to know that he still has to fight back
a. We can probably solve this with a simple timer but, would it appear smart?
MORE TO FOLLOW ON MY NEXT GAME DEV BLOG.....
Hope you enjoyed the little peek into my world!
Thanks for reading and NEVER give up!
Ron
Hey all, I wanted to take this time to expand on a few ideas that I have brought up recently in blogs and forum posts recently. The ideas all concern TOOLS and what they mean to us game developers. So, without further ado, lets start.
MY TOOLS:
I wanted to start out with some basic concepts and ideas concerning the tools I chose to use. Let's face it, there is no 'make my game button' (this is UNIVERSAL for all game engines). So, that means I have to use tools to bring my ideas from my head into a format that allows other people to experience what I am thinking.
Here is a short list of the tools I use.
1. Torque 3D (The game engine)
a. The game engine combines all of the game play elements and allows me to 'present' my ideas within a 'common' format.
2. 3D Studio Max
a. I use this program (TOOL) as my primary modeling software. I build all the objects, characters, weapons and enemies in this tool. These are created and exported to Torque 3D.
3. Blender
a. Blender is a program VERY much like 3D Studio Max. Again, I use this for characters, objects, etc. There are somethings that Blender is better at than 3D Max (IMO). In those cases I use this FREE program rather than MAX (which is NOT cheap by any means.)
4. The GIMP
a. The GIMP is an image processing program. I use this in order to make textures and in some cases, visual effects. The commercial equivalent would probably be Photoshop. (Again, not free and does not cover all aspects of texture creation.)
5. SCULPTRIS
a. I use this for a number of things.
1. I use this program (TOOL) to refine my art assets (add detail etc.)
2. I often use this (TOOL) to 'paint' on my geometry from Blender or MAX
6. TextPad/Torque Dev:
a. I use these programs (TOOLS) to work on scripts. Scripts DRIVE my game play (usually) The commercial equivalent would be Torsion.
7. Visual Studio C++
a. THE HEART and SOUL of my (TOOLS). With Visual Studio, I can manipulate the CORE engine functions for my game. If I need to remove a tool (and free up resources) I do it here. If I need to create a new 'core' class of object, I do it here. This is basically, bread and butter when it comes to game dev (in my pipeline).
8. VARIOUS TOOLS:
a. Meshlab (mesh complexity reduction)
b. Crazy Bump (Normal mapping, Parallax mapping, Specular mapping etc)
c. Bryce 7 (generic modeling (terrain etc)
d. WorldBuilder (terrains and terrain texture mapping)
e. tree[d] (branches for my environment models)
f. SketchUp (quick 'temp' models and space fillers)
g. GoldWave (sound FX and Music editing)
h. AcidPro (music production... along with my midi keyboards and other music software)
i. L3TD (yet another terrain tool)
j. Terragen (skyboxes and to a limited extent, terrains)
k. xNormal (Normal mapping and other maps)
l. Poser 4/5 (reference images and BVH animations)
j. FRAPS (Video/Screenshot capture)
k. Vegas Movie Studio (Video/cutscene editing)
l. RenderMonkey: (Shader production/along side Visual Studio)
m. Nvidia FX Composer (I run Nvidia so it's nice to make sure shaders work with those cards)
n. FileZilla (I have to be able to upload to the web)
SO WTF DOES THIS ALL MEAN TO ME?
My point with this BLOG is simple:
It takes a HUGE amount of programs and knowledge to produce digital content. (Heck, I think I count around 24 tools that I have to have MORE than a passing relationship with!) Most of you know, I have NOT produced a full game but, I have produced a number of fairly popular demo levels etc. These have been well received by this and many other communities.
It takes me a HUGE amount of time to create even a single level. My Conifer Forest Pack demo level took nearly 3 months from concept/idea to published work. Keep in mind this was just ART that you could walk around in. There is no 'game' associated with these demos. There is no AI or other 'game play' aspects. I still took nearly 3 months to complete it. Even something simple: say my Office Furniture Starter Pack, for example. That took nearly 2 months from concept to a simple video where I blew stuff up and the objects behaved 'sort of' as expected.
OK, WE GET THAT. HOW DOES THAT RELATE TO THIS BLOG?
Ahhh, now we get to the guts of all of this. You can tell by my list, I don't just use T3D. T3D is my choice for presentation. I can't really model in T3D, I can't Texture those models, much less animate or 'destroy' an object. I can't really code or script using T3D. I develop levels and games using a VAST number of programs and systems and FORCE them to work within T3D. T3D provides me with a set of 'rules' to make things happen. Sometimes, often times, forcing all the assets and playing by the rules to work in T3D can be terrible. Sometimes, again OFTEN times, it can be rewarding and quite fun. I often feel 'super SMART' when I figure out a problem or come up with (what I think) a unique solution to a problem. Sometimes, I feel 'STUPID as a BRICK' for NOT finding a solution sooner or I find something that should have been 'obvious'.
Feeling 'stupid' and feeling 'hyper-smart'.... THAT is game development! You need to feel both. You need to get use to working in a TON of different TOOLS. NOT just a game engine but, an entire suite of programs and systems. There is NO way any one 'engine' will allow you to do ALL of things we need to do in order to make a game. It's just not possible. However, because I am a developer, I AM able to identify what needs to happen and build a system (using a number of NON-related programs) to make whatever I need to happen within my choice of presentation TOOL (in this case T3D). THIS IS GAME DEVELOPMENT at it's CORE.
Regardless of your choice of 'game engine' or set of tools, your single goal is to make happen what you need to make happen in order to present your thoughts and ideas to the masses.
WOW I POSTED AND FORGOT MY BEST TOOL!
Yep, I forgot this: My Own BRAIN
This is really easy to forget, YOUR imagination, your research, your ability to identify and solve problems is probably your BEST tool concerning game development. EVERY TOOL I have listed has one thing in common;
I LEARNED THEM BECAUSE I HAD A PROBLEM TO SOLVE. Sometimes, they may not be the right answer, often they are the best solution. Either way, my thoughts and ideas DRIVE my game and my development path. In the end, I have to make things happen. Often that means thinking, planning, testing and re-testing. Time, effort, research and THOUGHT are my BEST tools. (Can't believe I left that out.... wow)
NEXT BLOG: Artificial Intelligence: How I thought I was clever and found out I was only average;
quick excerpt:
Making something generated by a computer, be it object, character or a simple box appear to be smart when there is nothing 'real' about them can be a HUGE challenge. For example; I wanted what I thought was a simple thing to occur. The idea was simple, bad guy shoots at me, I shoot back, Bad guy is hit, and dives for cover. Pretty basic yes? Well, NOT in my world.
There are a TON of program problems and issues with something like this 'simple behavior' that we take for granted.
Here is a short list;
1. Bad guy needs to know where I am at how to shoot at me.
a. This sounds simple but, it's not.
2. Bad guys needs to know when he has been hit.
a. Not only hit, but hit and how badly.
2. Bad guy then needs to be aware of his environment.
a. Where is the bad guy in relation to cover and me *the player
3. Bad guy needs to actually hide
a. LOL, sounds easy but it's not at ALL.
b. If the Bad guy hides, how do you tell it that it needs to 'duck' or be hit? (what if the only cover is a block that is half the size of the player...)
4. Bad guy needs to know that he still has to fight back
a. We can probably solve this with a simple timer but, would it appear smart?
MORE TO FOLLOW ON MY NEXT GAME DEV BLOG.....
Hope you enjoyed the little peek into my world!
Thanks for reading and NEVER give up!
Ron
About the author
Guy that has been with Torque Game Engines since... well, since here was a Torque Game Engine. (V12 and beyond).
#22
03/27/2014 (4:25 am)
All those different tools confuse me... I try to stick to less number of tools.
#23
Shaders are small programs that tell the graphics card HOW a particular object, material or scene is presented by the render system. These small programs can apply to individual objects, single materials or in certain cases, the entire scene. (PostFx)
In short there are pretty much 4 standard shader types:
Vertex
Pixel
Geometry
and Tessellation
There are also, fragment shaders but... well I could go on and on, best keep it basic.
Normally these are programmed in 2 different forms. DirectX (Microsoft proprietary system) uses HLSL or High Level Shader Language. Where as OpenGL uses GLSL (OpenGL Shading Language). Both of these languages are very similar in form to developing for a C based programming language but are dependent on the graphics pipeline a program uses.
03/27/2014 (7:45 am)
About Shaders: Shaders are small programs that tell the graphics card HOW a particular object, material or scene is presented by the render system. These small programs can apply to individual objects, single materials or in certain cases, the entire scene. (PostFx)
In short there are pretty much 4 standard shader types:
Vertex
Pixel
Geometry
and Tessellation
There are also, fragment shaders but... well I could go on and on, best keep it basic.
Normally these are programmed in 2 different forms. DirectX (Microsoft proprietary system) uses HLSL or High Level Shader Language. Where as OpenGL uses GLSL (OpenGL Shading Language). Both of these languages are very similar in form to developing for a C based programming language but are dependent on the graphics pipeline a program uses.
#24
And through some more searching I found a thread that I think has some good in formation about where to start learning more about shader creation. Has some books listed I'm interested in picking up some time:
http://stackoverflow.com/questions/6926/beginning-shader-development
http://blog.nankov.com/2008/10/30/best-books-about-game-development/
03/27/2014 (12:06 pm)
http://docs.garagegames.com/torque-3d/official/content/documentation/Engine/Rendering/Overview.htmlAnd through some more searching I found a thread that I think has some good in formation about where to start learning more about shader creation. Has some books listed I'm interested in picking up some time:
http://stackoverflow.com/questions/6926/beginning-shader-development
http://blog.nankov.com/2008/10/30/best-books-about-game-development/
#25
Like I said, very simple but they are mean.
Oh, and did I mention that I've had over 50 on screen fighting? You get a little lag when a grenade lands in the middle of a bunch of units....
03/27/2014 (2:49 pm)
You know, AIPlayer has a callback that fires when its target leaves or enters LOS. My approach (in my AITutorial scripts) was to do a container search periodically with a restricted range, find the nearest target within that range, see if it was inside of a "forward arc" and if so attack. The AI is dumb as a box of rocks, but if the enemy leaves LOS it will move to the place it last saw the target and search again. The system uses a very rudimentary state machine (implemented as a series of functions in a queue) and some communication (using an event manager object) to alert nearby allies when attacked. And they'll seek ammo and health when needed.Like I said, very simple but they are mean.
Oh, and did I mention that I've had over 50 on screen fighting? You get a little lag when a grenade lands in the middle of a bunch of units....

Torque Owner Kevin Mitchell
12 CatBlack Studios
@Sidikian
I thought that a shader was something that covers the screen to do something, its actually something that you do to each material desperately? like the cell shader or night vision?