<View 헤더 파일>



<View 소스 파일 1,2>


<View 소스 파일 3>


'c++ > 플레이어 정보 관리시스템' 카테고리의 다른 글

플레이어 정보 헤더,CPP  (0) 2019.02.26
DAO 헤더,CPP  (0) 2019.02.26
관리 헤더,CPP  (0) 2019.02.26
텍스트에서 플레이어 정보 읽어오기  (0) 2019.02.26

<Data 헤더 파일>


<Data 소스파일 1>


<Data 소스파일 2>

'c++ > 플레이어 정보 관리시스템' 카테고리의 다른 글

플레이어 정보 헤더,CPP  (0) 2019.02.26
DAO 헤더,CPP  (0) 2019.02.26
관리 헤더,CPP  (0) 2019.02.26
사용자 뷰  (0) 2019.02.26

 

 리플리게이션 함수는 playercontroller가 소유한 액터에만 정의한다.


리플리케이션 함수의 호출은?

멀티캐스트, 런 온 오닝 클라이언트 함수의 호출은 반드시 서버측에서 호출

런 온 서버 함수의 호출은 서버측이나 클라이언트 측에서 호출



'언리얼4 > 기능' 카테고리의 다른 글

언리얼4 네트워크  (0) 2019.02.25

- Server / Client 시스템

- Listen Server /  Dedicated Server(전용서버: 클라이언트 포함 안함)

- Listen Server 시스템을 통해 네트워크 개념 학습

- Server(Authority : 변경권한) : 서버가 클라이언트에게 변경권한을 준다.

- Replication(복제) : 서버에서 클라이언트로 복제

- RPC(Remote Procedure Call, 원격함수 호출)


 

Replication(복제)에는 3가지 복제가 있다.

- Actor : 액터가 서버에서 스폰되면 클라이언트에도 복제된다.

- Variable : 변수의 값이 서버에서 변경되면 클라이언트에도 복제된다.(Replicated, RepNotify)

- Function : Run on Server, Multicast, Run on Owning Client

- Run on Server : 호출된 함수가 서버에서 실행됨(클라이언트가 호출)

- Multicast : 서버가 호출해야하고 서버와 모든 클라이언트에서 실행됨

- Run on Owning Client : 서버가 호출해야하고 특정 클라이언트에서만 실행됨(1개에서만!!)


 

GameInstance : 게임 시작부터 종료할때까지 지속적으로 단 1개만 존재, 어디에서나 공유 가능하다.

- 어떤 클라이언트나 접근이 가능

- 모든 클라이언트에게 필요한 정보를 저장 및 제공할 때 사용

GameMode : 레벨이 로드되면서부터 게임 종료시까지 단 1개만 존재

- 게임 룰 : 참여 인원수, 최고점수, 게임 시작 또는 종료 조건

- 서버측 코드에서만 접근가능하다.

GameState : GameMode가 인스턴스 생성, 1개만 존재

- 서버, 클라이언트 측에서 접근가능

- 클라이언트에게 서버측 정보를 전달할 때 사용

- 전체 플레이어수, 전체 PlayerState 정보에 접근가능


 

PlayerController : 플레이어 입력을 통해 캐릭터을 조종할 수 있도록한다.

- 서버측에서는 모든 PC에 접근 가능

- 클라이언트 측에서는 현재 캐릭턱의 PC만 접근가능

PlayerState : 한 플레이어의 게임 상태정보를 가지고 있다.

- 모든 클라이언트가 다른 PlayerState에 접근할 때 사용

- 현재 PlayerState의 주인이 아니면 데이터 갱신 불가

- PlayerController의 단점을 극복할 수 있다. 어디서나 접근 가능하니까

Pawn : 플레이어를 대신할 액터(액터,폰,개릭터)

- 서버측에서는 모든 Pawn에 접근할 수 있다. 


GameMode의 개념 및 한계

GameMode(서버로직)에서 클라이언트 로직 실행

-게임룰 위주의 서버로직

-OnPostLogin 이벤트(PlayerController 접근 가능)

-GameModo(서버로직)에서 클라이언트 로직 실행

-맵이 로드될 때 맵에 등록된 GameMode 실행


게임 메뉴맵 - 로비 맵 - 게임맵 / 맵들이 로드될때마다 각각의 GameMode가 실행된다.


배포 : 

1. 프로그램 작성 완료

2. 서버로 실행[프로그램 이름^맵이름?리슨 -게임], 클라이언트 실행(프로그램 이름^아이피주소 -게임)

3. 클라이언트가 자동으로 서버를 찾아서 연결(LAN, Internet)

4. 세션(Session) : 서버 등록, 게임 찾기, 게임 연결, 게임 해제


 

ServerTravel시 맵간 데이터 유지


SaveGame을 이용하여 다시 사용할 데이터를 파일에 저장

다음 레벨에서 사용할 데이터를 파일에서 읽어 온다.


SaveGame 생성,변수선언

Create SaveGame Object, SaveGameToSlot,

Does ExistSaveGame, Load SavaGameFromSlot



'언리얼4 > 기능' 카테고리의 다른 글

Function 리플리케이션 시 발생하는 오작동 문제  (0) 2019.02.25

1. UE4.10 How To Make HTTP GET Request in C++ 구글에 친다.


<참고자료 1>


1. <참고자료 1>를 참고하여 <참고자료2>와 같이 세팅한다.


<참고자료 2>


<참고자료 3 - Get방식 & Post 방식>

 게임 기능 요구사항

- 로그인(jQuery, CSS, Codeigniter, MVC)

- 로그인에 성공하면 화면이 벽돌꺠기 게임화면으로 전환

- 로그인을 거치지 않은 이용자가 벽돌꺠기 게임 페이지에 접속하면 로그인 폼으로 강제로 이동


 게임 규칙 

- 벽돌을 제거할 때마다 1점씩 점수가 가산되어 화면에 표시

- 5초가 경과할 때까지 새로운 점수를 얻지 못하면 1점씩 감산

- 볼을 레벨 하단으로 놓치면 2점 감산

- 혐재 점수는 화면 좌상단 모서리에 표시

- 모든 벽돌이 제거 되면 다음과 같은 정보가 비동기 통신을 통해 서버측 DB에 저장

- 한 라운드가 종료하면 게임은 원래 상태로 리셋, 점수는 다시 0부터 시작

- 리셋된 게임은 동일한 방법으로 다시 실행 



1. Controller


<Login Controller>


<Game Controller>


2. Model


<Login Model>


<Game Model>



3.View


<Game.html>


<login_form>


<game_list>


4. 데이터베이스


<game_history 테이블>


<user 테이블>


5. 실행화면 (로그인 실패)


<로그인 첫 화면 & 잘못된 아이디 및 암호 입력>






 < 로그인 버튼 클릭 및 로그인 실패>


6. 실행 화면(로그인 성공)

<로그인 페이지 첫 화면 & 올바른 이용자 아이디 및 암호 입력>


<로그인 버튼 클릭시 확인 메세지 & 성공 메세지>


<로그인 성공시 게임페이지로 이동>


7. 실행화면 (게임 실행 후 데이터베이스 확인)



'웹 프로그래밍' 카테고리의 다른 글

for문 안에 ajax 돌리는방법  (1) 2019.08.30

+ Recent posts