-
스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-7)TIL-sparta 2024. 8. 20. 23:24
학습 키워드: C#, .NET, Recast & Detour, DotRecast, NoWarn
1. Progress
1) PR 생성 및 Merge:
Merge 'feat/crowd-manager' into 'dev' by donkim1212 · Pull Request #3 · donkim1212/PathfindingDediServer
Related Issues close #2 Key changes Added Protobuf message structure and handler classes to handle received packets Added JSON assets and JSON loader, as well as data classes to store them CrowdMa...
github.com
(상세 내용은 위 PR 확인)
2) 미구현 기능 추가, 버그 수정, 구조 변경 등:Figure 1. 작업 내역 (24-08-20 일자 dev branch commit history 확인)
2. Troubleshooting
1) dotnet run 실행 시 warning이 너무 많이 뜨는 문제 (해결):
Figure 2. dotnet run 실행 시 출력되는 몇백 줄 가량의 warning <ItemGroup> <Compile Include="Src/Libs/**/*.cs"> <NoWarn>$(NoWarn);</NoWarn> </Compile> </ItemGroup>
터미널에서 dotnet run을 실행하면 엄청나게 많은 warning이 출력되는 문제가 있었다. 찾아보니 .csproj 파일에서 위와 같이 NoWarn 라인을 추가해주면 해결된다고 해서 적용해보았으나 아래와 같이 에러가 발생했다.
Figure 3. Duplicate items 에러 'Compile' 이 중복되어 있다는 오류 메세지인데, csproj 파일이 하나 뿐인데 뭐지 싶어서 git grep으로 ItemGroup을 찍어보니 DotRecast의 하위 디렉토리 내에 다수의 csproj 파일이 존재하는 것을 확인했다.
Figure 4. DotRecast의 csproj 파일들 발견 Figure 5. DotRecast.Detour.Dynamic 내에 있는 .csproj 파일 Figure 6. 솔루션 탐색기에서는 보이지 않음 위 파일들을 삭제하면 문제가 발생할 수도 있어서 기존에 root csproj에 추가한 compile 태그를 지우고 DotRecast 하위 디렉토리 내 각각의 csproj에서 PropertyGroup 태그에 아래와 같이 NoWarn 태그를 추가해줬다.
<PropertyGroup> ... <NoWarn>$(NoWarn);</NoWarn> <PropertyGroup> ...
Figure 7. Duplicate attribute 에러 이번에는 다른 에러가 발생했는데, 최초에 DotRecast 라이브러리 코드를 가져올 때 같이 포함되어있던 obj 디렉토리의 assembly 파일과 현재 프로젝트의 .csproj 파일에 TargetFrameworkAttribute가 중복 적용되어있어서 발생한 문제였다. 단순히 obj 디렉토리를 삭제하는 것으로 해결할 수 있었다.
Figure 8. warning이 모두 사라짐 + 추가: 무슨 이유에서인지 dotnet run 실행 시 간혹 warning이 출력된다.
--
REFERENCES:https://github.com/eliotjang/the-last-rollback-server
> The Last Rollback - 메인 서버 repo
https://github.com/donkim1212/PathfindingDediServer
> The Last Rollback - Pathfinding Dedicated Server repo
728x90'TIL-sparta' 카테고리의 다른 글
(WIP) 스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-5) (0) 2024.08.23 스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-6) (0) 2024.08.22 스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-8) (0) 2024.08.20 스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-9) (0) 2024.08.19 스파르타) The Last Rollback (D-10, Node.js 게임 서버 최종 프로젝트) - DotRecast (4) (0) 2024.08.18