minosdis wrote:Hey all,
First time posting here. Firstly, gratz on the excellent engine, Carsten. After reviewing nearly every free and commercial 3d / game engine on the market currently, this one seems like a diamond in the rough.
Thanks, and welcome to the Ca3D-Engine forums!!
I'm really surprised there's not more activity.
Well, I long didn't realize that the finest technology is not of much use when the users have to type material definitions, use the command-line, etc. Thus we have already begun and continue to do so all "user experience" related issues. Moreover, I'll once more update the Ca3DE website in the next few weeks and will start some ads and announcements.
Anyways, a few questions I have a fairly ambitious design goal in mind, some of which incorporates traditional FPS elements, like what is in the DM mod, but there are parts that will require siginificant changes to the humanplayer entity. Mainly I'll need to code a vehicle and plane type entitys to co-exist alongside player or humans. Obvously, the current physics model isn't set up to do this, which shouldn't be too much of a problem, mainly just move varous acceleration and friction constants from the physics class to the entities. I suppose my question here, is, do you think is possible to have different player types coexist? Example, Player starts out as a human, then walks up to a vehicle, drives it to a jet, hops up, and gets in the jets. All along the way, swapping physics models (also huds, weapons, etc).
Yes, I think that that is well possible.
You'd probably need three separate entities (a human, a vehicle and a jet), because that's the perspective from an outside observer, and when a human enters a vehicle, it doesn't "merge" into the vehicle, but becomes a part of it. Similar, when the human leaves the vehicle again, the "vehicle-driver" combination separates again into two independent entities.
From the first-person perspective, this are a bit different of course, it looks and feels as if you were first the human (hands and arms view), then the vehicle (vehicle cockpit view, maybe mounted weapon etc.), then the jet (jet cockpit, cowling, etc.).
I think that this can well be implemented with the State design pattern
, e.g. as described in the GoF book
The human would change physics behaviour, first-person model, HUD etc. according to its state, and just move the associated entity (vehicle or jet) with him.
Second question, Has anyone ever explored paging / tiling terrain systems? I know this can be a very complicated process, depending on how its implemented. Just curious if anyone has looked into it with CA3D.
Ca3DE uses an implementation of the SOAR terrain algorithm
for its terrains, which is by design capable of paging - we just did not implement this.
That means that currently, all terrains must fit into memory at once. E.g. the TechDemo terrain has 1025*1025 heightmap elements with a spacing of about 1m between elements, which makes an area of about 1km^2. It would not be a (memory-)problem to scale this larger, though. In other words, depending on what exactly you want to achieve, it might be worthwhile to first try it with other means than paging. If it then still doesn't work, we can still consider changing the implementation to paging.
Lastly, what sort of limits are there for the multiplayer system? Is it in the 8-64 player range, or scalable?
There is no hard-coded limit in Ca3DE for the number of players (if anything, it could be easily removed). The "problem" with large numbers of players is still the network connection speed - when each of 64 players is in a different room, so that essentially everyone only sees nobody else or only a few others, it's not a problem at all. But if all those players are in the same room or same open space, where everyone can see everyone else, the "natural limits" of the network connection quickly overrule any engine capabilities.
Thanks for any info you can provide, I look forward to poking through some code, and I'll be sure to post any snippits of interest.
Hope this helps for now, let us know about any other questions you may have.