FunSharp is a new cross-platform open source graphics library, based on Small Basic’s library, with a typed API crafted for the sharp languages, F# and C#.
Drawing graphics is quick and easy:
And when you ask FunSharp to draw graphics it will just go and open a window to view it for you:
FunSharp provides similar functionality to Python’s PyGame, used for developing games, and Processing used for visual art.
You can call FunSharp immediately from the F# REPL or build full-blown applications using F# and C#.
It’s an ideal library for beginners or anyone who just wants to get stuff on the screen quickly.
With this in mind FunSharp works seamlessly on Raspberry Pi, Linux and Windows.
If you haven’t already, you’ll need to install F# on your machine, follow these instructions:
- Linux (for Raspbian follow the Debian instructions)
- Windows (install Xamarin Studio or Visual Studio)
Get the FunSharp source from GitHub using Clone or Download Zip, then load the FunSharp solution into MonoDevelop or Visual Studio and starting playing with the samples.
- FunSharp is built on Mono’s cross platform graphics libraries Xwt and Gtk# libraries which must be referenced.
- currently apps must run in 32-bit mode.
FunSharp has a Turtle module, which can be used to make fun shapes:
Turtle.X <- 150.
Turtle.Y <- 150.
for i in 0..5..200 do
FunSharp can be used to make games quickly and easily. I’ve ported several games written for Small Basic requiring only minor modifications:
Over the years the number of developer conferences seems to have multiplied so much so that there seems to be one on every day of the week. But many of the big name developer conferences charge north of 1000GBP/EUR/USD to attend their spectacles. So why would you attend a developer conference and can it be done on a shoestring?
Recently Ryan Riley asked that very question on Twitter:
There were some great responses:
Seems like there some great reasons why you'd attend.
Where does your money go?
Most speakers don’t charge to talk at an event, although many events will cover their travel and accomodation. Costs wise this leaves hiring a venue, refreshments, organization and advertising.
Unfortunately the balance sheets of most big name events are less than transparent, although Greg Young may be about to change that:
Can I do it on a shoestring?
As well as charging for tickets, many conferences receive money from sponsorship. For some conferences this, along with the sterling efforts of volunteers, covers some or all of the cost. Others offer great early bird discounts for those who book well in advance, meaning you can go to a conference without breaking the bank.
Here’s a selection of keenly priced events I’ll be attending over the next half year or so:
Do you have any reasonably priced conferences you’d like to share?
This week I ran a half-day hands on games development session at the Progressive .Net Tutorials hosted by Skills Matter in London. I believe this was the last conference to be held in Goswell Road before the big move to an exciting new venue.
My session was on mobile games development with F# as the implementation language:
Here’s a quick peek inside the room:
The session tasks were around 2 themes:
- implement a times table question and answer game (think Nintendo’s Brain Training game)
- extended a simple Flappy Bird clone
Times table game
The motivation behind this example was to help people:
- build a simple game loop
- pick up some basic F# skills
The first tasks , like asking a multiplication question, could be built using F#’s REPL (F# Interactive) and later tasks that took user input required running as a console application.
Here’s some of the great solutions that were posted up to F# Snippets:
To run them, create a new F# Console Application project in Xamarin Studio or Visual Studio and paste in the code (use the Raw view in F# Snippets to copy the code).
Dominic Finn’s source code includes some fun ASCII art too:
// _____ _ _ _____ _____ _____ ______ _ _ _____ _____ _
//| __ \ | | | ___/ ___/ ___| | ___|| || |_| _ || _ | |
//| | \/ | | | |__ \ `--.\ `--. | |_ |_ __ _| | | || | | | |
//| | __| | | | __| `--. \`--. \ | _| _| || |_| | | || | | | |
//| |_\ \ |_| | |___/\__/ /\__/ / | | |_ __ _\ \_/ /\ \_/ / |____
// \____/\___/\____/\____/\____/ \_| |_||_| \___/ \___/\_____/
Flappy Bird clone
For this example I sketched out a flappy bird clone using Monogame (along with WinForms and WPF for comparison) with the idea that people could enhance and extend the game:
Monogame lets you target multiple platforms including iOS and Android along with Mac, Linux, Windows and even Rapsberry Pi!
The different flavours are available on F# Snippets, simply cut and paste them into an F# script file to run them:
All the samples and tasks are also available in a zip: http://trelford.com/ProgNet15.zip