What features do you wish Cocos2d-x provided?

Do you wish Cocos2d-x had a certain feature? Tell us about it!

Please don’t just write a single line like: “better support for x y z”.

Please, instead write a few sentences on why you would like it, features, benefits, etc. Also if you know that another game engine already has it.

Thanks!

2 Likes

I’ve already proposed this feature a couple of weeks before, but since the forum engine was change there is no easy way too find previous messages.
This feature is time scaling. Unity has it for ages http://docs.unity3d.com/ScriptReference/Time-timeScale.html
The beauty of this feature is that it’s very cool and quite easy to implement. Actually, I’ve already implemented it in my own fork of Cocos2d-x, but since I don’t use the latest version and I have no plans to update, I can’t make a pull request.

Ah, you know why do I refuse updating? Because there is no easy way to do that! In v.2.x the engine code was stored in one place, called the repo. And pulling the update was a piece of cake. But now ‘cocos’ script copies it when you create a new project. That’s ridiculous and highly uncomfortable. Consider this complaint as a feature request #2.

2 Likes

@dotsquid - Thanks for the post

About updating from v2.x to v3.x. I do see where this is difficult for users. The script does copy and it has pros and cons that I can see.

I think the major pro is you can start a game and it is all inclusive. Everything thing you need to build it is there. if another version of Cocos2d-x comes out or you start a new title you don’t have to worry about this game breaking.

Like you stated the major con is that in order to upgrade you need to replace the entire cocos2d folder and if any changes are made that effect the main classes (rootviewcontroller, appdelegate, etc) you will get compiler errors and need to go and look how this is handled at that time.

One thing I started playing with was the use of symlinks. What I was trying was downloading a few versions of cocos2d-x and placing them all in the same folder. Then in my project creating a symlink for the cocos2d folder to whatever version I wanted to use (that I downloaded). This still suffers from the issue I mentioned above though that changes to the “core” classes still aren’t solved seamlessly. This does allow you to change versions of Cocos2d-x on the fly by changing the symlink. If to much has changed you can change the symlink back and be back on your way.

I’m honestly not sure if there would be a full proof way to somehow create a diff script that would be able to merge source changes and preemptively create issues for you to look at based upon what was successfully merged and what the script could’t do cleanly. It seems like a lot of work and potentially unsafe.

I’d be open to talking about what you feel is the ideal way to transition between versions…

I’ve already described my own view of the solution, but see my previous message about lost history due to the forum engine migration.
The idea is quite simple: instead of copying the script pulls the code from the git repository. It would require to slightly reorganize the structure of the repository, mainly the code which is being copied in the current version: directories “plugin”, “build”, “cocos”, “extensions”, “external” should be stored as submodules. Moreover, the script could ask the address of the repository thus the user could pull from his/her own fork.

Thanks for the post! :wink:

I’d like better support for the desktop platforms: gamepad support, better audio support, resizable windows, etc.

For example, since changing audio volume in Windows doesn’t work, I have to integrate SDL and SDL_mixer into cocos2d-x only for this. It would be great if this type of things worked out of the box without the need of integrating extra libs.

Also, fonts rendering need to be improved. And time scaling would be great, too :smile:

2 Likes

I am learning cocos2d-x and found that gesture classes are not implemented. Though it is not difficult to implement, I guess, but since you’re asking and it is very fundamental aspect of many other game engines that is why I am saying.

1 Like

Rewrite cocos2dx to component system :slight_smile: Node is to heavy

2 Likes

Advanced audio engine (per sound volume, seekToTime, etc)
Box2D bindings for javascript

1 Like

Your guys do a fantastic work. Thanks a lot.
But all i need now is a stable and long time support version .
Your guys rework cocos2dx even faster then our game developing. :smile:
That means each project we need practise cocos2dx again. learn new Features. fix new bugs. upgrade the res with IDE rebuild our lib base on cocos again. That is a miserable jobs.
I want a stable engine and stable IDE so we can concentrate on develop not debug . that is what we are dreaming.
Any way. thanks you .
ps:
The reason of using 2d because of it was a easy and light weight engine.
I do not interested a 3d support.

5 Likes

Thanks everyone, keep the feedback coming as you can.

Request 1: I would also like to see a simpler update process for updating v 3 to v 3.1 and future releases.

Request 2: Right now I worked with three resourceresolutions (small, medium, high) and I think that could be better solved for the programmer and the customer.

The following workflow would be perfect:

  1. At the initial start of the game all the resources have a extremely high resolution. Additionally the resources should also have different ratio. For example: Background_2160p_4_3.png Background_2160p_16_9.png and so on…
  2. Cocos2dx will create the perfect resources for this device according to display and ratio. After the conversion it stores them and deletes the highres-resources.

Request 3: Update CocoStudio more often and make it easier to use.

@Michael - Thanks for the feedback

Please add RoundCorneredLayer, with gradient,border and shadow support

1 Like

I hope to see this functionality are part of cocos2d extensions

Gesture Recognizers
FaceBook and Twitter integration
Admob integration 
Multiplayer support

I know there is many trials here and there but most of them are outdated

Plus to my requests: hold key event support for desktop platforms. Currently Cocos can report about a single press, which is obviously not enough.

What do you mean by “Multiplayer support”. There are dozens of game genres and each of them requires a different approach.

  1. Revamp and simplify MenuItem classes. Label class already done that
  2. Component/Entity system
  3. One-click automatic upgrade. I don’t want to create new projects in every release.
  4. Convert ant project to Gradle. So I can work on Android Studio. If possible, also support vs-android so I can export apk on Visual Studio.
  5. Revamp ParticleSystem. “ParticleSystem” is single particle emitter and not a “System”

Some extensions should be included

  • Gesture
  • Facebook/twitter integration
  • Google Play Services C++ SDK. The java version of leaderboard can be hijacked by decompiler easily

@dotsquid
“Multiplayer support” I mean simple extension to allow multi player functionality using client/server approach, or peer to peer using bluetooth.
using built and native functionality/services of IOS and android not using 3’rd party commercial products, some references are:
A simple solution on implementing bluetooth multiplayer with cocos2d-html5 + JSBinding + cocos2d-x + GameKit
SpaceShoot - A multiplayer game in HTML5
Creating a real-time multiplayer game with WebSockets and Node.js
Build a Multiplayer Minesweeper Game
A simple multiplayer shooter built with Melon.js and Node.js

I’m sorry, but this is not the engine part. You may easily do this right now. Even better solution - You may download required gfx pack according to the device spec. after app installation.

I agree with someone’s post earlier about keeping it stable. BY all means add new features, but try not to change existing stuff too much or too quickly.

The one thing I would like to see is improved documentation - sure, I know it’s not a feature, but the only way to find out how best to do some things is to search - and then filter the Cocos2d form the cocos2d-x v 2 or v3 Beta or RC or V3.1, then search some more, because the forum question was never really answered … you get the idea!

Personally I tend to not use great amounts of Cocos, but end up writing my own classes (for example, I use my own animation class) because I find it easier to develop exactly what I want rather than find out how to do it (if it is possible) on cocos. This isn’t a criticism of cocos at all - it’s just my use case.

So adding features is pretty low on my list - finding out how best to do things would be better.

Everyone who is using cocos2d is by definition a programmer - but some are more experienced than others, some full time developers, some just hobbyists. Making it too rich in features makes it more complex harder to learn.

1 Like