Cocos2d 기초Changwon National University이 자료는 멀티플랫폼 게임개발도구인 Cocos2d를 소개하는 자료입니다.
Cocos2d는 장면그래프 구조라는 구조를 가지며 강력하고 다양한 라이브러리를 이용한 게임개발으 지원하고 있습니다.
그리고 간단하게 cocos3d에 관한 내용도 다루고 있습니다.
Disruptive Forces (Urbanization)Andrew OwitiThis document discusses the rapid urbanization and growth of Nairobi, Kenya's largest city. Some key points:
- Nairobi's population has nearly doubled since 2000 and is projected to triple to around 7 million by 2030, growing at around 4% annually.
- At these growth rates, by 2030 Nairobi will join the ranks of Africa's "megacities" with over 5 million inhabitants.
- Nairobi's GDP was $13.6 billion in 2014 and could reach $31.2 billion by 2030, larger than the current GDP of many African countries.
- By 2030, over half of Greater Nairobi's population of 10.6
아이폰앱 개발 프로젝트 Booooly! 사례 분석(1)mosaicnet<p><font>[데브멘토 동영상] 앱스토어를 통해 본 모바일 게임의 현재와 미래</font></p><div><font>김영식 넥스트앱스 대표</font></div><div><font>ECONOVATION 앱 창작터 개발자 컨설팅</font></div><div><font>앱 창작터 1 Day 프로젝트 코칭</font></div>
16회 오픈업/우리 게임은 어디에 출시할까?_MS오성미부장VentureSquareThis document summarizes a free program from Microsoft called BizSpark that provides software, tools, and access to cloud technologies to help startups build mobile apps. It connects startups to over 50,000 other startups and 1,500 startup organizations. The program offers startups free or discounted access to development tools and technologies to help them build and grow their business.
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈Amazon Web Services KoreaAWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈 (홍성진 수석, 서버팀 Senior Technical Lead)
AWS로 사용자 천만명 서비스 만들기 - 윤석찬 (AWS 테크에반젤리스트) :: AWS 웨비나 시리즈 2015Amazon Web Services Korea이 강연은 AWS의 기본 개념으로 부터, 스타트업에서 1명의 사용자로 부터, 수백 명, 수천 명, 수만 명, 수십 만명 그리고 수백 만명까지 사용자가 늘어 갈 때 어떤 클라우드 아키텍처를 구성해야 하는지 50분만에 명쾌하게 알려줍니다.
AWS 비용 최적화 기법 (윤석찬) - AWS 웨비나 시리즈 2015Amazon Web Services KoreaAWS는 규모의 경제에서 발생하는 비용 절감 효과를 고객들에게 돌려드리는 철학을 가지고 있습니다. AWS가 제공하는 다양한 인스턴스 타입을 적절히 선택해면 뛰어난 성능의 아키텍처를 구현하면서도 비용을 최적화해 더욱 더 비용 효율적인 아키텍처 구성을 꾀할 수 있습니다.
이 강연에서는 구매 옵션에 따른 설정 및 기능에 따른 다양한 가격 절감 사례를 함께 안내해 드리며, 향후 서비스 성장에 따른 비용 증가 가능성에 대해 고민하시는 개발자 및 관리자들에게 도움이 되실 것입니다.
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015Amazon Web Services Korea모바일 시장이 확대됨에 따라 적은 비용으로 더 빠르게 모바일 사용자를 대상으로 한 모바일 앱 및 웹 서비스를 개발하는 것이 점차 더 중요해지고 있습니다. 이 강연에서는 AWS가 제공하는 모바일 서비스들과 모바일 SDK를 통해 더 빠르게 모바일 서비스를 개발해 사용자의 요구 사항에 대응하고 확장성을 갖춘 모바일 앱을 만드는 방법에 대해 알아봅니다.
또한 모바일 사용자 인증, 기기간 동기화, 사용자 미디어 업로드, 변환 및 공유 방법, 모바일 분석 서비스로 다양한 앱 사용자 통계를 내는 방법 등 다양한 모바일 서비스를 소개하고 이를 조합해 서버 없이도 효율적인 모바일 서비스 아키텍처를 구성하는 방법을 알려드립니다.
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담Sumin Byeon이 발표는 넥슨의 신규 개발 게임인 듀랑고의 생태계에 대한 간략한 소개와 OpenCL 을 이용한 병렬 처리에 관한 전반적인 기술적 내용을 다룹니다. 게임 속의 세계에서 지형과 기후, 지질 조건에 맞게 여러 종류의 식물과 광물들을 알맞은 곳에 배치시키는 것이 생태계 시뮬레이터의 역할인데, 이 시뮬레이터는 방대한 양의 계산을 수행합니다. 초기에 만들어진 프로토타입은 이러한 계산을 수행하는데 30분이 넘게 걸렸지만, 병렬처리, 알고리즘 시간복잡도 개선 등의 여러가지 방법들을 통해 그 시간을 11초까지 단축시켰습니다. 구체적으로 어떤 방법들을 시도했었고, 어떤 방법들이 효과가 있었는지 여러분과 그 경험담을 공유하고자 합니다.
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon이 발표는 [야생의 땅: 듀랑고]의 지형 배포 시스템과 생태계 시뮬레이션 자동화 시스템에 대한 이야기를 다룹니다. 듀랑고의 각 섬은 크기와 지형, 기후 조건이 다양하고 섬의 개수가 많아서 수동으로 관리하는 것은 사실상 불가능합니다. 몇번의 사내 테스트와 베타 테스트를 거치면서 이러한 문제를 해결해주는 자동화된 도구의 필요성이 절실해졌고, 작년에 NDC에서 발표했던 생태계 시뮬레이터와 Docker, 그리고 아마존 웹서비스(AWS)를 이용하여 수많은 섬들을 자동으로 생성하고 관리하는 자동화 시스템을 구축하게 되었습니다. 그 과정에서 했던 고민들, 기존의 애플리케이션을 "Dockerizing" 했던 경험, AWS의 각 서비스들을 적절히 활용했던 이야기, AWS의 각 지역별 요금이 상이하다는 점을 이용해서 비용을 절감한 사례, 그리고 자동화 시스템의 문제점과 앞으로의 방향에 대해서 이야기 할 계획입니다.
2. cocos2d-x 개발 시작하기
• Getting Started(http://cocos2d-x.
org/wiki/Getting_Started_with_Cocos2d-x)
• 그 외 실제 게임 튜토리얼은 손쉽게 찾아볼수 있다.
• 키워드는 cocos2d-x ninja game, cocos2d-x tutorial 정도로 찾아보면
쏟아져나오는 정보의 홍수를 맞이할수 있다.
3. cocos2d-x 각종 기능들 사용하기
• Action, BillBoard, Box2d or Chipmunk, Particle, Shader, Scheduler.....
어느세월에 다 배우나?
• cocos2d-x 프로젝트를 다운받으면, 내부적으로 cpp-tests라는
프로젝트에 모든 예제가 구현되어져 있다. 참고하기도 좋게
만들어져있음. cocos2d-x의 큰 장점 중 하나
4. cocos2d-x에서 염두해둬야할 기본 개념
• Position
• 모든 Child Node는 Parent Node의 상대좌표로 배치된다.
• Anchor Point를 기준으로 배치된다.
• Anchor Point
• 객체 자체의 기준이 되는 포인트다.
• 객체의 크기에 0~1로 비례한다.
• Scale (1, 1), Position(0, 0)인 객체의 Anchor Point : case1(0, 0), case2(1,
1)으로 잡아주고 Scale(2) 했을시 객체의 크기
• case 1 -> 객체는 Scale(2, 2), Position(0, 0), x(-1), y(-1), width(2), height(2)가 된다.
• case 2 -> 객체는 Scale(2, 2), Position(0, 0), x(0), y(0), width(2), height(2)가 된다.
5. cocos2d-x를 조금 더 편리하게 사용하기
• spine (http://esotericsoftware.com/)
• 스켈레톤 애니메이션 제작 툴
• 자체 기능들은 3.x버전부터 cocso2d-x에 내장됨.
6. cocos2d-x를 조금 더 편리하게 사용하기
• Tiled (http://www.mapeditor.org/)
• 타일 맵 툴
• 타일 맵을 찍고 그것을 tmx로 뽑아준다.
• cocos2d-x내에서 손쉽게 사용 가능.
7. cocos2d-x를 조금 더 편리하게 사용하기
• Physics Editor (https://www.codeandweb.com/physicseditor)
• box2d와 chipmunk의 충돌 면을 손쉽게 만들어주는 툴
8. cocos2d-x에서 쉽게 마주할 실수와 해결법
• 부모 노드와 자식 노드의 Positioning 문제.
• 두 노드는 서로 다른 차원에 존재하기때문에 상대적인 좌표를 쓴다.
• A->addChild(B); 의 상황일때, A와 B 각각의 (100, 100)은 다른 위치일 수
있다는 것이다 (이것 또한 Anchor Point에 따라 사소하게 달라진다)
• 이럴때 서로를 같은 차원에 놓기 위해서 convertToNodeSpace또는
convertToWorldSpace 를 사용할 수 있다.
• ex) A->convertToNodeSpace(B); 를 하면 A의 좌표계에서 B의 위치를 알
수 있다.
• 자세한 사항 : http://www.cocos2d-x.org/wiki/Coordinate_System
9. cocos2d-x에서 쉽게 마주할 실수와 해결법
• convertToNodeSpace
• ex) A->convertToNodeSpace(B); 를 하면 A의 좌표계에서 B의
위치를 알 수 있다.
• Parent Node - Child Node간의 1차원 정도의 차이를 메꾸는데
쓸 수 있음.
• 하지만 Parent Node와 Child Node의 Child Node간의 좌표계를
맞추는데 에러 발생한다.
10. cocos2d-x에서 쉽게 마주할 실수와 해결법
• convertToWorldSpace
• 위 convertToNodeSpace에서 발생할 문제를 해결할 수 있다.
• 모든 Node의 Position을 SCREEN! 좌표를 기준으로 변환해
리턴해준다.
• 위 함수를 사용하면 Parent Node의 Position이나, Child Node의
Child Node의 Position이나 동일한 차원에서 비교할 수 있게 된다.
11. cocos2d-x에서 쉽게 마주할 실수와 해결법
• 가끔 정상적으로 create 해주었고, 값이 들어간걸 확인했는데
다음 프레임에 참조해보면 nullptr이 뜨고 작동하지 않는 경우가
있다.
• 특정한 상황에서 발생하는 cocos2d-x 자체의 메모리 관리문제가
대부분이다.
• Sample scenario - http://cocos2d-x.
org/wiki/Reference_Count_and_AutoReleasePool_in_Cocos2d-x#
An-Error-Sample
• 이럴 경우가 발생하면, 해당 오브젝트를 초기화하고 난 다음
retain()을 걸어주면 해결된다.