Mapping
Un article de Vev.
Version du 22 février 2007 à 15:11 Vev (Discuter | contribs) (→rankin) ← Différence précédente |
Version actuelle Vev (Discuter | contribs) (→liens) |
||
Ligne 1: | Ligne 1: | ||
{{Vev:Sommaire des Gay Star}} | {{Vev:Sommaire des Gay Star}} | ||
+ | |||
+ | |||
+ | == liens == | ||
*http://www.unreal.fr/tutoriaux.php?tutorial=8 | *http://www.unreal.fr/tutoriaux.php?tutorial=8 | ||
*[http://www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0] | *[http://www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0] | ||
*[http://fichiers.unreal.fr/unrealfr/tutoriaux/maps/gko_tuto.zip editeur de terrain] | *[http://fichiers.unreal.fr/unrealfr/tutoriaux/maps/gko_tuto.zip editeur de terrain] | ||
- | + | *[http://www.piwiki.net/index.php/Cat%C3%A9gorie:UT2004 wiki pmods] | |
- | + | *'''(en)''' [http://udn.epicgames.com/Main/WebHome.html epic udn] | |
+ | **http://udn.epicgames.com/Two/ActorVariables.html | ||
+ | **http://udn.epicgames.com/Two/MoversTutorial.html | ||
Unreal Design | Unreal Design | ||
Ligne 50: | Ligne 55: | ||
(US) - Very good mapper and alot of excellent mapping tutorials. | (US) - Very good mapper and alot of excellent mapping tutorials. | ||
+ | |||
+ | '''[http://ysav.free.fr/map/vev/Maps/ mes maps]''' | ||
+ | |||
+ | |||
+ | == création d'une map == | ||
+ | |||
+ | U.fr : Pouvez-vous expliquer en quelques mots le processus de création d'une map chez Epic Games? Du concept art jusqu'à la version finale, combien de personnes ont travaillé dessus? | ||
+ | |||
+ | D.E. : Tout démarre avec une idée de gameplay général d'un Gameplay Level Designer. La map est ensuite esquissée (construites avec des formes géométriques simples, des BSP et très peu de static meshes) et subit les premiers tests de jeu. Beaucoup de changements de gameplay apparaissent à cette étape, si bien que quelquefois même l'idée initiale de gameplay qui avait lancé la création de la map est abandonnée ou transformée. A ce moment, la map ressemble plutôt aux cartes d'UT99 avec une mauvaise lumière. Une fois que l'équipe chargée du gameplay sent qu'on tient quelque chose, des screenshots sont envoyés à un Concept Artist. Il réalise un habillement général de la carte, lui donne un thème visuel et toute la cohérence pour aller de l'avant. Ensuite c'est au tour du Level Artist de s'immiscer dans le processus, tout simplement pour rendre l'ensemble beau! Ils vont réaliser les mesh et l'éclairage du niveau sur le modèle des concepts arts. Ils sont constamment en relation avec les testeurs du jeu pour s'assurer qu'aucun élément du gameplay n'a été sacrifié. Une fois cela terminé, il revient au Gameplay Level Designer d'effectuer le travail de collision et de rendre la map jouable. S'en suit des tests de jeu supplémentaires. La dernière étape est une phase de "livraison" où les collisions sont peaufinés sur tout le niveau, l'IA est complètement implémentée, les bugs sont traqués, etc. En général, le plus gros travail d'une map est effectué par deux designers, quelquefois un troisième ou quatrième viendra amener son aide pour tenir les délais. | ||
+ | |||
+ | == projets == | ||
+ | *[http://herveleblouch.free.fr/vev/index.php?title=Refuge_des_Gay_Star_octobre_2006#mirage une map a illusions] | ||
== code d objets == | == code d objets == | ||
+ | ===weapon & ammo / object=== | ||
+ | |||
+ | link gum | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=NewWeaponBase Name=NewWeaponBase13 | ||
+ | WeaponType=Class'XWeapons.LinkGun' | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot293' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=389,ZoneNumber=2) | ||
+ | Tag="NewWeaponBase" | ||
+ | Group="None,blue" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=338.498047,Y=850.771484,Z=-444.628601) | ||
+ | Rotation=(Yaw=106488) | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1643' | ||
+ | Skins(0)=None | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=LinkAmmoPickup Name=LinkAmmoPickup2 | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot294' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=389,ZoneNumber=2) | ||
+ | Tag="LinkAmmoPickup" | ||
+ | Group="None,blue" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=279.039063,Y=877.145752,Z=-438.000000) | ||
+ | Rotation=(Yaw=106816) | ||
+ | ColLocation=(X=279.039063,Y=877.145752,Z=-438.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=LinkAmmoPickup Name=LinkAmmoPickup3 | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot295' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=389,ZoneNumber=2) | ||
+ | Tag="LinkAmmoPickup" | ||
+ | Group="None,blue" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=372.441895,Y=796.503052,Z=-438.000000) | ||
+ | Rotation=(Yaw=96768) | ||
+ | ColLocation=(X=372.441895,Y=796.503052,Z=-438.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | shock riffle | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=NewWeaponBase Name=NewWeaponBase9 | ||
+ | WeaponType=Class'XWeapons.ShockRifle' | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot276' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=35,ZoneNumber=1) | ||
+ | Tag="NewWeaponBase" | ||
+ | Group="None,blue" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=-1791.915283,Y=-127.645996,Z=-204.693649) | ||
+ | Rotation=(Yaw=82056) | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1633' | ||
+ | Skins(0)=None | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=ShockAmmoPickup Name=ShockAmmoPickup4 | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot277' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=35,ZoneNumber=1) | ||
+ | Tag="ShockAmmoPickup" | ||
+ | Group="None,blue" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=-1717.972900,Y=-125.044312,Z=-175.877045) | ||
+ | Rotation=(Yaw=49040) | ||
+ | ColLocation=(X=-1717.972900,Y=-125.044312,Z=-175.877045) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=ShockAmmoPickup Name=ShockAmmoPickup5 | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot279' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=35,ZoneNumber=1) | ||
+ | Tag="ShockAmmoPickup" | ||
+ | Group="None,blue" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=-1864.605713,Y=-126.518921,Z=-175.877045) | ||
+ | Rotation=(Yaw=49040) | ||
+ | ColLocation=(X=-1864.605713,Y=-126.518921,Z=-175.877045) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | blue flag | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=xBlueFlagBase Name=xBlueFlagBase0 | ||
+ | bPathsChanged=True | ||
+ | Base=LevelInfo'myLevel.LevelInfo0' | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=213,ZoneNumber=1) | ||
+ | Tag="xBlueFlagBase" | ||
+ | Location=(X=-647.925354,Y=1578.322632,Z=87.137138) | ||
+ | Rotation=(Yaw=14168) | ||
+ | ColLocation=(X=-647.925354,Y=1578.322632,Z=87.137138) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | double damage | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=UDamageCharger Name=UDamageCharger0 | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot314' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=414,ZoneNumber=9) | ||
+ | Tag="UDamageCharger" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=3455.994141,Y=1657.711060,Z=-637.000000) | ||
+ | Rotation=(Yaw=224) | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1829' | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | shield | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=ShieldCharger Name=ShieldCharger1 | ||
+ | myMarker=InventorySpot'myLevel.InventorySpot306' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=406,ZoneNumber=9) | ||
+ | Tag="ShieldCharger" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=3199.623535,Y=-261.523010,Z=196.000000) | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1827' | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
===rankin=== | ===rankin=== | ||
+ | |||
+ | http://www.dogsbody.org/ut2k/maps/dm-rankin-fe.gif | ||
+ | |||
la planche de pour dodger | la planche de pour dodger | ||
<pre> | <pre> | ||
Ligne 185: | Ligne 355: | ||
</pre> | </pre> | ||
- | flaque d eau et son trigger | + | roue (mover) (RotationRate pour faire tourner) |
<pre> | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=Mover Name=Mover1 | ||
+ | bDynamicLightMover=True | ||
+ | BasePos=(X=-2321.359375,Y=-1556.498535,Z=-83.131165) | ||
+ | BaseRot=(Yaw=32768) | ||
+ | bNoAIRelevance=True | ||
+ | DrawType=DT_StaticMesh | ||
+ | StaticMesh=StaticMesh'myLevel.houremachinewheelFF' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=6,ZoneNumber=1) | ||
+ | Tag="Mover" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=-2321.359375,Y=-1556.498535,Z=-83.131165) | ||
+ | Rotation=(Yaw=32768) | ||
+ | DrawScale3D=(X=1.500000,Y=1.500000,Z=1.500000) | ||
+ | SoundVolume=136 | ||
+ | bCollideActors=False | ||
+ | bBlockActors=False | ||
+ | bBlockZeroExtentTraces=False | ||
+ | bBlockNonZeroExtentTraces=False | ||
+ | bFixedRotationDir=True | ||
+ | RotationRate=(Roll=5000) | ||
+ | ColLocation=(X=720.000000,Y=1024.000000,Z=-528.000000) | ||
+ | bSelected=True | ||
+ | bPathColliding=False | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
</pre> | </pre> | ||
+ | |||
+ | rosace(mover) | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=Mover Name=Mover0 | ||
+ | KeyRot(1)=(Yaw=58932) | ||
+ | BasePos=(X=-1211.000000,Y=-2019.000000,Z=662.000000) | ||
+ | BaseRot=(Yaw=-23124) | ||
+ | DrawType=DT_StaticMesh | ||
+ | StaticMesh=StaticMesh'myLevel.rosacetable' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=6,ZoneNumber=1) | ||
+ | Tag="Mover" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=-2321.359375,Y=-1556.498535,Z=-83.131165) | ||
+ | Rotation=(Yaw=32768) | ||
+ | DrawScale3D=(X=1.500000,Y=1.500000,Z=1.500000) | ||
+ | SoundVolume=136 | ||
+ | bCollideActors=False | ||
+ | bBlockActors=False | ||
+ | bBlockZeroExtentTraces=False | ||
+ | bBlockNonZeroExtentTraces=False | ||
+ | bFixedRotationDir=True | ||
+ | RotationRate=(Roll=5000) | ||
+ | ColLocation=(X=720.000000,Y=1024.000000,Z=-528.000000) | ||
+ | bSelected=True | ||
+ | bPathColliding=False | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | ===campgrounds=== | ||
+ | |||
+ | http://www.dogsbody.org/ut2k/maps/dm-campgrounds2004-g1e.gif | ||
+ | |||
+ | jumpad complet | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=UTJumppad Name=UTJumppad1 | ||
+ | JumpVelocity=(X=-178.472183,Y=-66.348160,Z=1150.749390) | ||
+ | JumpTarget=PathNode'myLevel.PathNode0' | ||
+ | JumpSound=Sound'2K4MenuSounds.Generic.msfxDown' | ||
+ | bPathsChanged=True | ||
+ | PathList(0)=ReachSpec'myLevel.ReachSpec21' | ||
+ | ForcedPaths(0)="PathNode0" | ||
+ | nextNavigationPoint=PlayerStart'myLevel.PlayerStart3' | ||
+ | Base=LevelInfo'myLevel.LevelInfo0' | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) | ||
+ | Tag="UTJumppad" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=502.083954,Y=382.835938,Z=47.000000) | ||
+ | ColLocation=(X=502.083954,Y=382.835938,Z=47.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=PathNode Name=PathNode0 | ||
+ | bPathsChanged=True | ||
+ | nextNavigationPoint=UTJumppad'myLevel.UTJumppad1' | ||
+ | Base=LevelInfo'myLevel.LevelInfo0' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=1,ZoneNumber=1) | ||
+ | Tag="PathNode" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=174.529343,Y=263.065430,Z=559.000061) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=Emitter Name=Emitter26 | ||
+ | Begin Object Class=SpriteEmitter Name=SpriteEmitter52 | ||
+ | UseDirectionAs=PTDU_Normal | ||
+ | UseColorScale=True | ||
+ | FadeOut=True | ||
+ | FadeIn=True | ||
+ | Acceleration=(Z=50.000000) | ||
+ | ColorScale(0)=(Color=(G=162,R=185,A=255)) | ||
+ | ColorScale(1)=(RelativeTime=1.000000,Color=(B=92,G=44,R=69,A=50)) | ||
+ | FadeOutStartTime=0.800000 | ||
+ | FadeInEndTime=0.100000 | ||
+ | MaxParticles=5 | ||
+ | StartSizeRange=(X=(Min=35.000000,Max=35.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=40.000000,Max=40.000000)) | ||
+ | Texture=Texture'EpicParticles.JumpPad.GridPlate' | ||
+ | LifetimeRange=(Min=1.400000,Max=1.400000) | ||
+ | WarmupTicksPerSecond=2.000000 | ||
+ | RelativeWarmupTime=2.000000 | ||
+ | End Object | ||
+ | Emitters(0)=SpriteEmitter'myLevel.SpriteEmitter52' | ||
+ | |||
+ | Begin Object Class=SpriteEmitter Name=SpriteEmitter53 | ||
+ | UseDirectionAs=PTDU_Right | ||
+ | UseColorScale=True | ||
+ | FadeOut=True | ||
+ | FadeIn=True | ||
+ | Acceleration=(Z=80.000000) | ||
+ | ColorScale(0)=(Color=(B=27,G=95,R=124)) | ||
+ | ColorScale(1)=(RelativeTime=1.000000,Color=(B=82,G=123,R=169)) | ||
+ | FadeOutStartTime=0.750000 | ||
+ | FadeInEndTime=0.200000 | ||
+ | MaxParticles=100 | ||
+ | StartLocationRange=(X=(Min=-30.000000,Max=30.000000),Y=(Min=-24.000000,Max=24.000000)) | ||
+ | StartSpinRange=(X=(Min=-0.250000,Max=-0.250000)) | ||
+ | StartSizeRange=(X=(Min=6.000000,Max=6.000000),Y=(Min=4.000000,Max=4.000000)) | ||
+ | Texture=Texture'EpicParticles.Beams.WhiteStreak01aw' | ||
+ | LifetimeRange=(Min=1.250000,Max=1.500000) | ||
+ | StartVelocityRange=(Z=(Max=20.000000)) | ||
+ | WarmupTicksPerSecond=2.000000 | ||
+ | RelativeWarmupTime=2.000000 | ||
+ | End Object | ||
+ | Emitters(1)=SpriteEmitter'myLevel.SpriteEmitter53' | ||
+ | |||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) | ||
+ | Tag="Emitter" | ||
+ | Group="None,PadEmitters" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=497.287262,Y=390.518555,Z=16.832764) | ||
+ | Rotation=(Yaw=-18432) | ||
+ | CollisionRadius=16.500000 | ||
+ | CollisionHeight=16.500000 | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=Light Name=Light52 | ||
+ | LightHue=42 | ||
+ | LightSaturation=127 | ||
+ | LightBrightness=48.000000 | ||
+ | LightRadius=48.000000 | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) | ||
+ | Tag="Light" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=497.761139,Y=388.652344,Z=62.454590) | ||
+ | Rotation=(Yaw=-16384) | ||
+ | CollisionRadius=18.000000 | ||
+ | CollisionHeight=18.000000 | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=StaticMeshActor Name=StaticMeshActor167 | ||
+ | StaticMesh=StaticMesh'XGame_rc.AmmoChargerMesh' | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) | ||
+ | Tag="StaticMeshActor" | ||
+ | Group="None,TopBuilding" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' | ||
+ | Location=(X=497.981720,Y=390.366211,Z=5.545410) | ||
+ | bBlockNonZeroExtentTraces=False | ||
+ | ColLocation=(X=497.981720,Y=390.366211,Z=5.545410) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | ===CTF gaystar=== | ||
+ | |||
+ | albatross | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=StaticMeshActor Name=StaticMeshActor0 | ||
+ | StaticMesh=StaticMesh'Albatross_architecture.Deco.Alb_albatross' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=903,ZoneNumber=16) | ||
+ | Tag="StaticMeshActor" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=5072.000000,Y=1663.647949,Z=-128.000000) | ||
+ | Rotation=(Yaw=16384) | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance381' | ||
+ | DrawScale3D=(X=2.000000,Y=2.000000,Z=2.000000) | ||
+ | Skins(0)=Texture'myLevel.Lila' | ||
+ | AmbientGlow=33 | ||
+ | ColLocation=(X=5072.000000,Y=1663.647949,Z=-128.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | lampe a l huile plus light | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=Light Name=Light87 | ||
+ | LightHue=29 | ||
+ | LightSaturation=114 | ||
+ | LightBrightness=128.000000 | ||
+ | LightRadius=32.000000 | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=871,ZoneNumber=13) | ||
+ | Tag="Light" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=6590.176758,Y=1860.076538,Z=-213.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=Emitter Name=Emitter9 | ||
+ | Begin Object Class=SpriteEmitter Name=SpriteEmitter9 | ||
+ | FadeOut=True | ||
+ | FadeIn=True | ||
+ | UniformSize=True | ||
+ | FadeOutStartTime=0.400000 | ||
+ | FadeInEndTime=0.100000 | ||
+ | StartLocationRange=(X=(Min=-5.000000,Max=5.000000),Y=(Min=-5.000000,Max=5.000000)) | ||
+ | StartSizeRange=(X=(Min=5.000000,Max=10.000000),Y=(Min=5.000000,Max=10.000000)) | ||
+ | Texture=Texture'SC_Volcano_T.Particles.SC_Flame1_T' | ||
+ | LifetimeRange=(Min=2.000000,Max=2.000000) | ||
+ | StartVelocityRange=(Z=(Min=20.000000,Max=20.000000)) | ||
+ | End Object | ||
+ | Emitters(0)=SpriteEmitter'myLevel.SpriteEmitter9' | ||
+ | |||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=871,ZoneNumber=13) | ||
+ | Tag="Emitter" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=6591.529785,Y=1907.977295,Z=-219.000000) | ||
+ | Rotation=(Yaw=32768) | ||
+ | SoundVolume=76 | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=StaticMeshActor Name=StaticMeshActor123 | ||
+ | StaticMesh=StaticMesh'AnubisStatic.All.EgyptSconce' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=871,ZoneNumber=13) | ||
+ | Tag="StaticMeshActor" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' | ||
+ | Location=(X=6592.000488,Y=1911.999634,Z=-232.000000) | ||
+ | Rotation=(Yaw=65536) | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance505' | ||
+ | DrawScale3D=(X=0.500000,Y=0.500000,Z=0.500000) | ||
+ | ColLocation=(X=6592.000488,Y=1911.999634,Z=-232.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | ==crypt of fook== | ||
+ | |||
+ | ascenceur | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Actor Class=Mover Name=Mover1 | ||
+ | MoveTime=0.650000 | ||
+ | StayOpenTime=1.000000 | ||
+ | MoveAmbientSound=Sound'AssaultSounds.HumanShip.HnShipFire01' | ||
+ | KeyPos(1)=(Z=496.000000) | ||
+ | BasePos=(X=-1168.000000,Y=-1232.000000,Z=-800.000000) | ||
+ | SavedPos=(X=-12345.000000,Y=-12345.000000,Z=-12345.000000) | ||
+ | SavedRot=(Pitch=123,Yaw=456,Roll=789) | ||
+ | myMarker=LiftCenter'myLevel.LiftCenter1' | ||
+ | DrawType=DT_StaticMesh | ||
+ | StaticMesh=StaticMesh'myLevel.Fahrstuhl' | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=373,ZoneNumber=1) | ||
+ | Tag="Mover3" | ||
+ | InitialState="StandOpenTimed" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' | ||
+ | Location=(X=-1168.000000,Y=-1232.000000,Z=-800.000000) | ||
+ | Attached(0)=LiftCenter'myLevel.LiftCenter1' | ||
+ | Attached(1)=LiftCenter'myLevel.LiftCenter0' | ||
+ | StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance234' | ||
+ | Skins(0)=Texture'BarrensArchitecture.Base.Obsidian' | ||
+ | Skins(1)=Texture'BarrensArchitecture.Base.Obsidian' | ||
+ | Skins(2)=Texture'BarrensArchitecture.Base.Obsidian' | ||
+ | ColLocation=(X=-1168.000000,Y=-1232.000000,Z=-800.000000) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=LiftCenter Name=LiftCenter1 | ||
+ | LiftTag="Mover3" | ||
+ | MyLift=Mover'myLevel.Mover1' | ||
+ | LiftOffset=(X=-110.366943,Y=145.238281,Z=-161.000000) | ||
+ | bPathsChanged=True | ||
+ | PathList(0)=ReachSpec'myLevel.ReachSpec2125' | ||
+ | PathList(1)=ReachSpec'myLevel.ReachSpec2127' | ||
+ | nextNavigationPoint=LiftCenter'myLevel.LiftCenter5' | ||
+ | Base=Mover'myLevel.Mover1' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=349,ZoneNumber=3) | ||
+ | Tag="LiftCenter" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' | ||
+ | Location=(X=-1278.366943,Y=-1086.761719,Z=-961.000000) | ||
+ | Rotation=(Yaw=16640) | ||
+ | RelativeLocation=(X=-110.366943,Y=145.238281,Z=-180.000000) | ||
+ | RelativeRotation=(Yaw=16640) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=LiftExit Name=LiftExit1 | ||
+ | LiftTag="Mover3" | ||
+ | MyLift=Mover'myLevel.Mover1' | ||
+ | SuggestedKeyFrame=0 | ||
+ | bPathsChanged=True | ||
+ | PathList(0)=ReachSpec'myLevel.ReachSpec2115' | ||
+ | PathList(1)=ReachSpec'myLevel.ReachSpec2122' | ||
+ | PathList(2)=ReachSpec'myLevel.ReachSpec2113' | ||
+ | PathList(3)=ReachSpec'myLevel.ReachSpec2092' | ||
+ | PathList(4)=ReachSpec'myLevel.ReachSpec2112' | ||
+ | PathList(5)=ReachSpec'myLevel.ReachSpec2118' | ||
+ | PathList(6)=ReachSpec'myLevel.ReachSpec2126' | ||
+ | nextNavigationPoint=LiftCenter'myLevel.LiftCenter1' | ||
+ | Base=LevelInfo'myLevel.LevelInfo0' | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=373,ZoneNumber=1) | ||
+ | Tag="LiftExit" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' | ||
+ | Location=(X=-1272.846558,Y=-1201.158081,Z=-977.000000) | ||
+ | Rotation=(Yaw=16640) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=LiftExit Name=LiftExit0 | ||
+ | LiftTag="Mover3" | ||
+ | MyLift=Mover'myLevel.Mover1' | ||
+ | SuggestedKeyFrame=1 | ||
+ | KeyFrame=1 | ||
+ | bPathsChanged=True | ||
+ | PathList(0)=ReachSpec'myLevel.ReachSpec2097' | ||
+ | PathList(1)=ReachSpec'myLevel.ReachSpec2109' | ||
+ | PathList(2)=ReachSpec'myLevel.ReachSpec2098' | ||
+ | PathList(3)=ReachSpec'myLevel.ReachSpec2094' | ||
+ | PathList(4)=ReachSpec'myLevel.ReachSpec2102' | ||
+ | PathList(5)=ReachSpec'myLevel.ReachSpec2100' | ||
+ | PathList(6)=ReachSpec'myLevel.ReachSpec2099' | ||
+ | PathList(7)=ReachSpec'myLevel.ReachSpec2128' | ||
+ | nextNavigationPoint=LiftExit'myLevel.LiftExit1' | ||
+ | Base=LevelInfo'myLevel.LevelInfo0' | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=289,ZoneNumber=3) | ||
+ | Tag="LiftExit" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' | ||
+ | Location=(X=-1282.756348,Y=-979.142700,Z=-457.000000) | ||
+ | Rotation=(Yaw=16640) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Actor Class=LiftCenter Name=LiftCenter0 | ||
+ | LiftTag="Mover3" | ||
+ | MyLift=Mover'myLevel.Mover1' | ||
+ | LiftOffset=(X=-113.647705,Y=153.593384,Z=358.764404) | ||
+ | bPathsChanged=True | ||
+ | PathList(0)=ReachSpec'myLevel.ReachSpec2091' | ||
+ | PathList(1)=ReachSpec'myLevel.ReachSpec2093' | ||
+ | nextNavigationPoint=LiftExit'myLevel.LiftExit0' | ||
+ | Base=Mover'myLevel.Mover1' | ||
+ | bLightChanged=True | ||
+ | Level=LevelInfo'myLevel.LevelInfo0' | ||
+ | Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=288,ZoneNumber=3) | ||
+ | Tag="LiftCenter" | ||
+ | PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' | ||
+ | Location=(X=-1280.647705,Y=-1078.406616,Z=-441.235596) | ||
+ | Rotation=(Yaw=16640) | ||
+ | RelativeLocation=(X=-110.830200,Y=153.593384,Z=325.042603) | ||
+ | RelativeRotation=(Yaw=16640) | ||
+ | bSelected=True | ||
+ | End Actor | ||
+ | Begin Surface | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | ==waisten-fix== | ||
+ | |||
+ | plexiglass (surface) | ||
+ | <pre> | ||
+ | Begin Map | ||
+ | Begin Surface | ||
+ | TEXTURE=myLevel.Glass.glassshader2 | ||
+ | BASE -02020.000000,+01272.000000,+00156.000000 | ||
+ | TEXTUREU -00000.707107,+00000.707107,+00000.000000 | ||
+ | TEXTUREV +00000.707107,+00000.707107,+00000.000000 | ||
+ | NORMAL +00000.000000,+00000.000000,-00001.000000 | ||
+ | POLYFLAGS=37749000 | ||
+ | End Surface | ||
+ | End Map | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | '''Level design''' or '''game mapping''' is the creation of [[level (computer and video games)|level]]s—locales, stages, or missions—for a [[video game]] (such as a [[console game]] or [[computer game]]). This is done using level design tools, special software usually developed just for the purpose of building levels. | ||
+ | |||
+ | Level design is a process used in the majority of video games in a variety of genres, such as [[platform game]]s, [[Computer puzzle game|puzzle games]], [[adventure game]]s, [[computer role-playing game]]s and even [[driving game]]s. Most of the coverage of the discipline in widely available media such as the [[Internet]] relates solely to level creation for [[first person shooter]] (FPS) or [[real time strategy]] (RTS) games. Only in the last ten years or so has the actual separation of labor occurred that has allowed the job of [[level designer]] to come into being, and in the last three or four years the job of level designer itself has often been subdivided into level artist, level designer and scripter. | ||
+ | |||
+ | [[Image:UnrealEd.jpg|thumb|240px|a FPS level editor]] | ||
+ | [[Image:MD Lemmings.png|thumb|240px|Level layout is crucial in puzzle games]] | ||
+ | [[Image:Metroidprimepinball-01.jpg|thumb|200px|Pinball games have tightly-packed entities and a death zone]] | ||
+ | [[Image:Doom Level.jpg|thumb|240px|Ammo and door entities in a FPS]] | ||
+ | [[Image:Red Alert level.jpg|thumb|240px|Cliffs, bridges, and water are important in RTS maps]] | ||
+ | [[Image:Zork screenshot.png|thumb|240px|Level design techniques are used for non-graphical games too]] | ||
+ | [[Image:The Secret of Monkey Island.PNG|thumb|240px|Storyline expressed through level layout in adventure games]] | ||
+ | |||
+ | == Process == | ||
+ | There are several steps involved in laying out a map, not necessarily performed in a specific linear order. Different [[computer and video game genres|game genres]] may have very different steps, according to the different game features available. General steps include: | ||
+ | |||
+ | * laying out the larger design of the map by sculpting out hills, rooms, tunnels, etc. for players and enemies to move around in | ||
+ | * specifying certain regions where specific activities or behaviors occur (resource harvesting, base building, water regions, etc) | ||
+ | * specifying other entities in the map (such as enemies, soldiers, monster spawn points, ladders, coins, resource nodes, ammo and health, weapons, save points, etc) | ||
+ | * specifying which part of levels move, locations of doors, keys/buttons and associated locked doors, teleporters, and hidden passageways | ||
+ | * specifying the start and exit locations for one or more players | ||
+ | * adding realism by filling in with details such as level-specific [[Texture mapping|graphic textures]], sounds, animation, lighting and music | ||
+ | * often advanced techniques are required, such as [[Scripting language|scripting]], where certain actions by the player trigger specified events | ||
+ | * the path that [[Mob (computer gaming)|non-player character]]s take as they walk around, the actions they will take in response to specific triggers, and any dialog they might have with the player | ||
+ | |||
+ | [[Cut scene]]s may be triggered by events in a level, but require distinctly different skills, and may be created by a different person or team. | ||
+ | |||
+ | ==History== | ||
+ | [[MUD]]s were one of the first type of games that required significant amounts of time to design areas. Often, promoted users were assigned to create new paths, new rooms, new equipment, and new actions, often using the game interface itself. [[ZZT]] was another early game notable for its user-accessible mapping and event triggers/scripting, and it still is one of the gentlest ways to introduce a person to level layout. | ||
+ | |||
+ | Once [[Mod (computer gaming)|game modding]] become popular, individuals became very interested in designing unique levels. Some of the best tools and most mapping expertise became associated with games that were designed to be easily modified. Doom and Doom II were two of the first games to attract focused modding activity, and many [[WAD file]]s were made for it. [[Half-Life#Mods|Half-Life]], [[Quake III Arena#Mods|Quake 3]], and many other games have notable mapping tools and communities that formed around them. | ||
+ | |||
+ | In certain games, such as [[NetHack]], some levels may be randomly-generated. In these cases, it is the original programmer who controls how the shapes of rooms and tunnels are formed, by tweaking the randomized algorithms. | ||
+ | |||
+ | ==Goals== | ||
+ | Good level design strives to bring out the best gameplay in a game, provide an [[immersion (virtual reality)|immersive]] experience, and sometimes to advance the storyline. | ||
+ | |||
+ | Good use of textures and sounds can go a long way towards convincing players they're walking through a lush tropical forest or crawling inside a wet gloomy cave. | ||
+ | |||
+ | Maps can impact gameplay to a certain extent. Maps are capable of turning many types of games into a platformer (by careful placement of platforms) or a puzzle game (by extensive use of buttons, keys, and doors). Some FPS maps may be designed to largely prevent [[sniper|sniping]] by not including any long hallways, while other maps may allow for a mix of sniping and closer combat. Most RTS maps give each player a starting base, but will have resources and terrain that are designed to draw players out of their base and actively encourage players to engage each other. Team game maps can give a noticeable advantage to one team over another, when designed poorly. | ||
+ | |||
+ | ''Gimmick maps'' are sometimes created to explore a specific narrow type of gameplay, such as sniping or fist fighting. While they are briefly interesting to level designers and experienced players alike, they are not usually included in final polished games because of their limited replay value. | ||
+ | |||
+ | ==Notable details== | ||
+ | Some levels have features that the casual player will likely never see, but are interesting enough to be discovered and documented by dedicated gamers. | ||
+ | |||
+ | Level designers sometimes create hidden rooms and areas. These usually give some additional rewards, such as ammo or powerups, for players who figure out how to reach them. Sometimes, they serve as [[Easter egg (virtual)|easter eggs]], containing messages such as the level designers' names or pictures, or political or humorous messages. For example, ''[[Quake]]'' has many secret areas that reward the player with ammo, weapons, quad damage powerups, and like, and in one hard-to-reach secret area, [[Dopefish]] makes an appearance. | ||
+ | |||
+ | There are many map bugs that level designers try to avoid, but sometimes go unnoticed for some time. A player might be able to get stuck in a hole with no way out, or even a way to die. A player might be able to find a specific spot where they don't have to move to gain [[Experience point|experience]], because monsters are constantly spawned but can be easily killed in a single-file line. In multiplayer maps, it's problematic if a player is able to reach visible areas of the map that the level designer didn't expect them to go, for example, reaching a rooftop where players aren't usually able to go, and [[Camping (computer gaming)|camping]] there (waiting for other players and killing them unexpectedly). In the worst case, a player might be able to drop "outside" of a map where other players can't reach them. | ||
+ | |||
+ | In some cases, specific mapping tools can be designed to automatically detect problems such as falling "outside" a level, and reaching "stuck" areas. Careful level designers run these tools as the last step before releasing a new version of their level. | ||
+ | |||
+ | In most cases, the best way to improve a map is by playtesting it with experienced players, and allowing them to try to exploit any problems. | ||
+ | |||
+ | == Tools == | ||
+ | A wide variety of specific tools may be used by someone designing a level. While it is sometimes faster to design shapes and textures with general multimedia creation tools, specific games usually require the data to be in a unique format. Because of this, many specific compilers, and converters of shape, texture, audio data may be required to lay out a level. | ||
+ | |||
+ | Some [[level editor]]s for PC games include [[Valve Software|Valve]]'s [[Hammer Editor]], [[Epic Games|Epic]]'s [[UnrealEd]], Leadwerks [[3D World Studio]], [[BioWare]]'s [[Aurora Toolset]] and [[id Software]]'s [[Q3Radiant]]. Multi engine, multi game editors include id Software's [[GtkRadiant]], based on Q3Radiant, and the open source [[QuArK]]. An example of a console game with a level editor is [[TimeSplitters]], developed by [[Free Radical Design]]. Sometimes, professional [[3D computer graphics|3D editing software]], such as [[3D Studio Max]], [[Blender (software)|Blender]], [[AutoCAD]], [[Lightwave]], [[Maya (software)|Maya]] or [[Softimage_XSI|Softimage XSI]] is used, usually customised with a special [[plugin]] developed for the specific game. | ||
+ | |||
+ | ==Sources== | ||
+ | *[http://www.unknownworlds.com/portfolio/web/Mapping_Guidelines.html#Style_Guide UnknownWorlds] - [[Natural Selection (computer game)|Natural Selection]] Mapping Style Guide | ||
+ | |||
+ | ==See also== | ||
+ | * [[List of gaming topics]] | ||
+ | |||
+ | ==External links== | ||
+ | * [http://www.cliffyb.com/rants/art-sci-ld.shtml The Art and Science of Level Design] by Cliff Bleszinski of Epic Games, GDC 2000 | ||
+ | * [http://www.voraxgames.com/community/blogs/dut/archive/2006/02/04/124.aspx 3D Level Construction in 6 Steps] A write-up on the process of 3D level design | ||
+ | * [http://www.adobe.com/devnet/director/articles/3d_in_30_print.html Design a game level in 30 minutes] Adobe article on making an interactive game level, for beginner to intermediate 3D artists | ||
+ | *[http://gamasutra.com/features/20060425/shahrani_01.shtml A History and Analysis of Level Design in 3D Computer Games: Part One] by Sam Shahrani of Indiana University, Gamasutra.com 2006 | ||
+ | *[http://gamasutra.com/features/20060428/shahrani_01.shtml A History and Analysis of Level Design in 3D Computer Games: Part Two] by Sam Shahrani of Indiana University, Gamasutra.com, 2006 | ||
+ | *[http://www.leadwerks.com 3D World Studio Home] | ||
+ | |||
+ | {{Vg-industry}} | ||
+ | |||
+ | [[Category:Video game design]] | ||
+ | |||
+ | [[de:Level Editing]] | ||
+ | [[fr:Level design]] | ||
+ | [[sv:Leveldesign]] |
Version actuelle
Gay Star - membres - charte - bistro (forum) - matches - liGay - histoire - gay langage - photos - vidéos - FTP - IRC - liens - smiley
Cl@ | Enola | Fafal | GuiGui | Jù!i0 | Itchy | Kaero | Vev | ST@N |
Sommaire |
liens
www.unreal.fr/tutoriaux.php?tutorial=8//www.unreal.fr/tutoriaux.php?tutorial=8 www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0] www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//fichiers.unreal.fr/unrealfr/tutoriaux/maps/gko_tuto.zip editeur de terrain] www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//www.piwiki.net/index.php/Cat%C3%A9gorie:UT2004 wiki pmods]
- (en) [www.unreal-design.com///udn.epicgames.com/Main/WebHome.html epic udn]
- www.unreal.fr/tutoriaux.php?tutorial=8//udn.epicgames.com/Two/ActorVariables.html
- www.unreal.fr/tutoriaux.php?tutorial=8//udn.epicgames.com/Two/MoversTutorial.html
Unreal Design
www.unreal-design.com///www.unreal-design.com/ (FR) - french mapping community with tons of tutorials. Titan Internet Forums
www.unreal-design.com///ut2004.titaninternet.co.uk/forums/ (UK) - best UT2004 onslaught community ever !!! Slaughter Place Forums
www.unreal-design.com///slaughtersplace.com/forums/forums/ (US) - another good onslaught community Atari Forums
www.unreal-design.com///www.ataricommunity.com/forums/forumdisplay.php?f=249 (US) - official forums of Atari. Mapraider
www.unreal-design.com///www.mapraider.com/ (US) - map hosting and more UnrealPlayground
www.unreal-design.com///www.unrealplayground.com/ (US) - map hosting and more Nali City
www.unreal-design.com///nalicity.beyondunreal.com/index.php (US) - map hosting and more Unreal FR
www.unreal-design.com///www.unreal.fr/ (FR) - first french unreal community Beyond Unreal
www.unreal-design.com///www.beyondunreal.com/ (US) - big unreal community Hazel H homepage www.unreal-design.com///www.hazelwhorley.com/ (UK) - If you are looking for awesome maps, skybox and tutorials !!! Angel Mapper www.unreal-design.com///www.angelmapper.com/ (US) - Very good mapper and alot of excellent mapping tutorials.
[www.unreal-design.com///ysav.free.fr/map/vev/Maps/ mes maps]
création d'une map
U.fr : Pouvez-vous expliquer en quelques mots le processus de création d'une map chez Epic Games? Du concept art jusqu'à la version finale, combien de personnes ont travaillé dessus?
D.E. : Tout démarre avec une idée de gameplay général d'un Gameplay Level Designer. La map est ensuite esquissée (construites avec des formes géométriques simples, des BSP et très peu de static meshes) et subit les premiers tests de jeu. Beaucoup de changements de gameplay apparaissent à cette étape, si bien que quelquefois même l'idée initiale de gameplay qui avait lancé la création de la map est abandonnée ou transformée. A ce moment, la map ressemble plutôt aux cartes d'UT99 avec une mauvaise lumière. Une fois que l'équipe chargée du gameplay sent qu'on tient quelque chose, des screenshots sont envoyés à un Concept Artist. Il réalise un habillement général de la carte, lui donne un thème visuel et toute la cohérence pour aller de l'avant. Ensuite c'est au tour du Level Artist de s'immiscer dans le processus, tout simplement pour rendre l'ensemble beau! Ils vont réaliser les mesh et l'éclairage du niveau sur le modèle des concepts arts. Ils sont constamment en relation avec les testeurs du jeu pour s'assurer qu'aucun élément du gameplay n'a été sacrifié. Une fois cela terminé, il revient au Gameplay Level Designer d'effectuer le travail de collision et de rendre la map jouable. S'en suit des tests de jeu supplémentaires. La dernière étape est une phase de "livraison" où les collisions sont peaufinés sur tout le niveau, l'IA est complètement implémentée, les bugs sont traqués, etc. En général, le plus gros travail d'une map est effectué par deux designers, quelquefois un troisième ou quatrième viendra amener son aide pour tenir les délais.
projets
www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//herveleblouch.free.fr/vev/index.php?title=Refuge_des_Gay_Star_octobre_2006#mirage une map a illusions]
code d objets
weapon & ammo / object
link gum
Begin Map Begin Actor Class=NewWeaponBase Name=NewWeaponBase13 WeaponType=Class'XWeapons.LinkGun' myMarker=InventorySpot'myLevel.InventorySpot293' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=389,ZoneNumber=2) Tag="NewWeaponBase" Group="None,blue" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=338.498047,Y=850.771484,Z=-444.628601) Rotation=(Yaw=106488) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1643' Skins(0)=None bSelected=True End Actor Begin Actor Class=LinkAmmoPickup Name=LinkAmmoPickup2 myMarker=InventorySpot'myLevel.InventorySpot294' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=389,ZoneNumber=2) Tag="LinkAmmoPickup" Group="None,blue" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=279.039063,Y=877.145752,Z=-438.000000) Rotation=(Yaw=106816) ColLocation=(X=279.039063,Y=877.145752,Z=-438.000000) bSelected=True End Actor Begin Actor Class=LinkAmmoPickup Name=LinkAmmoPickup3 myMarker=InventorySpot'myLevel.InventorySpot295' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=389,ZoneNumber=2) Tag="LinkAmmoPickup" Group="None,blue" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=372.441895,Y=796.503052,Z=-438.000000) Rotation=(Yaw=96768) ColLocation=(X=372.441895,Y=796.503052,Z=-438.000000) bSelected=True End Actor Begin Surface End Surface End Map
shock riffle
Begin Map Begin Actor Class=NewWeaponBase Name=NewWeaponBase9 WeaponType=Class'XWeapons.ShockRifle' myMarker=InventorySpot'myLevel.InventorySpot276' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=35,ZoneNumber=1) Tag="NewWeaponBase" Group="None,blue" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=-1791.915283,Y=-127.645996,Z=-204.693649) Rotation=(Yaw=82056) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1633' Skins(0)=None bSelected=True End Actor Begin Actor Class=ShockAmmoPickup Name=ShockAmmoPickup4 myMarker=InventorySpot'myLevel.InventorySpot277' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=35,ZoneNumber=1) Tag="ShockAmmoPickup" Group="None,blue" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=-1717.972900,Y=-125.044312,Z=-175.877045) Rotation=(Yaw=49040) ColLocation=(X=-1717.972900,Y=-125.044312,Z=-175.877045) bSelected=True End Actor Begin Actor Class=ShockAmmoPickup Name=ShockAmmoPickup5 myMarker=InventorySpot'myLevel.InventorySpot279' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=35,ZoneNumber=1) Tag="ShockAmmoPickup" Group="None,blue" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=-1864.605713,Y=-126.518921,Z=-175.877045) Rotation=(Yaw=49040) ColLocation=(X=-1864.605713,Y=-126.518921,Z=-175.877045) bSelected=True End Actor Begin Surface End Surface End Map
blue flag
Begin Map Begin Actor Class=xBlueFlagBase Name=xBlueFlagBase0 bPathsChanged=True Base=LevelInfo'myLevel.LevelInfo0' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=213,ZoneNumber=1) Tag="xBlueFlagBase" Location=(X=-647.925354,Y=1578.322632,Z=87.137138) Rotation=(Yaw=14168) ColLocation=(X=-647.925354,Y=1578.322632,Z=87.137138) bSelected=True End Actor Begin Surface End Surface End Map
double damage
Begin Map Begin Actor Class=UDamageCharger Name=UDamageCharger0 myMarker=InventorySpot'myLevel.InventorySpot314' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=414,ZoneNumber=9) Tag="UDamageCharger" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=3455.994141,Y=1657.711060,Z=-637.000000) Rotation=(Yaw=224) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1829' bSelected=True End Actor Begin Surface End Surface End Map
shield
Begin Map Begin Actor Class=ShieldCharger Name=ShieldCharger1 myMarker=InventorySpot'myLevel.InventorySpot306' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=406,ZoneNumber=9) Tag="ShieldCharger" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=3199.623535,Y=-261.523010,Z=196.000000) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance1827' bSelected=True End Actor Begin Surface End Surface End Map
rankin
www.unreal-design.com///www.dogsbody.org/ut2k/maps/dm-rankin-fe.gif
la planche de pour dodger
Begin Map Begin Actor Class=StaticMeshActor Name=StaticMeshActor374 StaticMesh=StaticMesh'myLevel.testsheet1' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=ZoneInfo'myLevel.ZoneInfo7',iLeaf=409,ZoneNumber=5) Tag="StaticMeshActor" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=1176.860718,Y=-2206.337646,Z=-508.815216) Rotation=(Pitch=432,Yaw=23720,Roll=3000) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance262' DrawScale3D=(Z=2.000000) SoundVolume=76 ColLocation=(X=1176.860718,Y=-2206.337646,Z=-508.815216) bSelected=True End Actor Begin Surface End Surface End Map
2 planches du rocket + bruit
Begin Map Begin Actor Class=StaticMeshActor Name=StaticMeshActor218 StaticMesh=StaticMesh'myLevel.hourehouteplank' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=ZoneInfo'myLevel.ZoneInfo1',iLeaf=630,ZoneNumber=9) Tag="StaticMeshActor" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-448.000000,Y=316.000000,Z=-476.000000) Rotation=(Pitch=-6324) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance133' DrawScale3D=(X=1.500000,Y=1.250000,Z=1.250000) SoundVolume=76 ColLocation=(X=-448.000000,Y=316.000000,Z=-476.000000) bSelected=True End Actor Begin Actor Class=StaticMeshActor Name=StaticMeshActor219 StaticMesh=StaticMesh'myLevel.hourehouteplank' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=ZoneInfo'myLevel.ZoneInfo1',iLeaf=630,ZoneNumber=9) Tag="StaticMeshActor" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-464.000000,Y=252.000000,Z=-480.000000) Rotation=(Pitch=-6820,Yaw=-612) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance134' DrawScale3D=(X=1.400000,Y=1.250000,Z=1.250000) SoundVolume=76 ColLocation=(X=-464.000000,Y=252.000000,Z=-480.000000) bSelected=True End Actor Begin Actor Class=Trigger Name=Trigger18 ReTriggerDelay=6.000000 Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=ZoneInfo'myLevel.ZoneInfo1',iLeaf=633,ZoneNumber=9) Tag="Trigger" Event="55555555555555" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-485.675903,Y=298.502472,Z=-427.000000) SoundVolume=76 CollisionRadius=64.000000 CollisionHeight=32.000000 ColLocation=(X=-485.675903,Y=298.502472,Z=-427.000000) bSelected=True End Actor Begin Surface End Surface End Map
texture plancher
Begin Map Begin Surface TEXTURE=myLevel.hourewooood BASE -00784.000000,-00479.500000,+00000.000000 TEXTUREU +00000.000000,+00002.000000,+00000.000000 TEXTUREV -00002.000000,+00000.000000,+00000.000000 NORMAL +00000.000000,+00000.000000,+00001.000000 POLYFLAGS=33554432 End Surface End Map
flaque d eau et son trigger
Begin Map Begin Actor Class=StaticMeshActor Name=StaticMeshActor444 StaticMesh=StaticMesh'myLevel.hourewatersheet' bHighDetail=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=ZoneInfo'myLevel.ZoneInfo3',iLeaf=363,ZoneNumber=4) Tag="StaticMeshActor" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=2836.000000,Y=-852.000000,Z=-510.000000) Rotation=(Yaw=-33792) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance327' DrawScale3D=(X=2.000000,Y=2.000000,Z=1.500000) bShadowCast=False SoundVolume=76 bCollideActors=False bBlockActors=False bBlockZeroExtentTraces=False bBlockNonZeroExtentTraces=False bBlockKarma=False ColLocation=(X=608.000000,Y=32.000000,Z=-608.000000) bSelected=True End Actor Begin Actor Class=Trigger Name=Trigger14 ReTriggerDelay=6.000000 Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=ZoneInfo'myLevel.ZoneInfo3',iLeaf=363,ZoneNumber=4) Tag="Trigger" Event="hhhhhhhhhhh" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=2818.324219,Y=-887.497559,Z=-505.000000) SoundVolume=76 CollisionRadius=128.000000 CollisionHeight=8.000000 ColLocation=(X=2818.324219,Y=-887.497559,Z=-505.000000) bSelected=True End Actor Begin Surface End Surface End Map
roue (mover) (RotationRate pour faire tourner)
Begin Map Begin Actor Class=Mover Name=Mover1 bDynamicLightMover=True BasePos=(X=-2321.359375,Y=-1556.498535,Z=-83.131165) BaseRot=(Yaw=32768) bNoAIRelevance=True DrawType=DT_StaticMesh StaticMesh=StaticMesh'myLevel.houremachinewheelFF' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=6,ZoneNumber=1) Tag="Mover" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=-2321.359375,Y=-1556.498535,Z=-83.131165) Rotation=(Yaw=32768) DrawScale3D=(X=1.500000,Y=1.500000,Z=1.500000) SoundVolume=136 bCollideActors=False bBlockActors=False bBlockZeroExtentTraces=False bBlockNonZeroExtentTraces=False bFixedRotationDir=True RotationRate=(Roll=5000) ColLocation=(X=720.000000,Y=1024.000000,Z=-528.000000) bSelected=True bPathColliding=False End Actor Begin Surface End Surface End Map
rosace(mover)
Begin Map Begin Actor Class=Mover Name=Mover0 KeyRot(1)=(Yaw=58932) BasePos=(X=-1211.000000,Y=-2019.000000,Z=662.000000) BaseRot=(Yaw=-23124) DrawType=DT_StaticMesh StaticMesh=StaticMesh'myLevel.rosacetable' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=6,ZoneNumber=1) Tag="Mover" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=-2321.359375,Y=-1556.498535,Z=-83.131165) Rotation=(Yaw=32768) DrawScale3D=(X=1.500000,Y=1.500000,Z=1.500000) SoundVolume=136 bCollideActors=False bBlockActors=False bBlockZeroExtentTraces=False bBlockNonZeroExtentTraces=False bFixedRotationDir=True RotationRate=(Roll=5000) ColLocation=(X=720.000000,Y=1024.000000,Z=-528.000000) bSelected=True bPathColliding=False End Actor Begin Surface End Surface End Map
campgrounds
www.unreal-design.com///www.dogsbody.org/ut2k/maps/dm-campgrounds2004-g1e.gif
jumpad complet
Begin Map Begin Actor Class=UTJumppad Name=UTJumppad1 JumpVelocity=(X=-178.472183,Y=-66.348160,Z=1150.749390) JumpTarget=PathNode'myLevel.PathNode0' JumpSound=Sound'2K4MenuSounds.Generic.msfxDown' bPathsChanged=True PathList(0)=ReachSpec'myLevel.ReachSpec21' ForcedPaths(0)="PathNode0" nextNavigationPoint=PlayerStart'myLevel.PlayerStart3' Base=LevelInfo'myLevel.LevelInfo0' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) Tag="UTJumppad" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=502.083954,Y=382.835938,Z=47.000000) ColLocation=(X=502.083954,Y=382.835938,Z=47.000000) bSelected=True End Actor Begin Actor Class=PathNode Name=PathNode0 bPathsChanged=True nextNavigationPoint=UTJumppad'myLevel.UTJumppad1' Base=LevelInfo'myLevel.LevelInfo0' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=1,ZoneNumber=1) Tag="PathNode" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=174.529343,Y=263.065430,Z=559.000061) bSelected=True End Actor Begin Actor Class=Emitter Name=Emitter26 Begin Object Class=SpriteEmitter Name=SpriteEmitter52 UseDirectionAs=PTDU_Normal UseColorScale=True FadeOut=True FadeIn=True Acceleration=(Z=50.000000) ColorScale(0)=(Color=(G=162,R=185,A=255)) ColorScale(1)=(RelativeTime=1.000000,Color=(B=92,G=44,R=69,A=50)) FadeOutStartTime=0.800000 FadeInEndTime=0.100000 MaxParticles=5 StartSizeRange=(X=(Min=35.000000,Max=35.000000),Y=(Min=30.000000,Max=30.000000),Z=(Min=40.000000,Max=40.000000)) Texture=Texture'EpicParticles.JumpPad.GridPlate' LifetimeRange=(Min=1.400000,Max=1.400000) WarmupTicksPerSecond=2.000000 RelativeWarmupTime=2.000000 End Object Emitters(0)=SpriteEmitter'myLevel.SpriteEmitter52' Begin Object Class=SpriteEmitter Name=SpriteEmitter53 UseDirectionAs=PTDU_Right UseColorScale=True FadeOut=True FadeIn=True Acceleration=(Z=80.000000) ColorScale(0)=(Color=(B=27,G=95,R=124)) ColorScale(1)=(RelativeTime=1.000000,Color=(B=82,G=123,R=169)) FadeOutStartTime=0.750000 FadeInEndTime=0.200000 MaxParticles=100 StartLocationRange=(X=(Min=-30.000000,Max=30.000000),Y=(Min=-24.000000,Max=24.000000)) StartSpinRange=(X=(Min=-0.250000,Max=-0.250000)) StartSizeRange=(X=(Min=6.000000,Max=6.000000),Y=(Min=4.000000,Max=4.000000)) Texture=Texture'EpicParticles.Beams.WhiteStreak01aw' LifetimeRange=(Min=1.250000,Max=1.500000) StartVelocityRange=(Z=(Max=20.000000)) WarmupTicksPerSecond=2.000000 RelativeWarmupTime=2.000000 End Object Emitters(1)=SpriteEmitter'myLevel.SpriteEmitter53' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) Tag="Emitter" Group="None,PadEmitters" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=497.287262,Y=390.518555,Z=16.832764) Rotation=(Yaw=-18432) CollisionRadius=16.500000 CollisionHeight=16.500000 bSelected=True End Actor Begin Actor Class=Light Name=Light52 LightHue=42 LightSaturation=127 LightBrightness=48.000000 LightRadius=48.000000 bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) Tag="Light" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=497.761139,Y=388.652344,Z=62.454590) Rotation=(Yaw=-16384) CollisionRadius=18.000000 CollisionHeight=18.000000 bSelected=True End Actor Begin Actor Class=StaticMeshActor Name=StaticMeshActor167 StaticMesh=StaticMesh'XGame_rc.AmmoChargerMesh' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=4,ZoneNumber=1) Tag="StaticMeshActor" Group="None,TopBuilding" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume225' Location=(X=497.981720,Y=390.366211,Z=5.545410) bBlockNonZeroExtentTraces=False ColLocation=(X=497.981720,Y=390.366211,Z=5.545410) bSelected=True End Actor Begin Surface End Surface End Map
CTF gaystar
albatross
Begin Map Begin Actor Class=StaticMeshActor Name=StaticMeshActor0 StaticMesh=StaticMesh'Albatross_architecture.Deco.Alb_albatross' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=903,ZoneNumber=16) Tag="StaticMeshActor" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=5072.000000,Y=1663.647949,Z=-128.000000) Rotation=(Yaw=16384) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance381' DrawScale3D=(X=2.000000,Y=2.000000,Z=2.000000) Skins(0)=Texture'myLevel.Lila' AmbientGlow=33 ColLocation=(X=5072.000000,Y=1663.647949,Z=-128.000000) bSelected=True End Actor Begin Surface End Surface End Map
lampe a l huile plus light
Begin Map Begin Actor Class=Light Name=Light87 LightHue=29 LightSaturation=114 LightBrightness=128.000000 LightRadius=32.000000 Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=871,ZoneNumber=13) Tag="Light" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=6590.176758,Y=1860.076538,Z=-213.000000) bSelected=True End Actor Begin Actor Class=Emitter Name=Emitter9 Begin Object Class=SpriteEmitter Name=SpriteEmitter9 FadeOut=True FadeIn=True UniformSize=True FadeOutStartTime=0.400000 FadeInEndTime=0.100000 StartLocationRange=(X=(Min=-5.000000,Max=5.000000),Y=(Min=-5.000000,Max=5.000000)) StartSizeRange=(X=(Min=5.000000,Max=10.000000),Y=(Min=5.000000,Max=10.000000)) Texture=Texture'SC_Volcano_T.Particles.SC_Flame1_T' LifetimeRange=(Min=2.000000,Max=2.000000) StartVelocityRange=(Z=(Min=20.000000,Max=20.000000)) End Object Emitters(0)=SpriteEmitter'myLevel.SpriteEmitter9' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=871,ZoneNumber=13) Tag="Emitter" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=6591.529785,Y=1907.977295,Z=-219.000000) Rotation=(Yaw=32768) SoundVolume=76 bSelected=True End Actor Begin Actor Class=StaticMeshActor Name=StaticMeshActor123 StaticMesh=StaticMesh'AnubisStatic.All.EgyptSconce' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=871,ZoneNumber=13) Tag="StaticMeshActor" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume6' Location=(X=6592.000488,Y=1911.999634,Z=-232.000000) Rotation=(Yaw=65536) StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance505' DrawScale3D=(X=0.500000,Y=0.500000,Z=0.500000) ColLocation=(X=6592.000488,Y=1911.999634,Z=-232.000000) bSelected=True End Actor Begin Surface End Surface End Map
crypt of fook
ascenceur
Begin Map Begin Actor Class=Mover Name=Mover1 MoveTime=0.650000 StayOpenTime=1.000000 MoveAmbientSound=Sound'AssaultSounds.HumanShip.HnShipFire01' KeyPos(1)=(Z=496.000000) BasePos=(X=-1168.000000,Y=-1232.000000,Z=-800.000000) SavedPos=(X=-12345.000000,Y=-12345.000000,Z=-12345.000000) SavedRot=(Pitch=123,Yaw=456,Roll=789) myMarker=LiftCenter'myLevel.LiftCenter1' DrawType=DT_StaticMesh StaticMesh=StaticMesh'myLevel.Fahrstuhl' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=373,ZoneNumber=1) Tag="Mover3" InitialState="StandOpenTimed" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-1168.000000,Y=-1232.000000,Z=-800.000000) Attached(0)=LiftCenter'myLevel.LiftCenter1' Attached(1)=LiftCenter'myLevel.LiftCenter0' StaticMeshInstance=StaticMeshInstance'myLevel.StaticMeshInstance234' Skins(0)=Texture'BarrensArchitecture.Base.Obsidian' Skins(1)=Texture'BarrensArchitecture.Base.Obsidian' Skins(2)=Texture'BarrensArchitecture.Base.Obsidian' ColLocation=(X=-1168.000000,Y=-1232.000000,Z=-800.000000) bSelected=True End Actor Begin Actor Class=LiftCenter Name=LiftCenter1 LiftTag="Mover3" MyLift=Mover'myLevel.Mover1' LiftOffset=(X=-110.366943,Y=145.238281,Z=-161.000000) bPathsChanged=True PathList(0)=ReachSpec'myLevel.ReachSpec2125' PathList(1)=ReachSpec'myLevel.ReachSpec2127' nextNavigationPoint=LiftCenter'myLevel.LiftCenter5' Base=Mover'myLevel.Mover1' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=349,ZoneNumber=3) Tag="LiftCenter" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-1278.366943,Y=-1086.761719,Z=-961.000000) Rotation=(Yaw=16640) RelativeLocation=(X=-110.366943,Y=145.238281,Z=-180.000000) RelativeRotation=(Yaw=16640) bSelected=True End Actor Begin Actor Class=LiftExit Name=LiftExit1 LiftTag="Mover3" MyLift=Mover'myLevel.Mover1' SuggestedKeyFrame=0 bPathsChanged=True PathList(0)=ReachSpec'myLevel.ReachSpec2115' PathList(1)=ReachSpec'myLevel.ReachSpec2122' PathList(2)=ReachSpec'myLevel.ReachSpec2113' PathList(3)=ReachSpec'myLevel.ReachSpec2092' PathList(4)=ReachSpec'myLevel.ReachSpec2112' PathList(5)=ReachSpec'myLevel.ReachSpec2118' PathList(6)=ReachSpec'myLevel.ReachSpec2126' nextNavigationPoint=LiftCenter'myLevel.LiftCenter1' Base=LevelInfo'myLevel.LevelInfo0' Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=373,ZoneNumber=1) Tag="LiftExit" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-1272.846558,Y=-1201.158081,Z=-977.000000) Rotation=(Yaw=16640) bSelected=True End Actor Begin Actor Class=LiftExit Name=LiftExit0 LiftTag="Mover3" MyLift=Mover'myLevel.Mover1' SuggestedKeyFrame=1 KeyFrame=1 bPathsChanged=True PathList(0)=ReachSpec'myLevel.ReachSpec2097' PathList(1)=ReachSpec'myLevel.ReachSpec2109' PathList(2)=ReachSpec'myLevel.ReachSpec2098' PathList(3)=ReachSpec'myLevel.ReachSpec2094' PathList(4)=ReachSpec'myLevel.ReachSpec2102' PathList(5)=ReachSpec'myLevel.ReachSpec2100' PathList(6)=ReachSpec'myLevel.ReachSpec2099' PathList(7)=ReachSpec'myLevel.ReachSpec2128' nextNavigationPoint=LiftExit'myLevel.LiftExit1' Base=LevelInfo'myLevel.LevelInfo0' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=289,ZoneNumber=3) Tag="LiftExit" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-1282.756348,Y=-979.142700,Z=-457.000000) Rotation=(Yaw=16640) bSelected=True End Actor Begin Actor Class=LiftCenter Name=LiftCenter0 LiftTag="Mover3" MyLift=Mover'myLevel.Mover1' LiftOffset=(X=-113.647705,Y=153.593384,Z=358.764404) bPathsChanged=True PathList(0)=ReachSpec'myLevel.ReachSpec2091' PathList(1)=ReachSpec'myLevel.ReachSpec2093' nextNavigationPoint=LiftExit'myLevel.LiftExit0' Base=Mover'myLevel.Mover1' bLightChanged=True Level=LevelInfo'myLevel.LevelInfo0' Region=(Zone=LevelInfo'myLevel.LevelInfo0',iLeaf=288,ZoneNumber=3) Tag="LiftCenter" PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume0' Location=(X=-1280.647705,Y=-1078.406616,Z=-441.235596) Rotation=(Yaw=16640) RelativeLocation=(X=-110.830200,Y=153.593384,Z=325.042603) RelativeRotation=(Yaw=16640) bSelected=True End Actor Begin Surface End Surface End Map
waisten-fix
plexiglass (surface)
Begin Map Begin Surface TEXTURE=myLevel.Glass.glassshader2 BASE -02020.000000,+01272.000000,+00156.000000 TEXTUREU -00000.707107,+00000.707107,+00000.000000 TEXTUREV +00000.707107,+00000.707107,+00000.000000 NORMAL +00000.000000,+00000.000000,-00001.000000 POLYFLAGS=37749000 End Surface End Map
Level design or game mapping is the creation of levels—locales, stages, or missions—for a video game (such as a console game or computer game). This is done using level design tools, special software usually developed just for the purpose of building levels.
Level design is a process used in the majority of video games in a variety of genres, such as platform games, puzzle games, adventure games, computer role-playing games and even driving games. Most of the coverage of the discipline in widely available media such as the Internet relates solely to level creation for first person shooter (FPS) or real time strategy (RTS) games. Only in the last ten years or so has the actual separation of labor occurred that has allowed the job of level designer to come into being, and in the last three or four years the job of level designer itself has often been subdivided into level artist, level designer and scripter.
Process
There are several steps involved in laying out a map, not necessarily performed in a specific linear order. Different game genres may have very different steps, according to the different game features available. General steps include:
- laying out the larger design of the map by sculpting out hills, rooms, tunnels, etc. for players and enemies to move around in
- specifying certain regions where specific activities or behaviors occur (resource harvesting, base building, water regions, etc)
- specifying other entities in the map (such as enemies, soldiers, monster spawn points, ladders, coins, resource nodes, ammo and health, weapons, save points, etc)
- specifying which part of levels move, locations of doors, keys/buttons and associated locked doors, teleporters, and hidden passageways
- specifying the start and exit locations for one or more players
- adding realism by filling in with details such as level-specific graphic textures, sounds, animation, lighting and music
- often advanced techniques are required, such as scripting, where certain actions by the player trigger specified events
- the path that non-player characters take as they walk around, the actions they will take in response to specific triggers, and any dialog they might have with the player
Cut scenes may be triggered by events in a level, but require distinctly different skills, and may be created by a different person or team.
History
MUDs were one of the first type of games that required significant amounts of time to design areas. Often, promoted users were assigned to create new paths, new rooms, new equipment, and new actions, often using the game interface itself. ZZT was another early game notable for its user-accessible mapping and event triggers/scripting, and it still is one of the gentlest ways to introduce a person to level layout.
Once game modding become popular, individuals became very interested in designing unique levels. Some of the best tools and most mapping expertise became associated with games that were designed to be easily modified. Doom and Doom II were two of the first games to attract focused modding activity, and many WAD files were made for it. Half-Life, Quake 3, and many other games have notable mapping tools and communities that formed around them.
In certain games, such as NetHack, some levels may be randomly-generated. In these cases, it is the original programmer who controls how the shapes of rooms and tunnels are formed, by tweaking the randomized algorithms.
Goals
Good level design strives to bring out the best gameplay in a game, provide an immersive experience, and sometimes to advance the storyline.
Good use of textures and sounds can go a long way towards convincing players they're walking through a lush tropical forest or crawling inside a wet gloomy cave.
Maps can impact gameplay to a certain extent. Maps are capable of turning many types of games into a platformer (by careful placement of platforms) or a puzzle game (by extensive use of buttons, keys, and doors). Some FPS maps may be designed to largely prevent sniping by not including any long hallways, while other maps may allow for a mix of sniping and closer combat. Most RTS maps give each player a starting base, but will have resources and terrain that are designed to draw players out of their base and actively encourage players to engage each other. Team game maps can give a noticeable advantage to one team over another, when designed poorly.
Gimmick maps are sometimes created to explore a specific narrow type of gameplay, such as sniping or fist fighting. While they are briefly interesting to level designers and experienced players alike, they are not usually included in final polished games because of their limited replay value.
Notable details
Some levels have features that the casual player will likely never see, but are interesting enough to be discovered and documented by dedicated gamers.
Level designers sometimes create hidden rooms and areas. These usually give some additional rewards, such as ammo or powerups, for players who figure out how to reach them. Sometimes, they serve as easter eggs, containing messages such as the level designers' names or pictures, or political or humorous messages. For example, Quake has many secret areas that reward the player with ammo, weapons, quad damage powerups, and like, and in one hard-to-reach secret area, Dopefish makes an appearance.
There are many map bugs that level designers try to avoid, but sometimes go unnoticed for some time. A player might be able to get stuck in a hole with no way out, or even a way to die. A player might be able to find a specific spot where they don't have to move to gain experience, because monsters are constantly spawned but can be easily killed in a single-file line. In multiplayer maps, it's problematic if a player is able to reach visible areas of the map that the level designer didn't expect them to go, for example, reaching a rooftop where players aren't usually able to go, and camping there (waiting for other players and killing them unexpectedly). In the worst case, a player might be able to drop "outside" of a map where other players can't reach them.
In some cases, specific mapping tools can be designed to automatically detect problems such as falling "outside" a level, and reaching "stuck" areas. Careful level designers run these tools as the last step before releasing a new version of their level.
In most cases, the best way to improve a map is by playtesting it with experienced players, and allowing them to try to exploit any problems.
Tools
A wide variety of specific tools may be used by someone designing a level. While it is sometimes faster to design shapes and textures with general multimedia creation tools, specific games usually require the data to be in a unique format. Because of this, many specific compilers, and converters of shape, texture, audio data may be required to lay out a level.
Some level editors for PC games include Valve's Hammer Editor, Epic's UnrealEd, Leadwerks 3D World Studio, BioWare's Aurora Toolset and id Software's Q3Radiant. Multi engine, multi game editors include id Software's GtkRadiant, based on Q3Radiant, and the open source QuArK. An example of a console game with a level editor is TimeSplitters, developed by Free Radical Design. Sometimes, professional 3D editing software, such as 3D Studio Max, Blender, AutoCAD, Lightwave, Maya or Softimage XSI is used, usually customised with a special plugin developed for the specific game.
Sources
www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//www.unknownworlds.com/portfolio/web/Mapping_Guidelines.html#Style_Guide UnknownWorlds] - Natural Selection Mapping Style Guide
See also
External links
- [www.unreal-design.com///www.cliffyb.com/rants/art-sci-ld.shtml The Art and Science of Level Design] by Cliff Bleszinski of Epic Games, GDC 2000
- [www.unreal-design.com///www.voraxgames.com/community/blogs/dut/archive/2006/02/04/124.aspx 3D Level Construction in 6 Steps] A write-up on the process of 3D level design
- [www.unreal-design.com///www.adobe.com/devnet/director/articles/3d_in_30_print.html Design a game level in 30 minutes] Adobe article on making an interactive game level, for beginner to intermediate 3D artists
www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//gamasutra.com/features/20060425/shahrani_01.shtml A History and Analysis of Level Design in 3D Computer Games: Part One] by Sam Shahrani of Indiana University, Gamasutra.com 2006 www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//gamasutra.com/features/20060428/shahrani_01.shtml A History and Analysis of Level Design in 3D Computer Games: Part Two] by Sam Shahrani of Indiana University, Gamasutra.com, 2006 www.unreal.fr/tutoriaux.php?tutorial=4 Votre premiére map sur UEd 3.0]//www.leadwerks.com 3D World Studio Home]
Modèle:Vg-industryde:Level Editing fr:Level design sv:Leveldesign