Terathon Software LLC
May 05, 2005
Windows, Linux, Mac OS X, Playstation, PS3
Languages Written In:
- User Reviews
The C4 Engine is a comprehensive suite of robustly implemented game programming tools for the Windows, Mac OS X, Linux, PS4, and PS3 platforms.
- 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.)
- Point lights, spot lights, directional lights
- Inter-zone lighting analysis
- Fully dynamic lighting
- Ambient lighting volumes
- Stencil shadows
- Cascaded shadow mapping with smooth transitions
- Projected light source shadows
- All types of shadows can be combined
- Bump mapping
- Parallax mapping
- Horizon mapping
- Diffuse, specular, normal, gloss, emission, occlusion maps
- 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
- Dynamic level-of-detail
- CSG operations
- Import from COLLADA
- 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
- Skeletal animation
- Hierarchical animation blending system
- Forward kinematics
- Inverse kinematics
- Voxel terrain
- Transvoxel algorithm for dynamic seamless level-of-detail
- Cliffs, overhangs, caves, arches
- Rigid body simulation
- Real-time 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
- 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
- 2D sound
- 3D sound
- Streaming sounds
- Doppler shift and other frequency effects
- Atmospheric effects
- Directional sounds with cone attenuation
- Obstruction attenuation applied to direct and reflected paths
- Audio capture for voice chat
- Integrated world editor
- Graphical shader editor
- Graphical script editor
- Interface panel editor
- Animation cue editor
- 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
- 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
- Generic treatment of keyboards and mice
- Broad support for USB devices (joysticks, gamepads, steering wheels, etc.)
- Direct support for Xbox 360 controllers under Windows
- Events reported to game through an action binding system
- 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
|License Name||Price in $US||Source Code Included?||Additional information|
|Standard Edition, source included, updates forever|
|Professional Edition, source included, updates forever|
Powerful engine. Cumbersome editor.
I've had a license for C4 for a while now, going back several versions. I've checked it out a few times and really love what the engine can do, how well it performs, its stability and its feature set.
The support is great as Eric himself will typically respond to questions or other posts himself. He's not condescending or aloof, but answers the questions very evenly.
My one big complaint, though, with C4 - and it's keeping me from really digging further into it - is its editor. It has good ideas - the ability to add or remove the particular tools you need (panels) is great, for example.
However, it's not intuitive from a designer's stand-point - at least not to me. As a designer, I won't be doing any programming, beyond maybe some elementary scripting.
My focus is on creating attractive and believable worlds with the toolset - which C4 is more than capable of creating.
In attempting to achieve that, I feel like I'm constantly having my attention drawn away from what I'm doing in order to "fight" with the interface.
In short, the editor is very much designed from a programmer's mindset; that is, what should be intuitive simple functions tend to involve several cumbersome steps.
For example.. setting up terrain textures. C4 uses a "terrain palette" as a way to set textures for each side of a voxel "brush". It allows you to craft your terrain with the proper texture being automatically applied. Pretty cool idea, to be sure.
However, the process - or pipeline - of getting those textures into the engine, into the terrain brush and then on to the terrain is far, *far* more cumbersome than it should be.
How, to me, it could work is:
1. I import a series of textures from an arbitrary location on my HD
2. Set the parameters for each texture via a contextual properties screen (specularity, alpha, blending, bump-map, etc.).
3. Save each as a 'material' to a stored library (basically what a terrain palette is)
4. Select the material to use for each side.
5. Sculpt/Paint away.
That would be straight-forward and very intuitive, at least to me.
Here's the way it works, as I've found:
1. Create a "strip" of textures, each of the same dimensions, to be used in a graphics program, like Photoshop. Save it as a TGA to a specific "import" folder, which is the only location C4 seems to recognize for finding assets.
2. Create a strip of normal maps to correspond to the textures set up in step 1. Save as a TGA to the same import folder.
3. Create a strip of specular maps, same as in steps 1-2.
4. Go into C4, open the editor, import the textures as a "terrain palette". Repeat for each individual TGA, setting the appropriate flags.
5. Let C4 do its conversion to create the texture palette.
6. Open up the material window, then activate the material node editor where you now have to set up and connect the textures to each other in order to use the bump and spec maps that you created in steps 1-3.
This last step, in itself, requires you to learn an entire area of the editor which could take time in itself. Frankly, you shouldn't have to learn how to use a node editor in order to import, configure and use a series of textures.
Again, an interface is supposed to empower the user. It should be "invisible" and make sense. It should work the way you expect it to, for the most part. I don't expect to have to open a node editor in order to *use* textures after all the previous steps I just went through just to get them into the engine in the first place. It's cumbersome.
Looking at other editors, like the one for NeoAxis... or Leadwerks.. Those are editors that are clearly created from a designer's point-of-view. They make sense. I was able to create an entire scene in both of those without having to look at a single piece of documentation. Only when I got to the more involved tasks did I have to look at a wiki, etc. In my opinion, that's how it should be.
Very Very Good Engine
Well, I have had the C4 engine for about three years. I really haven't done anything big with it, but study the code. I can say that if you are a a programmer, you can get your hands deep into this engine.
The forums are great. I have always received a response immediately, when encountering problems.
I wish there were more documentation for the engine besides the one book, for it.
I have also been using Torque for for the same amount of time, and I still haven't quite figured out that engine.
-A customer satisfaction rating that is self evident.
-Utilizes modern gpu's in a very effective way. Not for low end geforce 6 generation.
-A high level shader editor built by someone who seems to understand parallel processing.
-It's a difficult learning curve for the beginner but the tools make up for that.
There is source. There is a thriving community.
My only newbe complaint would be that there are no real SDK docs and the book is out of date.
There are the forums, wikis, & sample code though.
One of the 4 best engines i have ever used
I've been using C4 for almost 2 years and I love it.
My favorite features of the C4 engine:
- Great graphics
- Full source code access
- Excellent support directly from Eric
- Nice world editor
- Lots of documentations (wiki, forum, book)
- Friendly community
Great engine to create next-gen games.
at last, I wrote the review :))
I'm using this engine since it was available for licensing. In that days I switched from Cipher Engine which remains abandoned by its author, except this I had very good times with Cipher.
So, I was in hope that the same good times comes with C4 license, because C4 in these times looks more like we wanted to do with Cipher here.
Let's start with features:
Supported features is the reason why I choose this engine (I planned also switch to better HW that days :)), but I'm using this engine on its lower edge of features what is my ATi9700 capable. I like realtime lighting system adn related FX like bumps and parallax maps. I never had a problems with performance like some people has, performace is still in boundaries of ATi9700 capabilities and depends on scene complexity and amount of eyecandies used in actual rendered view. But I can live with it. Some visual effects can't be rendered on this kind of graphic hardware I have.
Another not really in good shape feature is collision detection and some physics library. Collisions and physics are in stage to be fixed and finished. Exact schedule for milestones are available on C4's wiki pages. Check them out.
Another feature which I'm not really missing these times is Terrain support. Right now, I don't care if this will be done soon or not. But I can imagine good tool support for this. For now there is very cripple tool to add some terrain, but is good only for some kind of demonstrations. But same good (or better work for terrain) can be done (model and texture) in DCC and exported into C4.
Interesting features for me is cloth simulation, from the designer's point of view it is good addition to static level designs.
I never had a stability issues.
I'm not a programmer, I'm game designer and artist. As an artist I can make small tweaks in the engine easily and compile it without problems. If something wrong I can ask (the internet, books, or support from forum).
As an artist or game designer I was nice surprised by an editor implemented into engine as a plugin module + there you can plug some more tools also into game or into editor as well. Can't wait for new updates :).
Way how is the game scripting done is a bit out of my style. Misses some access for "not that good" programmers - like LUA level, or some other scripting system which can be implemented into gameplay settings and then exposed into editor - this field needs a lot more work. Good way how to script gameplay has Reality Engine (acquired by Epic), also I like way of scripting used in Beyond Virtaal engine. If I could be good C++ programmer, scripting gameplay wouldn't be that issue for me. :)
The design of an engine is really good, but going much to details is not that easy for me.
Support from author is something I never seen before - SUPERB, mostly because when I was using Cipher engine - its author meanwhile abandoned his project.
Forum for users is something I can call also SUPERB, there you can find few really professioanal people who can provide good advice or criticisim, also with some additional support for expanding C4's capabilities.
Heading of C4 engine towards future is good and I hope I can find a lot of resources enough to make good game with small team of professionals, and also I hope C4 engine will be the only engine we will use then.
c4 is a very nice engine for a very nice price! for ease of use i only gave 3 stars because it's an engine which has to be used with c++ (you don't have to be a c++ master though to use it). i will change features to 5 stars once some of the upcoming features like the vegetation system, better terrain and physics are released. :)
Great value, great features
From a business perspective C4 is very exciting. It has superior features and is very well engineered. I'm looking for a way to integrate it into my professional game development studio.
This is a steal for the price, and has great support from the author.
I've just manipulate this engine for a few hours, and the word clean and simple come in my mind.
The engine design is very good.
The performance is great.
In the new demo, you can fire light ball, who bounce everywhere, and light bumpmaped wall with a nice effect.
You can see that the author is a master in shadowing technique.
The world editor is already functional to make a game.
It need some feature to manipulate viewport easier, but I'm sur that the new version will enchanced that part.
The material editor is great too.
The only cons is that there isn't enough comment in the source code, and the workflow for importing graphical material isn't the best you can find.
But Eric Lengyel listen to the community, and improvements are coming fast.
Overall a very powerful and professional engine
Overall, C4 is a very powerful and professional engine, capable of producing top quality games. The code is very well organized and easy to understand - allowing a knowledgeable C++ programmer to get something up and running quickly. The engine also comes with a demo game with complete source code, which is incredibly valuable as a reference for how to perform specific tasks and use the engine as it was intended.
Extremely fast and powerful
Very well designed code, easy to follow
Impeccable support from Eric (the creator) and the community
Source code of engine, tools and demo game
Great rendering capabilities
License - no royalties, ever
No way to create custom post-process shaders (without editing engine source)
No built in particle editor (although a member of the community built one)
Great engine !
I've been using C4 since around 10 months and I love it.
My favorite features of the C4 engine:
- Great graphics
- Full source code access
- Excellent support directly from Eric
- Nice world editor
- Lots of documentations (wiki, forum, book)
- Friendly community
If you want to create great game with a great engine, C4 is for you :o)
One of the best indie engines available
You get a lot for your money. It's not only the engine and it's source, you also get all the tools and their sources. E.g. the World Editor, or the Shader Editor, or the Visual Script Editor. So why only four stars? You can't write any post-processing effects on your own, which is a deep hit for a 3D engine in 2009.
Ease of Use 3/5
From the programmers point of view, you'll need a basic knowledge of C++. The source is nice structured and nice and clean written, but you'll still need some time to get into it. And as there are's no scripting language available (I don't count the Visual Scripting as I personally don't like it and it's limited, if you don't extend it to your needs), you'll spent a lot of time doing: stop the game, edit source, compile and run the game again. -1
While there are a lot of tools are available, you'll notice, that they feel clumsy. Importing a bunch of textures is a time-killing task, as you can only import one textures at the same time (There's a community provieded tool available, which helps in this case). Scaling, moving and rotating nodes in the World Editor, which is a common task, is just a nightmare, no uniform scale, the clickable area of the editor gizmos are so small, that you'll miss them a lot, if you don't put all your concentration into the click. And the shader managment isn't great, if you have a bigger project. There's no way to write, e.g. a common shader, e.g. a Weapon Shader, that can simply reuse and edit later, without touching every weapon again. You can export/import materials, but, it's clumsy and time consuming, as you have to open every weapon, change the shader and export it again. -1
The engine and the tools are really stable. And for the few times, that you might spot a bug or a crash in the engine or the tools, Eric fixes them within a short period of time.
The support is great. Eric is really doing a great job and the community is nice and friendly too.
PS: Don't judge C4 only by the demo artwork. It's really crappy and always makes me wanna cry, if I have to take a look at it. C4 is much more powerful.
(The engine is great, but this website/devmaster really needs some work! This is a copy of a post above that didn't work)
I have only been using C4 for around 8 months, testing concepts and seeing what is possible with the engine, however it is clear that C4 is a good engine with lots of potential.
- Source Code is very well written
- Voxel Terrain is awesome
- Good quality rendering
- Physics seemed okay, but should be a lot better once the new version is out (which is soon).
- Bullet, PhysX ready to drop in thanks to community
- Great community
- Eric is very responsive to posts
- Graphical shader editor is very nice
- The editor is okay, but doesn't feel very intuitive compared to other programs I have used. This doesn't bother me too much as you can get used to it, but things like not being able to bind keys and set everything up how you like are a real pain. This should improve with the next version or so as the editor is improved.
- Have had some issues with the dynamic lighting and importing models, but the lighting should be fixed in a future version, and the models is probably because they were quite complex. Unforuntalely there is no feedback from the interface when importing large models (like a loading bar), so it can be a little tedious in this regard.
I haven't played with multiplayer/networking so I won't comment on that yet.
For $200 it's a bargain
Ok, so it's pitched at the next gen of graphics cards - this is mentioned on the site (just so you know which cards are supported). Also, the engine is not yet complete and is still in Beta.
The Engine and Source Code
Very well designed and coded, the C++ is very easy to pick up and run with. Two game framework demos are included, each compiled as a dll, Game and Skeleton - these are both using the C4 engine. Game is an FPS framework with a few worlds to load up and look around, the main being Demo. The skeleton framework is a cut down version of game, but heavily commented with a single world to load. Look through the source and you get a pretty good idea of how the engine is designed, couple together the high-level design docs it is very straight forward to understand.
The editor is about to receive a much needed overhaul, the features of which are detailed on the C4 Engine wiki, I'll update my review when these are complete.
Load up the demo and have a look around, forget the developer art, look at the lighting, think about what can be achieved in your game. The engine supports Collada 1.4 and it works surprisingly well, especially as Collada is receiving more and more support from the big modelling apps. The art pipeline is well on the way to working tremendously well - with the new editor tools, future changes to the Terrain and Foliage, this should be something special.
This is still open to discussion, will there be a custom developed physics solution or will there be support built in for one or many third party solutions, or both ? Start your lobbying.
A number of members of the community have already integrated a number of physics engines into C4, namely PhysX, TrueAxis, Bullet and Newton. The engine is so well constructed that the integration is straight forward. The source for a lot of these integrations is also available.
Nothing implemented yet.
Multiplayer has recently had a complete overhaul, which works well over the LAN and over the Internet. A multiplayer map is now included with the release, running from the Game implementation. Two future updates include a dedicated server mode and file transfer.
I initially thought it would be a bit of a pain not having a scripting language, so having to compile every time just to check changes. I was wrong, the C++ is particularly easy to follow, but if you need to integrate a scripting language it is apparently straight forward with one or two forum members already having done so. An elementary graphical scripting system is in place, that is going to built upon in future releases.
Community and Support
An interesting community; ranging from complete newbies to the very experienced. But ask a question and 99 times out of a hundred it is answered straight away, if this doesn't happen, Eric will always supply an answer. The community is passionate about the engine and games and it is well worth just reading through the posts to understand the direction that C4 is travelling.
Value for money
The whole point is that for $200 you get a very well designed engine, well written and supported. It can be extended as the code and design is very easy to understand.
The engine is constantly evolving, Eric is very open to suggestions, and it can be fun just watching everyone lobbying for their requested features and priorities. This just demonstrates that Eric is open minded when it comes to new potential features, weighing their usefulness against cost (in time and money) to develop. The point is, he always listens.
Look beyond the developer art in the demos and spend a bit a of time understanding what is available here and then realise that for $200 it's a bargain.
Eric must be applauded for his hard work and effort.
Harder to learn then Beyond Virtual but still one of the two best engines!
C4 is top notch, it delivers its own map editor. You get the source, the author is very responsive and for 100 bucks you can't go wrong! If you know C++ and you're not afraid of engine code, then give C4 a try! There's also a visual script editor for the lazy non-C++ coders here :-)
Bad tools ruin this engine
This engines tool set is terrible which ends up completely ruining this engine. If you are looking for ease of use when it comes to developing a game this is not the engine to go with since the tools are very archaic and poorly constructed.
Tools are one of the most important aspects of an engine and any art team would be crying while trying to use this engines tool set while developing.
An engine for programmer
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.
Ask nicely and you'll have your problem solved within hours :)
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.
C4 is engine is a good engine from a programmers standpoint however is of little use to anyone but. The tools are archaic and clunky and creating content is virtually impossible to anyone other than professional computer programmers.
C4 engine supports a few lighting and texturing methods common in games of today but none of the ones you'd expect it to. Post-processing effects such as SSAO are impossible and modern screen effects are so weak even on maximum settings that the are essentially worthless. You can neither use nor create your own full-screen and/or post processing effects.
C4 has absolutely no effects system of any kind. If you'd like to add effects to your game of any type you must either create your own effects system from scratch or use a third-party plugin which are totally unsupported by Terathon.
Creating terrain in C4 is accomplished by making a "block" of terrain which cannot be linked or stitched to other terrains. To sculpt this terrain you are given three brushes: a sphere, a cylinder, and a cone which only allow for creating totally unrealistic terrain that resembles mountains of breasts created with an icecream scoop. In addition to this shortcoming you are only able to blend between two textures on any surface.
Doing anything in the world editor can feel even more frustrating then doing it in CAD. You are given the ability to create objects with simple shapes like a sphere or once again cone and the ability to create extrusions. However the extrusions routinely "break" creating horrible shadow artifacts and becoming useless.
Other than shadow-maps C4 only supports incredibly sharp and unrealistic stencil-shadows and requires that all 3D models in your game creating shadows be entirely encapsulated. If you're a 3D artist of 12 years experience this means tossing everything you've ever learned about the necessity of culling faces out the window because 95% of the models you may have created in your career are now worthless in C4.
Support for this Engine is horrid...
Good Game Engine, Source Code, Decent Features, and very cheap compared to other Engines in the same category.
Horrid support, and slow development! Just try to say anything negative about the engine and you'll be lynched. Instead of responding with a positive approach and listen on how to improve the Engine, they'll stand by what they know and won't give you an inch. They think they know what the costumer wants and they'll force that belief on you.
As for development, it is extremely slow. There hasn't been an update in almost a year, even though it's been promised many times.
If you're on schedule to develop games, look somewhere else.
Good for C++ programmer
This review is based on 1.5.x version of engine. I have licensed this engine several years ago but haven't produce anything yet. In other engine I learned and understood in several months and produce a playable demo and win 3rd place in the contest. I failed to use C4 mostly because I do some website programming in my job, although I know C, but not C++, you need to understnd C++ quite weill in order to release the full power of this engine, try to see the simpleball demo on the engine wiki you know what I mean. The learning is quite steep for me.
This engine does not support FBX format, which is my prefer format, so the asset import is not straight forward to me. The collision system does not work quite well, sometime just get stuck, maybe 2.0 is better but it is not release yet. There is no XB360 port yet and mostly it never get iPhone support.
If the collision gets better + native FBX support + more platform I will look into this engine again.
Looks good, but...
..you would need to be good at C++ (and not C), plus use a fair bit of templates, function overloading etc etc.
Graphics look very good, but has limited support for loading 3D objects. The in-built world editor is rather sluggish and can be a pain to use - its not always intuitive.
Help is certainly pretty good from the forums.
Unfortunately the documentation isn't so good - there is limited detail on the functions, so you either have to ask on the forums or try and wade through the code looking for what you hope will do what you want. An example of this is the ImageElement class - it tells you how to load an image, but doesn't tell you how to position it... Nor does it tell you where to look to find out how to position it...
In the Intel Mac version (V132), there is rather a problematic bug, where you have to open the CLI (and then close it again), before you can detect keypresses. In addition, the cursor up key is treated differently from all other keys...
The demo program is rather painful to view too because either the graphics are too sharp or the FOV is too narrow.
It seems to be overly complicated, which is a pity.
If you want a engine that is good on 3D on NVidia card, then C4 is for you, BUT:
- C4 has many bugs on ATi cards
- 3D sound is not right there yet
- only Collada support yet, not everyone has a high priced modelling package or wants to use Blender!
- no physics
- no terrain support
And most importantly: no scripting! I can live without scripting if I'm able to use C# or VB.Net or Java. But if I'm forced to use C++ then godbye! I'm a quite experienced C++ coder but why would I want to code my game as a DLL in C++ when there are other engines I can use with a more easy to use language like C#/VB.Net or can be scripted with languages like Lua?
Plus: price increase AND yearly update fee. If you don't pay the update fee then you'll have to get a new C4 license the next time you want to update. So you pay 200 dollar plus yearly update fee and you're not even allowed to sell your games through a retail publisher? That's not Indie...
If you can live with those flaws, then C4 might be the right choice. If not: go for TV3D, Torque Shader Engine, Luxinia (very good engine that is scripted through Lua) or wait for the .Net version of the Dark Game Development Kit.
Last edited Apr 14, 2013 at 01:58