728x90

나만무 63

24.05.16 나만무

나만무GameEnd UI - 시간 출력 관련TimeSpan.FromMilliseconds 을 이용해 ms → mm:ss:ms 형식으로 변환했다Packet id → nickname 으로 수정 완료클라이언트에서 불필요한 패킷을 수정하는 과정에서 서버와의 연결하는 패킷의 수정을 해야했다.InGame내에서 더이상 id를 사용하지 않기 때문에 nickname으로 수정하는 과정을 거쳤다.DB Table 정리 → 사용하지 않는 Column 정리, name → nickname으로 변경했다.닉네임 변경하고 게임에 바로 접속했을 때, socket을 찾지 못했던 버그전의 닉네임으로 socket에 등록되어 있었기 때문에 발생한 버그였다.setname 했을 때 list의 key와 socket name을 변경해주었다.

나만무 슬레이어즈 18

나만무매치메이킹을 간단하게나마 구현했다.플레이어가 매치메이킹 버튼을 클릭하면 서버에서 매칭을 진행하게 된다.매칭을 준비하고 있는 방이 있다면 그 방에 플레이어를 넣어주게 되고, 방이 없다면 방을 생성해준다.그리고 일정 인원 (현재 5명)이 차거나 아니면 20초가 지나게 된다면 서버가 클라이언트에게 같이 게임하는 인원들의 정보를 주고, 게임을 매칭 결과창을 보여준다. 그 후 5초 뒤에 게임으로 이동하게 된다.게임에 들어가면 아까 받아온 같이 게임을 하는 인원들의 정보를 통해 플레이어들을 그려주게 된다.어려웠던 점어떻게 정보를 넘겨 줘야 할지, 그 정보를 어떤 오브젝트가 들고 있어야 할지 정하는 부분이 어려웠다.outgameserver가 가지고 있고, 그 부분을 worldmanager로 넘기는 형식으로 구현..

Study/Project 2024.05.15

24.05.14 나만무

나만무매치메이킹을 간단하게나마 구현했다.플레이어가 매치메이킹 버튼을 클릭하면 서버에서 매칭을 진행하게 된다.매칭을 준비하고 있는 방이 있다면 그 방에 플레이어를 넣어주게 되고, 방이 없다면 방을 생성해준다.그리고 일정 인원 (현재 5명)이 차거나 아니면 20초가 지나게 된다면 서버가 클라이언트에게 같이 게임하는 인원들의 정보를 주고, 게임을 매칭 결과창을 보여준다. 그 후 5초 뒤에 게임으로 이동하게 된다.게임에 들어가면 아까 받아온 같이 게임을 하는 인원들의 정보를 통해 플레이어들을 그려주게 된다.어려웠던 점어떻게 정보를 넘겨 줘야 할지, 그 정보를 어떤 오브젝트가 들고 있어야 할지 정하는 부분이 어려웠다.outgameserver가 가지고 있고, 그 부분을 worldmanager로 넘기는 형식으로 구현..

나만무 17 슬레이어즈

나만무socket.on 에서 setActive(true)가 안됐던 문제해결 : 털보도사님 쿠고랑 아저씨가 도와줬다.Unity에서 Socket.IO를 사용할 때 콜백 함수 내에서 Unity의 메인 스레드로 작업을 전달해야 한다. Socket.IO의 이벤트 처리가 별도의 스레드에서 실행되기 때문에 Unity의 메인 스레드에서 직접 Unity 관련 작업을 수행하면 안된다.Unity에서 UnityThread.executeInUpdate() 메서드를 사용하여 작업을 메인 스레드로 전달할 수 있다. 이 메서드는 전달된 작업을 Unity의 업데이트 루프에서 실행되도록 예약한다.Debug.log의 경우 로깅 시스템을 사용하는 메서드로, 실제로 메인 스레드에서 실행되지 않아도 된다고 한다. unity에서 debug.lo..

Study/Project 2024.05.15

24.05.13 나만무

나만무socket.on 에서 setActive(true)가 안됐던 문제해결 : 털보도사님 쿠고랑 아저씨가 도와줬다.Unity에서 Socket.IO를 사용할 때 콜백 함수 내에서 Unity의 메인 스레드로 작업을 전달해야 한다. Socket.IO의 이벤트 처리가 별도의 스레드에서 실행되기 때문에 Unity의 메인 스레드에서 직접 Unity 관련 작업을 수행하면 안된다.Unity에서 UnityThread.executeInUpdate() 메서드를 사용하여 작업을 메인 스레드로 전달할 수 있다. 이 메서드는 전달된 작업을 Unity의 업데이트 루프에서 실행되도록 예약한다.Debug.log의 경우 로깅 시스템을 사용하는 메서드로, 실제로 메인 스레드에서 실행되지 않아도 된다고 한다. unity에서 debug.lo..

나만무 슬레이어즈 16

나만무setName 구현 완료문제 : 비동기로 코드가 진행되다 보니, DB에서 읽어오기 전에 아래 코드가 진행되어 값이 들어가지 않는 상황이 발생했다.async, await을 사용하여 문제를 해결했다.async function isUniqueName(name) { // 중복 없으면 true, 있으면 false await connection.query('SELECT * FROM User WHERE name = ?', [name], (err, rows) => { if (err) { logger.error('setUniqueName query error:', err); } if (rows.length === 0) { ..

Study/Project 2024.05.12

24.05.12 나만무

나만무setName 구현 완료문제 : 비동기로 코드가 진행되다 보니, DB에서 읽어오기 전에 아래 코드가 진행되어 값이 들어가지 않는 상황이 발생했다.async, await을 사용하여 문제를 해결했다.async function isUniqueName(name) { // 중복 없으면 true, 있으면 false await connection.query('SELECT * FROM User WHERE name = ?', [name], (err, rows) => { if (err) { logger.error('setUniqueName query error:', err); } if (rows.length === 0) { ..

나만무 슬레이어즈 15

나만무Matching 구현아직 미 구현이다.readyList에 매칭 입장한 유저를 저장하고, 현재는 2명의 유저가 모이면 대기실 출력에 필요한 정보 리스트를 전달한다.ReadyGame 이벤트를 위한 readyList와 userList의 구조 변경으로 매칭에도 영향이 간다.readyList = {userList : [], readyCount : 0} → readyList = {userList : new Map(), readyCout : 0}userList : new Map() ← 이 new Map이 문제일 것 같다. 그러나 userList.size === 2 조건문에 걸리기는 한다;; userList를 출력해봐야 알 것같다. 현재는 userList의 keyList가 출력되지 않는다.Google OAuth ..

Study/Project 2024.05.12
728x90