Friendly F#: fun with game programming and XNA
Author 
Message 
malvoria

Posted: Sat Aug 27, 2011 9:08 am Post subject: Friendly F#: fun with game programming and XNA 


Hi!
I am Giulia, and let me apologize right away if this is inappropriate. I have just coauthored a book: Friendly F#, available via digital delivery only.
The book aims at teaching the F# language through a series of samples that are fully centered on game development and simulations. Each one of the first 5 chapters describes a problem, shows and discusses its solution in F# and then discusses in depth the constructs used. From this point of view the book is relatively unique, in that it completely focuses on a problemsolution approach where everything is explained because of how well it works in solving the problem, and not just "because". The 5 problems are:
 a bouncing ball
 the Saturn V rocket
 an asteroid field
 a large asteroid field optimized with quad trees
 a police starship that must fight off a pirate ship attacking a cargo freighter
In the first 5 chapters we will learn (listed chapterbychapter):
 basic control flow, tuples, functions
 basic data structures and information flow (records and units of measure)
 lists and sequences
 trees and discriminated unions
 computation expressions (monads) and coroutines to build State Machines and AIs
In the last two chapters we will see how to build first a 2D and then a 3D renderer for two of the samples we have seen. These renderers are made in XNA, of which we show the basics in terms of the SpriteBatch, the Model class, input management and audio.
The book is recommended for programmers who are already familiar with an imperative programming language; a little bit of knowledge of objectorientation may help in the latest chapters, but it is by no means required. The book may also be read by complete beginners to programming, but in that case the reader should expect to have to *study* the book and not just read it; studying the materials of the book though is not particularly unexpected, given their origin: both authors teach Computer Science with F# and games at Ca' Foscari University of Venice, and thanks to this we have already battle tested many of the examples and the general approach used in the book. Chapter 5 in particular should be of interested even for advanced (functional) programmers, given the indepth treatment of computation expressions (monads) for creating small languages embedded inside F#.
The samples may be downloaded freely at: http://fsharpgamedev.codeplex.com/
The book is distributed through Amazon and Smashwords, is relatively short and cheap (166 pages and 7,49$) and can be found at http://www.facebook.com/pages/FriendlyFfunwithgamedevelopment/165374793536970
We hope you find the book as entertaining to read as it was for us to write
Thank you, and best regards
Giulia 





Sponsor Sponsor




