C# and Xamarin o HTML5 and Cordova?

Started by
8 comments, last by oransen 7 years, 4 months ago

Hello All,

I'm a Windows programmer (C# and C++ MFC) looking to get into mobile games development.

I've read around quite a lot to see which tools to use, but I'm still a bit confused. I like the idea of C# with Xamarin because I know C# and, apparently, Xamarin makes it easy to get the C# based games onto Android, Apple and Windows platforms. Has anybody used this? Does anybody know of any games written in C# and Xamarin?

And the same questions for HTML5 and Cordova. I'm less experienced in HTML5, and I don't know Cordova at all.

I'm not thinking of 3D games, but simpler 2D games and maybe even intitially just text games. Ease of the monetization API is also a concern.

All pointers and advice and experiences welcome!

Advertisement

I didn't get any positive reviews for Xamarin, so you might try it yourself before actually judging.

Secondly, Cordova looks fine if you are aiming at applications and not rendering. If you want to focus on render, than maybe going native (C++) or java is a better choice.

For other options I can recommend using NativeScript. Using Html,JS and CSS.

Thanks for the reply.

You say "Cordova looks fine if you are aiming at applications and not rendering"

By rendering do you mean 3D rendering or graphics in general (i. not 3D but 2d + photos)?

It's quite different the amount of rendering an app needs to do if we are talking about a regular application or if we are talking about a 2D game running at 60 fps. Cordova seems to be aimed at the first, so it might be a bad choice for a game, and it will probably not have all the sprite and rendering utilities a framework built for games usually has.

I don't know about any game framework that lets you code in JavaScript and build a mobile app, but you could look into Java with libGdx. If you're familiar with C#, it shouldn't be that hard to pick up. Or you could go for Unity, which let's you code in C# and build your game for iOS and Android.

Thanks for the reply.

You say "Cordova looks fine if you are aiming at applications and not rendering"

By rendering do you mean 3D rendering or graphics in general (i. not 3D but 2d + photos)?

By rendering I mean your application uses heavy rendering. Such as games, simulations, maps,etc...

C# with Xamarin should be a decent way to go. I use Xamarin Studio but i've not developed mobile apps with it yet.

It is a mature technology and recently acquired by Microsoft, who seem to be keen on it, so it's not going anywhere. Personally I think Xamarin is a serious contender now that Microsoft license it for free on all platforms. So I believe it's in a prime position to take more of the current market/mind share than it has had previously.

For games/graphics libraries for C# take a look at MonoGame or CocosSharp. They work with Xamarin.

As for Cordova, it is a viable route but to get high FPS 2D/3D graphics you will need to use WebGL (which actually means your game won't run on old pre-WebGL Android/iOS devices btw). Rather than use low-level WebGL directly perhaps better to look at using a higher-level games framework for Javascript like Three.js, Phase, pixi.js, PlayCanvas, etc.

For other options I can recommend using NativeScript. Using Html,JS and CSS.

Can that solution be easily turned into an APK (for example)?

For other options I can recommend using NativeScript. Using Html,JS and CSS.

Can that solution be easily turned into an APK (for example)?

Yes

https://docs.nativescript.org/publishing/publishing-android-apps

From my experience I've never had it easy setting up environments, (Idk, maybe that's just me)

But when you are done setting up the environment, it should be easy to deploy.

For 2D I'd use something game oriented rather than use some general framework for mobile development. Say, use an game engine like Love2D, or a game framework like libGDX.

I'm not sure how well an HTML/Js based solution will run. It already pisses me off a bit on desktop (Atom), cant imagine it being much better for "real time'ish" mobile applications like games.

In you case I'd avoid Xamarin just to try something else that isn't C#/Microsoft/Visual Studio, whatever that ends up being (js, lua, java, etc).

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

For 2D I'd use something game oriented rather than use some general framework for mobile development. Say, use an game engine like Love2D, or a game framework like libGDX.

I'm not sure how well an HTML/Js based solution will run. It already pisses me off a bit on desktop (Atom), cant imagine it being much better for "real time'ish" mobile applications like games.

In you case I'd avoid Xamarin just to try something else that isn't C#/Microsoft/Visual Studio, whatever that ends up being (js, lua, java, etc).

Why avoid Microsoft? C# is the best language I've seen in 30 years! Visual Studio is free and a wonderful development environment. (I remember losing the will to live when I tried the Apple develpoment tools, crashing IDE, crashing Help, arrgh!, and Objective C is an awful language, IMHO).

I've just had a quick look a native Android Studio, there seems to be a lot of support. Xamarin was a HUGE HUGE download, I may have another look at it after Android Studio.

What is/was stopping me using HTML + js + libs + some sort of APK packer I can't find a consistent place to get info about it. Now on my list though is NativeScript (thanks to WoopsASword), so I'll try that too.


For other options I can recommend using NativeScript. Using Html,JS and CSS.

Can that solution be easily turned into an APK (for example)?

Yes

Thanks for the pointer!

This topic is closed to new replies.

Advertisement