Nagie's DevStory

cocos2d-x 4.0 개발환경 구축하기 (with. VS2022) 본문

GameEngine/Cocos2D-X

cocos2d-x 4.0 개발환경 구축하기 (with. VS2022)

Nagie 2023. 10. 19. 23:18
728x90

한때 모바일 게임을 cocos2d-x로 많이 만들던 시절이 있었다.

요즘은 유니티와 언리얼로 양분화 되는 느낌이고 옛날에 비해 인기가 많이 시들해졌지만

여전히 cocos2d-x는 쓸 만(?) 하며 C++을 공부하기에 좋은 엔진임에는 틀림없다.

필자가 마지막으로 사용했던 cocos2d-x의 버전은 2.x 대였는데 대략 10년 전에 사용했었다.

유니티의 개발 민주화덕에 언리얼 까지 무료화가 되면서 이 엔진을 잊고 살았는데

최근에 간단한 2D 게임이 만들고 싶어서 다시 찾게 되었더니 cocos creator라는 엔진으로 배포되고 있었다.

그래서 cocos creator를 살펴본 결과 솔직히 이걸 쓸 바엔 그냥 원래 쓰던 유니티나 언리얼을 쓰는게 더 나을거 같아

오랜 전통(?)이 있는 cocos2d-x를 찾아 개발환경을 구축했다.

 

1. cocos2d-x 엔진 소스 내려받기

 

cocos2d-x 공식 홈페이지

 

Download Cocos2d-x, Cocos Creator and Cocos | Cocos2d-x

 

cocos2d-x.org

 

우선 위의 URL로 접속해 cocos2d-x의 엔진소스를 내려받는다 버전은 4.0을 내려받으면 된다.

혹시라도 구버전을 사용하게 된다면 시그윈같은 미들웨어가 필요해질수 있으니 주의하길 바란다.

 

 

2. python 2.7.18 설치하기

 

파이썬 2.7.18 공식 홈페이지

 

Python Release Python 2.7.18

The official home of the Python Programming Language

www.python.org

 

??? : 아니 파이썬 2.x 버전이 지원 종료된지가 언제인데 이걸 왜 설치해요???

라는 반응이 나올수도 있는데 cocos2d-x의 setup.py를 쓰려면 파이썬 2.7.18을 설치해야 한다.

물론 파이썬 3.x 버전에 맞춰 소스코드를 수정할 수 있다면 넘어가도 된다.

다만 필자는 그런 과정이 귀찮아서 그냥 2.7.18을 설치하는 방법을 택한다.

 

 

3. cmake 설치

 

cmake 공식 홈페이지

 

Download CMake

You can either download binaries or source code archives for the latest stable or previous release or access the current development (aka nightly) distribution through Git. This software may not be exported in violation of any U.S. export laws or regulatio

cmake.org

 

cocos2d-x를 vs에서 사용하려면 그렇게 정확한 표현은 아니지만 cmake로 sln파일을 생성해야 한다.

cmake는 최신버전을 설치해야하며 구버전을 설치하게 된다면 vs2022용 sln 파일을 생성할 수가 없다.

 

 

4. python 2.7.18과 cmake의 환경변수 등록하기

 

파이썬 2.7과 cmake의 환경변수

 

윈도우 파워쉘 혹은 콘솔을 사용해야 하므로 위 사진처럼 환경변수를 등록해야 한다.

혹시 환경변수를 등록하는 방법을 모른다면 아래의 링크를 참고하면 된다.

 

윈도우10 환경변수 설정하기

 

[꿀팁] Windows 10에서 환경 변수 경로 설정하기 [윈도우즈 환경 변수 Path 설정하기]

- Windows 10에서 환경 변수 경로 설정하기

yermi.tistory.com

 

 

5. setup.py 사용하기

 

사전준비가 끝났다면 cocos2d-x의 프로젝트 생성 준비가 끝났다.

아까 내려받은 cocos2d-x의 엔진소스를 압축해제후 C:\에 복사해 준다.

 

이런 느낌으로?

 

C:\로 복사가 끝났다면 cocos2d-x 폴더에 있는 setup.py를 실행시켜 세팅을 하자.

 

 

이 과정은 cocos2d-x의 환경변수를 등록하는 과정이다.

일단 필자는 모바일 게임을 만들 생각이 없어 NDK나 안드로이드 SDK의 경로를 지정하진 않았는데

혹여나 모바일 게임을 만들 계획이라면 NDK와 안드로이드 SDK의 경로를 꼭 기입하자

 

 

6. 프로젝트 생성하기

 

cocos2d-x의 setup.py 작업이 끝났다면 바탕화면에서 L SHIFT + 마우스 우클릭을 한 뒤 "터미널에서 열기"를 클릭한다.

 

이렇게!

 

파워쉘이나 윈도우 콘솔이 열리면 아래의 코드를 입력한다.

 

[cocos new 프로젝트이름 -p com.개발자이름.프로젝트이름 -l cpp]

cocos new myapp -p com.example.myapp -l cpp

 

cocos2d-x 프로젝트 파일 생성 예시

 

그러면 바탕화면에 자신이 입력한 프로젝트 이름으로 된 폴더 하나가 생성되어 있을 거다.

프로젝트 파일이 무사히 복사가 끝났다 생각되면 cmake를 통해 솔루션 파일(*.sln)을 만들어줘야 한다.

cmake 작업을 해주기 전 cd 커맨드로 해당 프로젝트 폴더의 "proj.win32" 폴더로 이동하거나

윈도우 파일 탐색기로 해당 경로로 이동 후 파워쉘이나 윈도우 콘솔을 열어 cmake 작업을 시작하면 된다.

cmake 커맨드는 아래와 같다.

 

cmake .. -G"Visual Studio 17 2022" -A Win32

 

만약 VS2019를 사용하고 있다면 아래의 커맨드를 입력하면 된다.

 

cmake .. -G"Visual Studio 16 2019" -A Win32

 

cmake 커맨드 입력 예시

 

cmake 작업이 끝났다면 바로 생성된 솔루션 파일을 실행하는 게 아니라

cocos2d-x를 컴파일해 줘야 한다.

 

컴파일은 되도록 "proj.win32"폴더가 아닌 상위 폴더에서 하는걸 추천하며

"proj.win32"에서 컴파일이 안되는건 아니지만 간혹가다 에러가 발생하는 경우가 있다.

[ example\proj.win32가 아니라 example\ 에서 컴파일 한다는 이야기다. ]

 

상위 폴더에서 파워쉘 또는 윈도우 콘솔을 열어 아래의 커맨드를 입력하면 혼자서 컴파일을 열심히 한다.

 

cocos compile -p win32 -m release

 

proj.win32 폴더에서 컴파일 해봤다.
컴파일 하다보면 경고문구가 뜨기도 한다. 가볍게 무시해도 좋다.
정상적으로 컴파일된 모습이다.

 

cocos2d-x의 컴파일이 끝났다면 아까 생성한 솔루션 파일로 VS2022에서 작업을 할 수 있다.

 

 

7. VS2022에서 사용하기

 

"proj.win32" 폴더로 가서 솔루션 파일을 열어보자.

 

준비된 프로젝트 폴더 구성

 

솔루션 파일을 열었다고 해서 바로 빌드 버튼을 누르지는 말자 약간의 세팅이 더 필요하다.

 

 

VS2022의 솔루션 탐색기에서 자신이 생성한 프로젝트 파일 이름이 있는지 우선 확인한다.

 

 

자신이 생성한 프로젝트 이름이 있다면 거기서 마우스 우클릭을 해 시작 프로젝트 구성 탭으로 들어간다.

[ 프로젝트 이름 -> 마우스 우클릭 -> 시작 프로젝트 구성 클릭 ] 

 

 

시작 프로젝트 구성을 들어가면 "현재 선택 영역" 또는 "한 개의 시작  프로젝트"가 선택되어 있을 건데

"한 개의 시작 프로젝트"가 선택 되어있더라도 자신이 생성한 프로젝트로 지정이 안 되어있다.

이걸 자신이 생성한 프로젝트로 지정해준다.

 

프로젝트 지정 예시

 

적용 버튼을 눌러주는 걸 잊지말자.

 

그냥 유니티로 2D 게임 만드시는건 어떠신가요?

 

기나긴 세팅을 마치고 나서 L CTRL + F5 또는 F5를 누르면 HELLO WORLD씬이 나오게 된다.

이제 맘껏 코드를 작성하면 된다.

 

 

p.s

 

솔직히 2023년에 누가 cocos2d-x로 개발을 시작할까 싶지만

워낙 세팅하는 방법이 번잡하고 짜증나기에 조금이라도 도움이 됐으면 한다.

728x90
Comments