A few questions, possibilities

Get help with installing and running the Cafu Engine here. This forum is also for general questions and discussion of all aspects regarding the Cafu Engine.
Post Reply
minosdis
Posts: 24
Joined: 2008-08-09, 05:42

A few questions, possibilities

Post by minosdis » 2008-08-09, 05:56

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. I'm really surprised there's not more activity. 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).

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.

Lastly, what sort of limits are there for the multiplayer system? Is it in the 8-64 player range, or scalable?

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.
User avatar
Carsten
Site Admin
Posts: 2160
Joined: 2004-08-19, 13:46
Location: Germany
Contact:

Re: A few questions, possibilities

Post by Carsten » 2008-08-09, 11:08

Dear minosdis,
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. :up:
Best regards,
Carsten
minosdis
Posts: 24
Joined: 2008-08-09, 05:42

Re: A few questions, possibilities

Post by minosdis » 2008-08-09, 15:41

Hey,

Thanks for your speedy reply. I think your right about swapping entities, probably best done with a game state. A few flags that can be read by different classes like the physics and gui should do it. A more fundamental question arouse last night however. It seems as though a lot of the code is missing? I tried to recompile a dll in VS 2005, and was bombarded with a huge number of missing headers.

Code: Select all

Math3D/Vector3.hpp
Templates/Array.hpp
TypeSys.hpp
Those were the 3 that threw up an error at compile time (Vector3 threw up about 50 errors alone), however I believe theres more missing, probably all of the subdirectories in /demogame/code dir.

Code: Select all

#include "MaterialSystem/MaterialManager.hpp"
#include "MaterialSystem/Renderer.hpp"
#include "MaterialSystem/TextureMap.hpp"
#include "OpenGL/OpenGLWindow.hpp"
#include "SoundSystem/SoundSys.hpp"
#include "SoundSystem/SoundShaderManager.hpp"
#include "SoundSystem/Sound.hpp"
#include "Models/Model_proxy.hpp"
#include "ConsoleCommands/ConsoleInterpreter.hpp"
#include "ConsoleCommands/ConVar.hpp"
#include "ConsoleCommands/ConFunc.hpp"
#include "ConsoleCommands/Console.hpp"
#include "ParticleEngine/ParticleEngineMS.hpp"
#include "SceneGraph/Node.hpp"
#include "ClipSys/ClipWorld.hpp"
#include "ClipSys/CollisionModelMan.hpp"
#include "ClipSys/TraceModel.hpp"
#include "ClipSys/ClipModel.hpp"
#include "ClipSys/CollisionModel_base.hpp"
#include "Fonts/Font.hpp"
#include "FileSys/FileMan.hpp"
#include "GuiSys/GuiMan.hpp"
#include "GuiSys/Gui.hpp"
#include "Math3D/Matrix.hpp"
These are all the other missing files I could find, although they didnt throw errors. This could just mean the output buffer from the VC++ compiler was used up, not sure :\

Also, I noticed the compiling tutorial on the wiki references the /dev folder to compile, although it didnt seem to specify this as being for full-source only. It is possible the /dev folder was just left out by mistake?
User avatar
Carsten
Site Admin
Posts: 2160
Joined: 2004-08-19, 13:46
Location: Germany
Contact:

Re: A few questions, possibilities

Post by Carsten » 2008-08-10, 10:20

Hi minosdis,
minosdis wrote:A more fundamental question arouse last night however. It seems as though a lot of the code is missing? I tried to recompile a dll in VS 2005, and was bombarded with a huge number of missing headers.
This is - partially - intentional.
First the solution, though: I'll send you the missing header files on Monday via email, including a description on how to arrange the directories for compiling. (Btw., do you use scons for compilation, or did you create a VisualStudio project file?)

Now the rationale: We'll start to offer full source code licenses very soon (around end of August / begin of September). The full source code will contain absolutely everything (source code for: the engine, Deathmatch demo game, all libraries/subsystems, all tools, world editor, etc.). Beginning with the 8.08 release, I've thus reduced the public source code to "sample source code". That is, you can read it and see what coding with Ca3DE is like, but it doesn't compile and link by itself any more (in the form as given with the current 8.08 demo).
The Wiki documentation already refers to the full source code editions, although when ready, compiling the full source code will become simpler than currently described, i.e. the documentation will then be updated to describe a less complicated build.
As the full source code licenses are not yet available, I'll send you the files for compiling and linking the DeathMatch.dll on Monday. :up:
Best regards,
Carsten
minosdis
Posts: 24
Joined: 2008-08-09, 05:42

Re: A few questions, possibilities

Post by minosdis » 2008-08-10, 15:10

Sweet, I look forward to pluggin away at some things :) Thanks a lot
User avatar
Carsten
Site Admin
Posts: 2160
Joined: 2004-08-19, 13:46
Location: Germany
Contact:

Re: A few questions, possibilities

Post by Carsten » 2008-08-11, 17:35

Dear minosdis,

ok, here are some instructions and resources to compile the DeathMatch game code. As this is a special-case situation as explained above, I've not tested the process though. If it doesn't work, don't worry, just describe the problem here and we'll fix it.
  1. Rename your Ca3DE-8.08 directory to Ca3D-Engine.
  2. Create a directory structure as described at chapter Large-scale Organization. That is, you'll have to move the Ca3D-Engine directory below Dev/Projects.
  3. Download and compile the ExtLibs as described at The External Libraries (you may want to read Compiler and Tools Setup before).
  4. Download this package: [EDIT - File updated on 2008-08-13.]
    The attachment Projects.zip is no longer available
    and extract it into the Projects folder. It essentially contains all the missing headers in Libs.
  5. [EDIT - This step is new since 2008-08-13.] In Dev, create new directory (hierarchy): TestCollDet/build/win32/vc8/release (that is, TestCollDet will be at the same level as Projects and ExtLibs). There, put the contents (ClipSys.lib) of this archive:
    ClipSys.zip
    (174.22 KiB) Downloaded 232 times
  6. Edit the Projects/CompilerSetup.py file as described at The CompilerSetup.py file.
  7. [EDIT - This step is new since 2008-08-12.] In files Mover.cpp, FuncLadder.cpp and Libs/Physics.cpp (all below Ca3D-Engine/Games/DeatchMatch/Code), replace line

    Code: Select all

    #include "../../TestCollDet/CollisionModel.hpp"
    with

    Code: Select all

    #include "CollisionModel.hpp"
  8. Proceed as described at Compiling the Ca3DE source code, but instead of

    Code: Select all

    scons -Q
    you type

    Code: Select all

    scons -Q lic=sdk
These steps should get you the "release" version of the DeathMatch DLL built. If there are any problems, just let me know please. :up:
Best regards,
Carsten
minosdis
Posts: 24
Joined: 2008-08-09, 05:42

Re: A few questions, possibilities

Post by minosdis » 2008-08-12, 03:57

Well, I got through the ExtLibs build fine, went more or less perfectly. When I tried to rebuild the deathmatch game with original code, I got a few missing file errors however.



------ Build started: Project: deathmatch mod, Configuration: Debug Win32 ------
Compiling...
_ResourceManager.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\_resourcemanager.cpp(43) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\_resourcemanager.cpp(50) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\_resourcemanager.cpp(57) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\_resourcemanager.cpp(64) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\stdio.h(345) : see declaration of 'sprintf'
ARGrenade.cpp
BaseEntity.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\baseentity.cpp(117) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(157) : see declaration of 'strncpy'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\baseentity.cpp(120) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\baseentity.cpp(121) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
Butterfly.cpp
CompanyBot.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
Corpse.cpp
cw.cpp
cw_357.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_9mmAR.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_BattleScythe.cpp
cw_CrossBow.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_Egon.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_FaceHugger.cpp
cw_Gauss.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_Grenade.cpp
cw_Pistol.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_RPG.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
cw_Shotgun.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
DeathMatch.cpp
Eagle.cpp
Generating Code...
Compiling...
EntityCreateParams.cpp
FaceHugger.cpp

FuncDoor.cpp
c:\documents and settings\administrator\my documents\dev\projects\libs\materialsystem\mapcomposition.hpp(8) : fatal error C1083: Cannot open include file: 'TextParser/TextParser.hpp': No such file or directory

FuncLadder.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\funcladder.cpp(21) : fatal error C1083: Cannot open include file: '../../TestCollDet/CollisionModel.hpp': No such file or directory

GameImpl.cpp
HandGrenade.cpp
HumanPlayer.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value

c:\documents and settings\administrator\my documents\dev\projects\libs\guisys\gui.hpp(4) : fatal error C1083: Cannot open include file: 'WindowPtr.hpp': No such file or directory
InfoPlayerStart.cpp
Item.cpp
ItemAmmo357.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
ItemAmmoArrow.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
LookupTables.cpp

Physics.cpp
c:\documents and settings\administrator\my documents\dev\projects\libs\materialsystem\mapcomposition.hpp(8) : fatal error C1083: Cannot open include file: 'TextParser/TextParser.hpp': No such file or directory

MonsterMaker.cpp
Mover.cpp
c:\documents and settings\administrator\my documents\dev\projects\libs\materialsystem\mapcomposition.hpp(8) : fatal error C1083: Cannot open include file: 'TextParser/TextParser.hpp': No such file or directory

PointLightSource.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(89) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(157) : see declaration of 'strncpy'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(92) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(93) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(94) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(100) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(157) : see declaration of 'strncpy'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(103) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(104) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\pointlightsource.cpp(105) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 8\vc\include\string.h(166) : see declaration of 'strtok'
Rocket.cpp
ScriptState.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\scriptstate.cpp(498) : warning C4267: 'initializing' : conversion from 'size_t' to 'const int', possible loss of data
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\scriptstate.cpp(527) : warning C4244: '=' : conversion from 'lua_Integer' to 'int', possible loss of data
Speaker.cpp

StaticDetailModel.cpp
c:\documents and settings\administrator\my documents\dev\projects\libs\guisys\gui.hpp(4) : fatal error C1083: Cannot open include file: 'WindowPtr.hpp': No such file or directory

Generating Code...
Compiling...

Trigger.cpp
c:\documents and settings\administrator\my documents\dev\projects\libs\materialsystem\mapcomposition.hpp(8) : fatal error C1083: Cannot open include file: 'TextParser/TextParser.hpp': No such file or directory

Weapon.cpp
Weapon357.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
Weapon9mmAR.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponBattleScythe.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponCrossbow.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponEgon.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponFaceHugger.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponGauss.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponGrenade.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponHornetGun.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponPistol.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponRPG.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponShotgun.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
WeaponTripmine.cpp
c:\documents and settings\administrator\my documents\dev\projects\ca3d-engine\games\deathmatch\code\constants_ammoslots.hpp(28) : warning C4309: 'initializing' : truncation of constant value
Generating Code...
Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Dev\Projects\Ca3D-Engine\Games\DeathMatch\Code\Debug\BuildLog.htm"
deathmatch mod - 7 error(s), 42 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========




Looks like just three files,
WindowPtr.hpp
TestCollDet/CollisionModel.hpp
TextParser/TextParser.hpp

I did a search through the Dev folder, so I'm sure I'm not missing an include dir setting. As for the warnings, probably a compiler option I didn't set =/
User avatar
Carsten
Site Admin
Posts: 2160
Joined: 2004-08-19, 13:46
Location: Germany
Contact:

Re: A few questions, possibilities

Post by Carsten » 2008-08-12, 16:43

Hi minosdis,

sorry about the missing files! I've just edited my post above and updated the Projects.zip file. Please download it again, extract into the same location, it will add the three missing files.
Also please pay attention to the newly added step 6 in my post above (essentially you have to adapt the #include path to the CollisionModel.hpp header in three source files).
Then everything should work.
minosdis wrote:========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Oh, ok, so you did not use scons? ;)
I did a search through the Dev folder, so I'm sure I'm not missing an include dir setting. As for the warnings, probably a compiler option I didn't set =/
The dir settings are fine, the files were actually missing.
About the warnings, yes, I normally set some compiler switches in order to have the compiler omit a few selected warning messages.
(Normally all Ca3DE code is built at max. warning level, with warnings being reported as errors, so that we always fix all warnings that are reported, on all platforms. This also means that "normal" Ca3DE builds proceed very cleanly without a single warning.)
Best regards,
Carsten
minosdis
Posts: 24
Joined: 2008-08-09, 05:42

Re: A few questions, possibilities

Post by minosdis » 2008-08-12, 20:16

Downloaded the updated zip file, and found another missing file, PatchMesh.hpp. :)
Not sure why that one didn't create an error before.

And as far as scons goes, I did use it for building ExtLibs, didn't think to use it for building the game dll though. I suppose that would have been easier then creating a VC project file ;)
User avatar
Carsten
Site Admin
Posts: 2160
Joined: 2004-08-19, 13:46
Location: Germany
Contact:

Re: A few questions, possibilities

Post by Carsten » 2008-08-13, 11:37

minosdis wrote:Downloaded the updated zip file, and found another missing file, PatchMesh.hpp. :)
Ok, I updated the above Projects.zip file again, and in order to save you from downloading it once more, here is the contents of PatchMesh.hpp (which must be placed in Libs/SceneGraph/):

Code: Select all

#ifndef _CF_PATCH_MESH_HPP_
#define _CF_PATCH_MESH_HPP_

class MaterialT;


namespace cf
{
    namespace SceneGraph
    {
        class GenericNodeT;
    }


    struct PatchT
    {
        VectorT UnradiatedEnergy;   ///< The energy that has not yet been radiated into the environment (per unit time per unit area).
        VectorT TotalEnergy;        ///< The energy that this patch radiates into the environment (per unit time per unit area).
        VectorT EnergyFromDir;      ///< The main (average) direction from which the total energy arrived at the patch.

        VectorT Coord;              ///< Position (+safety) in world space of the center of the patch. Valid only if InsideFace==true.
        VectorT Normal;             ///< The normal vector of the patch surface.
        double  Area;               ///< The area of the patch surface.
        bool    InsideFace;         ///< InsideFace==true <==> this patch is not completely outside its face.
    };

    struct PatchMeshT
    {
        unsigned long  Width;
        unsigned long  Height;
        ArrayT<PatchT> Patches;                 ///< The patches that form this patch mesh.

        bool           WrapsHorz;               ///< Returns whether the patch mesh wraps "in the width".  Note that if true, the extra-column at the right  is *not* included in the Patches array!
        bool           WrapsVert;               ///< Returns whether the patch mesh wraps "in the height". Note that if true, the extra-row    at the bottom is *not* included in the Patches array!

        const cf::SceneGraph::GenericNodeT* Node;       ///< The GenericNodeT this PatchMesh belongs to - quasi its "parent".
        MaterialT*                          Material;   ///< The MaterialT "beneath" this PatchMesh.


        /// Returns the const mesh patch at (i, j).
        const PatchT& GetPatch(unsigned long i, unsigned long j) const { assert(i<Width && j<Height); return Patches[j*Width+i]; }

        /// Returns the (non-const) mesh patch at (i, j).
        PatchT& GetPatch(unsigned long i, unsigned long j) { assert(i<Width && j<Height); return Patches[j*Width+i]; } 
    };
}

#endif
And as far as scons goes, I did use it for building ExtLibs, didn't think to use it for building the game dll though. I suppose that would have been easier then creating a VC project file ;)
The big plus of scons is that it works both on Windows and Linux with every compiler, and that you can describe your builds in all generality but with as many specifics are desired very easily.
But it's great to hear that building with VC project files works, too. :cheesy:
Best regards,
Carsten
Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests