목록전체 글 (121)
하아찡

언리얼 버전 5.5.3서버언어 C++로 구성했습니다.이전에 아이템 등록 및 몬스터 등록을 했습니다. 이제 해당 몬스터를 잡았을때 서버에서 드랍처리를 할 예정입니다. 일단 실행화면부터 보시죠 실행화면 몬스터를 잡았을때 관리하는 코드if (bMonsterDie) { //LOG("DeSpawnObject : " set_id(objectID); // 몬스터 드랍 처리 for (auto drop : monster->DropTable) { ItemData* item = ItemUtils::GetItem(drop.code); if (item) { // drop.rate 아이템 드랍확률 ..

언리얼 버전 5.5.3서버언어 C++로 구성했습니다.아이템 정보와 몬스터 정보를 파일로 만들어서 불러다 써야 관리하기 쉬울꺼같아서 작업했습니다.json으로 할라다가 xml로 작업했습니다. 장비 XML 레드 포션 Consumable 50 /Game/IMG/hp.hp 0.1 장검 Equipment 30 15 30 /Game/IMG/sword.sword 0.1 헬멧 Equipment 50 /Game/IMG/head.head 0.1 몬스터 XML 고블린 5000 0 0 200 1000 3000 50 100 ..

언리얼 버전 5.5.3서버언어 C++로 구성했습니다. 공부를 하면서 왜...? DB서버를 따로 열어야 하나 늘 궁굼했는데생각보다 DB에 데이터를 올리고 받는 과정에서 서버가 딜레이가 생기더라구요.그래서 간단하게라도 원래 쓰던 코드에서 DB서버용으로 하나만들어서 사용했습니다. 로그인은 아직 그대로 게임서버에서 처리를 하게 두었고 플레이중에 처리되는것들을 앞으론 DB서버에서 처리 할 예정입니다. 실행결과 DB서버 추가하기전 실행결과 DB서버와 게임서버가 서로 통신할 Protobuf를 생성해줍니다. DBProtocol.protosyntax = "proto3";package Protocol;import "Enum.proto";import "Struct.proto";message C_DB_GAINEXP{ ..

언리얼 버전 5.5.3서버언어 C++로 구성했습니다.실행화면 문제점.도착좌표를 저장하고 몬스터 그리드에 넣다보닌깐 클라이언트 상에서는 몬스터가 해당 좌표에없지만 서버에는 해당 좌표에 있다고 처리돼서 몬스터가 맞는 처리가 됨. 해결 : 서버에서 움직임 처리를 해줌. 0.1초마다 몬스터 위치를 갱신해줌. 몬스터 객체에다가 도착지 위치를 따로 저장시켜 위치값을 계속 갱신시킴. SendBufferRef Monster::ServerMove(MonsterRef monster, float deltaTime){ uint64 spawnerID = monster->SpawnerID; Vector3 NowPos(monster->objectInfo->posinfo().x(), monster->objec..

언리얼 버전 5.5.3서버언어 C++로 구성했습니다. 실행화면 일단 기본적으로 캐릭터를 저장하기위해 회원 테이블을 작성했습니다.DB서버는 mysql를 사용중 입니다. 기존에 aws로 작업해둔 웹이 있어서 해당 DB서버를 사용중 입니다. 회원 테이블 구조CREATE TABLE `userinfo` ( `user_id` INT(10) NOT NULL AUTO_INCREMENT, `id` VARCHAR(255) NOT NULL COLLATE 'utf8mb4_0900_ai_ci', `pw` VARCHAR(255) NOT NULL COLLATE 'utf8mb4_0900_ai_ci', `create_at` TIMESTAMP NULL DEFAULT 'CURRENT_TIMESTAMP', PRIMARY KEY (`user..

언리얼 버전 5.5.3서버언어 C++로 구성했습니다.실행화면 몬스터가 주변 플레이어를 스캔해서 몬스터별 정해진 어그로 범위안에 있을경우 제일 처음에 들어온 플레이어를 어그로를 잡게됨.스포너 위치에서 몬스터 어그로 범위를 벗어났을경우 몬스터 어그로가 풀리게됨.해당 어그로 코드를 Room클래스에 작업을 할까 몬스터 클래스에 작업을 할까 고민을 했는데, Room클래스쪽에서 몬스터 어그로 작업을 하게 했습니다.각 맵별 플레이어 정보를 Room클래스에서 다루다보닌깐 해당 방식이 편하기도하고 굳이 몬스터 클래스에다가 기능을 많이 추가하는건 아닌거같았습니다.이렇게 짜는게 맞나 싶긴한데 일단 생각나는대로 작업을 했습니다.(매번 해보지만 이게 맞나... 고민을 참 많이 하게됩니다) 추가된 Room코드입니다void Ro..