ready, steady, cross platform games - prognet 2015
TRANSCRIPT
![Page 1: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/1.jpg)
READY, STEADY, CROSS PLATFORM GAMES ON YOUR PHONE Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 2: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/2.jpg)
DON’T GAME CODERS USE C++?
YES
• Engines• Graphics• Sound• Physics
NO
• Scripts• AI• Interaction• Tools
![Page 3: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/3.jpg)
DO THEY REGRET IT?Veteran Games Programmer John Carmack extolling the virtues of functional programming at QuakeCon
![Page 4: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/4.jpg)
THE F IN F# STANDS FOR FUN!Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 5: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/5.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 6: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/6.jpg)
F# FOR PROFIT
Functional-first programming for:
• Time to Market
• Efficiency
• Correctness
• Complexity
![Page 7: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/7.jpg)
F# TESTIMONIALS
order of magnitude increase in productivity, GameSys
performance is 10× better than the C++ that it replaces, Insurance Co.
Units of measure reduced the chance of errors dramatically, Bing
F# is the night vision goggles I need when I go into the dark and attempt to solve previously unsolved problems, Microsoft
![Page 8: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/8.jpg)
MOBILE?Phillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 9: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/9.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 10: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/10.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 11: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/11.jpg)
F# FOR GAMES
![Page 12: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/12.jpg)
EXAMPLE APPS
Path to Go | XBLA Pissed off Owls| iOS Pool | WebGL
![Page 13: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/13.jpg)
FRAMEWORKS FOR GAMES
• .Net• WPF/Silverlight/WinRTXAML
• .Net/Mono• XNA/MonoGameXNA
• F# to JS Compilation• WebSharper/FunScript
HTML5
![Page 14: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/14.jpg)
XNA IS DEADPhillip Trelford, @ptrelford
Progressive .Net Tutorials 2015, #prognet
![Page 15: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/15.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 16: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/16.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 17: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/17.jpg)
BUT WAIT…
![Page 18: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/18.jpg)
PROTOTYPE
10 WRITE Prototype
20 PLAY Prototype
30 IF fun THEN GOTO 20
40 GOTO 10
![Page 19: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/19.jpg)
THE GAME LOOP
User Input
Logic
Collision DetectionScore
Render
![Page 20: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/20.jpg)
TASKS
![Page 21: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/21.jpg)
TASK 1: BRAIN TRAINING
![Page 22: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/22.jpg)
TASK 2: FLAPPY BIRD
![Page 23: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/23.jpg)
RESOURCES
![Page 24: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/24.jpg)
CHOOSE YOUR OWN ADVENTURE
![Page 25: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/25.jpg)
TOOLING
MonoGame
Paint.Net / Gimp
MusicMaker Jam
Bxfr.Net (Sound effects)
![Page 26: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/26.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 27: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/27.jpg)
TRYFSHARP.ORG
![Page 28: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/28.jpg)
BUY THE BOOK
![Page 29: Ready, steady, cross platform games - ProgNet 2015](https://reader036.vdocuments.net/reader036/viewer/2022062515/55c122fabb61eb167a8b4580/html5/thumbnails/29.jpg)
Steps:
1. Enter game jams
2. Join 1 game a month
3. Publish your indie game
4. Make $$$
5. Go to 1