What features do you wish Cocos2d-x provided?

Yes, I can see that. I know that naming conventions and standardizing has been discussed on how to prefix, name, cleanup, etc. Thanks for chiming in.

1 Like

Thanks @dotsquid

Actually, cocos2d-x has the timeScale feature. It was added a few years ago. It is part of the Scheduler:

Regarding feature request #2, what would be your ideal workflow ? Thanks!

Ah, thanks. I had no idea it’s already implemented.

Regarding the problem of updates:

Thanks. I’ll keep it in mind.

Cloud we use constructor instead create function?
There are many reason to not use shared_ptr , Even if some of the conclusions I don’t agree with. Maybe we can use cocos_ptr instead it,

Maybe like this:

template<class T>
class cocos_ptr {
public:
    cocos_ptr(T *ptr) : ptr_(ptr) { if (ptr_) ptr_->retain(); }
    ~cocos_ptr() { if (ptr_) ptr_->release(); } 
    ...

private:
    T *ptr_;
}

We didn’t need CCVector, CCMap… anymore.
We can use standard algorithm library.
RAII is so important to C++, but Cocos2d-X never ues it.
We have to init member ptr(Node) in constructor and CC_SAFE_RELEASE_NULL it in destructor.

2 Likes

The most important thing to me would be a better audio support.
That includes implementing the missing functionalities on win32 platform.

There is this topic discussing the features that could be added, and why this is so important.

Keep up the good work!

@sgleizes - There is new audio coming in 3.3

3 Likes

And when will 3.3 come?

it is already underway. I’m not sure the timeframe yet. You can always pay attention to the GitHub change log to see how things are progressing. https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG

I’ll post once I know a date.

1 Like

I concur with @Maxx. I am super excited about Cocos2D-X but the lack of good documentation that actually is complete stating all the steps and not just partial steps. That is why the forum is littered with posts, a lot just not getting answers. For example in the Android project setup the example is using a Mac, it does not help if a Windows user is trying to follow it. It should clearly say which steps are for Windows and which are for Mac, as well as clearly listing all the steps and not say Windows is similar because it’s not. Even worse is out of nowhere saying if this does not work go to the “bin” folder. The author knows which bin folder his talking about but the readers are left to guess through trial and error.

To @ricardo and his team, please for the love of god I’m being frank here. The Cocos2d-X documentation is in serious need for improvement and update. If you don’t have expertise how to write good and complete technical documentation, go to Unity3d.com and see how well their documentation is organized and written. All steps are clearly written and spelled out, there is no ambiguity or assumptions. Cocos2D-X maybe free but I’m paying in time which I could have spent doing actual productive work. If the documentation was clear and the forum was not littered with posts that are left unanswered I would not be comparing with Unity3d documentation.

1 Like

I’ve brought this up before, but I think one big reason is that the Wiki is closed.

You’re right, there are inconsistencies and outdated/incomplete examples. You’re supposed to report here, but how often does that actually occur? Could you imagine if Wikipedia operated this way for changes? There are many micro-changes that are hasslesome to report, but very easy to fix. I understand they are likely keeping it closed for QC, but there’s not even an edit-approval system.

To be fair, @slackmoehrle and co. have been good at updating things when you let them know.
I do think with the proper docs most forum posts can be avoided altogether or linked to the corresponding page if it exists. They are still a lot better than they were during the 2.x era.

@ricardo @jgod @Maxxx @rram

Thanks everyone for the continued conversation.

We surely do know that the documentation is lacking. I have openly acknowledged this in previous discussion.

So what do I do here? My job consists of the following:

  1. Answer forums posts - I do the best I can with balancing my time. I’m also not really an Android developer so there are a lot of questions that I need to look through docs to answer. Which then surprises me how I got to the answer before the user that posted. With all due respect, there are times when users post for help without even trying or not enough info to really help.

  2. Answer Stack Overflow posts - usually mostly duplicates of the forum posts or highly down voted questions. So I do this where it makes sense. If I take the time to duplicate my answer on these forums and Stack Overflow then there goes my time to answer more…

  3. coordinate technical issues and documentation between the US and China teams so we can answer your needs. If I can’t answer something and a forum member hasn’t yet chimed in I do ask the engineering team in China to take a look.

  4. Wiki Editing. I started to do this more when I first started but…see #5

  5. I’m currently writing a Cocos2d-x c++/lua programmers guide!

Did you see #5?

Let me propose something. This is a hypothetical. How many of you feel that you have the time AND qualification to edit the Wiki? How frequently would you edit/contribute?

Perhaps I could talk to the powers that be and let 2-3 people edit the Wiki under a trial basis. Perhaps as a thank you I could send you a t-shirt or an autographed picture of yours truly… :smile:

Thoughts?

  1. If users cannot find the answer in the code or documentation then that itself is a problem; Maybe it is worth asking a user whose answer is already there, exactly what they searched for. Then we can look at improving how things are organised to make them easier to find

  2. My recommendation would be not to answer posts on StackOverflow at all. Answer any posts here, and if they duplicate the post on SO then reply there with a simple link here. If it’s a post at SO without posting here, then a reply suggesting they ask the question here would be better than responding at SO.
    This achieves two things - it encourages more people to ask questions here rather than elsewhere, and also drives others who may find the SO question to this site.

  3. :smile:

  4. I think we all agree that the Wiki needs to be more open.

  5. Cool!

I would love to have a hand in editing the Wiki but, at the moment, I genuinely don’t have the time - I only get to spend about 2 hours a week doing Cocos development (which is probably why I need so much help :smile: )

Would it be possible to open the Wiki to any registered user, but put in place a ‘validation team’ (I can’t think of the right word) that would vet the posted information / changes before it is published?

something like:

User Noob posts a page to the Wiki all about how Unity does it better.
User Maxxx rejects the post, which sends an explanation to Noob
User Noob updates the post, explaining how to do things in cocos
User slackmoehrle edits the post to correct some typos, and releases it - which sends info to Noob

By sending explanations to the users as to why an entry or a change is not being accepted, hopefully users would make appropriate changes and re-submit.

Even if the only people vetting the posts were the current Wiki team, it would surely be less work for them than having to create everything themselves.?

Hi @slackmoehrle, I think giving the community ability to update documentation at this point seems more productive, then keeping the gates closed and not updating as needed.

Having an approval process for users to submit changes and then someone on the Cocos2d-X team validate it before publishing would be a middle ground.

Bottom line is the documentation in current state is lacking both quality and clarity. So please work with the gate keeper and open up the Wiki. Another way would be to use what the tutorials team did, ask the community to provide tutorials.

@slackmoehrle

Perhaps the wiki could be fully opened for now, allowing the general public to quickly get the bulk of the work done. In a few months down the road it could be closed and QC’d by staff. Maybe only close the core sections and leave others open to public.

I think this solution would solve the communities immediate and future needs.

Please add some additional file utilites like file and directory creation and deletion so it would work for each platform so users won’t ever care anymore if it would work on a specific platform or not, and won’t have to write their own FileUtils using other libraries for each platform.

For example, I made a texture with RenderTexture and saved it to file. Later, I would want to delete it and be sure it will work even on Android.

As incredible as this engine is, I reluctantly make this post today.

Cocos2d-x is already perfect for making games. But every game MUST have payments and/or advertising, as well as social support. The fact that this isn’t in Cocos2d-x, makes every developer re-create this. It’s almost like making every developer create a sprite class. It doesn’t make sense.

I realize this isn’t Chukong’s priority, but at a minimum, open up a set of API’s that the rest of us can add to. This way, once all platforms are supported, they can be merged into the main branch.

Which brings me to another point:

All available features of the engine should work across all supported platforms before they are allowed into a release build. There is no reason any feature should be released with support for only one or two platforms (such as iOS or Android). If certain platforms are going to continue to be a problem, then drop support for that platform.

High priority features:
Social (Twitter / Facebook / Weibo / extended API’s for more)
Purchases (iOS, Google Play, Amazon, Mac App Store, Windows Store, etc)
Advertising (iAd, Admob, others)
Open web links in platform browser / stores

Medium priority:
Documentation / allowing users to contribute to a Wiki
Ease of upgrading projects to newer versions (at a minimum, clear documentation on how to do this step by step)
Gestures

Low priority:
Analytics
Scoring / Achievements (Game Center, Google, etc)
Push notifications
Cloud support (iCloud, DropBox, Box, etc)
Device features (camera, microphone, etc)
Multiplayer support (GameCenter, NextPeer, etc), or possibly a Cocos service
More 3D features
SVG sprite import / convert to PNG / save to resources for use

These features are not some crazy wish-list. Adding the high priority features at a minimum will make Cocos2d-x the go-to engine of choice. Free, open-source and with all needed features to make a game without extra coding for each platform.

Hi @Javy

Thank you for creating this post.

  1. not every game MUST have payments and/or advertising. There are plenty of FREE games that don’t support themselves with ads. Some developers create game, just to create games and put their work out there.

  2. I get your point that functionality should be cross-platform, completely cross-platform, every supported platform. However, consider that A.) This can be a lot of work. B.) Perhaps not all the functionality can be cross platform without making platform dependent considerations. What if it isn’t possible to run the same code or use the same library across all platforms. Then you must have a different solution for each platform. Sure, this can be done, a set of wrappers perhaps to make the calls the same on each platform without worry about the underlying implementation but do you hold up functionality for the other platforms in the process? There are PLENTY of apps out there where the feature set isn’t quite the same across all platforms.

I dont agree with your priority list:

High priority

  • documentation
  • api cleanup, streamlined, upgrades easier
  • gestures
  • more 3D
  • continued engine technical improvements.

Everything else you said = Low.

Why do I say Low? Well because you can technically implement all of those items already. Just not as part of the code engine.

This all being said. Release 3.3 is coming with some new/improved functionality. 3.4 after that and you might be surprised at what features are planned for those releases.

I agree that every game doesn’t need the high priority items, but I would say (wildly guessing) that 90% do. So that means that all of these developers have to implement social/payments/advertising on their games. This is a lot of time wasted that could be spent actually creating games. If it were only a small percentage of developers needing to do this then I would completely agree with you.

If Cocos2d-x gets social/payments/ads then it would really be complete. Why is social/payments/advertising being ignored? Even Chukong has a special set of API’s they use for China. They need it, and to imply that other devs can write their own implementation on their own isn’t really looking at the issue objectively.

But maybe I’m wrong. I certainly don’t think I’m perfect. So why not have a poll with all the requested features posted in this thread, and see what users are clamoring for the most?

Otherwise, I certainly hope that social/payments/advertising will be in the 3.3/3.4 release.

As a newby I would love to see an easier way to setup cocos for all platforms. No python scripts or anything messy as it is now.
Would be better something as simple as a java applet with a visual UI, so it works everywhere with a visual and intuitive way to setup everything.