[gameprogrammer] Wild Tangent Review
- From: Kevin Jenkins <gameprogrammer@xxxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Sun, 31 Jul 2005 16:46:37 -0700
The Wild Tangent game engine at http://www.wildtangent.com/ , is an ATL
based game engine that exposes various interfaces to you using
Javascript, Java, Visual Basic, C++, and others. It is a full-featured
supporting physics, sound, input device access, and of course 3D
graphics. Work on it was abandoned several years ago but the developer
still provides forum support and licensing. It's a very high level
engine that comes with a large set of tools which will enable you make
progress extremely quickly.
Wild Tangent was originally designed to run games in a web-page, using a
browser plugin. While it will do this if you program in Java or
Javascript, it will not do this in other languages. If you wish to
publish in a webpage using other languages, you will need an ActiveX
launcher to launch your EXE in a webpage. Wild Tangent does this for
their own internally developed games, all of which use C++. They will
not release the launcher, so if you want to follow the same course you
have to publish through Wild Tangent directly. I don't know what kind
of terms they offer if you publish through them.
The Wild Tangent API can be downloaded from the WT developer webpage
directly, with no forms to fill out or other hurdles to jump. You can
see the fees here: http://www.wildtangent.com/downloads/Tech_License.pdf
. I believe these are not due until you actually publish.
My efforts over 4 days to contact their sales department resulted in 3
bounced and unanswered emails and 2 emails that were answered, one of
which by a form letter that did not really address the question. I was
not able to establish meaningful contact regarding licensing by the time
of this writing.
There is one C++ sample. There are 13 java/javascript samples. The
documentation is sparse but comprehensive. For any other API it
wouldn't have been enough - however WT is so easy to use you don't need
more than it gives you. I can't speak for the java samples, but the C++
sample does not compile on MSVC7 and took me several hours over two days
to get it working correctly. The main reason for this is that the
library is ATL based, deriving from IDispatch and using the associated
macros. This may not be an issue for an experienced ATL programmer, but
for a game programmer like myself it was the source of 4-5 hours of
frustration over 2 days. I was able to encapsulate out the ATL with a
simple class that derived the callbacks that wild tangent uses:
HRESULT __stdcall OnRender(IWTEvent * eve);
HRESULT __stdcall OnMouse(IWTEvent * eve);
HRESULT __stdcall OnKeyboard(IWTEvent * eve);
HRESULT __stdcall OnException(IWTEvent * eve);
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
Once I got the library working it was amazing how much progress I could
make and how quickly. I was able to add music with literally 3 lines of
code. I didn't feel like I was programming in C++ so much as scripting
high level events, such as setting velocity and orientation. This is a
good thing as far as I'm concerned, since with very little effort I am
able to make substantial additions and changes to the game. The samples
are impressive and take very little code I was able to program a 3D
level loader with a flying camera in only 2 hours, most of which was
spent learning the interface. There were a few rough spots, but not
substantial enough to block my progress.
The library is very high level, taking care of all the 'busywork' and
leaving you to deal with high level events. Sort of like scripting. By
the same token, when you need the fine degree of control it can be
painful. For example, their vector class does not support mathematical
operations - it is only a container for 3 floats. There is no matrix
class. You will have to write your own, and have your own vector class
interpret their COM pointer that serves as their vector class. It's a
worthwhile trade off in my opinion. The times when I had to spend extra
time to get around not having low level access was far exceeded by the
amount of time I saved by using the high level code.
Since I'm writing an FPS, the level editing tool was of particular
interest to me. In line with the high level approach of the game, if
you want to do indoor levels you must use their level editing tool and
the conventions it comes with, such as scale and coordinate axis. It
supports Animated actors, particle effects, lighting, portals, linked
objects, and BSP culling among other things. You can access most of
these in-game by referencing the name of the object. Unfortunately,
name mangling is the only way to add properties to an object, such as
"Ladder_Climbable_1" and parsing out "Climbable" For simple cases it's
good enough in terms of feature set.
The level editing tool falls down on its interface. The interface is
buggy, hard to use, and badly designed. It would take the length of
this entire review to list every problem I encountered trying to use it.
My arm is still sore from dragging the mouse back literally 2 feet
across my desk every time I want to back up the camera to see a room.
You can't use your own exporter so I wouldn't recommend using Wild
Tangent if your game will have indoor levels.
While it's not relevant to the review, I am abandoning Wild Tangent
because of the level editor. If I were making a genre of game that did
not require indoor levels I would probably take the game to completion.
I'm going to investigate the Torque Engine next.
Worth mentioning is that there are complaints on the Internet about Wild
Tangent being spyware. This is, according to Wild Tangent, because it
sends back to the distributor information about what game you are
playing and how long you were playing it for. Wild Tangent claims to
use this information only to improve their games and claims to not share
it with third parties. I was able to block what I believe was the
feedback process using Zone Alarm.
Wild Tangent is a powerful engine that provides very high level
functions, letting you work on the game rather than spending time
setting up data structures. I don't know of any other tool that can
achieve rapid development quite so well. With the exception of the
level editor, the extensive set of tools will let you create and import
art assets immediately. If you can tolerate poor support and plan to
make a small, straightforward game then Wild Tangent is worth investigating.
---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html
- Follow-Ups:
- [gameprogrammer] Re: Wild Tangent Review
- From: Infinite Possibilities
- References:
- [gameprogrammer] Re: New to Game Programming ......
- From: Qudrat Kaleem
- [gameprogrammer] Re: New to Game Programming ......
- From: Dominic McDonnell
Other related posts:
- » [gameprogrammer] Wild Tangent Review
- » [gameprogrammer] Re: Wild Tangent Review
--------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html
- [gameprogrammer] Re: Wild Tangent Review
- From: Infinite Possibilities
- [gameprogrammer] Re: New to Game Programming ......
- From: Qudrat Kaleem
- [gameprogrammer] Re: New to Game Programming ......
- From: Dominic McDonnell