Bringing a cocos2d-x based Game to XBOX

Hi,

a few friends and i are currently working on a little multi platform Game with coco2d-x 2.x.
In a older post i read that it should be possible to bring a existing cocos2d-x Game on XBOX (just have to handle the new input methods).
I know that there is a XNA port but i don’t want to rewrite my whole project in C#.
Do you have any experience bringing a cocos2d-x game on Xbox? How did you managed it? Do i have to rewrite code?

Thanks for your answers
Daniel

Has nobody experience with this?

I’m not sure. Does xbox sdk supports C++? If not, rewrite it to C# seems to be the only choice.

As Wang said you should think about using the XNA port, since Xbox is using directX and not openGL I think you won’t be able to make it in any other way.

I’m 100% sure that Xbox supports c++, but that would (probably!) mean using the professional sdk which I think it’s not open to the general public…

“I’m 100% sure that Xbox supports c**, but that would mean using the professional sdk which I think it’s not open to the general public…"
Sadly you seem to be right with this, the only way to make indie games for Xbox is to use the GameStudio with XNA and C#.
As far as i get it, only companies which can prove a successful background in the gaming industry are allowed to develop for Xbox directly in C**.
Nevertheless I still have the hope that i can port the c*+ game to Xbox using cocos2d-x-XNA and a C*+ to C# converter without rewriting the whole game.
That posses the questions: How much differs the actual main cocos2d-x branch and cocos2d-x-xna? Which is the current status of the cocos2d-x-for-xna branch? It seems to be mainly build to support WindowsPhone 7 but should also work with Xbox. But it has no own homepage, just a github repo and seems to be not so well documented.
Jacob Anderson, which seems to be the leading head of the XNA branch, said 3 months ago it should work on Xbox (quote from http://www.cocos2d-x.org/boards/17/topics/8488?r=12784#message-12784”XBox 360 : On there“) As far as I understand him the XNA branch shall be in the same spirit as the cocos2d-x branch, which means supporting a variety of platforms using one game source code and not only as a simple XNA”add-on" for cocos2d-x.

As i mentioned coco2d-x seems to be the more vital branch and has more features so we will still develop on this branch and try to port the code every time to C# ( :frowning: ).

Our goal is to support the whole windows family: Windows 7/8, Windows Phone 7/8 and Xbox360.
Therefore i have another question: How far is the development of Windows Phone 8 support and will it be in a subbranch
or in the main cocos2d-x branch? What about windows 8, as far as i understand Cocos2dxWin8 (and therefore metro support) is in a subbranch and not fully integrated into cocos2d-x main branch is this right?

I think the current way of two branches achieving one goal, cocos2d-x on the one and cocos2d-xna on the other hand is very unsatisfying especially because there is a big “wall” (the language c*+ to c#) between the two branches also they are very similar and using the same principles. I’ll be happy to write a migration guide so that everybody can run his cocos2d-x game also on Xbox/Windows Phone 7 without writing everything in C# and on cocos2d-xna. So if anyone can give me a help i’ll be happy!
I think on the long term the XNA C# port might not be needed cause you can run c*+ now on WP 8 (and WP 7 will therefore be obsolete as a common platform in a few moths) and a new Xbox 720 seems to rise at the horizon 2013 (due to rumors) supporting c++ (this time for everyone).

What do you think? Any infos too XNA or Windows Phone 8?

http://xbox.create.msdn.com/en-us/education/gamedevelopment
In regards to the 360: It’s C# if you’re indie. Yes, you can develop in C++ (we did at my old company) but it’s $10k per dev kit and you have to show a history of releasing commercial titles to even be considered. Also you need an actual office space.

Okay it is a while now but i’m still interested in native xbox support by cocos2d-x. Does anyone know if there are some news about native dev (for indi) for the upcoming Xbox 720? Will it be supported like the new native code support of Win Phone 8 (thumbs up for early support) right from it’s release day? Are there any planes?

I’m also intrested in this question. Is there any news on how to develop in C++ under XBOX or PlayStation?

No, C++ support on the Xbox 360 is only available to “professional” developers who have signed up to a development agreement with Microsoft. Unfortunately it looks like the Xbox One is the same deal. The PS4 looks like it’s going to be much more open to indie developers, so there might be a possibility to port cocos2d-x there perhaps…? I think we’ll probably hear more about this at E3…

Ben

Ben Ward wrote:

No, C++ support on the Xbox 360 is only available to “professional” developers who have signed up to a development agreement with Microsoft. Unfortunately it looks like the Xbox One is the same deal. The PS4 looks like it’s going to be much more open to indie developers, so there might be a possibility to port cocos2d-x there perhaps…? I think we’ll probably hear more about this at E3…
>
Ben

Thanks for the info. When it goes to indie developers… I’ve heard that Xbox has some online service where you can download different CASUAL (mini) games but I don’t know anything about casual games and PS. I think Xbox gives more freedom (more capabilities) when it goes to casual/mini/indie games. Don’t you think so? Or PS also supports indie developers such as “Xbox-team”?

You can port your cocos2d game to cocos2d-xna and get it on the xbox.

Jacob Anderson wrote:

You can port your cocos2d game to cocos2d-xna and get it on the xbox.

So what we need to port game to cocos2d-xna from cocos2d? Rewrite all codes from c++ to c#?

cocos2d-xna is just a library DLL like any other managed DLL. You could probably take your C*+ and move it into a managed DLL with some modification. The you call into the cocos2d code. Our API has changed lately to match better how .NET and C# works, so there is some name changes involved.
I guess you could do the port in about a month, and then quicker as you do more. The largest change would be adjusting to the XNA content management methodology.
The only platform we don’t work on is blackberry. That is coming, so it’s just a question of when.
Going from C*+ to C# is not very hard. I know C*+ and C# and Java, so I have some experience here. Where you do “->” you now do “.”. What you don’t have to do in C# is deal with memory management at the point level. You still have to be mindful of memory leaks and fragmentation though, just like in C*+ Native.

I would recommend a cautious approach with all of this. Microsoft have recently dropped support for XNA (the C# stuff), so it looks like Xbox Indie Games on the 360 have a shady future. It’s also a poor place to do business; unless you are making a Minecraft clone you should expect to make basically zero revenue. What’s worse, it doesn’t look like the Xbox One has any indie support whatsoever, so… Yeah. Personally I’m waiting for additional information before I go anywhere near it, both as a developer and a consumer.

Ben

Hello everyone! I would like to know your opinions. Doest it worth to move project to an XNA port of cocos2d-x because it`s look like performance issue on C++ port will be unsolved in the nearest future. I understand that XNA is not supporting anymore like it was but I need a solution for my problem.

Microsoft not supporting XNA is no longer relevant in this argument. MonoGame implements XNA and we are actively supporting that platform across a wide variety of distribution channels. I encourage everyone to give the platform a try before lampooning it. The Independent Game Studio channel is highly valuable to Microsoft and it will not go away. Any other cautionary claim is just FUD.

XNA will get you where you want to go. We’ll also get you into the SONY world. You won’t do that with C*+ and native SDKs.
Every platform will have its weaknesses. If you have a performance issue in C*+ and Windows 8 then it may likely be something in the way you are using the graphics hardware.

IT’s very important for everyone to understand the limitations of their hardware before porting a game. Each mobile and desktop device has a wide range of capabilities and all of them suffer some limitations. A very common performance problem in the GL world is alpha blending and full scene multisampling.

If you are already using C++ and cocos2d-x and are just tuning the platform, then I encourage you to continue tuning and push your changes back to the team. I don’t see a lot of PR activity on github for cocos2d-x which is very discouraging. Send your changes! We all benefit from changes that you share upstream with us.

Good luck! Continue the conversation as it helps everyone who is considering the same problem. Also note that your XNA game on Windows Phone 7 will ALSO work on a Windows 8 phone. All of our XNA games are available to both Win 7 and Win 8 phone devices without any problem.

Sorry for the rant. All of us in the cocos2d world enjoy the users of the platform and want to continue to support you in the most productive way. Please help us by using github and contributing back to the effort.

so am I understanding that one cannot write a cocos2d-x app for XBox and Playstation?

What is involved in porting cocos2d-x to PS4? Is there any technical docs or anything that one might be able to understand the scope of work? I have lots of time :slight_smile:

Is there a “dev” group that I could join to work on Cocos2d-x?

Jason, you could get the PS3 SDK and likely try to port some of the UI stuff over from cocos2d, but it would not convey well since PS3 is a controller based system and cocos2d is largely made for touch. We had a similar problem with games we ported over to Xbox in cocos2d-xna.

Now, PS4 is another story with its touch pad. You could get an SDK from SONY, but you would need a project for that (a game title), and some clout to convince SONY that you are worth their time. This is no easy task. SONY has a UI engine built into PS4 so it doesn’t really care about other UI engines like cocos2d. You won’t be bringing any existing games over either since any games ported would have to be rewritten for the SONY hardware.

Xbox is a far different story for native code. That box is tightly controlled and requires funds ($$$) to get SDKs, license keys, DRM authorization, etc. You could do it, but it would cost YOU lots of money AND it would cost every coco2d developer money if they wanted to go that route. The XNA route is $99 per year.

Console games are very different from mobile games.

You really want to try your hands at console games? Go get an Ouya and write a game on that platform.

I was looking at Ouya previously and I pre-ordered just now. Whom do I contact to work on Cocos2d-x for it?