본문 바로가기
NOTE/IT Information

[Framework] 게임 프레임워크 비교 | MonoGame | Cocos2d-x

by DevAthena 2025. 4. 23.

 

픽셀 게임을 최근에 재밌게 즐겨서
스타듀밸리같은 게임은 어떤 엔진이나 툴로 만들었을까
궁금해서 찾아보았다.


🎮 스타듀밸리 개발 배경 요약

  • 개발자: Eric Barone (ConcernedApe) 1인 개발
  • 언어: C#
  • 엔진/프레임워크: Microsoft XNA 4.0
  • 지원 플랫폼: Windows → 이후 콘솔, 모바일, macOS, Linux 등으로 확장

 

🧱 Microsoft XNA Framework ?

  • 마이크로소프트에서 만든 C# 기반 게임 프레임워크
  • Xbox 360과 Windows용 게임을 쉽게 만들도록 지원
  • 2013년 이후 공식 지원 중단됨 (하지만 여전히 많은 인디 개발자들이 사용함)

 

📦 지금 스타듀밸리는 XNA를 대체한 MonoGame으로 포팅

  • MonoGame은 XNA의 오픈소스 버전으로, 여러 플랫폼을 지원함 (Windows, macOS, Linux, Android, iOS 등)
  • Eric Barone도 스타듀밸리 이식 버전(특히 macOS/Linux/모바일)을 만들 때 MonoGame으로 옮김

 

🔧 관련 기술 요약

구성 요소기술
프로그래밍 언어 C#
엔진/프레임워크 XNA → MonoGame
리소스 포맷 .xnb (XNA에서 사용하는 바이너리 리소스 포맷)
2D 그래픽 타일 기반, 스프라이트 시트 방식
사운드 .wav, .ogg 등

 

🧱 MonoGame의 특징

항목설명
🧑‍💻 사용 언어 C#
🧱 구조 클래식한 게임 루프 구조 (Update → Draw 반복)
🎯 지원 플랫폼 Windows, macOS, Linux, Android, iOS, Xbox, PlayStation, Switch 등
🎨 2D/3D 지원 둘 다 지원! (스타듀밸리는 2D)
🚀 성능 네이티브에 가까운 퍼포먼스
🛠 리소스 .png, .ogg, .wav, .json 등 다양하게 사용 가능
💡 주요 사용 게임 스타듀밸리, FEZ, Axiom Verge 등

 


 
공식 사이트 : https://monogame.net/

MonoGame | MonoGame

Source Code The MonoGame Framework is completely free and open-source. All source code is available to you. You can view the source code on GitHub, clone it and/or create a fork. Click to view source Code

monogame.net

 


 

설치 방법 : Visual Studio 확장으로 설치 가능하다.
설치완료 - ! 언제든 해봐야겠다.

 


 

기본 게임 루프 구조
Unity에서 C# 구조랑 꽤 비슷하구나..

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
protected override void Update(GameTime gameTime)
{
    // 게임 상태 업데이트 (입력 처리, 이동, 충돌 등)
    base.Update(gameTime);
}
 
protected override void Draw(GameTime gameTime)
{
    GraphicsDevice.Clear(Color.CornflowerBlue);
    
    spriteBatch.Begin();
    // 스프라이트 그리기
    spriteBatch.End();
 
    base.Draw(gameTime);
}
 
cs

 


 

그런데 내가 비슷하게 2D 게임 프레임워크로 알고있는 Cocos2d-x가 있다.
Cocos2d는 모바일게임 쪽에서 주로 많이 쓰이는데,
포코팡이라던가 클래시 오브 킹즈 같은 게임이
Cocos로 만들어졌다고 알고있다.
 
아래와같은 가벼운 모바일 게임들을
만드는데에 강점이다.
 
퍼즐 게임
소셜/시뮬레이션 게임
2D 러너/플랫포머
카드/보드 게임
모바일 UI 기반 캐주얼 게임
 
근데 다시 찾아보니 Cocos2d-x 뿐 아니라
Cocos Creator라는 것도 있다?
음.. 찾아보자.

 

 

🧩 둘의 관계 먼저 요약하면…

  • Cocos2d프로그래머 중심의 전통적인 2D 게임 프레임워크
  • Cocos CreatorUnity 스타일의 GUI 기반 종합 개발툴
  • 둘 다 Cocos 엔진 팀에서 만들었고, 내부적으로는 비슷한 렌더링 기술을 공유한다

🎮 차이점 정리

  Cocos2d Cocos2d-xCocos Creator
💻 개발 방식 코드 중심 (C++/Lua/JS) GUI + 코드 혼합 (TypeScript/JavaScript)
🎨 UI/에디터 없음 (코드로만 구성) 있음 (씬 편집기, 애니메이션 툴 등 포함)
📦 리소스 처리 수동 등록 드래그 앤 드롭, 자동 등록
⏱ 진입 난이도 조금 어려움 (프로그래머 스타일) 쉬움 (Unity처럼 씬 기반)
🌍 주요 플랫폼 Android/iOS/PC 등 Android/iOS/Web/PC 등
📚 문서와 학습자료 많지만 코드 위주 에디터 기반 튜토리얼 많음
👤 사용자층 개발자 위주 디자이너 + 개발자 협업 구조


🎯 언제 어떤 걸 써야 할까?

"코드를 직접 치며 로직부터 짜는 게 좋다!" 👉 Cocos2d-x
"씬 기반 에디터 + 빠른 UI 작업하고 싶다!" 👉 Cocos Creator
"Unity처럼 만들고 싶은데, 가볍고 모바일 최적화된 걸 원한다" 👉 Cocos Creator
"성능 최우선, 완전 커스텀 하고 싶다" 👉 Cocos2d-x (C++)


🤔 요약 

Cocos2d-x는 "코딩 중심 게임 엔진",
Cocos Creator는 "Unity 스타일의 시각적 게임 에디터"

 


 
그럼 여기서, 기존에 알고있던 Cocos2d-x랑은 무슨차이가 있을까? 어떻게 다른걸까?
 

 
MonoGame은 C++ 엔진 느낌의 고전파 개발 스타일,
Cocos2d는 스크립팅 + 구조화된 프레임워크 느낌의 효율성 추구 스타일
 

 MonoGameCocos2d-x (또는 Cocos Creator)
언어C#C++, Lua, JavaScript (또는 TypeScript in Cocos Creator)
구조직접 루프 구성 (Update, Draw 등)Scene, Node, Component 구조
플랫폼Windows/macOS/Linux 등 (네이티브 위주)멀티플랫폼 (모바일/웹/PC 등)
그래픽픽셀 기반 2D/3D 모두 직접 처리UI와 2D 게임에 최적화된 구조
IDE 위주 (Visual Studio 등)Cocos Creator는 GUI 에디터 제공
학습 난이도조금 하드코어 (코딩 중심)비교적 진입 쉬움 (특히 Creator)
유명 게임Stardew Valley, FEZ 등포코팡, 클래시 오브 킹즈 등

 
 

  • MonoGame:
    • C#으로 직접 구조를 짜고, 루프를 컨트롤하고 싶은 사람에게 딱.
    • Unity 없이도 정교한 2D 게임을 만들고 싶은 C# 유저에게 최적.
    • 스타듀밸리 스타일의 정통파 모작 연습용으로는 적합!
  • Cocos2d:
    • 2D UI/애니메이션 기반 게임을 빠르게 만들고 싶은 사람에게 좋아요.
    • 특히 모바일 게임이나 카툰 스타일 게임에 강점.
    • Cocos Creator를 쓰면 에디터도 있어서 Unity 비슷하게 만들 수 있음!
  • Unity 유경험자 + C# 가능 → MonoGame 추천
  • 모바일 게임 UI 위주로 연습하고 싶다 → Cocos Creator 추천
  • 웹 기반 게임에도 관심 있음 → Cocos2d-JS/Creator 쪽도 괜찮음

 
 


 

2D 게임 개발하는데에
많은 도구나 프레임워크들이 있겠지만
유명한 게임을 만들어낸
두가지 프레임워크를 찾아보고 비교해봤다.
더 자세히 보고 싶을때를 위해
공식사이트랑 문서링크들도 정리해 놓는다.
 
 

🎮 MonoGame 

🌐 공식 홈페이지 https://www.monogame.net/
📚 공식 문서 https://docs.monogame.net/
🛠 설치 가이드 https://docs.monogame.net/articles/getting_started/0_getting_started.html
🧑‍💻 GitHub 저장소 https://github.com/MonoGame/MonoGame
🎓 튜토리얼 (비공식) https://rbwhitaker.wikidot.com/monogame-tutorials
📹 YouTube 검색 MonoGame Tutorial


📘 Cocos Creator 


🧑‍💻 Cocos2d-x