대규모 게임의 경우 cocos2d-js를 사용하지 않는 것이 좋습니다
현재 프로젝트 중 일부는 cocos2d-js로 개발되고 있으며 이러한 프로젝트를 다음으로 변환할 계획입니다. 백로. 여러 가지 이유가 있습니다:
1. Cocos ide에는 버그가 있습니다. 중단점이 충돌하고, 코드 프롬프트가 불량하고, 메모리가 너무 높으며, 가상 머신의 메뉴 표시줄이 이벤트에 영향을 미칩니다(여러 버전을 반복한 후, 이 메뉴 BUG는 아직 수정되지 않았습니다.)
2. Studio의 워크플로는 여러 엔진 중 최악이며, BUG가 있습니다. 실제 성능과 일치하지 않는 경우가 많습니다. 그리고 많은 메모리를 차지하며 충돌이 발생합니다. 상속할 수 없습니다(가장 심각한 문제는 버튼을 상속할 수 없기 때문에 줌 및 기타 고급 기능을 누르는 것이 매우 고통스럽습니다).
3.
아키텍처가 너무 열악합니다. 몇 가지 작은 함수를 작성하는 것은 괜찮지만, 큰 게임을 작성하고 싶다면 이 아키텍처가 당신을 미치게 만들 것입니다! 예를 들어 가장 간단한 버튼 이벤트의 경우 이벤트 메소드에 터치 유형 판단을 추가해야 합니다. 아주 간단한 클릭만 하면 비슷한 코드가 많이 나올 것입니다
! 4. 여러 UI 세트가 있지만 각 세트마다 버그가 있습니다. CCUI 디자인도 너무 별로네요! 사고에 대한 책임도 있습니다.
5. 엔진 버그 문제,
많은 버그가 여러분을 울게 만들 것입니다. 예를 들어 좌표가 정의되지 않은 것으로 나타납니다. 또 다른 예로는 핫 업데이트 버그가 있는데, XCODE로 컴파일된 패키지는 기본적으로 jsc가 아닌 js로 되어 있는데, 이 패키지가 스토어에 출시되면 동시에 게임이 업데이트되지 않는 문제가 발생합니다. 입력하면 핫 업데이트 인터페이스가 멈춥니다. (이 문제로 인해 3개월 동안 사용자가 손실되었으며 Apple Store가 어디에서 검토를 통과했는지 알고 있습니다.) 또 다른 예는 java/objectc와 js 간의 상호 작용입니다. 또 다른 예: iOS 제3자 입력 방법으로 인해 충돌이 발생합니다!
6. 워크플로 문제, IDE의 중단점 관찰 변수가 매우 불친절하고, 스튜디오에서 내보낸 구성이 매우 크고, 스튜디오 확장성이 매우 낮습니다. IDE 버전 1.2가 출시되기 전에는 우리 팀에서는 중단점도 설정할 수 없었고 디버깅을 위한 로그만 인쇄할 수 있었습니다.
7. 업무 효율성 문제, 코드 프롬프트에 대해서는 이야기하지 마세요. 간단한 리스트를 구현하는데 시간이 오래 걸리는데 ccui의 리스트는 정말 사용하기 어렵네요! 또한 자르기 및 마스킹에는 코드 한 줄만 필요하지만 Cocos에서는 셀 수 없이 많은 줄이 필요합니다!
8.
엔진 업그레이드 문제: 코코스는 한 달에 한 번 정도 업그레이드되고, egret는 2주마다 업그레이드됩니다. 그러나 Cocos 업그레이드는 많은 새로운 버그와 열악한 호환성을 가져올 것입니다. 결과적으로 우리는 여전히 버전 3.0
을 사용하고 있습니다. 가장 짜증나는 점은 공식 버전 3.6이 더 이상 포인트를 깨뜨릴 수 없다는 것입니다! 3.0에서 3.6으로 업그레이드하면 레이아웃 혼란, 9개의 궁전 실패 및 충돌이 발생할 수도 있습니다(확실히 코드 문제는 아닙니다)! 기본적으로
코코스가 새로운 기능을 추가할 때마다 수많은 새로운 버그가 발생하고, 오래된 버그 수정 수도 적습니다. 제 포럼에 보고된 문제는 수정하는 데 2~3개 버전이 필요한 경우가 많습니다. 그리고 다음 버전은 파트타임으로 수정이 불가능해요. 그리고
egret는 빠르게 반복할 뿐만 아니라 버그를 부지런히 수정합니다! 제품 품질로 이어지는 검증 버그도 거의 없습니다.
9. 공식 직원의 태도 문제: 코코스 포럼에 버그 피드백을 보냈는데 답변이 오는데 7일이 걸렸습니다. 주소(3.0에서 3.1 및 3.2까지의 버그, 공식 도움말 확인)를 확인하고, 제가 eret에 보낸 버그 피드백을 살펴보세요. 퇴근 시간이었는데 다음날 아침 일찍 응답해 주었습니다. 주소(Egret Community-BUG 목록)
10. API 문제: cocos는 3가지 주요 버전을 거쳤습니다. 공식 API 문서에도 API가 있지만 실제로는 API가 없다고 합니다. 아직 바인딩이 추가되지 않았습니다.
11. 크로스 플랫폼 문제: Cocos2d-js는 종종 HTML5 및 JSB와 일관되지 않게 작동합니다. 결과적으로 지금은 JSB에만 집중하고 HTML5 버전은 포기할 수 있게 되었습니다. 백로에는 이런 문제가 거의 없습니다.
12.
성능 문제: 런타임을 먼저 제쳐두세요. ccui를 사용하는 경우 cocos2d-js의 성능이 백로에 의해 즉시 중단될 것을 100% 보장합니다.
네이티브
의 성능 비교에 대해 이야기해 보겠습니다. Cocos 사람들은 egret이 js로 작성된 로직이며 바인딩되어 있다고 말합니다. 그러면 문제가 발생합니다. 이제 js의 로직으로 인한 성능 압박은 전혀 문제가 되지 않습니다(
node.js를 참조하세요. js를 사용하여 서버를 작성할 수 있습니다). 주요 성능 압박은 실제로 렌더링에 있으며 둘 다 렌더링에 OpenGL을 사용합니다. ccui를 사용하면 여전히
egret에 의해 사망하게 됩니다. ccui가 가져온 drawCall은 정말 대단해요! ! 런타임에 대해 다시 이야기해 보겠습니다. 이제 많은 브라우저에 통합 런타임이 있지만(캔버스 렌더링 대신 OpenGL
렌더링을 사용할 수 있음) cocos-js는 협력 중이라고만 말하는데 이는 이미 한 단계 더 느립니다.
13. 제품 로드맵 문제: cocos의 여러 제품은 3D에 중점을 두고 있으며 egret는 이미 자체 IDE를 구축했습니다. 코코스는 기본적인 생활 발달을 보장하지 않으니 그냥 u3d로 싸워보고 싶습니다!
14. 내부 문제: 코코스는 아마도 내부적으로 매우 불협화음이 있는 것 같습니다. IDE는 1명이 개발하고, 스튜디오는 30명이 개발한다고 합니다(이건 30명이 만들었어요). .NET을 사용하여 구축되었습니다. 효율성과 확장성이 뛰어난 기술인 QT와 AIR를 사용하는 대신 .NET을 선택했습니다. . . .
------------------------------- ----- ------------------- ----- -----------------------
질문< /p>
외래어: cocos에 대해 너무 많이 이야기한 후에 저도 egret
wing과 같은 UI 편집기를 개발하고 Flash/Flex와 같은 UI 편집기를 작성하기도 했습니다. API(egret에서 사용하는 세트로, 이 아키텍처는 사용하기 쉽고 간단하며 명확합니다). UI 편집기에는
unity3d와 같은 바인딩 스크립트 기능도 추가됩니다. 하지만, 코코스 밑바닥에 있는 미친 벌레들 때문에 결국 포기하게 되었습니다. 여기 백로차를 가지고 어떤 바퀴를 만들어야 할까요? 제가 가지고 있는 cocos 관련 자료를 오픈소스로 공개할 계획입니다.
그럼 가서 백로를 고치세요!
------------------------------- ----- ------------------- ----- ----------
또 다른 여담 :
p>게임 엔진 cocos2d-js와 egret의 비교
바이두 검색의 첫 번째 비교입니다. cocos2d에는 다음보다 더 많은 도구가 있다고 나와 있습니다. 나는 그것을 부정하지 않습니다. 그러나 기본적으로 사용할 수 있는 것은 없습니다. 백로 도구는 매우 안정적입니다. 가장 간단한 골격 애니메이션을 살펴보겠습니다.
Cocos는 용골도 지원하지 않으며 스튜디오의 골격 디자인도 형편없습니다. Egret의 골격 디자인 도구는 인터페이스와 실용성 측면에서 스튜디오를 완전히 능가했습니다!
위 주소의 성공적인 제품에 대해 이야기해 보겠습니다. Fishing Master, DOTA Legend, My Name is MT는 모두 cocos2dx에서 작성되었으며 js 버전과는 아무런 관련이 없습니다! Dota Legends의 웹 버전을 본 적이 있나요?
위의 개발 언어 비교에서 대규모 프로젝트의 경우 ts가 js보다 성능이 정말 뛰어납니다! Node.js는 실수로 실수를 할 수 있으며 대규모 프로젝트에는 실제로 적합하지 않습니다. 그렇지 않으면 Microsoft는 이 휠을 만들지 않을 것입니다.
위 참고자료를 비교해 보면 cocos2d-js 문서에는 매개변수에 대한 설명조차 없고, C++ 문서에서는 참고자료로 사용할 수 없는 매개변수가 많습니다. 그리고 egret은 개발 도구에서 중국어의 도움을 물려받았습니다.
현재 상황으로 볼 때 올해는 백로 제품에 확실히 폭발적인 해가 될 것입니다. 믿을 수 없다면 기다려 보세요! 코코스가 정말 나를 망쳤어!
------------------------------- -- ------------------------------------------------ -- -----------------------
다시
한 번 말씀드리고 싶은 점은 2dx가 아닌 cocos2d-js나 JSB를 이용해 명작을 만들어보시기 바랍니다. 2dx 얘기가 나와서 말인데, 엔진 소스 코드를 바꾸지 않은 분들도 계시고, Cocos 엔진 업그레이드로 업그레이드할 수 있는 게임들도 좀 더 자세히 살펴보겠습니다. 스튜디오를 이용하시는 분들이 몇몇 계시는데요. 나는 Wang Zhesi와 싸우고 싶지 않습니다. 단지 여러분이 버그를 직면하고 경험을 향상시킬 수 있기를 바랍니다. 그것이 좋다면 우리 팀은 cocos 기술을 고려할 것입니다. 그렇지 않으면 egret과 unity3d만 사용할 수 있습니다. 코코스에는 정말 많은 것들이 있다고 말하지만, 온갖 말도 안되는 문제와 온갖 형편없는 수단을 가지고 개발하는 것이 아니라, 개발자들에게 더 많은 혜택과 편리함을 가져다 주고 성장하길 바랍니다. 그리고 제가 언급한 점들 @王智
이러한 버그나 문제점을 제가 직접 알려주지 않는다면 아마 꼭 수정되지는 않을 것 같습니다. egret에는 Wang Ze라는 사람도 있는데, 그의 철학은 우리 개발자를 사용자로 대하고 개발 경험을 향상시키는 것입니다.