You are not logged in.
Pages: 1
Hello everyone!
I'm project lead of Castle Game Engine, we're an open-source game engine using modern Object Pascal (we support both FPC and Delphi, just like mORMot). We support 3D and 2D games, we have a nice visual editor, and powerful API of course using Pascal classes.
I wanted to announce a new demo project we have created, to showcase that Castle Game Engine and mORMot 2 can cooperate seamlessly, and together achieve something really cool:
It's a "collaborative editing of 3D world", in short.
Multiple clients can edit a 3D world online.
It's synchronized using ORM with a server.
The server in turn stores the world contents in a database (so it survives server restarts).
Each client can add, remove, modify (move, rotate, scale) 3D objects in the world.
The changes are immediately visible to all other clients.
mORMot takes care of all the network communication, and database persistence.
Castle Game Engine takes care of displaying -- showing and changing the 3D world, allowing user to move/rotate/scale by nice gizmos, allowing camera movement in 3D.
It's all open-source naturally, just like both mORMot and Castle Game Engine The whole source code is available at the above link. To build it, you will need both Castle Game Engine and mORMot 2. Latest versions, from GIT master branches, have been tested.
I hope you enjoy this Any feedback is of course welcome!
I attach 2 screenshots below:
See the description of my pull request on https://github.com/synopse/mORMot/pull/133 .
FPC revision 39684 (during FPC 3.3.1 development) changed the way you have to access this information. In FPC revision < 39684, you must use "@VMP^.Name". In FPC revision >= 39684 you must use "VMP^.NamePtr".
The FPC revision 39684 happened during the FPC 3.3.1 development.
The patch from https://github.com/synopse/mORMot/pull/133 assumes that:
- You either use FPC 3.1.1.
- Or you use FPC 3.3.1 with revision >= 39684.
The original poster uses FPC 3.3.1, revision 39711. This should be supported. The VER3_1 should not be defined, and the correct approach ("VMP^.NamePtr") should be used.
(Note: I removed my earlier answer, I made a mistake there This answer is correct.)
Pages: 1