fehaar edited this page Mar 9, 2012 · 7 revisions

Welcome to the FFWD framework. This is a framework that allows you to port your Unity3D projects to XNA - allowing your games to run on both Windows Phone 7 and XBox 360.

The philosophy behind the framework is to allow you to do most of the porting automatically, so you can do most of your work in Unity3D. This also includes porting all of your C# scripts and automatically convert them for use in XNA.

What this means is the the FFWD framework is mimicing the Unity API as closely as possible.

What is happening?

Check out the News page for updates.

How does it work?

FFWD works by plugging in to the Unity editor and exporting your scenes and assets to XML and other formats that are readable by XNA. It also takes your scripts and converts them to be used in XNA. It will put all of this data into a Visual Studio project, that holds your XNA game and can be used to build the final executables.

Has this framework been used actively?

Yes! Press Play have made both Max and the Magic Marker and Tentacles using this framework - so it is fit for doing real games. See the History page for details.

Is this framework for me?

Before jumping into the exciting pit that is XNA, you have to consider the possibility that your project is not well suited for porting at all. There are certain limitations that you have to be aware of:

  • Your Unity project must use C# scripts exclusively. JavaScripts or Boo cannot easily be ported, so the framework does not do that at all.
  • If you rely on any Unity3D extension packages, you must have C# source code for it - otherwise they won't port at all.
  • Graphically you have full 3D support - but XNA for Windows Phone 7 has no support for custom shaders. So if you do anything in your game that requires the use of custom shader code you have to find a workaround. This includes a lot of the built in Unity shaders, like Toon shading. XBox 360 does not have that limitation, but you will have to port the shaders yourself.
  • At the moment, the only supported Physics engine for FFWD is the 2D Farseer Engine. This implies that you cannot make games with 3D physics at the moment. It does not imply that you cannot make 3D games. If all your graphics are in 3D but action only takes place in a 2D plane, you can do it. FFWD will do the conversion for you manually.
  • In the process of developing FFWD we have only made the parts of Unity that we were actively using. So there will be some black holes in the framework that is not supported. See Features for more info. The good news is that the framework is open source and taking contributions - so hopefully these holes will get smaller.
  • There will also be bugs in there that we have not found as a lot of corner cases has not been found yet. Furthermore there will be places where the framework unintentionally does not work excactly like Unity - which can also lead to issues. Bottom line is that you must be prepared to dive into the source and fix things at times, as we do not have unlimeted resources to do so.
  • Some things on the Phone or XNA is highly platform specific, and does not have a suitable function in the Unity API. Using conditional compilation, FFWD allows you to write that XNA specific code in the scripts you use for Unity, so you only need to change code in one place. FFWD is also highly extendable in both it's export routines and in the framework itself, making it easy to get special data ported over.

What is the state of the framework?

The framework is in active development as we are using it for our next upcoming Windows Phone 7 title at Press Play, so bugfixing and new features will be made as we will push eveything we change in our framweork version to the open source version.

I'm in - how do I get started?

Head to the Getting started page to set up your first FFWD project.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.