Upcoming talks about Castle Game Engine at conferences!

Posted on

Screenshot of selection at 2019-02-17 22:01:41
  1. On 9-13 November the Web3D 2020 conference will be held. This year, it is online and completely free! I recommend this event for people interested in the X3D standard, which is an important building block of our engine.

    I will have a short talk (20 minutes) about view3dscene capabilities, esp. in regards to new X3Dv4 features there.

  2. On 19-22 November, MiniDebConf Online #2 “Gaming Edition” will take place. It is also free and completely online. I recommend this event for people interested in Linux, Debian and gaming on these platforms. Actually my talk there will be quite universal, so you’re all invited 🙂

    I will give a talk presenting new Castle Game Engine 7.0 features during the “talks weekend” (21+22 November). It will be 35 min talk + 10 minutes for questions.

I will announce more as we get closer to these dates.

Comments on the forum ➤

GameFromScratch review of Castle Game Engine

Posted on

hqdefault

Castle Game Engine was reviewed by GameFromScratch! Watch the video below 🙂

My first reactions:

  • I’m extremely happy that a number of good things about the engine (in particular editor, documentation, recent CGE for Unity page, support for many platforms and formats) were pointed out. The 12-minute video is packed with information, and most of it is exactly the information I want to emphasize to the new engine users. Which means that overall we’re doing a decent job of communicating “what the engine is all about”, since an “outsider” was able to figure it out and very nicely describe.

  • I browsed the comments under the video (wow, > 12000 views!). It is obvious that having a console port (Nintendo Switch) and some actually released games like The Unholy Society and Escape from the Universe (that look pretty, unlike our somewhat ugly examples) is an important factor for many people for judging the engine. So I’m glad we have those, and I’ll keep emphasizing them on our webpages 🙂

    And with this, a big plea to everyone who makes games using CGE: let me know about them, make screenshots, make movies, make announcements on your website — I want to reshare (and put in our gallery) all the pretty stuff you create. This stuff makes me personally happy, and it is a proof for others that “the engine can be actually used to create real, finished, polished games”.

  • I lament that there are ~5 seconds when the editor gizmo dragging doesn’t work on the video. That is most probably because the video was recorded right before we finished gizmos’ implementation. Gizmos rock today!

  • The author mentioned common Lazarus complaint: it opens a lot of windows 🙂 Note that Lazarus has actually since some time a solution to it (it is just not enabled by default): it’s called “anchored layout”. To use it, just open in Lazarus a package inside your Lazarus source code: components/anchordocking/design/anchordockingdsgn.lpk. Install this package (it will recompile Lazarus) and you have an IDE with docked windows! Much more manageable in my experience, even if still not ideal.

Comments on the forum ➤

New Patreon rewards and goals since October, including plans for: training videos, conference+gamejam, Occulus port

Posted on

Castle Game Engine on Patreon

First of all, big thank you to everyone who already supports the engine on Patreon. If you like what we’re doing, please support us!

This announcement took a long time to write. I want to change our Patreon rewards and goals to be both more exciting (having CGE on VR was my dream for some time now 🙂 ) and also more realistic (as I announced last month).

Before we start, I wanted to tell you what “Patreon rewards” I rejected — because they are available already, for free, for everyone 🙂

  • A new developer, whose time will be paid by my savings, will join CGE in October! I will announce him officiallly next weekend 🙂
  • Remember that you can always contact me, describe your project, and ask for help. You can use Castle Game Engine forum, Discord and other ways, email or Keybase or just send a message through Patreon.

    I promise to look at everything. Simple questions or even fixes/improvements are always answered promptly, as you can probably see in the above communication channels 🙂

  • Remember that I welcome all your projects on our game gallery (or tools or components galleries). I want to link to you, I want to announce your projects, I want to reshare your screenshots and movies. I love seeing how you use CGE, this is incredibly motivating. Please send me screenshots / movies of what you’re doing with CGE right now 🙂

Moving on, these are new rewards for your support on Patreon on various tiers:

  • 5 USD tier allows you to “Request new training video”.

    The goal is that you can request a new training video on any CGE-related topic. I promise to have time each month to prepare at least 1 video on any subject that can “fit” anywhere between 5-45 minutes. The videos will be public (so everyone using the engine benefits) on our YouTube channel.

  • 10 USD tier becomes now “Request Next Engine Features, once every 2 months”.

    I want to openly admit that this is a downgrade to what I previously offered. This reward previously costed 5 USD, and I promised 1 feature every month. But I was not able to deliver it… And practically, developing requested features took me between 1 and 2 weeks of work (instead of “1 weekend”, as I initially envisioned). So I hope that the new plan will be more sustainable for me, and I will be able to deliver on-time what is promised.

    Of course features and games requested so far will be done ASAP, they are in my backlog and I want to do them. I have now feature “TCastleScene loading from stream”, and “Marble Madness game” in my backlog.

  • 50 USD tier remains unchanged: you get “Cloud Builds Server for Your Projects” and my eternal gratitude! I’m also thinking about introducing merch for this tier. Please let me know what do you think about this, as Patreon makes it super-easy to make and deliver.

  • Oh, and the 1 USD tier remains as just a basic way to support the engine. You also still get access to private posts on Patreon, but I do not want to commit to them regularly. I want to make everything public and open about the engine, so there wasn’t much opportunity for private posts in the past.

And here are new Patreon goals:

  • Upon reaching 250 USD / month support (I really hope we’ll reach it soon!) we organize Castle Game Engine online conference + gamejam!

    To celebrate this goal, we’ll organize a conference followed by a gamejam session! To start small, I want to devote a weekend toward it, with one day (Saturday) devoted to sessions (4-8 talks of 30 mins) and another day (Sunday) devoted to a gamejam. (Maybe we should switch gamejam and sessions days order?) Throughout the entire weekend, the primary goal will be to actually “meet” (online) and have a chance to talk together — CGE developers and users alike. There are many free tools to organize such event now, so I have no worries about the technical feasability of it 🙂

  • Upon reaching 500 USD / month we buy a good VR headset (in 200-300 USD price range) and port CGE to it.

    The goal is to buy a real, popular, powerful VR headset and make games for it 🙂 Which one we will actually buy — depends on when it will happen. A few months ago I was doing research, and would go for one of the Occulus variants, as they seemed to give biggest “bang for the buck” within 200-300 USD price range. The “optimal VR headset” may well be something different in 2021, so we will just make a final decision once we reach this goal. The explicit desire here is to buy something that has really good quality and significant user base.

  • Upon reaching 1000 USD / month we make “Cloud Builds Server for Your Projects (Jenkins)” accessible for all open-source projects, for free, and you can automatically register and use it.

    I described what it is on Cloud Builds (Jenkins) wiki page. Yes, we have it already running, and Jenkins and continuous delivery concept rock! I actually planned to make this available for free since a long time. However, making it secure and reliable when 100 projects and people (that don’t know each other) will start using it… proved to be a much more difficult task. So this now our goal on Patreon. The money would cover both the cost of development and maintenance of a specialized Jenkins instance, and the cost of actual servers.

Comments on the forum ➤

Editor gizmos to translate, rotate, scale

Posted on

3_gizmo3d_translate
4_gizmo3d_rotate
5_gizmo3d_scale1
6_gizmo3d_scale2
1_gizmo2d-translate
2_gizmo2d-rotate

You can finally visually edit the transformation of the TCastleTransform (including TCastleScene) in our engine editor! This was a critical feature since some time. I’m very happy, because in the past I used the lack of this feature as an excuse “Oh we cannot release yet Castle Game Engine 7.0, we miss gizmos!” — well, I no longer have this excuse 🙂 So we’re getting closer to the CGE 7.0 release.

Here are some details how the gizmos work. As you can see on the screenshots here, the gizmos work with both 2D and 3D games, and you can instantly test them using “New Project” editor templates.

  1. Using the toolbar you can switch the mode to select / translate / rotate / scale a transformation.
  2. In the translate / rotate / scale mode, you can also select different scenes with left-click. So actually the only use-case for the “only select transformation” mode is when you deliberately do not want to accidentally change the transformation of something.

  3. In the translate /rotate / scale mode, dragging with left button performs the appropriate transformation. You can also drag with right mouse button, this allows to drag but without changing the current selection.

  4. In the translate mode, you drag a particular arrow to move in the given direction. The arrows reflect the current rotation.

  5. In the rotate mode, you drag a particular circle to rotate around the given axis.

  6. In the scale mode, you either drag a particular arrow (to scale in one dimension) or you drag the transparent box in the middle (to scale in all dimensions, a common use-case).

In addition to this, the “Layout” tab now contains the “Reset Transformation” button when a TCastleTransform is selected. In particular, this allows to reset all the crazy edits you will do with gizmos 🙂

This is not the end of gizmos work, of course. I have a few TODOs, in particular:

  • Making them prettier 🙂 There’s a bunch of tiny tweaks to make them look and behave perfectly, and I want to incorporate various ideas from 3D authoring software (like Blender) and other engines.

  • Snapping. This would allow to move by increments of 1, rotate by increments of 5 degrees, scale by multiplies of 0.1. Like in Blender.

Comments on the forum ➤

CGE overview for Unity developers, example of anisotropic filtering

Posted on

93006972-4e277e80-f563-11ea-8bb1-34e10888af82
  1. Inspired by some questions on our Discord, I wrote a page Castle Game Engine for Unity developers. This documents how various concepts from Unity “map” to Castle Game Engine. It may provide an easy start for people already familiar e.g. with Unity.

    I would encourage everyone (whether coming from Unity or not) to browse it. It mentions some things that describe the general direction we’re heading — e.g. I’m dedicated to making our CGE editor really a universal and versatile tool to design CGE applications, I advise using TCastleWindowBase over TCastleControlBase for typical game projects and more.

    Some of these notions will find their way to the updated manual eventually, where I want to focus on the approach of designing as mush as possible using the editor. I also want to keep it clear that everything you design using editor is still possible to also do by code, so it will take some work to describe it all consicely and clearly 🙂

  2. We have a new example examples/3d_rendering_processing/anisotropic_filtering that shows how to activate anisotropic filtering on chosen textures. Anisotropic filtering improves the look of textures that are repeated, and may be visible from far away, under a steep angle. It avoids “blurring” the textures in some cases.

    In the future it may be possible easier (by adding this possibility to material properties XML configuration, which in turn may be possible to do visually at some point).

  3. Oh and examples/fonts/html_text has been remade to use CGE editor. This is a general trend, I hope to remake most examples to use editor.

Comments on the forum ➤

Presentation about View3dScene and Castle Game Engine

Posted on

web3d-view3dscene-1
web3d-view3dscene-2
web3d-view3dscene-3

At the beginning of August, I made a presentation about View3dScene and Castle Game Engine, for Web3D webinar about X3D Browsers. The presentation is now publicly available:

Enjoy 🙂 I focus in the presentation on View3dscene features, which you get just by opening some X3D and glTF files, no coding (or knowledge of CGE API in Pascal) required. For CGE developers, all these features are available as part of our TCastleScene class, documented in a few chapters of the manual.

Comments on the forum ➤

Editor improvements: F1 to open property documentation, selecting TCastleTransform, recent projects improvements

Posted on

Zrzut ekranu z 2020-08-31 00-14-53

To focus on Castle Game Engine 7.0 release, I want to finish some important editor features.

  1. Press F1 to open a WWW browser with the API reference of the selected property (when object inspector is focused) or at least selected component (in designer mode).

    It jumps to proper location in the engine API reference or (in case of standard property like TComponent.Name) to FPC reference.

  2. I started working on editor “gizmos” to visually transform a TCastleTransform instance. This is my biggest feature missing from CGE editor before release.

    You can now select the TCastleTransform instance if you first select a viewport, and then go into “Transform Select” mode. A bounding box of the selected object, as well as object under the mouse cursor, is shown. As part of finishing gizmos, this will be improved more (I think we can make the “Transform Select” mode possible without first selecting viewport, and I want to visualize the box+center in a more universal way, to be always visible).

  3. Small improvements to “Recent Projects” list: Detect projects on “recent” list with missing files, ask whether to remove them from list on opening, also update projects’ order properly.

  4. If you’re on Linux (or FreeBSD) and want to have a nice menu entry for CGE and view3dscene, see here. Of course when installing from package (CGE is already in Debian, but for now an old version before editor) this would be automatically set up.

Comments on the forum (3) ➤

X3D specification 4.0 draft, with Physically-Based Rendering materials supported by Castle Game Engine

Posted on

DamagedHelmet_0

Our engine uses X3D nodes to express everything that is rendered in 2D or 3D inside TCastleScene.

That is why, as I announced previously, I was working on X3D specification to incorporate some modern rendering features in X3D 4.0, in particular Physically-Based Rendering.

I’m happy to announce that the result of this work is now available publicly. It is X3D 4.0 2nd working draft. Despite the “draft” specification version, it is something we actually implement in CGE right now, and thus the X3D 4.0 draft specification serves also as a documentation for CGE. In particular see:

Comments on the forum ➤

Various improvements: project caption in editor, castle_indy package, CThreads, etc.

Posted on

Castle Game Engine editor - New Project dialog

Various important improvements done lately in Castle Game Engine:

  1. You can set project caption when creating a new project in CGE editor.

  2. Our CastleClientServer unit (for TCP/IP networking) has been moved to a new Lazarus package castle_indy that depends on indylaz package. This makes our connection to Indy cleaner, and fixes the client/server example compilation. This entire section of the manual was also improved.

  3. CGE applications (if you let the build tool to auto-generate your program file) on Unix now by default use CThreads, thus they can use TThread.

    This affects desktop Unix platforms, like Linux and FreeBSD.

    This means that

    1. asynchronous downloading (TCastleDownload with http, https) and
    2. music streaming (SoundEngine.LoadBuffer(.., slStreaming) with default OpenAL backend)

    … just work out-of-the-box. I suspect that more and more such features will appear in the future, so it makes more sense to make the default “threads work on Unix”.

    If you would like to disable CThreads for some reason, you can still do it by compiling with CASTLE_DISABLE_THREADS.

    FPC by default doesn’t use CThreads, to avoid linking with C library, to increase compatibility across Linux distros. But, as far as my experience goes, this argument is no longer relevant in 2020. I haven’t actually encountered any case when a binary FPC application cannot be transferred from one Linux to another due to CThreads API incompatibility. Reading one recent FPC bugreport about it I can conclude that the fear of “linking to C by default” is now more because of “unforeseen consequences”, not because of any proven visible problem that can occur on Linux in 2020. And that report is about FPC_USE_LIBC, while using CThreads should be a smaller issue.

    And note that CGE uses a few libraries that definitely change more rapidly than C library anyway (e.g. libpng, X, GTK, OpenGL…).

  4. remote_logging example was redesigned:

    1. Should work on all platforms nicely now, doesn’t need console
    2. Shows nice UI with animation (to show that all HTTP stuff doesn’t cause any interruption in the main thread)
Comments on the forum ➤