Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iLoveCoffee Programming Postmortem
Search
ehooi
April 26, 2013
Programming
3
2.1k
iLoveCoffee Programming Postmortem
ehooi
April 26, 2013
Tweet
Share
Other Decks in Programming
See All in Programming
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
120
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
組織で育むオブザーバビリティ
ryota_hnk
0
170
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
2026年 エンジニアリング自己学習法
yumechi
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
440
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
180
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
960
Implementation Patterns
denyspoltorak
0
280
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
140
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
160
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Odyssey Design
rkendrick25
PRO
1
490
Google's AI Overviews - The New Search
badams
0
900
How to build a perfect <img>
jonoalderson
1
4.9k
The agentic SEO stack - context over prompts
schlessera
0
620
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
So, you think you're a good person
axbom
PRO
2
1.9k
Paper Plane (Part 1)
katiecoart
PRO
0
3.9k
Prompt Engineering for Job Search
mfonobong
0
150
Transcript
아이러브커피 개발 포스트모템 - 온라인 게임 프로그래머 입장에서 파티게임즈 CTO
임태형
아이러브커피 과거사 • 2011년 – 1월 회사 설립 – 7월
싸이월드 출시 – 10월 대만 출시 – 12월 중국 출시 • 12월 모바일 개발 시작
당시 상황 • 웹 버전도 계속 라이브 합니다 – #
lines: 40,000 62,000 • Android가 우세하나, iOS도 무시할 순 없다 • 모바일 소셜 그래프 대세가 없다 – 직접 만들자
당시 상황 • 모바일 개발 경험 전무 – 회사에 Mac도
없고, 안드로이드폰도 없음 – 프로그래머 2인으로 시작 • 모바일에 맞도록 기획 – UI 수정 - Mouse Over … – 중력 센서, 터치를 활용한 콘텐츠
울고 싶다
순서 • Game Engine • Logic Converting • Client Optimization
• Server Optimization
GAME ENGINE
엔진 선정 Adobe AIR • 장점 – 코드 유지 –
강력한 2D 렌더러 – Flash • 단점 – 성능 – 안정성 Cocos2D-X • 장점 – Open Source • 단점 – 기능 빈약함 – OpenGL ES 1.1 – 버그 많다 – 툴이 없다
당시 각 파트 진행 상황 • 기획 파트 – UI
기획 중반 작업 – UI 화면 50개 이상 • 그래픽 파트 – UI 디자인 시안 작업 • 프로그래밍 파트 – Legacy 덩어리 ActionScript 코드들 Fla 파일들
UI Editor Cocos Builder 1.0 • Only for Mac •
No Source • No maintenance 자체 개발 • Undo 없으면 안 쓴다 • 자주 죽어도 안 쓴다 • 키보드로 픽셀 단위 조작 • 익숙한 MFC 사용 빠른 초기 버전
UI Editor
UI System • Non-Retina 제거 • UI Event Handling –
Modal / Popup – Multi-touch – Slide
Effect Editor
기능 추가 • Glow Effect • Sprite Masking • Text
Stroke 전부 Flash에 있던 기능
LOGIC CONVERTING
C++로 개발 시작 • 주요 인력은 웹 버전 경험 뿐
– ActionScript + Java • C++ – No Garbage Collection – No Closure 이 속도라면 몇 년은 만들어야 할 판
온라인 게임 경험을 살리자
Lua Patch • 한글변수 • UTF8 파일 지원 • continue
코딩 실수 방지 • strict • class / descriptor •
Visual Studio – Syntax highlighter – Build time syntax check (custom rule)
디버깅 • Debug Console – C++ Crash • Lua Crash
Report Server • VS Debugger – Debug API 너무 느리다
Coroutine 활용 • 절차를 서술 – 그냥 lua 코드 –
지역 변수 – 분기/반복 • yield? – 기본 함수 속
CLIENT OPTIMIZATION
그래픽 리소스 분량 • 인테리어 아이템: 4,500개 • 캐릭터 아이템:
720개 • 캐릭터 애니메이션: 233개 • 각종 아이콘: 1,400개
타겟 스마트폰 사양 • iPhone 3GS – Cortex-A8 600 MHz
– PowerVR SGX535 – 320x480 – 256 MB RAM • Galaxy S – 1 GHz Cortex-A8 – PowerVR SGX540 – 480x800 – 512 MB RAM
리스트 박스 80 Pages
리스트 박스 - 텍스트 버그 발견 • JNI memory leak
• 줄바꿈 무한 루프 버그 최적화 • 바뀔 텍스트 초기화 생략 • 메모리 할당 횟수 줄임 • 복사 횟수 줄임
리스트 박스 - 이미지 • 백그라운드 로딩 • 안 쓰는
텍스처 메모리 해제 • UI 재활용
캐릭터 시스템
None
None
캐릭터 시스템 최적화 • 캐릭터 당 레이어 수 = 16~25
– 레이어 = 텍스처 = Draw Call Texture Atlas
너무 디테일해서 문제
해결한 방법 • 힘으로 구겨 넣음 – 이 정도 만들었으면,
크게 벗어나진 않겠지 – 일부 아이템 수정 512x512 1장
인테리어 아이템 • 메모리/파일 용량 둘 다 문제 • PVRTC?
ETC1? DXT? PNG 8bit? • RGBA4444 (PNG 32bit) – 디더링 – 캐릭터, UI도 일부 적용
SERVER OPTIMIZATION
당시 구조 • Java Socket Server – 성능 향상 –
백섭 가능성 존재 • Mongo DB – 빠르게(만) 개발 • Web server?
모바일 네트워크 • 자동 재접속 시도 • 재접속 성공시 통신
내용 복구 – TCP 처럼 주고 받은 패킷을 맞춰 봄
당시 서비스 상황 • K사 클라우드 서버 – Amazon 대비
50% 이상 저렴 / 기능 부족 – 동시접속자 1만명 처리 / 월 40만원 – 새벽에 간혹 서버 멈춤 (Hang) 자체 서버 구매
트래픽 폭증 대비 Redis 도입 • Cache – 친구 레벨
등 • 소멸성 메시지 – 친구에게 요청 – 친구집 방문 행동 Mongo DB • Collection 분리 • 메모리 증설 • Sharding?
Game Server 장애 처리 • ulimit • iptables – ip_conntrack
• GC options • More Memory • Load balancing – uid % k
최적화 효과 • RU 약 500만 • DAU 약 150만
• CCU 약 22만 • DB 400만원 * 1대 • APP 110만원 * 3대 • IDC 임대료 70만원 / 월 – 단, CDN 별도
마무리
못다 한 이야기 • 패치 시스템 삽질기 • 안드로이드와의 사투
• 파티프렌즈를 아시나요?
하고 싶은 말 • 온라인 게임 프로그래머도 모바일 게임 잘
만들 수 있다 • Cocos2D-X로 개발하는 팀들에 도움이 되길
진행중인 프로젝트 • 아이러브커피 라이브 • SNG 2종 • 캐주얼
1종 • 퍼블리싱 다수
프로그래머느님 모십니다!
[email protected]
[email protected]