Upload
phillip-trelford
View
351
Download
0
Embed Size (px)
Citation preview
READY, STEADY, CROSS PLATFORM GAMESPhillip Trelford, @ptrelfordF# Paris 2015, #fsharp
F#UNCTIONAL LONDONERS• Founded Feb 2010• 1000+ Members• Meets every 2 weeks• Topics include
• Machine Learning• Finance• Games• Web
http://meetup.com/fsharplondon
DON’T GAME CODERS USE C++?
YES• Engines
• Graphics• Sound• Physics
NO• Scripts
• AI• Interaction• Tools
DO THEY REGRET IT?Veteran Games Programmer John Carmack extolling the virtues of functional programming at QuakeCon
THE F IN F# STANDS FOR FUN!Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
QUAKE 3 – F# SCRIPT
Will Smith @TIHanTime6h@brandewinder @7sharp9 Finally got something going in #FSharp #Quake3. Messing around with the weapon position. :) pic.twitter.com/zAZ439Kdch
MOBILE?Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
PORTABLE IS DEAD… LONG LIVE MOBILE
• Android games now out-selling games for Sony and Nintendo handhelds• IDC and App Annie's study suggests that iOS and Android combined now
generate four times the revenues of dedicated gaming handhelds- Guardian
CROSS PLATFORM GAME ENGINES
Designer-orientated• Unity (C#, F#, JavaScript, Boo)• PhoneGap (JavaScript, F#, …)• Marmalade• …
Code-orientated• XNA/MonoGame (C#, F#)• PyGame (Python)• Love (Lua)• DirectX (C++)
F# FOR GAMES
EXAMPLE APPS
Path to Go | XBLA Pissed off Owls| iOS Pool | WebGL
FRAMEWORKS FOR GAMES
• .Net• WPF/Silverlight/WinRTXAML
• .Net/Mono• XNA/MonoGameXNA
• F# to JS Compilation• WebSharper/FunScript
HTML5
XNA IS DEADPhillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
LONG LIVE MONOGAME• Develop in Visual Studio (PC) or Xamarin Studio (Mac & PC)• Cross Platform
• iOS• Android• Windows• Mac OSX• Linux• Playstation Mobile• Ouya
CROSS PLATFORM F#
.Net• Windows• Windows Store• Windows
Phone
Mono• Mac• Linux• iOS• Android• Ouya• Playstation
Vita
JS• Chrome/IE• iOS• Android• Blackberry• Windows
Phone• Windows Store
BUT WAIT…
PROTOTYPE10 WRITE Prototype20 PLAY Prototype30 IF fun THEN GOTO 2040 GOTO 10
TASK: FLAPPY BIRD
RESOURCES
CHOOSE YOUR OWN ADVENTURE
TOOLINGMonoGamePaint.Net / GimpMusicMaker JamBxfr.Net (Sound effects)Google
F# KOANS//---------------------------------------------------------------// About Let//// The let keyword is one of the most fundamental parts of F#.// You'll use it in almost every line of F# code you write, so// let's get to know it well! (no pun intended)//---------------------------------------------------------------[<Koan(Sort = 2)>]module ``about let`` =
[<Koan>] let LetBindsANameToAValue() = let x = 50 AssertEquality x __
TRYFSHARP.ORG
BUY THE BOOK
Steps:1. Enter game jams 2. Join 1 game a month3. Publish your indie game4. Make $$$5. Go to 1