flappy - paris 2015
TRANSCRIPT
![Page 1: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/1.jpg)
READY, STEADY, CROSS PLATFORM GAMESPhillip Trelford, @ptrelfordF# Paris 2015, #fsharp
![Page 2: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/2.jpg)
F#UNCTIONAL LONDONERS• Founded Feb 2010• 1000+ Members• Meets every 2 weeks• Topics include
• Machine Learning• Finance• Games• Web
http://meetup.com/fsharplondon
![Page 3: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/3.jpg)
DON’T GAME CODERS USE C++?
YES• Engines
• Graphics• Sound• Physics
NO• Scripts
• AI• Interaction• Tools
![Page 4: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/4.jpg)
DO THEY REGRET IT?Veteran Games Programmer John Carmack extolling the virtues of functional programming at QuakeCon
![Page 5: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/5.jpg)
THE F IN F# STANDS FOR FUN!Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 6: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/6.jpg)
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
![Page 7: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/7.jpg)
MOBILE?Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 8: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/8.jpg)
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
![Page 9: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/9.jpg)
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++)
![Page 10: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/10.jpg)
F# FOR GAMES
![Page 11: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/11.jpg)
EXAMPLE APPS
Path to Go | XBLA Pissed off Owls| iOS Pool | WebGL
![Page 12: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/12.jpg)
FRAMEWORKS FOR GAMES
• .Net• WPF/Silverlight/WinRTXAML
• .Net/Mono• XNA/MonoGameXNA
• F# to JS Compilation• WebSharper/FunScript
HTML5
![Page 13: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/13.jpg)
XNA IS DEADPhillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 14: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/14.jpg)
LONG LIVE MONOGAME• Develop in Visual Studio (PC) or Xamarin Studio (Mac & PC)• Cross Platform
• iOS• Android• Windows• Mac OSX• Linux• Playstation Mobile• Ouya
![Page 15: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/15.jpg)
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
![Page 16: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/16.jpg)
BUT WAIT…
![Page 17: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/17.jpg)
PROTOTYPE10 WRITE Prototype20 PLAY Prototype30 IF fun THEN GOTO 2040 GOTO 10
![Page 18: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/18.jpg)
TASK: FLAPPY BIRD
![Page 19: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/19.jpg)
RESOURCES
![Page 20: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/20.jpg)
CHOOSE YOUR OWN ADVENTURE
![Page 21: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/21.jpg)
TOOLINGMonoGamePaint.Net / GimpMusicMaker JamBxfr.Net (Sound effects)Google
![Page 22: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/22.jpg)
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 __
![Page 23: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/23.jpg)
TRYFSHARP.ORG
![Page 24: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/24.jpg)
BUY THE BOOK
![Page 25: Flappy - Paris 2015](https://reader036.vdocuments.mx/reader036/viewer/2022062302/58ef83ec1a28ab124b8b45bd/html5/thumbnails/25.jpg)
Steps:1. Enter game jams 2. Join 1 game a month3. Publish your indie game4. Make $$$5. Go to 1