Download - Flappy - Paris 2015

Transcript
Page 1: Flappy -  Paris 2015

READY, STEADY, CROSS PLATFORM GAMESPhillip Trelford, @ptrelfordF# Paris 2015, #fsharp

Page 2: Flappy -  Paris 2015

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

DON’T GAME CODERS USE C++?

YES• Engines

• Graphics• Sound• Physics

NO• Scripts

• AI• Interaction• Tools

Page 4: Flappy -  Paris 2015

DO THEY REGRET IT?Veteran Games Programmer John Carmack extolling the virtues of functional programming at QuakeCon

Page 5: Flappy -  Paris 2015

THE F IN F# STANDS FOR FUN!Phillip Trelford, @ptrelford

Progressive .Net Tutorials 2015, #prognet

Page 7: Flappy -  Paris 2015

MOBILE?Phillip Trelford, @ptrelford

Progressive .Net Tutorials 2015, #prognet

Page 8: Flappy -  Paris 2015

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

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

F# FOR GAMES

Page 11: Flappy -  Paris 2015

EXAMPLE APPS

Path to Go | XBLA Pissed off Owls| iOS Pool | WebGL

Page 12: Flappy -  Paris 2015

FRAMEWORKS FOR GAMES

• .Net• WPF/Silverlight/WinRTXAML

• .Net/Mono• XNA/MonoGameXNA

• F# to JS Compilation• WebSharper/FunScript

HTML5

Page 13: Flappy -  Paris 2015

XNA IS DEADPhillip Trelford, @ptrelford

Progressive .Net Tutorials 2015, #prognet

Page 14: Flappy -  Paris 2015

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

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

BUT WAIT…

Page 17: Flappy -  Paris 2015

PROTOTYPE10 WRITE Prototype20 PLAY Prototype30 IF fun THEN GOTO 2040 GOTO 10

Page 18: Flappy -  Paris 2015

TASK: FLAPPY BIRD

Page 19: Flappy -  Paris 2015

RESOURCES

Page 20: Flappy -  Paris 2015

CHOOSE YOUR OWN ADVENTURE

Page 21: Flappy -  Paris 2015

TOOLINGMonoGamePaint.Net / GimpMusicMaker JamBxfr.Net (Sound effects)Google

Page 22: Flappy -  Paris 2015

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

TRYFSHARP.ORG

Page 24: Flappy -  Paris 2015

BUY THE BOOK

Page 25: Flappy -  Paris 2015

Steps:1. Enter game jams 2. Join 1 game a month3. Publish your indie game4. Make $$$5. Go to 1