Engine release next weekend, and last batch of December 2016/January 2017 news

Posted on

FPS game with debug boxes

OK folks, this is (almost) it!:) We will be announcing the grand engine 6.0 release next weekend! Everything in the engine is ready, so you’re welcome to test now the engine version from GitHub and report last bugs:) Everything should compile and work everywhere. We have many automatic tests performed by Jenkins, but they never cover everything, so please do test the engine yourself — in particular, test your own games too.

Below is the last batch of announcements about the smaller new-and-not-yet-announced engine features. It covers work from the last 2 months which was not yet announced properly on our social channels:

New features, in X3D (and view3dscene and demo-models):

  1. Shape.shading = “WIREFRAME” possibility in X3D. Allows to render something as a wireframe. For now works on Box and Sphere, but eventually all the geometry shapes will honor it. This is the new, portable to OpenGLES, way of making 3D stuff wireframe. It is a start to implement, in the future, all wireframe-related features on OpenGLES (see OpenGLES TODOs). It is used to debug bounding volumes for creatures/items on all platforms.

  2. X3D fields “slices”, “stacks”, “divisions” added to X3D primitives to control their triangulation. The old node KambiTriangulation, which was only consistent with the ancient VRML 1.0, is simply removed now.

  3. You can use normalMaps from a MovieTexture. This is a nice technique when you have a mostly flat surface (that can be rendered using a simple flat geometry) that has some small animated features that play with lighting. Like a water surface, or a water (or blood, or anything…) dripping from the wall, or boiling hot lava or such.

    The sample models are available in demo models (GitHub):

    • demo-models/bump_mapping/test_animated_normalmaps.x3dv
    • demo-models/water/water_shaders.x3dv (this was also possible previously, using shaders).

    You can test them in view3dscene. Use the “Edit -> Lights Editor” to move the light’s location, to see that it’s a dynamic technique — everything changes when lighting moves.

    You can use Blender’s “Bake” to bake normalmaps from an animated procedural texture. You can bake a series of normalmaps using the Python script embedded in the .blend file demo-models/water/water.blend, or using the Blender addon “Animated Render Baker”.

  4. view3dscene new menu items “Set Up (and Gravity Up) +Y” and “Set Up (and Gravity Up) +Z”

  5. Demo models now contain more impressive “path tracer” demos in https://github.com/castle-engine/demo-models/tree/master/lights_materials/raytracer . New files are “office”, “graz”, “bowl_of_soup” — they were used to generate some screenshots on raytracer gallery.

New features, in engine API:

  1. CastleRandom: Our custom, fast, wrapped in a class, random number generator. Can be used everywhere where the speed of random number generation is important, and / or when you want to use a couple of separated random number generators (for example, for use in different threads). By Eugene Loza​ (thousand thanks!).

  2. RenderStyle on every control is “rs2D” (even on scene manager and viewports, to behave naturally with other controls). This makes it easier to order UI stuff, previous rs3D option was rather counter-intuitive. If you want to revert to old behavior temporarily, set SceneManager.RenderStyle := rs3D .

  3. New component TCastleTimer. Cross-platform timer, working as our TUIControl, available both with Lazarus forms and with CastleWindow. See demo in examples/2d_standard_ui/timer_test/timer_test.lpr .

  4. TTimerResult, TProcessTimerResult, TSoundType are now opaque types.

  5. BlendingSort is bs3D by default.

Many improvements to the webpage

The new website is visible on https://castle-engine.io/ . Some highlights:

  1. More streamlined main page (just “Download” the engine)

  2. Documentation: Nice “Getting started” page, “Documentation” drop-down menu, many new manual pages, sidebar prominent on the left

  3. Much improved “Exporting from Blender” page. We have there many new features, too — a new exporter to castle-anim-frames (able to export any Blender animation — armature, shape keys, even physics and particles!), and script to render skybox and cubemap environment maps.

  4. X3D scene graph: Mentions extensions later, nice page about shadow volumes, links to API docs for nodes.

  5. New engine logo, thanks to Paweł Wojciechowicz (from SODA studio​ and Cat-astrophe Games)​!

  6. “Tutorial” renamed to “manual”, that’s a much better name I think:)

  7. New pages like planned features.

New examples:

  1. examples/3d_rendering_and_processing/build_3d_tunnel example, by Eugene Loza (thanks!).

  2. examples/3d_rendering_and_processing/cars_demo (for manual about TCastleScene)

  3. examples/2d_standard_ui/zombie_fighter/zombie_fighter (for manual about UI)

  4. some examples moved to examples/research_special_rendering_methods/ subdirectory. Read research_special_rendering_methods/README.txt to know why.


  1. QuadSet and IndexedQuadSet rendering on OpenGLES fixed.

  2. TGooglePlayGames.RequestPlayerBestScore fixed.

  3. Fixes to: Collisions in view3dscene, bump mapping, shadow maps, OnScreenMenu.

  4. TCastleButton size recalculation much optimized.

  5. PlayAnimation on the same animation fixed.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.