티스토리 툴바

우와 9000 줄 짜리 파일이야..!!

events

PostBeginPlay()
PreRender()
InitInputSystem()
Possess
UnPosses()
Destroyed()
PreClientTravel()
ReserCameraMode()
SendClientAdjustment()
ServerNotifyLoadedWorld()
NotifyLoadedwORLD()
PlayerTick()
CameraLookAtFinished()
NotifyLanded()
ClientSetViewTarget()
SpawnPlayerCamera()
GetPlayerViewPoint()
LimitViewRotation()


various states...



unreliable server function ServerCauseEvent(Name EventName)
exec function CauseEvent(optional Name EventName)
exec function CE(optional Name EventName)
exec function ListConsoleEvents()
exec function RemoteEvent(optional name EventName)
exec function RE(optional name EventName)
event PlayRumble( const AnimNotify_Rumble TheAnimNotify )
reliable client event ClientPlayForceFeedbackWaveform(ForceFeedbackWaveform FFWaveform,optional Actor FFWaveformInstigator)
reliable client final event ClientStopForceFeedbackWaveform(optional ForceFeedbackWaveform FFWaveform)
event bool IsMoveInputIgnored()
event bool IsLookInputIgnored()

final event LevelStreamingStatusChanged(LevelStreaming LevelObject, bool bNewShouldBeLoaded, bool bNewShouldBeVisible, bool bNewShouldBlockOnLoad )
native reliable server final event ServerUpdateLevelVisibility(name PackageName, bool bIsVisible);
reliable client event ClientPrepareMapChange(name LevelName, bool bFirst, bool bLast)
reliable client event ClientCommitMapChange()
event NotifyDirectorControl(bool bNowControlling, SeqAct_Interp CurrentMatinee)
unreliable client event ClientPlayCameraAnim( CameraAnim AnimToPlay, optional float Scale=1.f, optional float Rate=1.f,
reliable client event ClientStopCameraAnim(CameraAnim AnimToStop)
unreliable client event ClientSpawnCameraLensEffect( class<EmitterCameraLensEffectBase> LensEffectEmitterClass )

저작자 표시



GameInfo.uc (=>FrameworkGame=>ChaiGame 상속)

[0003.10] ScriptLog: event InitGame( string Options, out string ErrorMessage )
[0003.10] ScriptLog: event PreBeginPlay()
[0003.10] ScriptLog: event PostBeginPlay()
[0003.11] ScriptLog: event PlayerController Login(string Portal, string Options, const UniqueNetID UniqueID, out string ErrorMessage)
[0003.11] ScriptLog: function SpawnPlayerController(vector SpawnLocation, rotator SpawnRotation)
[0003.11] ScriptLog: event PostLogin( PlayerController NewPlayer )
[0003.19] ScriptLog: event OnEngineHasLoaded();

다들 이벤트 함수들이다. 즉 caller가 모두 C++ 네이티브이고 UDK 사용자에겐 숨겨져 있고, 건드릴 필요는 없겠다..
SpawnPlayerController 만 일반함수인데, 이 초기화 루틴 중엔 가장 중요하다.
이 함수는 Login() 내에서 호출된다.

[하는 일]

1. 게임이 시작되었을 때의 초기화 작업 - 로그인, 플레이어 생성, 폰의 생성과 기본값 설정, 뮤테이터 복사.
2. 게임의 진행 상황 처리 - 킬 처리. 대미지 처리. 점수 처리. 엔딩 처리. 리스폰 및 스폰위치 선정.비활성유저(접속끊김) 처리.
3. 게임의 각종 속성에 대한 대답.
4. 게임 중 진행 명령의 처리 - 재시작, 맵이동, 팀변경, 채팅  등.
5. Seamless Travel 처리가 좀 있는 것 같다.

* 월드 인포에도 리플리케이션 정보등 여러가지 중요한 속성이 있는것 같다.
* PlayerController.SetViewTarget(PC) ?

저작자 표시

매번 빌드가 끝난 후의 자동화된 테스트를 수행하도록할 수 있다.
캐릭터(카메라?)를 맵의 구석구석으로 이동시키면서, 특점지점의 메모리 사용량과 퍼포먼스 등의 통계수치를 데이터베이스에 저장한다.
저장되는 통계수치는 C++ 에 하드코딩되어 있다고 하니 현재로서는 확인 불가.

오토메이티드 테스트의 가동은 실행인자에서 AutoTests 등의 몇 가지 옵션을 지정하여 가동시킬 수 있다.

결과적으로 퍼포먼스 측정 데이터를 바탕으로 에디터에서 문제가 있는 지점을 시각화하여 살펴볼 수 있다.

https://udn.epicgames.com/Three/Sentinel
저작자 표시