Archive for the ‘Torque’ Category

I didn’t finish. I just didn’t have my weekend clear.  You really need a clear weekend to finish Ludum Dare. The tech change in the middle didn’t help.

My main take away: Unity slowed me down. I’m too much of a programmer. When a game engine gets in the way, I can see all the different ways I would code myself out of the problem, but I can’t see any solutions in the engine’s context. Code is a powerful too, and I’m good at using it. Game engine’s are alien worlds with bizarre rules and un-explainable behavior.

So, I’m going to stop using game engines (or frameworks etc.) I’ll use non-game libraries and leave all the game programming to myself. Specifically, something like SDL, SFML or even XNA are good for me, but not stuff like Torque 2D or Unity. I think XNA is “library” enough not to be considered a game engine. It’s more like a toolbox. Oh, I think the caveat here is I want to make 2D games, not 3D.

I think there is a bigger principal at work here: KISS = Keep It Simple Stupid Game Engine’s are complicated systems built by lots of programmers.  They have multitudes of  audiences with different needs.  This all makes them hard to understand with lots of bells and whistles.  In order to accommodate all these different requirements, some feature are overly complex with lots of assumptions.  Those assumptions require rigidness to keep you out of the weeds that aren’t handle so well because of those assumptions.  So at the end of a Ludum Dare weekend, you look back and see all the time lost figuring the game engine’s nuances and gotrchas.  Then you pine for a chance to go back in time and just pounded out the code you needed.


Read Full Post »

Random Post

The Peekskill Meteor of 1992 – – This would make a very exciting, and mysterious way to start a game.  It implies a lot of interesting questions, like What is that?  What does it mean?  Is it safe?  What will change?

Torque 3D 1.1 Released –

Garry of Garry’s Mod expirments with causal iPhone game, nice break down of revenue and graphs comparing paid and ad business models. –

Do not laugh at this:

Read Full Post »

Surprise in my stocking from Garage Games

I’m sure you heard that Microsoft released XNA Game Studio Express yesterday. What you might not have heard was Garage Games also released an open beta for Torque X. The big surprise is if you own a license to Torque Game Builder COMMERCIAL, Torque Game Builder Pro – INDIE or Torque Game Builder Pro – COMMERCIAL you now own Torque X! If you aren’t one of those lucky people you can still download a 30 day trial version to check it out.

Here’s where I point out that Garage Games has gotten a little too punchy with the different flavors of its products. It is confusing enough that there are now four different engines. But now there are different VERSIONS of the engines!?! Do you want Torque Game Engine 1.4 or 1.5??? Then you add the layer of licenses, are you a Professional Indie or just a Professional Commercial the one that does not have the word Indie in it? AAAAAAaaaaaaaaaaaaaaaaaaaaaaa!

So maybe you hadn’t heard of Torque X before. It is basically a mash-up of XNA and Torque Game Builder. Imagine using a game engine that let’s you program in C# and deploy your games to the PC and Xbox 360! Crazy cool! It’s the game engine you thought you got with XNA!

Here’s a handy bullet list of features:

New starter kit Tank Buster
The “Pro” version includes source code. That should be interesting.
A Shader 2.0 based material system by lighting Guru John Kabus
All the tools from Torque Game Builder: Tile Builder, Particle Builder, Level Builder, GUI Builder and Packaging Utility
NO TorqueScript WOOOO HOOOO!!!!!!
Tips & Hints:

Oh and just in case you don’t realize this all works with the XNA Game Studio Express, Torque X isn’t a stand alone product.
Currently isn’t working with 64-bit Windows
TorqueScript Gui files cannot be loaded in TorqueX
Can’t commercially sell on the Xbox 360, yet.
XNA Creator’s Club membership is required to run your Torque X games on an Xbox 360

Read Full Post »

T2D release Alpha 4!

Garage Games has release Alpha 4 of T2D 1.1 and it is a more complete release than the previous alphas.

New (and popular) directory structure
Level Builder
Updated documentation and tutorials
Turn Based Networking!!! (Its there, look around!)
No public Link currently. (Link for licensees)

Read Full Post »

I messed about a little today with Torque’s networking code. I was looking to see if they used bit packing. I was also curious to see how difficult it would be to create a plug-in system that allowed you to use different compression techniques. It definitely has an interesting system that tries to only move the data that has changed (as opposed to the whole object every time something in it changes.) I haven’t tracked down the part that actually packs the variables, because it wasn’t part of the variable classes like I expected. They are probably either doing it in the object (i.e. the author customizes the packing for each object) or at the stream level. I’ll definitely need to create some sort of test bed before I attempt to muck around.

Read Full Post »

— Variable name prefixes:
— m – member variable
— s – static member
— g – global variable
— BitRock is the/an installer GarageGames uses and comes highly recommended
— Manits comes recommended over bugzilla
— Forums make a good communication tool because it has history and persistence
— Make a Vision Statement for your games that is 2 or 3 pages because no one is going to read a 100 page Design Document. You also need flexibility to create a game that is fun to play, not one that meets the design document.
— Face to face communication is critical, put a mechanism in that gets your team together
— Dynamic Risk Assessment helps you determine what to focus your time and energy on. You should deal with the risky parts soon, because they are the things that could kill the project and you want to address those problems as fast/soon as possible
— Any process or method you use to manage your projects has to be flexible
— Commercial game makers have to work ungodly hours because they are trying to shoehorn in the stuff the game needs to be fun into the schedule. The schedule was created to get the feature list handed down from marketing and management implemented.
— ThinkTanks design doc was only 8 pages in the beginning
— It only got bigger to meet the needs of the team
— It stopped being updated once the game itself was the best reference
— had a Vision for Game Play
— had a Vision of the Target Audience
— I was so focused on what Joe Marushak was saying… that… uh… okay I was a wus and didn’t ask him what he meant by the term “Shell flow.” I think it is a way of referring an event driven program’s control flow?
— Consider a schedule using an “effort unit” or “work unit” and then adjust a unit’s time value as actual tasks time of completion are discovered.
— It takes a longtime to build a good working relationship with a contractor
— Think what you target audience wants and then shoot lower, you are going to over estimate things
— 2% of users need support
— if you spend more than 30 minutes fixing a users problem you are losing money
— Good contractors are hard to find so don’t drive them away trying to low ball them
— What does a freelance artist need from you?
— Scope of work
— Defined beginning and end
— Chunk it up, defined list of tasks
— Include at least one revision or adjustment step/round
— Cost $35-80 a hour
— Around $3000 for a model
— Around $800 for a texture
— Concept art is $100-500 a drawing
— You need Social Security Numbers or Tax Identification numbers from your contractors for proper records
— Consulting/contracting isn’t a starting point for individuals trying to break into the industry
— study the engine’s parts, play with change its behavior
— turn out a few small game you can make fast, because the hardest part about making games is finishing
— create resources and/or fix bugs for the community, if you do good quality work someone will probably notice and approach you with work
— Connection Sequence Overview a step by step break down of what happens between the server and the client when networking
— clientCmdMissionStart() is where you would add code specific to your project
— There is a SimGroup called MissionCleanup and by adding objects to the group when you are done with them. It is a way to guarantee they get deleted at the end of a mission
— TorqueScript doesn’t have true array, the array looking syntax resolves to basic string manipulation
— T2D has Continuous Time Collision which means that collisions are swept through time, meaning it checks to ensure collisions a properly created when the speed of the objects makes it possible for the collision to occur between frames.

Read Full Post »

– Use Doxygen for your own code because one day you might have to hire someone to work with your stuff, or it might be months before you go back to that area of the code
– ShowTool Pro saves a lot of time debugging art asset problems and is worth its weight in gold, and it is written in Torque!
– DTS can have concave shapes
– DIF no concave shapes, this allows BPS trees which perform much faster, but cant fully animate
– LOD is based on pixel height not distance from camera
– Jill pack is a great learning tool
– Atlas is faster than TGE terrain engine
– All of TGE is in TSG, you arent losing any functionality and is probably the way to go for a new project these days
– You must use Mono sounds not Stereo when working with 3D emiters
– DNA replication for grass and tress eliminates server bandwidth problems, this way you can provide the effects without having to simulate every blade of grass and twig in the tree.
– Portals can help a lot with scene frame rate problems on interiors
– 4 is the average number of LOD
– TCL is a scripting language, stands for Tool Command Language
– Two useful console commands: Tree(), [object].Dump()
– The car metaphor: A game engine is like a car, it has all the parts and systems needed to start up, idle, turn, heat, cool etc. But needs a driver (the script) in order to truly be useful moving people around. The script is like the driver pressing the gas pedal and turning the steering wheel.
– SimObject provides smart referencing which is mucho help dealing with pointers, especially protection from stale pointers
– A SimObject maybe a member of only ONE SimGroup
– When a SimGroup is deleted so are all its members
– SimSet has an onDeleteNotify()
– There is a SimSetIterator
– A client is sent a Datablock ONCE when the mission starts this means that if you change a value in a Datablock after the mission has begun the client will never know about it
– Datablocks are like the Ten Commandments, once they got handed down that was that, no changes would propagate to all the copies
– Network scoping is more like the smelling than seeing because something can be in scope even when it is impossible to see
– Hysteresis is a hard word to explain
– There is voice code in Torque, but almost always it is better to use a third party tool like Team Speak
– A Ghost(ed) object is simply a model on the client of an object that the server has authority (ie control) over. The client has to sometimes predict what has happened since the last time it heard from the server, but once the client hears from the server again those predict values are throw out (ie changes to a Ghosted object do not affect the real object.)
– A tick is sent every 32 milliseconds
– 1000 milliseconds = 1 second
– Playing with un/pack can be easy to mess up because one-bit mistakes can bring the whole house down

Read Full Post »

Older Posts »