Jump to content
The Dark Mod Forums

Stardog

Member
  • Posts

    49
  • Joined

  • Last visited

Posts posted by Stardog

  1. I'm remaking Dishonored for programming practice, and I'm wondering how your enemy AI works. I decided to go with a Behaviour Tree after getting into a mess with a state machines (multiple communicating using Events).

     

    My alert system works with timers. If you are in view for X seconds (depends on position/distance), it will increment the alert level.

    • Alert 1 - (LOOK) Stop patrolling. Turn to look in direction of object noticed (last known position). Timer countdown if player is still visible.
    • Alert 2 - (SEARCH) Move towards last known position. Timer countdown if player is still visible. If not visible, search nearby for 20 seconds.
    • Alert 3 - (CHASE/ATTACK) If player is still in view, start chasing. If he runs more than 20 units away, go back to level 2.

    Also, does your AI have peripheral vision? I split my view cone into 27 points which decide how fast the countdown timer is. So 75 degrees X, 50 degrees Y and 50 distance means the timer will take a long time before Alert Level 1 happens. If you are 0 degrees X, 0 degrees Y, 5 distance, then you're standing right infront of the guard, and the countdown timer will cycle through alert levels faster.

     

    If you did a behaviour tree, it would be interesting to see it, because I only started learning them 2 days ago and I can't find many decent examples of guards.

  2. I wouldn't say it's difficult. That's usually the first thing than any mod starts with and ends up with tons of, then the mod dies...

     

    And I already do textures/models myself.

  3. More of this stuff is already in Doom 3 than you might think (like security cams, many modern models like chairs/cups/machines/etc)

    I couldn't remember if it had proper security cams. An alarm to alert the guards I guess won't be there.

     

    Yeah, I think it'd mainly just be a matter of the work involved re-integrating it back into TDM. You could also do modern "lite" (still a lot of work!) where you're using D3 textures and (non-functional) objects, reskin existing AI and maybe a few tweaks or attachments to the model, and maybe it'd be enough just to get a working gun for the player and AI, with the animations, etc.

    It might not take too long if the team did things that way.

  4. After playing Deus Ex, I wondered how much work would it be to turn TDM into a modern-style sneaker? Note: Not a Deus Ex clone in any way.

     

    • New textures/materials/models - not difficult.
    • New animations/models for characters - a lot of TDM/D3 anims would be useable.
    • New SFX.
    • Security cams would need added - just enemies that can't walk, really?
    • Laser beams that were able to be turned off - needn't be in initial release.
    • Stick with TDM's climbing/mantling.
    • Stick with TDM's body carrying/dragging.
    • Stick with TDM's inventory/weapons system - no biomods etc.
      • Stick to a few inventory objects to keep it simple:
        • Weapons
          • Silent knockout weapon (Punch/Gun Butt) - Punch already in D3.
          • Silent kill weapon (Knife)
          • Noisy kill weapon (Hand Gun) - Gun(s) already in D3.
          • Stun weapon could use a modified TDM flashbomb or something.
          • Rope gun - already in TDM.

        • Inventory Objects
          • Lockpicks - already in TDM.
          • Keycodes - TDM's keys could temporarily act as "keycodes". Proper keypads with number input could be added in later releases.
          • Hacking/Look-under-door-cam' s, etc, could be added in later releases.
          • Maps/Readables/Mines/Keys/ Torch (in D3)/Medpack (Potion)/Binoculars (Spyglass) already in TDM.

    Most of the stuff seems to be there already.

     

    Is there anything major I've missed? It would be a good project when some more of TDM's bugs are squashed.

  5. No, no it's not. :huh: I run at 1920x1200, and the new desktop computer downstairs runs at 2560xsomething.

    It is.

     

    1920x1200 = 2.3m pixels

    1600x1200 = 1.9m

    1280x1024 = 1.3m (the most popular native res as of March 2010)

    1024x768 = 786k

     

    All of a sudden widescreen monitors come out and people think they can get away with higher res's without blinking, just because it's their native desktop res. Native res has nothing to do with what res you should be running games at. Almost every system will have to go lower than native for best performance.

     

    That's why you get tons of people complaining that their i7 blah blah blah can't run Bad Company at 16x AA and the highest res. It just can't. And like LEGIO said, just lower the res and up the AA.

     

    But anyhow. Doom 3 with a few shadow-casting lights will bog down any system.

  6. Yes it does, materials are applied to an entire submesh however - but check something like the trees out for an example.

    I detached the polygons based on their material ID. Changed MATERIAL_REF's but one won't load properly...

     

    EDIT: Works now. There was a problem with one of my TGA's for some reason.

     

    Test model:

    testy.jpg

     

    *3DSMAX_ASCIIEXPORT	200
    *COMMENT "AsciiExport Version 2.00 - Thu Apr 15 11:42:18 2010"
    *SCENE {
    *SCENE_FILENAME ""
    *SCENE_FIRSTFRAME 0
    *SCENE_LASTFRAME 100
    *SCENE_FRAMESPEED 30
    *SCENE_TICKSPERFRAME 160
    *SCENE_BACKGROUND_STATIC 0.0000	0.0000	0.0000
    *SCENE_AMBIENT_STATIC 0.0000	0.0000	0.0000
    }
    *MATERIAL_LIST {
    *MATERIAL_COUNT 2
    	*MATERIAL 0 {
    		*MATERIAL_NAME "grassm"
    		*MATERIAL_CLASS "Standard"
    		*MATERIAL_AMBIENT 0.5880	0.5880	0.5880
    		*MATERIAL_DIFFUSE 0.5880	0.5880	0.5880
    		*MATERIAL_SPECULAR 0.9000	0.9000	0.9000
    		*MATERIAL_SHINE 0.1000
    		*MATERIAL_SHINESTRENGTH 0.0000
    		*MATERIAL_TRANSPARENCY 0.0000
    		*MATERIAL_WIRESIZE 1.0000
    		*MATERIAL_SHADING Blinn
    		*MATERIAL_XP_FALLOFF 0.0000
    		*MATERIAL_SELFILLUM 0.0000
    		*MATERIAL_FALLOFF In
    		*MATERIAL_XP_TYPE Filter
    		*MAP_DIFFUSE {
    			*MAP_NAME "Map #1"
    			*MAP_CLASS "Bitmap"
    			*MAP_SUBNO 1
    			*MAP_AMOUNT 1.0000
    			*BITMAP "//base/textures/Stardog/grass"
    			*MAP_TYPE Screen
    			*UVW_U_OFFSET 0.0000
    			*UVW_V_OFFSET 0.0000
    			*UVW_U_TILING 1.0000
    			*UVW_V_TILING 1.0000
    			*UVW_ANGLE 0.0000
    			*UVW_BLUR 1.0000
    			*UVW_BLUR_OFFSET 0.0000
    			*UVW_NOUSE_AMT 1.0000
    			*UVW_NOISE_SIZE 1.0000
    			*UVW_NOISE_LEVEL 1
    			*UVW_NOISE_PHASE 0.0000
    			*BITMAP_FILTER Pyramidal
    		}
    	}
    	*MATERIAL 1 {
    		*MATERIAL_NAME "steep"
    		*MATERIAL_CLASS "Standard"
    		*MATERIAL_AMBIENT 0.5880	0.5880	0.5880
    		*MATERIAL_DIFFUSE 0.5880	0.5880	0.5880
    		*MATERIAL_SPECULAR 0.9000	0.9000	0.9000
    		*MATERIAL_SHINE 0.1000
    		*MATERIAL_SHINESTRENGTH 0.0000
    		*MATERIAL_TRANSPARENCY 0.0000
    		*MATERIAL_WIRESIZE 1.0000
    		*MATERIAL_SHADING Blinn
    		*MATERIAL_XP_FALLOFF 0.0000
    		*MATERIAL_SELFILLUM 0.0000
    		*MATERIAL_FALLOFF In
    		*MATERIAL_XP_TYPE Filter
    		*MAP_DIFFUSE {
    			*MAP_NAME "Map #2"
    			*MAP_CLASS "Bitmap"
    			*MAP_SUBNO 1
    			*MAP_AMOUNT 1.0000
    			*BITMAP "//base/textures/Stardog/steep"
    			*MAP_TYPE Screen
    			*UVW_U_OFFSET 0.0000
    			*UVW_V_OFFSET 0.0000
    			*UVW_U_TILING 1.0000
    			*UVW_V_TILING 1.0000
    			*UVW_ANGLE 0.0000
    			*UVW_BLUR 1.0000
    			*UVW_BLUR_OFFSET 0.0000
    			*UVW_NOUSE_AMT 1.0000
    			*UVW_NOISE_SIZE 1.0000
    			*UVW_NOISE_LEVEL 1
    			*UVW_NOISE_PHASE 0.0000
    			*BITMAP_FILTER Pyramidal
    		}
    	}
    }
    }
    *GEOMOBJECT {
    *NODE_NAME "Box01"
    *NODE_TM {
    	*NODE_NAME "Box01"
    	*INHERIT_POS 0 0 0
    	*INHERIT_ROT 0 0 0
    	*INHERIT_SCL 0 0 0
    	*TM_ROW0 1.0000	0.0000	0.0000
    	*TM_ROW1 0.0000	1.0000	0.0000
    	*TM_ROW2 0.0000	0.0000	1.0000
    	*TM_ROW3 32.0000	32.0000	0.0000
    	*TM_POS 32.0000	32.0000	0.0000
    	*TM_ROTAXIS 0.0000	0.0000	0.0000
    	*TM_ROTANGLE 0.0000
    	*TM_SCALE 1.0000	1.0000	1.0000
    	*TM_SCALEAXIS 0.0000	0.0000	0.0000
    	*TM_SCALEAXISANG 0.0000
    }
    *MESH {
    	*TIMEVALUE 0
    	*MESH_NUMVERTEX 12
    	*MESH_NUMFACES 12
    	*MESH_VERTEX_LIST {
    		*MESH_VERTEX	0	0.0000	0.0000	0.0000
    		*MESH_VERTEX	1	64.0000	0.0000	0.0000
    		*MESH_VERTEX	2	0.0000	64.0000	0.0000
    		*MESH_VERTEX	3	64.0000	64.0000	0.0000
    		*MESH_VERTEX	4	0.0000	0.0000	32.0000
    		*MESH_VERTEX	5	64.0000	0.0000	32.0000
    		*MESH_VERTEX	6	0.0000	64.0000	32.0000
    		*MESH_VERTEX	7	64.0000	64.0000	32.0000
    		*MESH_VERTEX	8	13.6505	13.6505	32.0000
    		*MESH_VERTEX	9	50.3495	13.6505	32.0000
    		*MESH_VERTEX 10	50.3495	50.3495	32.0000
    		*MESH_VERTEX 11	13.6505	50.3495	32.0000
    	}
    	*MESH_FACE_LIST {
    		*MESH_FACE	0:	A:	0 B:	2 C:	3 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 2 	*MESH_MTLID 1
    		*MESH_FACE	1:	A:	3 B:	1 C:	0 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 2 	*MESH_MTLID 1
    		*MESH_FACE	2:	A:	8 B:	9 C: 10 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 3 	*MESH_MTLID 1
    		*MESH_FACE	3:	A: 10 B: 11 C:	8 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 3 	*MESH_MTLID 1
    		*MESH_FACE	4:	A:	0 B:	1 C:	5 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 4 	*MESH_MTLID 1
    		*MESH_FACE	5:	A:	5 B:	4 C:	0 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 4 	*MESH_MTLID 1
    		*MESH_FACE	6:	A:	1 B:	3 C:	7 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 5 	*MESH_MTLID 1
    		*MESH_FACE	7:	A:	7 B:	5 C:	1 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 5 	*MESH_MTLID 1
    		*MESH_FACE	8:	A:	3 B:	2 C:	6 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 6 	*MESH_MTLID 1
    		*MESH_FACE	9:	A:	6 B:	7 C:	3 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 6 	*MESH_MTLID 1
    		*MESH_FACE 10:	A:	2 B:	0 C:	4 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 7 	*MESH_MTLID 1
    		*MESH_FACE 11:	A:	4 B:	6 C:	2 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 7 	*MESH_MTLID 1
    	}
    	*MESH_NUMTVERTEX 24
    	*MESH_TVERTLIST {
    		*MESH_TVERT 0	0.9995	0.0005	0.0005
    		*MESH_TVERT 1	0.9995	0.9995	0.0005
    		*MESH_TVERT 2	0.0005	0.9995	0.0005
    		*MESH_TVERT 3	0.0005	0.0005	0.0005
    		*MESH_TVERT 4	0.0005	0.0005	0.9995
    		*MESH_TVERT 5	0.9995	0.0005	0.9995
    		*MESH_TVERT 6	0.9995	0.9995	0.9995
    		*MESH_TVERT 7	0.0005	0.9995	0.9995
    		*MESH_TVERT 8	0.0005	0.0005	0.9995
    		*MESH_TVERT 9	0.9995	0.0005	0.9995
    		*MESH_TVERT 10	0.9995	0.9995	0.9995
    		*MESH_TVERT 11	0.0005	0.9995	0.9995
    		*MESH_TVERT 12	0.0005	0.0005	0.0005
    		*MESH_TVERT 13	0.9995	0.0005	0.0005
    		*MESH_TVERT 14	0.9995	0.9995	0.0005
    		*MESH_TVERT 15	0.0005	0.9995	0.0005
    		*MESH_TVERT 16	0.0050	0.0005	1.0000
    		*MESH_TVERT 17	9.9950	0.0005	0.0000
    		*MESH_TVERT 18	9.9950	0.9995	0.0000
    		*MESH_TVERT 19	0.0050	0.9995	1.0000
    		*MESH_TVERT 20	0.2136	0.2136	0.5000
    		*MESH_TVERT 21	0.7864	0.2136	0.5000
    		*MESH_TVERT 22	0.7864	0.7864	0.5000
    		*MESH_TVERT 23	0.2136	0.7864	0.5000
    	}
    	*MESH_NUMTVFACES 12
    	*MESH_TFACELIST {
    		*MESH_TFACE 0	0	1	2
    		*MESH_TFACE 1	2	3	0
    		*MESH_TFACE 2	20	21	22
    		*MESH_TFACE 3	22	23	20
    		*MESH_TFACE 4	16	17	18
    		*MESH_TFACE 5	18	19	16
    		*MESH_TFACE 6	4	5	6
    		*MESH_TFACE 7	6	7	4
    		*MESH_TFACE 8	8	9	10
    		*MESH_TFACE 9	10	11	8
    		*MESH_TFACE 10	12	13	14
    		*MESH_TFACE 11	14	15	12
    	}
    	*MESH_NUMCVERTEX 0
    	*MESH_NORMALS {
    		*MESH_FACENORMAL 0	0.0000	0.0000	-1.0000
    			*MESH_VERTEXNORMAL 0	0.0000	0.0000	-1.0000
    			*MESH_VERTEXNORMAL 2	0.0000	0.0000	-1.0000
    			*MESH_VERTEXNORMAL 3	0.0000	0.0000	-1.0000
    		*MESH_FACENORMAL 1	0.0000	0.0000	-1.0000
    			*MESH_VERTEXNORMAL 3	0.0000	0.0000	-1.0000
    			*MESH_VERTEXNORMAL 1	0.0000	0.0000	-1.0000
    			*MESH_VERTEXNORMAL 0	0.0000	0.0000	-1.0000
    		*MESH_FACENORMAL 2	0.0000	-0.0000	1.0000
    			*MESH_VERTEXNORMAL 8	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 9	0.0000	-0.0000	1.0000
    			*MESH_VERTEXNORMAL 10	0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 3	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 10	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 11	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 8	0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 4	0.0000	-1.0000	0.0000
    			*MESH_VERTEXNORMAL 0	0.0000	-1.0000	0.0000
    			*MESH_VERTEXNORMAL 1	0.0000	-1.0000	0.0000
    			*MESH_VERTEXNORMAL 5	0.0000	-1.0000	0.0000
    		*MESH_FACENORMAL 5	0.0000	-1.0000	0.0000
    			*MESH_VERTEXNORMAL 5	0.0000	-1.0000	0.0000
    			*MESH_VERTEXNORMAL 4	0.0000	-1.0000	0.0000
    			*MESH_VERTEXNORMAL 0	0.0000	-1.0000	0.0000
    		*MESH_FACENORMAL 6	1.0000	0.0000	-0.0000
    			*MESH_VERTEXNORMAL 1	1.0000	0.0000	0.0000
    			*MESH_VERTEXNORMAL 3	1.0000	0.0000	-0.0000
    			*MESH_VERTEXNORMAL 7	1.0000	0.0000	0.0000
    		*MESH_FACENORMAL 7	1.0000	-0.0000	0.0000
    			*MESH_VERTEXNORMAL 7	1.0000	0.0000	0.0000
    			*MESH_VERTEXNORMAL 5	1.0000	-0.0000	0.0000
    			*MESH_VERTEXNORMAL 1	1.0000	0.0000	0.0000
    		*MESH_FACENORMAL 8	0.0000	1.0000	0.0000
    			*MESH_VERTEXNORMAL 3	0.0000	1.0000	0.0000
    			*MESH_VERTEXNORMAL 2	0.0000	1.0000	0.0000
    			*MESH_VERTEXNORMAL 6	0.0000	1.0000	0.0000
    		*MESH_FACENORMAL 9	0.0000	1.0000	0.0000
    			*MESH_VERTEXNORMAL 6	0.0000	1.0000	0.0000
    			*MESH_VERTEXNORMAL 7	0.0000	1.0000	0.0000
    			*MESH_VERTEXNORMAL 3	0.0000	1.0000	0.0000
    		*MESH_FACENORMAL 10	-1.0000	0.0000	0.0000
    			*MESH_VERTEXNORMAL 2	-1.0000	0.0000	0.0000
    			*MESH_VERTEXNORMAL 0	-1.0000	0.0000	0.0000
    			*MESH_VERTEXNORMAL 4	-1.0000	0.0000	0.0000
    		*MESH_FACENORMAL 11	-1.0000	-0.0000	-0.0000
    			*MESH_VERTEXNORMAL 4	-1.0000	0.0000	0.0000
    			*MESH_VERTEXNORMAL 6	-1.0000	-0.0000	-0.0000
    			*MESH_VERTEXNORMAL 2	-1.0000	0.0000	0.0000
    	}
    }
    *PROP_MOTIONBLUR 0
    *PROP_CASTSHADOW 1
    *PROP_RECVSHADOW 1
    *MATERIAL_REF 1
    }
    *GEOMOBJECT {
    *NODE_NAME "Object01"
    *NODE_TM {
    	*NODE_NAME "Object01"
    	*INHERIT_POS 0 0 0
    	*INHERIT_ROT 0 0 0
    	*INHERIT_SCL 0 0 0
    	*TM_ROW0 1.0000	0.0000	0.0000
    	*TM_ROW1 0.0000	1.0000	0.0000
    	*TM_ROW2 0.0000	0.0000	1.0000
    	*TM_ROW3 32.0000	32.0000	0.0000
    	*TM_POS 32.0000	32.0000	0.0000
    	*TM_ROTAXIS 0.0000	0.0000	0.0000
    	*TM_ROTANGLE 0.0000
    	*TM_SCALE 1.0000	1.0000	1.0000
    	*TM_SCALEAXIS 0.0000	0.0000	0.0000
    	*TM_SCALEAXISANG 0.0000
    }
    *MESH {
    	*TIMEVALUE 0
    	*MESH_NUMVERTEX 8
    	*MESH_NUMFACES 8
    	*MESH_VERTEX_LIST {
    		*MESH_VERTEX	0	0.0000	0.0000	32.0000
    		*MESH_VERTEX	1	64.0000	0.0000	32.0000
    		*MESH_VERTEX	2	0.0000	64.0000	32.0000
    		*MESH_VERTEX	3	64.0000	64.0000	32.0000
    		*MESH_VERTEX	4	13.6505	13.6505	32.0000
    		*MESH_VERTEX	5	50.3495	13.6505	32.0000
    		*MESH_VERTEX	6	50.3495	50.3495	32.0000
    		*MESH_VERTEX	7	13.6505	50.3495	32.0000
    	}
    	*MESH_FACE_LIST {
    		*MESH_FACE	0:	A:	0 B:	1 C:	5 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	1:	A:	5 B:	4 C:	0 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	2:	A:	1 B:	3 C:	6 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	3:	A:	6 B:	5 C:	1 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	4:	A:	3 B:	2 C:	7 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	5:	A:	7 B:	6 C:	3 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	6:	A:	2 B:	0 C:	4 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    		*MESH_FACE	7:	A:	4 B:	7 C:	2 AB:	1 BC:	1 CA:	0 *MESH_SMOOTHING 	*MESH_MTLID 0
    	}
    	*MESH_NUMTVERTEX 8
    	*MESH_TVERTLIST {
    		*MESH_TVERT 0	0.0005	0.0005	0.5000
    		*MESH_TVERT 1	0.9995	0.0005	0.5000
    		*MESH_TVERT 2	0.0005	0.9995	0.5000
    		*MESH_TVERT 3	0.9995	0.9995	0.5000
    		*MESH_TVERT 4	0.2136	0.2136	0.5000
    		*MESH_TVERT 5	0.7864	0.2136	0.5000
    		*MESH_TVERT 6	0.7864	0.7864	0.5000
    		*MESH_TVERT 7	0.2136	0.7864	0.5000
    	}
    	*MESH_NUMTVFACES 8
    	*MESH_TFACELIST {
    		*MESH_TFACE 0	0	1	5
    		*MESH_TFACE 1	5	4	0
    		*MESH_TFACE 2	1	3	6
    		*MESH_TFACE 3	6	5	1
    		*MESH_TFACE 4	3	2	7
    		*MESH_TFACE 5	7	6	3
    		*MESH_TFACE 6	2	0	4
    		*MESH_TFACE 7	4	7	2
    	}
    	*MESH_NUMCVERTEX 0
    	*MESH_NORMALS {
    		*MESH_FACENORMAL 0	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 0	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 1	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 5	0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 1	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 5	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 4	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 0	-0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 2	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 1	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 3	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 6	0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 3	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 6	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 5	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 1	-0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 4	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 3	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 2	-0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 7	-0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 5	0.0000	-0.0000	1.0000
    			*MESH_VERTEXNORMAL 7	0.0000	-0.0000	1.0000
    			*MESH_VERTEXNORMAL 6	0.0000	-0.0000	1.0000
    			*MESH_VERTEXNORMAL 3	0.0000	-0.0000	1.0000
    		*MESH_FACENORMAL 6	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 2	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 0	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 4	0.0000	0.0000	1.0000
    		*MESH_FACENORMAL 7	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 4	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 7	0.0000	0.0000	1.0000
    			*MESH_VERTEXNORMAL 2	0.0000	0.0000	1.0000
    	}
    }
    *PROP_MOTIONBLUR 0
    *PROP_CASTSHADOW 1
    *PROP_RECVSHADOW 1
    *MATERIAL_REF 0
    }
    

  7. As Tels said, those columns are far too high-poly. You can only get away with stuff like that if it's not casting shadows or unlit.

     

    The racks should be done with textures if possible (or at least everything inside the outer frame like this - http://www.turbosqui....cfm/ID/220686), and the curve above the top-left/right windows seems too high-poly too.

     

    65 decal patches is excessive, so you'd want to make your own vine textures in the correct shape if possible. The vines in that first screen could be done with nearer 6 patches this way.

     

    Save a new map and try deleting all that to see if it makes a difference.

  8. Having some performance issues.

     

    If you walk around the outside you'll notice it slows to 4fps when setpping near windows. I think there may be too many visportals or something.

     

    021.map has more visportals outdoor, but used to run flawlessly.

    022.map has a few deleted outdoor and still runs badly.

     

    The only performance issues are outdoor. You take one step and the FPS drop is insane. With "r_showtris 3" it's not drawing any more than it was before.

     

    EDIT: DISABLE CATALYST AI IN YOUR ATI CONTROL CENTRE.

     

    Keywords for search - fps, drop, fall, low, stutter, choppy, slow, frames per second, invisible line, ATI, radeon, hd4850, HD, settings

  9. What bothers me about most game maps, but Thief(ish) ones in particular is that there are tons of doors and windows, but only a few are actually usable. Ideally we should be able to make maps where all doors and windows are explorable

    Another issue that I'm finding with my map is that if every door is useable then the mission can become a little bit easy.

     

    Although, maybe it's just because I made the map and know the layout.

  10. I had something like this when trying to package my mission and failing to do it properly.

     

    Try manually extracting the .pk4 (it's a .zip renamed). Look at the other missions in the Doom3 and Doom 3\darkmod\fms folders for the correct layout.

  11. I fixed it eventually.

     

    67233984.jpg

     

    I went with 1 portal for every two windows, but that didn't affect performance much.

     

    The issue was the outdoor portal - I originally had it inline with the windows/doors on the bottom-right of the screenshot. I moved it upwards so that it was against the wall instead of the corner wood.

     

    When I stood outside inline with those portals before I got 1 FPS and it drew the stairs inside the building, but now I get 60.

  12. I'm having some performance issues with my Visportals. Sometimes I'll pass through one and the game will hang.

     

    I know that if you stand on the line of a visportal with "r_showtris 2" you can see that it draws more geometry than the visportal would normally allow. So when you run through the portal, for a split second it'll throw a bunch of geometry at your computer then it'll disappear. I'm guessing that's normal?

     

    Also there are a few windows in the building each with a visportal + outdoor visportal meaning you're sometimes in a position where several visportals are overlapping. Is this massively bad?

     

    And if four windows are aligned would one visportal over all four be better than four seperate portals? EDIT - this works.

     

    When I pass through one of these windows into an empty room with no doors the game hangs every time. EDIT - I added more portals in the area that loaded when being in-line with the portal and it seems to have worked.

×
×
  • Create New...