Upload
phillip-trelford
View
3.924
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Presentation to F#unctional Londoners Meetup group on cross platform game development with F# & MonoGame, covering games built in a day at the GameCraft game jams.
Citation preview
BUILDING A GAME IN A DAYPhillip Trelford, F#unctional Londoners, 2013
DON’T GAMES PROGRAMMERS 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
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
F# FOR PROFIT
Functional-first programming for:
Time to Market
Efficiency
Correctness
Complexity
F# TESTIMONIALS
order of magnitude increase in productivity, GameSys
performance is 10× better than the C++ that it replaces, Aviva
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
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#, JavaScript, Boo)
PhoneGap (JavaScript)
Code-orientated
XNA/MonoGame (C#, F#)
PyGame (Python)
Love (Lua)
DirectX (C++)
RETRO GAME (XNA + F#) 2007
XBLA: PATH OF GO (XNA + F#)
XNA IS DEAD
Hacking XNA to run on VS 2012
Download VS2010 (Express etc.)
Install XNA
Hack XML config file
Install Xbox Live (Windows 8)
LONG LIVE MONOGAME
Develop in Visual Studio (PC) or Xamarin Studio (Mac & PC)
Cross Platform iOS Android Windows Mac OSX Linux Playstation Mobile Ouya
GAMES PROGRAMMING 101
Game
Routines(Co)
React
Render
COROUTINE ZOMBIES
Pseudo Code
random_pause 10
while not dead
wait_until_in_range 50.0
home_in_on_target 10
F#
yield! random_pause 10
while true do
yield! wait_range 50
yield! home_in 10
FLINT EASTWOOD (F# + SILVERLIGHT)
Dublin GameCraft 2012
6 hours
THE PRISMER
Kenneth Heine Berle
Neil Danson
Quinton Coetzee
Anton Semenov
Malcom Knight
Thomas Trelford
Phillip Trelford
TOOLING
VS2012 + F# + XNA
Paint.Net
Gimp
MusicMaker Jam
Bxfr.Net (Sound effects)
DropBox
11 HOURS LATER
Making games – fun for all the family
QUESTIONS?
Twitter:
@ptrelford
Blog:
http://trelford.com/blog
F# Foundation:
http://fsharp.org