C4 Engine

9313a95f c1f1 4300 a90a 04e0f11d1f58

Website:
http://www.terathon.com/

Developer:
Terathon Software LLC

Launched:
May 05, 2005

Status:
Active

Supported Platforms:
Windows, Linux, Mac OS X, PS3, Other

Languages Written In:
C/C++

Languages Supported:
C/C++

Graphics APIs:
OpenGL

Rating:
  (129 reviews)

Editor:
00000000000000000000000000000000 elengyel

The C4 Engine is a comprehensive suite of robustly implemented game programming tools for the Windows, Mac OS X, Linux, PS4, and PS3 platforms.

Supported Features

General

  • Object-oriented design
  • Multithreaded job manager
  • Resource manager
  • Plug-in architecture
  • Containers library (arrays, lists, maps, trees, graphs, etc.)
  • Math library (vectors, matrices, quaternions, etc.)

Lighting

  • Point lights, spot lights, directional lights
  • Inter-zone lighting analysis
  • Fully dynamic lighting
  • Radiosity-based lighting volumes
  • SSAO

Shadows

  • Stencil shadows
  • Cascaded shadow mapping with smooth transitions
  • Projected light source shadows
  • All types of shadows can be combined

Texturing

  • Multitexturing
  • Bump mapping
  • Parallax mapping
  • Horizon mapping
  • Diffuse, specular, normal, gloss, emission, occlusion maps
  • Texture painting in editor

Shaders

  • Large variety of standard shaders can be created with material attributes
  • Complex custom shaders can be created with graphical shader editor
  • Comprehensive bump/normal mapping capabilities
  • Parallax bump texture mapping
  • Horizon bump shadow mapping
  • Bumpy reflection and refraction
  • Cook-Torrance microfacet shading
  • Cube environment reflections
  • Realistic water shading

Meshes

  • Dynamic level-of-detail
  • Skinning
  • CSG operations
  • Import from OpenGEX
  • Import from COLLADA

Scene Management

  • Portals
  • Visibility graph
  • Occlusion Culling
  • Level of detail
  • Fully lit impostors for massive forests
  • Mirrors and remote portals
  • Object instancing
  • External scene referencing
  • Game level save/load system

Animation

  • Skeletal animation
  • Hierarchical animation blending system
  • Forward kinematics
  • Inverse kinematics

Terrain

  • Voxel terrain
  • Transvoxel algorithm for dynamic seamless level-of-detail
  • Cliffs, overhangs, caves, arches

Physics

  • Rigid body simulation
  • Real-time rope and cloth simulation
  • Real-time large-scale fluid surface simulation
  • Continuous collision detection
  • Contact forces and friction
  • Precise buoyancy forces
  • Customizable force fields
  • Joints (spherical, universal, discal, revolute, cylindrical, and prismatic)
  • Full networking support

Networking

  • Client-Server
  • Fast, reliable network implementation using UDP/IP
  • Solid fault tolerance and hacker resistance
  • Advanced security measures, including packet encryption
  • Automatic message distribution to entity controllers
  • Cross-platform internet voice chat

Sound

  • 2D sound
  • 3D sound
  • Streaming sounds
  • Doppler shift and other frequency effects
  • Reverberation
  • Atmospheric effects
  • Directional sounds with cone attenuation
  • Obstruction attenuation applied to direct and reflected paths
  • Audio capture for voice chat

Tools & Editors

  • Integrated world editor
  • Graphical shader editor
  • Graphical script editor
  • Interface panel editor
  • Animation cue editor

UI

  • Built-in UI system includes windows, buttons, menus, scroll bars, icons, list boxes, sliders, etc.
  • Unicode text rendering and user input
  • Fully interactive in-game interface panels
  • Custom scripts attached to widgets
  • Panels have an extensible animation system with many built-in techniques

Scripting

  • Graphical script editor
  • Scripts are edited graphically for easy artist/designer access
  • Games can easily define custom script components, and these automatically appear in the editor
  • Controllers can advertise custom function calls that can be accessed from scripts
  • Scripts support variables, looping, and conditional execution, all shown in a concise graphical manner

Input

  • Generic treatment of keyboards and mice
  • Broad support for USB devices (joysticks, gamepads, steering wheels, etc.)
  • Direct support for Xbox controllers under Windows
  • Events reported to game through an action binding system

Special Effects

  • Screen-space ambient occlusion (SSAO)
  • Full-scene cinematic motion blur
  • Distortion effects such as heat haze and shockwaves
  • High-quality and high-performance procedural fire effects
  • Volumetric fog with multiple density functions
  • Interactive in-game interface panels
  • Fully extensible particle systems
  • Voxel-based blob (metaball) particle systems
  • Surface markings / decals on arbitrary geometry
  • Emission glow and specular bloom effects
  • True volumetric light shafts

Licensing

License Name Price in $US Source Code Included?
Proprietary $250.00 Yes
Subscription Edition, source included, updates for one year
Proprietary $750.00 Yes
Standard Edition, source included, updates forever
Proprietary $1,500.00 Yes
Professional Edition, source included, updates forever

Companies


Write a Review

Showing 126-129 of 129

1 of 4 people found the following review helpful

The good and the bad

  by 00000000000000000000000000000000 HJPuhlmann Aug 29, 2006 at 23:30

features:

- fantastic rendering features
- very clean C++ Code
- easy to use with the tools (world editor, material editor, texture importer, mesh importer)
- good support
- very nice price
- the documentation is growing
- active forums

The bad:

You and your customer need a highend graphic card. Intel graphic cards will not supported. That decimate the possible market, today.

Was this review helpful to you? Yes No
0 of 1 people found the following review helpful

Good But overrated

  by 00000000000000000000000000000000 Eggman Apr 27, 2014 at 11:17

I used the C4 engine for about a year with mixed success. Let me state the obvious first: The C4 engine is fast and stable. In all my time with it I had only very few problems and nothing that I would qualify as a repeatable bug. Although I am sure there are bugs as in every software, I haven't had any problems with it so far and from what I can remember from the user forum, neither had others.
The render speed is fast and the optical effects are decent. I don't use many effects so I cant really say how they compare with the high end engines, but my guess would be that they are at least at par with all the other 1000$ one man engines out there.

The C4 engine is a decent and robust render engine. And this is where the first problem comes into the picture. It is exactly that: A render engine. Yet it was wrapped and packaged with a number of tools and is sold as a complete game engine meaning that all the requirements a casual game developer has are met. However most of those tools are not up to the job. Let me go into details.

The GUI part.
It is a decent system that contains most of the control elements you would need (except a tree control) but it is very limited when it comes to exchanging the skin. You can change colors and you can change the shape of buttons etc, but there is no way to have different bitmaps to render different button states. I used to work with Crazy Eddies GUI under Ogre as most people have and that software was way more flexible.

The Tool Chain
The tool chain is very cumbersome, multiple tools which have to be brought up from the engine's main screen and which are not very intuitive. There is practically no documentation on the tools but some Wiki pages where the menus are listed with a few words which basically repeat the menu names in different wording.
Assume you have a number of animations you want to import. Now you have to export them all from 3DS as Collada files, then open the World Editor (see below), import the scene, save as a model resource (including retyping the name), close the world Editor, open the Model Editor, load the model, load the animation from the same model, then save the animation, the close the Model Editor. And then repeat that whole sequence for all of your 50 animations.

The World Editor.
The engine comes with it's own "world editor" but frankly the thing is amateurish at best. It is basically impossible to create meshes in it since it only provides simple primitives and no real way to combine them to new objects. But then it's not advertised as a modelling tool, so I won't hold that against it. Yet when it comes to "editing a world" it is equally cumbersome. You have 4 view ports and the navigation in them is a pain. You constantly switch navigation modes through icons in the toolbar and yet it is difficult to maneuver.
There is a view that provides some form of tree representation of the scene graph but this quickly degenerates in a linear list of nodes a mile long and it is basically impossible to find a specific node. A user supplied add on is supposed to help there, but I have never installed it.
The editor is mandatory however because the engine can only load its own data format which is created by the editor. It is possible to assemble your own meshes programmatically but you would need to create your own tools then to import them somehow from Blender or 3DS, meaning you have to write your own tools before you can make a game.
Let me state it very plainly: In my eyes it is impossible to edit a useable level with this tool. It would take a tremendous amount of time and a great deal of patience. But the engine demands that you do. If you want to bypass the editor you WILL have to write your own tools to import things from your modelling tool, assemble worlds inside the C4 engine, create skinned and rigged characters and so on. It is a nightmare.
There is a reason that no test version of this engine is offered before the purchase. The developer knows that if people would test it before they buy, they wouldn't buy it.

The Particle System.
This is very bad. There are a number of "particle system classes" but there is virtually no documentation. I spend a long time trying to get these to work and I got nothing going on the screen other than some half transparent smudge. It isn't even documented how the engine derives the transparency information form the texture and if textures can be colorized or not.

The Animation System.
Useful basic functionality. It is possible to blend two animations together. It is difficult or impossible I understand to mix partial animations for instance a top body animation A and lower body animation B at least from what I read in the forum.

Documentation
This is a very weak point. In my estimate, 50% of the exported functions are simply not mentioned in the online documentation. You can see them in the source code, but there is no explanation as to what they do. The functionality which is documented is so in a very spartan way, oftentimes just repeating the function name and the parameters without an explanation what exactly it does, why one wants to use it and how it plays with other parts of the system.
The source code itself does not contain any comments, other than the existing function headers which are combined to a web searchable documentation system. That means that the engine source is not very helpful to answer any questions either.
When you read the other reviews carefully, you will find that everybody is praising the developers presence in the user forum and his willingness to help. This is true. However it is also necessary for anybody to do anything with this engine. However, when you constantly have to ask "how do I do this" with "this" being some trivial problem, it makes you think. I don't expect documentation of the quality of the QT class library, but in the current state it is not very useful.
This is the greatest problem in my eyes. You are absolutely depended on the developer to answer question in the forum.

Usability
It is true, there are tutorials and there is even a book out there written by users that explains some aspects, And to be quite frank: You NEED the book. That's why it's included as ebook when you buy the professional version of the engine (not the basic version). However, the whole engine is based on one concept: Start the engine, bring up tools from the engine's Start Menu, edit game assets, particularly your levels, save and play. You are expected to export the classes you write for your own game to the editor to be able to place your own objects in the world. This concept requires a great deal of program overhead, meaning you have to add a lot of extra code for this purpose which is otherwise useless. And it complicates things needlessly. Game objects are "connected" in the world editor through various means and by various I mean complicated.
The C4 engine provides an EXE and your application is loaded as a DLL. Anything that does not fit this template is impossible. This disqualifies the use of some other 3rd party libraries if you cant squeeze them into this scheme.
Also, C4 overloads the new and delete operators. This makes it impossible to use other libraries that do the same or tools like VisualLeakDetector.
Let me make this very clear: You can not use ANY third party library that is not under the control of the C4 engine. And that includes the STL in part! While you can compile the engine in such a way that you can use the STL (you have to ask in the forum how to do this...) you can not use for instance STL algorithms because they will collide with the C4 memory system. I spend half a day trying to figure out why the std::vector::insert( pos, begin, end) function would crash and then realized it's because it frees memory that was allocated in my code by the C4 engine, but now uses the standard delete operator that was not overloaded in the STL binaries.
Seriously, when you think yourself so important that you can tell your customers they don't need anything but your software, you're either delusional or Steve Jobs or both.

All in all I think it's overpriced for what you get. If it was sold as a render only engine like Ogre with better documentation, I'd say it's worth about an 70-80% rating, but alas it's not.

Now you might ask: What about all the enthusiastic reviews here? When you look closer at each of them you will notice that about 80% of them were written before 2010 or so. Back then the C4 engine was undoubtedly in the top field of engines in the price range under 1000$. However when you look in the user forum, you will quickly notice that the forum is kept alive by the same 10-15 people. That's about the number of hardcore users. The vast majority of those enthusiastic reviewers here are not there anymore. I dont know why they moved on, I am only stating facts here. Go to the public part of the C4 user forum and count the number of people who posted regularly in the last half year or so and you will find the same names over and over again. What you can see is that people appear, post for about 6 months or a year and then move on.

There are not many people who stick around this thing after their first project I believe. You see a great of fluctuation in the forums. I feel sorry for the people who fell for the outdated enthusiastic reviews here and think they get a super duper plug n play solution. The C4 engine is anything but that. If you have to buy it, at least do yourself a favor and DO NOT GET THE PROFESSIONAL VERSION! That version has no advantages other than the ebook (you can buy the book at amazon printed or get another book that was written recently by a user and is available online) and two "support incidents" per year that you can submit to the developer. What is that you will ask? Well it is basically if your questions you're asking in the forum are too much for him to answer, then he wants you to pay 100$ per "support incident". Two of them per year come with the "professional" version. Other than that you have to pay for the answer. Apparently the man knows how useless his documentation is.

Luckily the prices for the top engines like Unity, Unreal and Cryengine are going down, so there's an alternative everybody should check out.

Was this review helpful to you? Yes No
0 of 1 people found the following review helpful

An engine for programmer

  by 00000000000000000000000000000000 jos_t_tarigan Mar 11, 2010 at 16:36

Features:
I havent gone through the program but its pretty impressive. i like the idea you can build your own controller(feature) and put it on the editor.

Ease of use:
though it is a good engine, i must say that this is not a proper engine for an artist. but for programmer it is very good. its easy to understand the basic concept of the whole engine and the code structure is very neat. if you've gone through the tutorial you'll notice how easy it is.

Stability and performance:
I've seen the demo and its good how they put lots of enemy/object without any frame drop. I also notice its stable in a very large scene. however, i have a problem once in a scene with lots of material. i dont know if thats just me because i cant find someone with the same problem.

Support:
Ask nicely and you'll have your problem solved within hours :)

Overall:
its a very good engine, good for indie dev. worth price/performance, have a bright future. yes there is problem here and there but considering the active community, it has a very bright future.

Was this review helpful to you? Yes No
0 of 2 people found the following review helpful

Looks Pretty Good!

  by 00000000000000000000000000000000 JTilo Aug 29, 2006 at 00:22

The engine looks to be well rounded. I haven't seen the source, but features in the demo look good, and the forum/creator support looks excellent. The only problem I have with this engine is the editor (demo I tried). I'd get aggravated trying to use it, but I'd say it's one to watch.

Was this review helpful to you? Yes No

Suggest Edits

Last edited Aug 03, 2014 at 08:25