We need a friendly ENGINE, not a dysfunction EDITOR

@naive231you hit all the right chords. However you can’t argue why doing one thing is better than the other. Many times there are business reasons to do something, or creative reasons.

The solution here is to start a fork, lead by a few really smart folks, that focuses just on the core C++ engine and makes it awesome.

3 Likes

In fact, we forked it long time ago.
Of course,we can’t open our own source because of business reasons.

We love Cocos2d-x, absolutely not just because it is open-sourced. It do the right thing: Pure game engine for developers who want to control every detail as they want.

I complain to dev team just because it don’t want to be a pure game engine any more, and that is what its value resides. Something should every developers know, when developer write scripts instead the true programming language, omitting the compiling and linking phases, you just give up the control with your project, just like Unity.

Though the play mode in Unity is pretty good when building the prototype or validate the game logic because it don’t need to compiling and linking. But it is the fatal defect itself: It is just a script. If anything goes wrong within the engine itself, you can’t debug it easily because you can’t understand any symbol or call stack information throw up from the debugger.

Unity has the debugger? I know that, that is scripting debugger, not my mentioned real debugger. That is what we encountered problem right now. Our game just crashed occasionally, not the script’s fault. When we throw the call stack to Unity’s support team, they just want us to give them an reproducible test pattern to fixed the problem or give them our project codes.

Come on. If I knows what the call stack means, I can dodge the defect or fixed it myself.
You know, I’ll never knows what happened later, until we cut our project code over and over to figure out why do we got this problem and when.

5 Likes

I’ve recently switched to Urho3D engine, it has really good features, written in C++ with Lua and ActionScript support. It has it’s own editor to build a scene/prefabs (similar to Unity, but a bit better in my case, since it doesn’t require a game to be written in a script language). Don’t get me wrong, i like cocos2dx but the lack of 3D support made me switch.

Indeed cocos2d-x is not really suitable for 3D projects, and I totally understand why you didn’t choose Unity, but I’m very curious what made you choose Urho3D and not, lets say Unreal, which is also c++ based and supports not-scripted development.

Good question, well first it is really lightweight. It has most of the features i need and really extendable. Also it has good mobile support, unlike Unreal which is still lacking a bit. Also i can just plug and play any other 3rd party framework and use it if i need it. Basically work flow is really similar to cocos2d-x which i like and i’m used to it.

Yeah, true that. I’ll try to make some time and look over Urho3D, I’m really curious to what it can do, although on mobile I mostly develop 2D games, and here cocos2d is the best solution in my opinion, and for desktop and console 3D projects, well… Unreal is very very powerful, but you are right: there currently isn’t a very good solution for control freak programmers and extensibility lovers on 3D mobile projects.

Is Urho3D has its own editor?
I don’t see any editor images at official site.

It uses angel script for authoring game logic, but its engine is open sourced. If any defects existed in implementation, we still has chances to fix them by ourselves.

In my personal preference, just personal flavor, I really don’t like scripts.
Because it just not directly enough to debug or profile my codes.

If you’re interested in Urho, you may also like Atomic Game Engine. It builds on Urho to add a Unity-like editor, ECS, support for Javascript, Typescript and C# scripting, and probably a lot more.

Hello there. I’ve read your benchmarking here http://nivrigdev.tumblr.com/post/137158222896/game-engine-benchmarking. Have you ever considered adding Godot https://godotengine.org/ to the mix? Looks like it’s becoming popular…
I’m looking at Uhro3d these days. Looks like the engine is good for 3d. Not sure for 2d, though, it has an sdk but i didn’t tried it yet.
Uhro has an editor but you have to build the project first. Cannot download it from web pages. It’a a bit of a rough, anyway… i’ve managed to load some blender scenes, with mixed results… I like the way it breaks shaders, materials and models in separate xml files for managing… i think it’s a good strategy…
Didn’t know atomic came from it… i’ll give it a look…

If you want to build a BunnyMark in Godot, go for it :slight_smile:

If any of you can read Chinese, you may heard some observations from here:

Dysfunction editor cannot solve LOTS newbies’ problems(Just because they are newbies).
For me, ‘Dysfunction’ doesn’t mean the UI design, instead the compability, the compability to other resources.
That’s the most important pain point.

I’m trying Urho3d these days. It’s well laid and powerful… sound structure. At least for 3d; yet I didn’t tried Urho2d… in theory can match a 2d dedicated engine, but…

If I could add one thing, the lack of making LUA projects ‘right-of-the-box’ is a thing of the past, a project that really pulled me down to try Cocos2d-x was Fantasy Warrior an amazing 3D Lua project done in Cocos IDE, since Cocos IDE and Cocos Studio have been deprecated and the only support has shifted entirely to Cocos Creator and JS, I would love to see Lua projects right-out-of-the-box once more.

2 Likes

After some weeks, I return this topic again.
Guess what? After version 3.14.1, Jan.19,2017, nothing updated anymore. In fact, I think there aren’t big updates anymore. Because most of fire-power are transmitted to Creator project, right?

You have staff and funding, but in front of such big project ‘Creator’, you really underestimated its scale. Besides, the needs of developers are still the same, why don’t you build them well then keep walking?

In my previous sayings:

For the FBX, why we have to convert it to another type(c3b/c3t) then can put them to the scene? For the animations and scene deployment, why not we use the ASE file from Adobe After Effect to deploy our scene or to manipulate the animation of a sprite? Lots of artist, level, or sound editors do their jobs well and export their end products, but Cocos2d-x developers just can’t use them directly

When we fix some defects of ‘fbx-conv’ to improve its compatibility for more FBX files which built by different exporting habits from different artists, We indeed realized how much works that Unity finished. Every FBX files, just drag it into Unity, Unity process them well to its hierarchy. That does not seem to be a great feature. But the truth is, it really is a DAMN good feature.

When developers hard to deploy a bunch of ‘Sprite’ or ‘Sprite3D’ to their scene, why don’t you develop a plugin of Unity to export all transform data of the scene? Rely the advantages of those awesome editor, Cocos2d-x can really become the truly game engine, the developer friendly game engine.

Play a video texture(player) cross all platform is finally just implemented in Unity 5.6 beta. It was accomplished most by plugins before. That important feature in all platform and all OS should be implemented early on Cocos2d-x. But guess what? Cocos2d-x still can’t play video textures at any ONE platform or ONE system(Unity can do it at least on Windows,Linux or iOS) yet.

I just heard some critical defects of ‘Creator’ project hanging there, and the dev-team still working on it, and the project team, the customer, is very unsatisfied with this. I know, it doesn’t surprise me anyway. Hope the project team and dev-team can get through it well, and hoping the dev-team can take a breath to think about it again.

2 Likes

Make sure you are on the right branch in our GitHub repo. We use multiple branches. v3 is safe to pull from usually. We merge changes into that. I just pulled this morning to test some bugs.

We need a friendly ENGINE, not a dysfunction EDITOR.
Add supports of Vulkan, VR, AR, lighting techniques, fancy predefined shaders … is necessary of course.

I also need a friendly ENGINE, with an EDITOR, even if the EDITOR is dysfunction. What you really need is a pro ENGINE, but many more people like me just need an easy-to-use EDITOR.

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.

9 Likes

Finally some words of wisdom. Let me comment about them:

C#? Madness. Cocos Studio / Mono barely works on my mac. Glad you removed all the stack, except for C++, I like it, and you can find useful things, it’s the industry standard for gaming.
But of course it’s a mess for newcomers. Very very difficult, impossible for noobs. No doubt JS is much, much simpler. Take it with a good editor(creator), and a good server side manager(sdkbox), and you can have a game in a week.
I was to add firebase to the parenthesis, but… here’s the main china problem… no google. :open_mouth:
And this accounts for many of the strangeties and particularities of this market / product. Like it or not, you gotta take it, hence the mighty search for new channels. Android fragmentation there is crazy, and this pushes toward new solutions. I don’t know how many different “android” stores could be there in china, but I bet they’re in the order of hundreds… it is natural to evolve and overcome the limitation thru html, good 'ol browser… :wink:
But this is none of my concerns, anyway; for us westerners, chinese language barrier is simply impassable. The great firewall is nothing compared to it. :open_mouth:

VR? :fearful:VR anyone? someone, out there, want to try those fuzzy motion-sickness award games? Give back all your dinner after 5 minutes?
Never bought VR, man, :wink: just crazy-pumped venture-capitalists could think that possible. They wasted a lot o’ money, and now they have something who cannot last more than 15 minutes because of strain, on super-hefty prices equipment only mad-maxes can buy… crazy, crazy people.
Every day, for three years, “Hey! there’s a new game/company/experience I want to tell you because, hey, they pay me to write this and…” come on, SCRUM! :dizzy_face:

Unreal is fuc***ingly difficult, get back to start![quote=“walzer, post:140, topic:33651”]
How about Construct 2, Corona SDK, Defold, blablabla …… To be honest, I don’t care.
[/quote]

Me too! They’re dead! SCRUM AGAIN!:dizzy_face::dizzy_face::dizzy_face:[quote=“walzer, post:140, topic:33651”]
the marketshare of cocos in China has been always 45%~50% around, from 2014 to 2017
[/quote]

Well, it’s pretty high anyway, isnt’it?

AR… wouldn’t it be for Nintendo, no AR, and probably nope in the future (except for pokemon go II,III,IV, CCXXVII…:flushed:)

Exactly. Instant channels… as far as we know, this is the trend… i’d like to see some western data anyway… but i can’t find anything…

Ah, yes, swift-it! Go set up swift standard libraries under the android toolchain! Enjoy! A couple of months with a google engineer, and you’ll be out with your game!:smile::smile::smile:Ah, no, just an hello world…
Emscripten probably works… but it’s a PITA and a toolchain of it’s own, so limiting… and difficult, google engineer + js wizard… back to the start, 4 months to hello world…[quote=“walzer, post:140, topic:33651”]
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.
[/quote]

So 3d will be eliminated completely from cocos? A shame. But anyway who needs it? And a full 3d editor is very complicated…

For developing 2d games?

And performance will be the same?

I just finished converting my game written in cocos2d-iphone v3. Converted line by line, no additions or removals, like something wasn’t converted to cocos2d-x, because it was missed in it or was something new and I used it to improve performance, lets say polygon sprite. No, all was converted as is, just changed language. And results was impressive. Exactly the same scene on iPhone 6 were loaded: 26-28% in cocos2d-iphone and 17-19% in cocos2d-x. I think thanks to C++. Batching works the same on cocos2d-iphone, if you think that it’s not and thats why it got so poor performance and I definitely using same setup(res, device, build type etc.).

I successfully build & run on iOS and android a simple puzzle game using apportable plugin for Xcode. It’s was a miracle, really. No any changes in a code. Just works.
So, I connected android device to my Mac and selected in Xcode android device as target and even got debugging of Objective-C code. Yes, no additional SDK’s were used(wasn’t allowed in free version of plugin), but it’s wasn’t problem…

By the way it’s currently available, lol https://store.spritebuilder.com/products/spritebuilder-android-plugin-starter anyway, rip…

Are you talking about this? https://github.com/s1ddok/Fiber2D

Why creator closed source?