After learning more about how monotouch works, I believe I know the answer to this anyway, but can you use the cocos2d-iphone framework with monotouch? I believe most likely this will be a 'no', because cocos2d is an an objective c library and there would most probably have to be some sort of .net port for this to be achieved? is that so?
I haven't done any monotouch dev as yet, but a little objective c development with cocos2d and am quite fond of the framework, and was hoping to avoid, as I'm quite new to game dev, steeping into the dark realm of straight opengl programming via the openTK interface supported by monotouch.
I have also started a community wiki here for people to share game development options on monotouch which should help us all with this emerging framework.
Cocos2D is being ported to MonoTouch:
http://github.com/city41/cocosnet
Update:
There are two options, you can use the Cocos2D binding on MonoTouch, using the bindings as published here:
https://github.com/mono/monotouch-bindings/tree/master/cocos2d
Or you can use Cocos2D ported to XNA:
http://www.cocos2d-iphone.org/archives/1801
It seems CocosNet has gone untouched for some time now[a]... Is it still being developed or should you go with Objective C if you want to use Cocos2D?
[a] http://news.ycombinator.com/item?id=1251007
I don't have any experience with MonoTouch, but you might want to see if you can get Farseer Physics working with MonoTouch. Farseer is based on Box2D, which is also a component of Cocos2d.
Good news is that the c++ version, cocos2d-x, has been ported to run on XNA for Windows Phone7. This should make it also able to run on Monotouch. I was very impressed with MonoTouch but for cocos2D I'd be inclined to go with straight cocos2d-x unless you desperately want to program in C#.
you can find an XNA version of cocos2d at https://github.com/Cocos2DXNA/cocos2d-xna. This works on MonoTouch, MonoDroid, Windows, Mac, Ouya, Xbox. It even has a high performance box2d implementation that runs as fast as the C++ box2d (at 60 fps, except for the AddPair test).
cocos2dxna.codeplex.com for our forums
www.cocos2dxna.com for the web site that we recently started
nuget.cocos2dxna.com/nuget for the nuget repository
www.facebook.com/Cocos2DXNA for our facebook page
Related
I want to start creating games for Android/IOS. I have already created 2D games using XNA and I want to publish them on other platforms even PCs but my highest priority is Mobile platforms. As I said I am familiar with XNA so I need a similar Engine for 2D. It would be great if I could write once and publish on many platforms. Please dont suggest Unity or Unreal. They are not that easy when it comes to 2D.
By similar I mean, for example, how easy to draw a sprite on the screen.
Note: I am working on Windows so no Mac suggestions please.
Regards,
You may also want to consider MonoGame ( https://github.com/mono/MonoGame/ ) as that is also an Open Source, OpenGL implementation of XNA that currently has support for iOS, Android, MacOS X, Windows and recently Linux. It is now all ES 2.0 on the mobile platforms. Our biggest change is that we now support Windows 8, and have a DirectX 11 backend thanks to SharpDX. We now also have initial PlayStation mobile support.
Actually ExEn, is a fork of MonoGame( originally called XNATouch ).
For a list of games on the AppStore or Android Market place and even NaLC, currently using MonoGame look here -
http://monogame.codeplex.com/
I hope this helps.
D.
You might want to keep up on the project called ExEn, which has already successfully ported some XNA samples and smaller games to iPhone and Android. It requires relatively little work to port and refactor to these platforms.
I suggest you check out AndEngine, its an open-source 2d open-gl based game engine that has a strong community. If you want something that you can make cross platform games with check out LibGDX It too is free, open source and based on openGl but it also allows for 3d games. It is also cross platform so a game you write for android can be compiled for, Windows, MacOS (see below), Linux. It also has a really strong community.
Regarding iOS and OSX games you really can't make them unless you buy a Mac. Apple doesn't distribute their SDK for use on any other platform but their own. That said you could maybe get something working under VMWare
Check out MOAI SDK. It's completely free and open-source. It is in beta right now but it is still pretty good. Crimson Pirates for iOS was developed with it.
Right now it supports iOS, Android, Mac, Windows, and Linux. Really good. I thought I liked Cocos2D-x, which is a C++ variant of Cocos2d-iphone supporting windows, iOS (not Mac), and Android but not truely supporting desktop kinda made me like MOAI more.
You can use C++ with MOAI or you can use Lua (they highly encourage using Lua). Being built in C++ is really great because you get access to a vast amount of libraries and you can easily bind them to Lua.
You should try games development with cocos2d.
Cocos2d is one of the best 2d engines for ios/Android I have come across.
http://www.cocos2d-iphone.org/
It is openGL based free engine.
Regards,
Sam
These might be useful to you. However, the first two aren't free, but they have editions for both iOS and Android.
iOS:
http://ios.xamarin.com/
Android:
http://android.xamarin.com/
I've never used either of them, but it's something I've been looking into a bit.
Apparently it lets you run C# and .NET code on both iOS and Android which is pretty cool considering how much easier drawing and things like that are in XNA compared to Open GL ES 2.0. Not to mention the fact that you'd be using C# instead of objective C.
There's also a free open source version sponsored by the same people who make the two I listed above. This one lets you run C# and .NET code on Windows, Linux, and Mac OS X.
http://www.mono-project.com/Main_Page
I have been researching this topic intensively over the last few weeks.
I think the best solution for you is Marmalade, formerly known as Airplay SDK. It is actually more Windows-oriented than Mac (work in Visual Studio), although you still need a Mac for the final step of getting a signed app onto the store. It sounds like a very capable pure C++ product with iOS and Android as well as a bunch of other platforms, Personal license with splash screen $150 pa, single seat Professional $500 pa for all platforms. They have a 45 day trial license which I'm currently using.
I was tempted by MonoGame, could live with the $400 price tag for each platform (for the needed MonoTouch) but it is just way too buggy. The final straw was a combination of a bug causing it to crash all the samples on iOS5 and that keyboard input is broken on iOS.
Too be fair, I'm pretty sure that is all on the MonoGame side and was very impressed with how well MonoTouch worked and was looking forward to programming in c# with LINQ et al.
Since it is not obvious from the other answers, it should be noted to those who are unaware that the ExEn project and the MonoGame projects both build on the Monotouch platform from Xamarin (formerly from Novell) - which is a prerequisite for both for iOS games.
The Xamarin projects was mentioned in another answer as an alternative to Xna, but is really not. Monotouch and Mono for Android are a way to run C# and .NET on iPhone/iPad and Android.
Game development at least on the iPhone side, is typically done using OpenGL and OpenGL is also wrapped in Monotouch. The Xna implementations in Exen and MonoGame also uses OpenGL as the foundation as far as I know.
It should also be noted that Monotouch and Mono for Android are commercial products.
BTW: Exen also compiles to other platforms e.g. silverlight.
The title is very descriptive, I want to start developing games for the iphone and don't know where to start.
I would like to know what tools are available for this.
Should I start with a prebuilt game sdk?
Should I develop in C, C++ or Objective-C ?
thanks in advance.
Cocos2D is popular, and pretty simple/well thought out.
There are a handful of tools out there that simplify game development on the iPhone. Three that come to mind: Cocos2D, Box2D and Chipmunk.
Corona SDK is also a fantastic way to go if you want a cross platform game. You do all of your dev in Lua and can deploy to iOS as well as Android devices.
It also comes with Box2D physics built in.
I have decided to use the game engine Unity to develop my game for iPhone. But I need to use some functions built into the iOS SDK.
If I choose to develop using Unity, can I still use functions from the standard iOS SDK? Like functions to access a url, etc...
When you compile a Unity project for iOS it takes your C# or JavaScript code and AOT compiles it to a native dll. It then creates an xcode project which loads that dll. You can add native objectiveC, or C/C++ functions to this project and expose them for calling from the Unity engine.
http://unity3d.com/support/documentation/Manual/Plugins.html
Unity also has built-in methods for accessing URLs.
I don't know how the Unity SDK is built, but if it's a static Objective-C library then you can access iOS SDK functions without any problems. If its a script engine where you develop your scripts outside the IDE then you may not access iOS function.
Have you checked other engines/sdk's for your game development? I know that Cocos2D is well documented and I know for sure that you can call iOS methods.
Good luck!
I used both unity3d and corona which are very good at their field, and yes you can use all standart SDK over them, sometimes you need to do tricks though (which is quite a pain). If you are developing a 3d game and familiar with NVIDIA PhysX engine go for unity, it gives you nice features. But if you are clueless about collasions/rigidbodies/ragdolls etc you would have a hard time for sure.
As for 2d application development since I don't like Objective-C I prefer corona which you code in lua (easy to learn and use). You can use most of the IOS SDK in it without any problem.
I really reccomend you starting with Unity, it is the best engine I have ever used (I have used a ton of bad engines).
Unity is the best place to start and to stay. Coding, graphics and everything is simple to manage in this engine.
Unity is specially 3d but you can also build 2d games, some examples are Zombieville and OMG Pirates (very succesfull games on the appstore).
Looking for games/physics engines to use for mobile game development.
iPhone there is
Cocos2D
Android I've found
RokonAndroid
Just wondering if there are any others (better ones) that anyone knows of? Or any that are more cross-compatible?
Thanks
Tom
AndEngine by the anddev.org team..its alpha with no binary release..you will have to build from source..
AndEngine.org I believe
I used cocos2D-android and andengine. Andengine is much better. Best perfomance and almost without errors.
I haven't actually coded with either of these yet, but I did get the Bullet engine to compile with the NDK a few months ago. I forget what was involved off the top of my head (I can edit this post if needed), but I remember it was a bit involved and took me a couple days to solve.
Box2D port for Android
Bullet port for Android
Tom - not sure if it's better or not, but Gideros Studio may answer your needs. It's a cross-platform mobile development environment with physics, in-app purchase, Gamecenter, Storekit, hardware, as well as tweening, particle engine, and many 3rd party IDEs like physics editor, sprite helper and level editors.
It also supports native code (plugins), meaning if you have a library in C, C++, Objective C or Java, you ca integrate it next to Lua, the programming language Gideros Studio is based on. Moroever Gideros Studio IDE uses over-the-air (Wi-Fi) testing, so it's possible to test the application instantly on a real hardware.
It uses Box2D as a backend for physics.
I think nowadays your best choice is LibGDX. It is a cross-platform game engine, for Android, iOS, desktop and others, has a really active community, is still actively developed and has Box2D and Bullet physics engines integrated.
The framework is really great and there have been really successful games using this engine, even on Steam.
What options are there for game developers in regards to working with the MonoTouch framework?
Is OpenGL fully supported? Or just a subset?
Is there any additional tools, frameworks or engines that would be compatible with MonoTouch? Would these libraries also have to be written in .NET?
Do you have any other tips?
Thanks all.
OpenGL is fully supported in MonoTouch, we distribute OpenTK with support for OpenGL ES 1 and ES 2, so it has a nice binding that you can use from managed languages like C#.
As the previous poster hinted, there is XnaTouch available today, and there is some talk about bringing Cocos2D on the Monotouch-o-sphere.
An alternative to using MonoTouch with OpenGL or XnaTouch is to use another Mono-based framework that is entirely focused on gaming, the Unity3D platform. This is a professional tool for building 3D and 2D games and goes beyond what Xna does, it is an entire gaming IDE with a full game engine.
XNATouch: Free implementation of the XNA Framework for MonoTouch
unity3d: C# game library for iPhone. It's based on Mono but don't think it is related to MonoTouch.