I noticed this thread in this afternoon when I reorder the categories in this forum. Sorry I missed it for a long time. The forum reminds me 135 replies with a estimated read time of 46 minutes, but I took 2 hours to read every word here.
- Someone criticized about our effort on the new editor Cocos Creator,
- Someone complained the EOL of Cocos Studio and ask why,
- Someone criticized about the lack of documentations and tutorials,
- Someone suggested the Cocos Store on Dec ’16,
- Someone ask the C++ support of Cocos Creator.
Well, what I learned from maintaining cocos2d-x is that:
It’s impossible to please everyone.
Making decision is hard, unless we have a vision, or so called "first principle”.
But what’s our first principle? I have defined it many years ago:
MAKE THE GAME DEVELOPMENT EASIER
or in Chinese “让游戏开发更简单”.
“Make the game development easier”, the simple vision includes some parts:
- Lower both the cost of money and time to develop a game which can be commercial succeed
- Lower the barrier of a newbie to enter game industry. With a few weeks training/study, a freshman can manage how to develop a simple game by our engine.
This vision not only service our developers, but also service the business model of cocos game engine:
- With more developers to manage and use cocos engine, the more MAU we have.
- With more MAU of developers, and more commercial succeed games, we can sell our SaaS / SDK integration services better.
- With more commercial succeed games, we can pick then up and do our publishing service better.
Above the top of this vision, another goal is also very very important: HELP OUR DEVELOPERS TO CATCH THE NEXT BIG WAVE OF GAME INDUSTRY.
So sums up, the goals of cocos engine are 3 points:
- Help our developers to catch the next big wave of game industry.
- Lower both the cost of money and time to developer a game which can be commercial succeed.
- Lower the barrier of a freshman to enter game industry by using our engine.
Which these principles, now I can answer the questions above.
Q: Why we invest a lot in Cocos Creator, instead of the framework cocos2d-x itself?
Can Cocos Creator let the game development easier and faster? Yes, I’m very sure of this. An user reported in the forum that Creator make the cost of time 2~3 times faster than coding with cocos2d-x to complete a commercial game. Yes, it’s in our principle #2.
Q: Why we close Cocos Studio, and develop the new editor Cocos Creator?
Cocos Studio used C# to write the eidtor, that means if you want to extend the editor to finish a game, your team need to manage:
- C# to extend the editor
- C++ to extend the cocos2d-x framework
- Lua or JavaScript to write the game logic, especially in east Asia
- and perhaps Python to extend the cocos command line tools.
Your team need to manage at least 3 programmer languages.
While in Cocos Creator, you can use JavaScript to write the game logic, to extend the Editor, to extend the framework, everything in JavaScript. So it follows our general vision: makes the game development easier, and also faster.
Q: Why we use JavaScript as the 1st language in Cocos Creator, but not C++?
Firstly, take a look at the Stackoverflow developer survey result 2017, what’s the most popular programming language?
The result told me, if I’m looking for more developers in cocos game engine, JavaScript is the best choice. but THIS IS NOT THE MOST IMPORTANT THING.
The MOST IMPORTANT THING is that, our principle #1: Help our developers to catch the next big wave of game industry.
- Is cocos2d-iphone great? Well, it’s not bad, but the major reason of its popularity is its catching of iPhone games’ big wave.
- Is cocos2d-x solid and high quality to compete with others? I don’t think so, as the founder of cocos2d-x. Just because it caught the wave of iPhone & Android cross platform games.
- How about Unity? They caught the wave of mobile 3D games, and in-game incentive video ads. Now they’re trying to caught the wave of VR games. You’re on the wrong way, haha.
- And Unreal? The engine is awesome, but they seems to miss the time window of mobile games. so Unreal has very low marketshare comparing to cocos and unity.
- How about Construct 2, Corona SDK, Defold, blablabla …… To be honest, I don’t care.
I have this report every week.
Using VPN to download and analyze mobile games outside China is very time consuming. I only ask assistant to do this in some special dates.
(Note that Puzzle & Dragon’s Chinese edition is also using cocos2d-x, and Gungho is one of our investors.)
The market shares are good news. While the bad side is that, not matter how much effort I did in the development & marketing, the marketshare of cocos in China has been always 45%~50% around, from 2014 to 2017. Developers felt Unity is becoming more popular, the reason is not Unity defeat Cocos, but Unity ate the marketshare of proprietary engines.
So what’s the next big wave? VR? AR? Aha, Unity is on a wrong way, cheers.
The near future is HTML5.
In the March, I published a simple casual game “Smiley Cubes” onto Facebook Instant Games. After 10 days global publishing, my jaw dropped and hit the floor when I login to my Facebook developer account, look at this:
1.2M new users in the first 10 days! Weekly retention at 24% averagely!
Welcome to challenge me: who can made/publish a VR game to get 1.2M players in the 10 days this year?
Besides Facebook Instant Games, another giant in HTML5 game is Tencent WeChat.
WeChat tested its 1st HTML5 title in April 6th, which is also made with cocos2d-js. And all the new HTML5 games in Tencent are all using Cocos Creator.
We have occupied the possibility of HTML5 games on this planet’s top 2 platforms: Tencent WeChat and Facebook Instant Games.
This is why I made the decision to use JavaScript as the 1st class language of Cocos Creator, C++ and Lua comes secondly.
Just like 7 years ago, I used C++ to code the 1st line of cocos2d-x, to find a new opportunity for cocos2d-iphone. I’m very confident on the move from C++ to JavaScript, as well as I moved from Objective-C to C++. Have you seen the result of cocos2d-iphone guys insist on Objective-C, and try many times to compile Objective-C to Android? Oh no, I’m wrong, they have given up Objective-C and adopted Swift to rewrite the framework. I tried to compile Objective-C onto Android at 7 years ago, it didn’t;t work. And I also tried to compile C++ onto JavaScript year after year, it hasn’t worked well, it hasn’t been a “native" solution so far.
In technology, the love of a programming language worth nothing. If there’s a new blue ocean, we should enter it without a doubt of which programming language we should learn and use.
30 years ago I was good a LOGO and won a prize in coding competition in my childhood, 20 years ago I use VB script and ASP.net to earn money from creating websites, 10 years ago I’m an expert on WindowsCE and WM6.0. but where’s these technologies today? I dare to CHANGE THE MAJOR PROGRAMMING LANGUAGE and MOVE COCOS2D ENGINE INTO ITS 3RD GENERATION, to HELP OUR DEVELOPERS TO CATCH THE NEXT BIG WAVE.
- 0 generation: cocos2d (python)
- 1st generation: cocos2d-iphone
- 2nd generation: cocos2d-x
- 3rd generation: Cocos Creator, write once and cross both HTML5 and mobile native.
VR nor HTML5 are both gambling. The history will prove I’m right or not.
Q: We need a better Cocos Store!
Yes, a good suggestion! You wrote this on Dec ’16, and the new Cocos Store inside Cocos Creator was launched at its v1.4 in Mar ’17.
In Creator v1.5, it will support both Chinese and English user interface, and offer the category of “open source sample games”. The Cocos Store follows our principle #2 and #3, so it’s in our roadmap, and super important!
Q: We need better docs!
Yes! It’s in our principle #3. very important!
The engine team is updating all docs for Cocos Creator during these 2 weeks. I believe that we can have polished docs in this May, at Creator v1.5 release or even before it.
About the docs for cocos2d-x, I put press on the team, they could have strategy on it sooner or later.
But generally speaking, when the C++ & Lua support for Creator become mature, I will use this mature reader to close cocos2d-x v3.x, then open the new v4.x period, using cocos2d-x-lite and even plus the engine under creator as cocos2d-x v4.0, then merged creator / cocos2d-x docs into one.
Q: What the final tech stack of Cocos Creator?
By using HTML5 & JavaScript as its major programming langauge, Cocos Creator can run a cocos game without compilation, which follows our principle #2.
And the best benefit is that, it can run on Facebook Instant Games and WeChat HTML5 games “natively”, which is the real big wave, and follows our principle #1. At the same time, we can publish the Cocos Creator game onto “native” iOS & Android via JSB.
Considering old users, Cocos Creator can also export its data into an intermediate format, then parse into the traditional cocos2d-x C++ & Lua API. Today the intermediate format is JSON, and the future will be industry format glTF.
Q: What’s the 3D development in cocos2d-x v3?
3D modules are removed in cocos2d-x-lite. But we’re developing a new 3D framework. It could be ready for game development in later 2017. I need to test it in my games firstly, then publish the framework in 2018.