Home - Game Programming

Product Details

Binding:

Kindle Edition

EAN:
Label:
Feature:
Publisher:
Studio:

Editorial Reviews

In this book we present the functional language F# for those who wish to learn it with a particular focus on fun applications such as simulations (physics, AI, etc.) and games. Of course F# is a general purpose programming language, and even if in this book all the samples are geared towards simulations nevertheless the techniques and constructs used are more than enough to tackle most other real-world problems. Also notice that until the last chapter we will not use any special gaming related libraries; rather we will limit ourselves to the standard F# libraries.

We will use a very hands-on approach to development: each chapter opens with a sample problem, such as simulating a bouncing ball, a rocket, an asteroid field, etc. The source code of the solution is given and then all the constructs used are discussed in depth in the rest of the chapter.

Most of the samples (not those found in the last chapter, which require XNA 4.0) work on Windows, MacOSX and Linux thanks to Mono.

The book is recommended for programmers who are already familiar with an imperative programming language; a little bit of knowledge of object-orientation 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 in-depth treatment of computation expressions (monads) for creating small languages embedded inside F#.

We have tested all samples with F# 2.0 and XNA 4.0.

Customer Reviews

A fresh and light writing that gradually introduces constructs and paradigms of functional programming with F#, this book is perfect both for the already experienced object-oriented programmer and for those who are just beginning: with a very dynamic rhythm, the authors start from scratch while successfully presenting the different topics with interesting and never trivial examples.
A reading that, as explained in the preface by the authors themselves, is well suited for many different ways of reading, according to your preferences and habits of learning.
F# is certainly a general-purpose language; however, it lends itself particularly well to areas such as simulations, games, Artificial Intelligence, and many others. It is precisely for this reason that the approach adopted by Giuseppe Maggiore and Giulia Costantini in presenting a new language with a focus on "fun" is certainly a winning choice, which grants, at the same time, the opportunity to apply what you learn to real-world scenarios that look very far from the world games and simulations.
Learning through fun examples allows you, without realizing it, to learn even very advanced concepts without getting lost in the details of complexity.
Each chapter begins by presenting a working example, which is then dissected in the course of reading, explaining constructs and "reasoning". You dive into the reading, therefore, by making a simple ball bounce, just to move quickly to more interesting examples, always with the constant invitation to readers to experience in person the code samples on their computers.

Good job!
It's a perfect book to start with, both learning some F# and writing some gaming stuff.
Finally a book that shows F# in a very nice way. The codes are well written and funny, explanations understandable, without any chance to miss them!
Some general discussions, could be more extensive :) but very good work in general!

Suggested both for beginners and experts, we all have always something to learn from this book!

The good:

The book is a fun read; game development is fun, and it is truly refreshing to finally find a book that does not promote functional programming as an overly theoretical, overly abstract, overly complex and ultimately boring subject.

The samples are entertaining and they are all complex enough to keep the reader interested and offer a decent intellectual challenge from the very beginning. I particularly liked the fact that the authors discuss records very early in the book, so that we immediately start seeing well organized data structures. I particularly enjoyed the heavy use of units of measures, and I found a few small samples about uses of units of measures for classifying non-phsyics data, for example messages as (confidential/public) and data streams as (encrypted/unencrypted) quite an eye opener.

Chapter 5 is very interesting. I had never considered monads as a way to *build and hide away* constructs such as schedulers and other powerful operations. I will certainly look into this approach for my coding!

The book is cheap. It costs one fifth, that is a 0.2 ratio, of some of the largest books. It really is a steal.



The bad:

The book needs some more editing; not that it stops the reader from understanding the topics, but rather it is a bit rough in various points. Chapter 1 in particular may be organized a bit better; the title of Chapter 5 is "incompatible" with the other titles, since it is named after the sample and not after the constructs studied; not many typos, but some explanations should be expanded.

Formatting should be fixed in various points where monospace fonts should have been used.

Using XNA sounds like fun, but the appeal of reading about a game-specific library for a non-game-developer is relatively low.





In short: it's cheap, it's fun, it still needs some editing. If formatting were fixed, this would be a 5 star review.
F# is an important functional programming language, and this book helps in learning it in the most enjoyable way: through the development of interesting programs, mostly related to games. So I warmly recommend it both for newcomers to the language, as well as for programmers which already know the language but are interested in the field of video games.
If you're interested into learning F#, i think this is a pretty nice book.
It can be useful both for beginners and more experienced functional programmers, it could be very useful for those who want to learn how to develop their XNA Games using a functional approach,hence F# instead of C#.

It contains nice and useful code samples and very accurate and precise explaination about almost all of the covered topics.

In few words, even if it is not a book written by famous guru's of functional programming it could be a good choice to start learning it :)

Have fun with that!
I find that the book is very interesting especially because it's focused on problem solving , therefore it's easier and quicker to understand than others.
The examples are easy to reproduce and understand.
The scientific approach to the problem is a better incentive compared to traditional texts of f# too:)
much theoretical and bored!!!

Single small failure: some discusisone could be slightly more exhaustive, but since
the approach does not fully face the theory we can leave it like this.
 
Share your thoughts with other customers
Create your own review