Simple game development with WPF or Unity


WPF provides some amazing features to work with animations. I was wondering if it would be fit for the development of simple games like <a href="http://www.istrolid.com/" rel="nofollow">Istrolid</a>. I believe WPF can replicate almost (if not all) of the animation in Istrolid. I am good with WPF, but I am yet to start with Unity.

Is WPF better in my case or is it worth investing time in learning Unity for the development of such simple games.


WPF supports both 2D and 3D rendering but it will <strong>only</strong> work on Windows. Unity is multi-platform and will work on more than 10 platforms. If you want to be making games for Windows <strong>only</strong> then use WPF. If you want a game that can be played on iOS, Android, Windows and many more then go with Unity. I would recommend you go with Unity. If you know how to use WPF that means that you are good with C#. You should just jump into Unity.


Personally, working with both I would run with Unity, but that is more a personal opinion. The Unity animations are amazing and simple. Getting used to the interface is a bit tricky, but PLENTY of online tutorials, YouTube and more for simple parts of development to even very complex. Good luck on your research / development.


Unity is better for creating games where you want to have the physics, audio and rendering struggle all done. The environment is very user-friendly, the development is smooth and you better know whats going on in the game. But might restrict some of the features.

In WPF, you need to care about a lot of things before you can even start to make a game. But you're pretty much limitless. You have full access to .NET Framework, other libraries and such, you have the full control.

It's a personal preference whenever you enjoy the process of making the game from the very start or you just want to go straight in the game development environment. For simple games, the Unity is usually a better choice.

Also, the platform support isn't much of the question unless you want to make a mobile game (I would go straight to Unity there). 85% of computers use Windows OS, so the platform support isn't such a big deal.

<strong>Edit:</strong> Oh well, you can use .NET libs in Unity as well by importing them into the project - they will be referenced straight. Still, it overall depends on what you prefer.


The real problem that should interest you here is <strong>Engine</strong>.

<strong>Unity</strong> is a ready and cross-platform complete engine with physics and stuff.

In other side:

<strong>WPF</strong> is just .Net Framework and you (well.. and some libraries), so that's up on you to carry on all that stuff (creating physics, renderer, etc..) for making a game.

If you are planning to create some very custom stuff or something easy like tic-tac-toe for windows then go with <strong>WPF</strong>.

But if you want to create some 3D first person space shooter, then personally I would suggest you to use <em>Unity</em> or some other (already completed) engine (or if you have a lot of time and creativity, create your own engine).


  • Calling $window.print() in angularjs causes the print preview to show a blank page
  • How to get a path to resources?
  • Can you trust mysql_insert_id? [duplicate]
  • Python how to create a dict of dict of list with defaultdict
  • Reactjs require not defined
  • Unable to catch exception from TimerTask thread
  • Serial communication over USB converter in Python - how to aproach this?
  • Associate git repo with existing fork network
  • ViewData, ViewBag and TempData violates MVC? [closed]
  • Memory dump much smaller than available memory
  • How to model a mixture of finite components from different parametric families with JAGS?
  • how to sort an arraylist that contains string arrays?
  • Where I store the custom exceptions in cakephp 3?
  • Android: how to determine cold start
  • How to best manage SMTP clients
  • Swift iOS don't recognize GCM library imports?
  • CoreData basics – to-many relationship array data
  • Comparing user's facebook/twitter friends to site's users in Python/Django
  • Why can't UI components be accessed from a backgroundworker?
  • Facebook iOS SDK Not Calling Completion Handler
  • Jenkins: FATAL: Could not initialize class hudson.util.ProcessTree$UnixReflection
  • Firefox Extension - Monitor refresh and change of tab
  • Declaring variable dynamically in VB.net
  • Custom Tabgroup Appcelerator
  • Setting up SourceTree to merge unity3d scenes with UnityYAMLMerge
  • Allowing both email and username for authentication
  • Disable Enter in editText android
  • Cannot resolve symbol 'MyApi'
  • If I include Java 8 in my Android app does that affect which devices it will work on?
  • Get one-time binding to work for ng-if
  • Exchange data b/w iOS devices using Bluetooth 4.0
  • C# - Serializing and deserializing static member
  • JavaScriptCore crash on iOS9
  • Release, debug version and Authorization Google?
  • How do you troubleshoot character encoding problems?
  • SVN: Merging two branches together
  • Hibernate gives error error as “Access to DialectResolutionInfo cannot be null when 'hibernate.
  • How to CLICK on IE download dialog box i.e.(Open, Save, Save As…)
  • Can Visual Studio XAML designer handle font family names with spaces as a resource?
  • Django query for large number of relationships