XNAUtils is a collection of assemblies written in F# intended to ease the development of games for Xbox 360 and PC using the XNA framework.
This work is distributed under the Apache 2.0 license.
The project contains the following assemblies:
- CleverRake.XnaUtils.Core: Various small useful functions and types that do not depend on Xna. This includes inlined functions to manipulate arrays efficiently, useful containers such as circular queues and priority heaps, tuples implemented with structs...
- CleverRake.XnaUtils: Depends on the Microsoft.Xna.Framework, Microsoft.Xna.Framework.Graphics and Micrsoft.Xna.Framework.Game. Features rendering of text with embedded icons, identifying button presses/releases between frames, simple rumble effects, 3d-space partitioning using octrees.
- CleverRake.XnaUtils.XnaReplacementWindows: A partial substitute for the parts of Xna that are only available on Live (GamerServices, GamerServicesComponent, Storage). Depends on the assemblies above.
- CleverRake.XnaUtils.CoopMultiTasking: A custom workflow for cooperative multitasking (i.e. multitasking in a single thread), a screen system for in-game menus, easy I/O using the asynchronous storage API of Xna. Depends on the assemblies above.
There is a simple game that demonstrates some of these features.
To report bugs or request features, please use the issue tracker. The author can be contacted at johann.deneux at gmail.com.
If you wish to support this project or just show your appreciation, you can flattr me.