PDA

View Full Version : Castle Game Engine 6.0 released



michalis
18-02-2017, 09:44 PM
We're proud to release Castle Game Engine 6.0 (https://castle-engine.sourceforge.io/), an open-source 3D and 2D game engine for Object Pascal.

This release is a culmination of more than a year of intensive engine development. The main feature is that almost every part of the engine got significant improvement, and we have more "new features" than you probably care to read about:)

You can download the engine, and read the documentation, from

https://castle-engine.sourceforge.io/

Some highlights of the new features (see the full release announcement here (https://castle-engine.sourceforge.io/wp/2017/02/18/castle-game-engine-6-0-release/)):



New user interface (https://castle-engine.sourceforge.io/manual_2d_user_interface.php) features: auto-scaling, parents, anchors, many new components and properties,
New build tool features (https://github.com/castle-engine/castle-engine/wiki/Build-Tool): automatic generation and usage of GPU-compressed and downscaled textures, --mode=valgrind,
A large number of Android package components (https://github.com/castle-engine/castle-engine/wiki/Android-Project-Components-Integrated-with-Castle-Game-Engine), that provide an integration with various 3rd party Android libraries on Android (Google Play Games, In-app Purchases, sound libraries, ad networks, analytics, vibrations...),
New castle-anim-frames format, with a Blender exporter (https://castle-engine.sourceforge.io/creating_data_blender.php), to export *any* animations from Blender to our engine (armature, shape keys, baking physics simulations, ....).


Also, the entire website, and the manual (https://castle-engine.sourceforge.io/manual_intro.php) and the guide to creating game data (https://castle-engine.sourceforge.io/creating_data_intro.php), received a lot of additions and changes.

Last but not least, I wanted to mention our new Patreon page. You can support the engine development and get some real rewards --- I'm devoting a weekend per month exclusively to the features requested by Patrons, you can get access to the "cloud build server" (continuous integration) for your game projects, and I will have a 24h gamejam every month making a demo game requested by Patrons. Please check out our Patreon page on:

https://www.patreon.com/castleengine

P.S. Everything compiles with the today's announced FPC version 3.0.2 (and other FPC versions too) of course!

http://www.pascalgamedevelopment.com/attachment.php?attachmentid=1441&stc=1

http://www.pascalgamedevelopment.com/attachment.php?attachmentid=1442&stc=1

http://www.pascalgamedevelopment.com/attachment.php?attachmentid=1443&stc=1

http://www.pascalgamedevelopment.com/attachment.php?attachmentid=1444&stc=1http://www.pascalgamedevelopment.com/attachment.php?attachmentid=1445&stc=1

phibermon
24-02-2017, 12:11 AM
The engine is really holding its own now - performance is excellent and feature set is fat and juicy - really impressed! keep up the good work :)

michalis
24-02-2017, 03:33 AM
The engine is really holding its own now - performance is excellent and feature set is fat and juicy - really impressed! keep up the good work :)


Thank you! We have great plans for 2017 to add more features: see https://castle-engine.sourceforge.io/planned_features.php :)

phibermon
24-02-2017, 05:27 PM
Some exciting features planned! I too am looking to make use of bullet and I've got some ideas for an abstraction of their C++ API - if you fancy it one of the days perhaps we can brainstorm a design for our mutual use?

Also if it's ok with you I'd like to support Castle scene files in my editor - your engine is more complete and advanced than my own and I thought it would be wise to compliment your work rather than reinvent the wheel

michalis
24-02-2017, 05:59 PM
Some exciting features planned! I too am looking to make use of bullet and I've got some ideas for an abstraction of their C++ API - if you fancy it one of the days perhaps we can brainstorm a design for our mutual use?

Yes, by all means. We could actually create a project (on GitHub or SourceForge or such) with Pascal bindings for Bullet, and use it in both our projects -- that would be very cool!

My (rough) estimate of next Castle Game Engine releases:

- 6.2 release: Easy iOS recompilation
- 6.4 release: Delphi compatibility
- 6.6 release: Physics or Visual designing of our components (like GLScene) (depending on people feedback, what do they need most)

So, I may sit to physics quite soon, in <2 months. I'll make a note for myself to ping you when I have anything to start. Or, if you start anything earlier, I'll gladly join!


Also if it's ok with you I'd like to support Castle scene files in my editor - your engine is more complete and advanced than my own and I thought it would be wise to compliment your work rather than reinvent the wheel

Great! By all means, please do, the engine is open-source and free to use (on terms of LGPL, just like FPC/Lazarus units). By "my editor" do you mean your Jink Engine (http://www.pascalgamedevelopment.com/showthread.php?32530-Jink-Engine)? Because that looks extremely impressive, and I would be proud if my engine would be the renderer underneath.

phibermon
24-02-2017, 07:55 PM
Yes, by all means. We could actually create a project (on GitHub or SourceForge or such) with Pascal bindings for Bullet, and use it in both our projects -- that would be very cool!

Yes sounds good to me - I was thinking about a small library that takes common features of both bullet and physx and implements each in tandem - to begin with just static geometry and rigid primatives then moving onto constrained joints for rag-doll and wheeled vehicle simulations - the flat pascal headers would be for this abstraction layer. Would save on having to keep pace with bullet API changes etc or at least that's one idea.


Great! By all means, please do, the engine is open-source and free to use (on terms of LGPL, just like FPC/Lazarus units). By "my editor" do you mean your Jink Engine (http://www.pascalgamedevelopment.com/showthread.php?32530-Jink-Engine)? Because that looks extremely impressive, and I would be proud if my engine would be the renderer underneath.

Yes indeed :) the main strengths of my system so far lie in JinkEd (the editor) and it's ability to co-operatively edit scenes across IP networks - arbitrary properties of any kind can be attached to each node so property sets for the castle scene graph would be quite painless to implement - allowing castle to be used for rendering.

I'll have a think and study castle in more detail and get in touch with you when I can - I've been unable to entice people to join me on my project so I think it's time to accept its weaknesses and play to castles strengths.

michalis
24-02-2017, 10:27 PM
Yes sounds good to me - I was thinking about a small library that takes common features of both bullet and physx and implements each in tandem - to begin with just static geometry and rigid primatives then moving onto constrained joints for rag-doll and wheeled vehicle simulations - the flat pascal headers would be for this abstraction layer. Would save on having to keep pace with bullet API changes etc or at least that's one idea.

This sounds fine to me.

Random thoughts:



PAL (Physics Abstraction Layer) can be used to abstract physics libraries under a common API: http://www.adrianboeing.com/pal/index.html , https://en.wikipedia.org/wiki/Physics_Abstraction_Layer . That's not to say that I want to use PAL -- possibly making our own abstraction layer would allow us more flexibility (and possibly not cost too much time). I don't know PAL well enough to decide for sure.
I fear that such abstraction layer may hide some useful engine-specific features. E.g. I would like to eventually use Bullet soft bodies. PhysX also has soft bodies, but some engines don't -- e.g. ODE has only rigid bodies, as far as I know. This doesn't stop PAL from having soft bodies, of course (it can just not implement them for ODE backend; that's what it does, in fact, see https://sourceforge.net/p/pal/discussion/400130/thread/c6a91d20/ ). But, still, an abstraction layer must choose some sensible common ground between it's backends, so I fear that some small features here and there could be missing.
But, this fear is unconfirmed. Possibly PAL rocks, and it's possible to abstract everything nicely without loosing anything important.
Also: at the beginning we want to just use rigid body like you write, which is supported by all physics engines.


So, summarizing my random thoughts above: Yes, I'm after doing an "abstraction layer" on our side, and extending it as much as necessary for our needs. We can probably learn by looking at PAL how it can be done nicely.


Yes indeed :) the main strengths of my system so far lie in JinkEd (the editor) and it's ability to co-operatively edit scenes across IP networks - arbitrary properties of any kind can be attached to each node so property sets for the castle scene graph would be quite painless to implement - allowing castle to be used for rendering.

I'll have a think and study castle in more detail and get in touch with you when I can - I've been unable to entice people to join me on my project so I think it's time to accept its weaknesses and play to castles strengths.

It would be great to join forces. Castle Game Engine lacks an integrated editor. I plan to fix it by "Visual designing of components", allowing for some visual editing (like GLScene or FireMonkey 3D).

But I don't plan to make a special, full-featured editor. Your editor would fill this role fantastically, and the fact that it allows collaboration online is a huge feature not seen in other game engines as far as I know. The only thing close to it that I seen is Verse -- https://en.wikipedia.org/wiki/Verse_protocol , https://web.archive.org/web/20110725081859/http://verse.blender.org/ . It was integrated with Blender and it rocked (read: it actually worked:). Unfortunately, the project is dead as far as I can see.

Please check Castle Game Engine, and if there's anything missing -- I can add it:)

phibermon
25-02-2017, 12:24 AM
So, summarizing my random thoughts above: Yes, I'm after doing an "abstraction layer" on our side, and extending it as much as necessary for our needs. We can probably learn by looking at PAL how it can be done nicely

Agreed - I assumed something like PAL already existed and perhaps we'll find it suitable after assessment but at the very least it'll prove a useful aid when it comes to our own design.


It would be great to join forces. Castle Game Engine lacks an integrated editor. I plan to fix it by "Visual designing of components", allowing for some visual editing (like GLScene or FireMonkey 3D).
But I don't plan to make a special, full-featured editor. Your editor would fill this role fantastically, and the fact that it allows collaboration online is a huge feature not seen in other game engines as far as I know. The only thing close to it that I seen is Verse -- https://en.wikipedia.org/wiki/Verse_protocol , https://web.archive.org/web/20110725081859/http://verse.blender.org/ . It was integrated with Blender and it rocked (read: it actually worked:). Unfortunately, the project is dead as far as I can see.

In developing my editor it has proven to be as much work as the engine itself - I'll focus on supporting castle scene files to begin with which will allow for rapid prototyping in castle then we'll examine options.

Again fantastic work on the engine! highly recommended for anybody reading.

Ñuño Martínez
07-03-2017, 09:47 AM
Really good work. :yes:

I must take an in-deep look yet so may be I change my opinion but I should tell you that I don't liked the way to build "maps". I mean, I find building scenarios for games with Blender hard. Unfortunately I'm pretty busy right now but I was wondering if I can create a "3D Construction Kit" style map editor compatible with Castle Engine and even planned how to do it with the previous version.

michalis
07-03-2017, 11:25 AM
I mean, I find building scenarios for games with Blender hard. Unfortunately I'm pretty busy right now but I was wondering if I can create a "3D Construction Kit" style map editor compatible with Castle Engine and even planned how to do it with the previous version.

You can use *any* 3D modeling software to create 3D meshes:) Blender is only one of the modeling tools supported. We support many standard formats for 3D and 2D data (reading and writing), like X3D, VRML, Collada, OBJ... So in practice you can use any software that can export to any of our formats. See e.g. https://castle-engine.sourceforge.io/creating_data_export.php where we show also how to export from 3ds Max or Maya.

Also, you can create your own editor on top of the engine classes, definitely. You can build and modify our scene graph (the graph of X3D nodes) at runtime, and create a 3D editor, where you can edit existing models or build new ones.

phibermon
07-03-2017, 06:46 PM
I'm taking steps to support castle X3D files and later on direct interaction with the castle scene graph inside my editing tools - I've got a lot of work on so I can't give a timeline yet - but I'll be keeping Michalis apprised of my progress.

I agree that a good editor would be a great addition to castle at this stage - it would speed up prototyping and allow people to scale their ideas/scenes rapidly - castle can handle *a lot* more than even its most impressive examples/demos give it credit for and good content creation tools make a world of difference - providing you have the art resources to call upon that is ;)

michalis
08-03-2017, 03:25 PM
I'm taking steps to support castle X3D files and later on direct interaction with the castle scene graph inside my editing tools - I've got a lot of work on so I can't give a timeline yet - but I'll be keeping Michalis apprised of my progress.

I agree that a good editor would be a great addition to castle at this stage - it would speed up prototyping and allow people to scale their ideas/scenes rapidly - castle can handle *a lot* more than even its most impressive examples/demos give it credit for and good content creation tools make a world of difference - providing you have the art resources to call upon that is ;)

I admit I'm very excited about that:) Please write when you anything to show, I would love to see it:)