Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I have a little experience in making small time game applets in Java, and A LOT of experience in making games with Python/Pygame. I also know a like of SFML (C++) and SDL (C). I usually develop games in Pygame but its SLOW... performance is a constant nag. So I was looking for some good game library when I noticed the growing number of games developed in C#. I know a little of Windows Forms, and I know that It has a good Graphics API which wraps GDI. But which library is SERIOUSLY recommended? I know about SFML .NET and TAO SDL , should I use one of those? Or is Windows Forms alright? I was thinking of XNA but I have heard it needs a license and you need to BUY the XNA Game Studio. So which library should I use?
XNA is free for PC development; it only costs money to develop for the Windows Phone and XBox (and use their marketplace) -- PC games are still free (source):
The App Hub website is exclusively for Windows Phone and Xbox LIVE Indie Games developers.
It's an extremely good framework, and I'd suggest going through their tutorial, and then checking out some of the samples in their education catalog.
Nope!
XNA is free :)
http://www.microsoft.com/download/en/details.aspx?id=23714
My understanding is that the XNA tools are free downloads, but that you have to have an App Hub membership if you want to sell XBox or Windows Phone games through the network. See here for more info.
XNA is good but it might be better to stick to core technologies (DirectX) by using a dot net wrapper such as Managed DirectX (from Microsoft, deprecated but usable) or SlimDX (SlimDX.org)
(Learning XNA might prove to be a waste of time and energy, as it is not a core MS product - it also changes drastically every time it is released and it hides much of DirectX so you don't have anything to put on your CV/resume)
You can try XNA Framework. You can develop for PC, XBOX, and Windows Phone. If you're a student, you can get it from www.dreamspark.com for free.
If you interested in C# game programming best choice (imho) is Unity (http://unity3d.com/). Because its free (not Pro), powerfull, level editor included , based on Mono etc
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm currently having some analysis paralysis in deciding which is better for me between C++ using the Qt framework, or C# using the .NET framework for developing a small to medium sided project I currently designing.
I have a little experience in both languages, slightly more in C++ however would probably still be considered a novice.
All the information I have read has been relativity outdated (being at least a couple of years old) and was wondering if there have been any updates that would swing the advantage one way or another, or if it really is just a matter of preference.
QT seems to support my particular requirements needs slightly better however the additional difficulty of working in C++ may offset taking me back to square 1.
My requirements are fairly simple, I will need rich text support, database connections, the ability to export to various file types and have a fairly dynamic GUI.
Anyone have any personally experiences or recommendations they wish to share?
I recommend to use Qt because:
It's cross-platform and covers wide range of operating systems (including mobile)
Writing in C++ gives you the opportunity to use libraries
like the STL, Boost, etc;
Using C++ gives you the benefit of running your app at high speed
It is opensource and has a fast speed in getting better
It has the a nice GUI designer and a very capable IDE (Qt Creator)
The API design is excellent and easy to use
It has a great documentation which is easy to read
It has the Qt translation system which enables you to have a multilingual app
The GUI layout system where the widgets resize themselves according to a layout makes everything much easier
The QML gives you the power to create fantastic GUI with great graphics and animations
It has great support for networking and connectivity(socket, SSL, www, IPC, ...)
It has QTestLib for testing the code
It has many language binding if you don't want to use C++
You can learn Qt easily if you know C++
All requirements you have given are completely feasible and easy to do in Qt
It doesn't require any VM for deployment but .NET needs that.
Your application will be cross platform
Creating custom UI is very much possible in Qt. You can create almost any kind of UI in Qt.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've been doing C# with XNA for a year or so now, and I'm pretty comfortable with 2D games. But after some reading, I'm worried about XNA's future since it isn't supported in Windows 8 and stuff like that.
So I've been considering switching to Unity 3D? What are the benefits of Unity over XNA/C# and it is worth the move? if not, why?
I'm also open to suggestions of other languages and engines.
I'm currently going through school and considering game development as a career, so I would like something which won't die in a year or so (as far as we can tell) and will give me skills I need. Also consider that I have previous programming knowledge with C#.
Thanks, David.
XNA
XNA still works on Windows 8. The issue is that they are not supporting XNA based games in Windows 8 Modern UI. XNA still works for Windows 8 desktop games. The terminology is extremely confusing.
XNA will either get a serious overhaul when the new XBox console is released or something brand new will be designed.
Language
If you want to create games for Windows 8 Modern UI, such as Cut The Rope, etc, you'll need to use C++. The last time I saw C++ was the only supported language that could interop with DirectX and Windows 8 mode. All the other features of Windows 8 are available with C#.
Unity3d
If you want to make video games you should pick Unity3d, or an equivalent gaming engine and framework. The problem a lot of video games creators get into is trying to design yet another game engine. This has been done to the point of them becoming commodities. Focus on the game, not the engine.
Unity3d knowledge will be far more value than creating simple games with XNA. You should still understand 3D theory though.
MonoGame is a free XNA-compatible library that allows you to make games in C# for WinRT, Windows Store apps and Windows Phone 8, and on top of the Xamarin tools also for iOS and Android. This works on top of SharpDX, the optimized managed wrapper for DirectX, so your game runs pretty much at the same speed as with XNA.
Since MonoGame is open source, actively developed and targets all the current platforms, you probably need not worry about it being obsolete soon. It gives you a great way to keep your C#, XNA-based codebase to target Windows RT and the Windows Store now, and potentially extend to the other mobile platforms if you buy the Xamarin tools.
So no reason to move your C# stuff to C++.
Unity3D on the other hand is a totally different game framework, and would not be an easy port. But you can then target many more platforms (particularly consoles, and now Flash too), and still script most of the game in C#. But it's quite a different tool to learn.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
all, I'm thinking of porting my application from VB.net to the C# based MONO project, so it can run on both Windows and Mac. However, I am in need of a Mac-friendly alternative to WPF. It has to have very similar functionality. QML (by QT) is not a viable option, as it costs far too much money for us.
There is also https://github.com/AvaloniaUI/Avalonia a multi-platform .NET UI framework inspired by WPF
Miguel de Icaza recommends MonoMac as a substitute to WPF for Mac as stated here. As he explains there is no plan to implement WPF in mono.
MonoMac is a work-in-progress. Some parts of the Cocoa APIs are not wrapped yet. You should start with the samples to get an idea of what is possible.
You will have to build two different UI on top of a common engine, but that's generally a good separation of concerns.
There is also a possible common code base for UI with GTK#.
Depending on your application's functionality, you could potentially port your application to Silverlight/Moonlight. Silverlight is supported on the MAC, but you'll need Moonlight for Linux. Of course, if you're doing a lot of work with the client machine's file system or what not, this is not an option.
tho I have accepted an answer a while back, I want to post what I am doing currently if anyone views this question.
I am currently using Python with PyGTK for the GUI, and GStreamer for the video. This is producing results almost identical to WPF (except some hardcoded animations). Furthermore, it runs on Windows, Mac, and Linux.
EDIT: GStreamer did not pan out for my purposes. While it works well for the most part, I could not layer transparent .png images over the video. I have switched finally to Adobe Flash (Adobe AIR).
EDIT 2: For anyone who comes across this later, when the future of SWF fell into question, my company started building our own animation system in C++, using some components of Gtk+/gtkmm and Cairo. Ultimately, that falls under the advice of the other answer...separate GUI from platform.
https://www.noesisengine.com/
Is another alternative to xaml/wpf that is also for video game engines. It currently has a Indie/Free tier up to 100k in revenue, and is cross platform.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Was just wondering if there were any cross platform development platforms which would run great for corporate type apps on various mobile devices.
Would be ideal if the language was C# but feel free to suggest others.
If you're happy to re-use business logic and write device specific user interfaces (more work, but better user experience on each device) you could consider the various Mono frameworks.
Writing the core business logic as a class library, then writing specific user interfaces using MonoTouch, MonoDroid and Windows using .NET Framework you'll have a cross platform application (albeit with individual UIs) in C#.
have you checked out Titanium at http://www.appcelerator.com
And then there is the PhoneGap at http://www.phonegap.com/
Worth noting that you'd be writing once for the PLATFORM, but being certain that your app works on the DEVICES is a different kettle of fish due to the variety of handset providers, their customized platform implementations and the hardware specific to the device.
Check out these related questions... otherwise know as duplicates....
Developing cross platform mobile application
Are there any huge differences between objective-c and Java, or iPhone and Android?
What work has been done on cross-platform mobile development?
Titanium Mobile is a popular choice these days.
I strongly doubt that you'll find a C# option* that's cross-platform since C# is tied to the Microsoft stack.
You could also just write a mobile-centric webapp with jQuery Mobile or similar.
*For mobile. For desktop, there's Mono (whose site appears to be down right now).
well if you've got a mac, your best bet would be to go for phonegap which supports a wide range of platforms,
if not, you could go for titanium
Although there are many platforms that provide you the facility to write once and run on multiple platform but from my point of view its not a great idea for simple reason of performance just think of below example
A C code is far faster than a java code because java provides you the virtual machine to run that code and java is far more easier to write than that of C. The idea is the more you stick close to native API the more you will get performance.
So considering the above example just think what will be the performance of such application that is supported on so many platforms
Note: I have not worked on any of such platforms so I might be wrong but this just a simple conception that fits to all
If you are used to working with Visual Studio, you can try Teleric's http://www.icenium.com/ . Icenium does not support Windows Mobile 6 though
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm a C# programmer and want to write an Android app. I'm a stubborn curmudgeon and refuse to write Java ever again (after switching to C# six years ago).
Besides Mono and MonoDroid (and writing Java), are there any options for me? Or should I just feel foolish for refusing to returning to my Java roots?
What's the advantages and disadvantages of Xamarin over others like Phonegap etc. ?
(Please refrain from Java-related vs. C# discussion. I was being rhetorical when I asked about returning to me Java roots.)
I believe that this is basically the only option for c# developers.
Developing a mobile application these days is an arduous task. You need to have a mobile app to get your business noticed and to gain market share with your audience, however which platform do you choose? Apple? Android? Windows Phone?
Cost of developing a mobile app is one of the biggest hurdles besides the choice of platform. To get an application developed natively in two of the three major mobile operating systems immediately doubles the cost of development.
Each mobile operating system is designed around development in a specific programming language and development environment.
3 different operating systems, 3 separate languages and development environments, and counting. To be able to cater to all of these operating systems natively, mobile app developers need to have someone able to be an expert in each of these programming languages and also be an expert in the nuances of how each mobile operating system works. Task lifecycles, multi-threading, memory limitations, garbage collection, etc.
More more about Xamarin :
http://devproconnections.com/mobile-development/product-review-xamarin-monotouch-and-mono-android
http://www.justinshield.com/2014/05/cross-platform-mobile-development-phonegap-vs-xamarin/
MonoDroid is worth the wait,
http://tirania.org/blog/archive/2010/May-21.html
Besides Mono and MonoDroid (and
writing Java), are there any options
for me?
Another option is Scala. I'm not sure what the tooling is like right now though.
Since you are a dedicated C# developer, I think that MonoDroid is the right answer for you. MonoDroid Preview 1 has been released 2 days ago, so there won't be long until the beta and full release.
Xamarin is another option, it is possible to create android as well as IOS apps with it and you can use Visual Studio or use our full featured MonoDevelop IDE.
http://xamarin.com/monoforandroid