728x90

server 7

24.11.04 VV. 장애물, UI 구현, 점수 구현

VV움직임을 구현했으니 장애물을 만들 차례이다.두 가지 장애물을 만들어주고 collision을 주었다.장애물에 닿는 순간 게임오버되야 하기 때문에 Character에 Death 함수를 추가 시켜주었다.장애물들에게 Death함수를 추가시켜주어 overlap되었을 때 게임이 종료되도록 구현했다.BP_Floor에 랜덤으로 Spawn되는 함수를 구현해주었다.RandomSpawnPoint에 Obstacle이 생성되도록 구현을 해주었다.장애물에 닿으면 게임이 종료하게 되는데 그것을 위한 UI를 구현해줬다.게임오버 UI는 Restart 버튼과 Exit 버튼으로 구성하고, 화면은 블러처리가 되도록 했다.이제 게임을 플레이하면서 점수를 체크하도록 해야한다.게임 플레이시 점수를 띄워줄 UI를 만들어주었다. UI에는 Coi..

VV 4. 클라이언트 수신

VV서버에서 로그인 과정을 거쳤으니 그 결과를 다시 클라이언트에 보내줘야 한다. 나는 결과에 따라서 다른 프로토콜을 쓰는게 아니라 같은 프로토콜로 대신에 attribute에 다른 값으로 성공했는지 실패했는지 알아볼 수 있도록 구성했다.bool OnDataHandle(IDataBuffer* pDataBuffer, int32_t nConnID){ if (pDataBuffer == nullptr) { CLog::GetInstancePtr()->LogError("Received null data buffer in OnDataHandle."); return false; } PacketHeader* pHeader = (PacketHeader*)pDataBuffer->G..

Study/Project 2024.10.29

24.10.29 VV, UE5, DB

VV서버에서 로그인 과정을 거쳤으니 그 결과를 다시 클라이언트에 보내줘야 한다. 나는 결과에 따라서 다른 프로토콜을 쓰는게 아니라 같은 프로토콜로 대신에 attribute에 다른 값으로 성공했는지 실패했는지 알아볼 수 있도록 구성했다.bool OnDataHandle(IDataBuffer* pDataBuffer, int32_t nConnID){ if (pDataBuffer == nullptr) { CLog::GetInstancePtr()->LogError("Received null data buffer in OnDataHandle."); return false; } PacketHeader* pHeader = (PacketHeader*)pDataBuffer->G..

VV 2. 서버와의 연결

서버와의 연결간단한 로그인 UI를 만들었고, 이번에는 C++서버와의 연결을 준비했다. C++ 서버의 경우 최흥배님의 깃헙을 참조해 사용했다.NetworkManagerNetworkManagerMyGameInstance에서 다 해결해주는 것이 아니라, 서버와의 연결을 담당해줄 클래스를 만들어 주었다.NetworkManager.h//NetworkManager.hUCLASS()class VERSUSVILLAGE_API UNetworkManager : public UObject{ GENERATED_BODY() public: bool ConnectToServer(FString ServerAddress, int32 Port); void SendData(FString DataToSend);private: class F..

Study/Project 2024.10.24

VV 1. 로그인 UI

VV로그인 UI언리얼 엔진의 프로젝트를 본격적으로 포스팅 해보려고 한다.이번 목표는 로그인 UI를 만드는 것이다.Unity에서 쉽게 panel을 이용했던 것과는 다르게 좀 언리얼은 복잡해서 다른 여러 블로그를 참조하면서 진행했다.Ctrl+Space 를 통해 Content Browser를 열고, 빈 곳에서 우클릭을 통해 User Interface → Widget Blueprint를 눌러줘서 생성해주었다.User Widget을 눌러서 생성해주었다.이런 창이 열리게 되는데 화살표 버튼을 드래그 해보면 화면 영역이 나타나게 된다.여기서 만드려고 하는 화면 비율을 따라서 선택해주면 된다.나는 1920x1080으로 선택했다.옆의 Palette를 통해서 원하는 UI를 드래그 드롭시켜주었다.간단하게 만든 텍스트 박스와..

Study/Project 2024.10.23

24.06.19 네트워크

네트워크TCP/UDPTCP연결 지향형 서비스(reliable service)와 신뢰적 데이터 전송 서비스(data integrity)를 포함한다.Reliable ServiceTCP는 메시지 전송 전에 클라이언트와 서버가 서로 전송 제어 정보를 교환하도록 한다. 즉, 패킷이 전송될것을 미리 알려준다.Data integrityTCP는 데이터를 오류 없이 올바른 순서로 전달하는 것을 보장한다.Congestion control(혼잡제어)TCP의 congestion control은 네트워크가 혼잡상태에 이르면 프로세스의 속도를 낮춘다.즉, 프로세스가 우선이 아니라 네트워크의 안정성 향상을 우선한다.Flow control(흐름제어)TCP는 receiver의 buffer가 꽉 차서 데이터가 손실되지 않도록 sende..

클라이언트 - 서버 모델

Client - Server Model 클라이언트 - 서버 모델에서 클라이언트는 서비스를 요청하는 역할을 하고, 서버는 이러한 요청에 대해 서비스를 제공하는 역할을 한다. 서버는 네트워크상에서 서비스를 제공하기 위해 항상 실행되어 대기 상태를 유지한다. 웹 서버, 이메일 서버, 데이터베이스 서버 등이 있습니다. 대부분의 웹 기반 응용 프로그램이 이 모델을 따른다. C언어로 네트워크 응용 프로그램을 개발할 때, 소켓 프로그래밍을 통해 클라이언트와 서버 간의 통신을 구현한다. 클라이언트는 서버에 연결을 요청하고, 서버는 이를 수락하여 통신 세션을 생성한다. 운영체제는 네트워크 스택과 소켓 API를 제공하여 클라이언트와 서버 응용프로그램이 네트워크 통신을 수행할 수 있도록 지원한다. 네트워크 보안, 연결 관리..

728x90