Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Building cross platform games with Xamarin - Birmingham 2015

667 Aufrufe

Veröffentlicht am

In this session we'll explore building cross platform indie games quickly and easily using Xamarin tools. We'll look at deploying to iOS, Android and even Raspberry Pi. Expect a splattering of practical game design tips and a segment where you get to adapt a popular arcade game on your laptop. Example code will be primarily in F#, but no prior experience of game development or F# is required.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Building cross platform games with Xamarin - Birmingham 2015

  1. 1. BUILDING CROSS PLATFORM GAMES WITH XAMARIN Phillip Trelford, @ptrelford Birmingham Xamarin Meetup 2015
  2. 2. F#UNCTIONAL LONDONERS • Founded Feb 2010 • 1000+ Members • Meets every 2 weeks • Topics include • Machine Learning • Finance • Games • Web http://meetup.com/fsharplondon
  3. 3. DON’T GAME CODERS USE C++? YES • Engines • Graphics • Sound • Physics NO • Scripts • AI • Interaction • Tools
  4. 4. DO THEY REGRET IT? Veteran Games Programmer John Carmack extolling the virtues of functional programming at QuakeCon
  5. 5. THE F IN F# STANDS FOR FUN! Phillip Trelford, @ptrelford Birmingham Xamarin Meetup 2015
  6. 6. 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
  7. 7. F# FOR PROFIT Functional-first programming for: • Time to Market • Efficiency • Correctness • Complexity
  8. 8. 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
  9. 9. MOBILE? Phillip Trelford, @ptrelford Birmingham Xamarin Meetup 2015
  10. 10. 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
  11. 11. 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++)
  12. 12. F# FOR GAMES Phillip Trelford, @ptrelford Birmingham Xamarin Meetup 2015
  13. 13. EXAMPLE APPS Path to Go | XBLA Pissed off Owls| iOS Pool | WebGL
  14. 14. FRAMEWORKS FOR GAMES •.Net •WPF/Silverlight/WinRTXAML •.Net/Mono •XNA/MonoGameXNA •F# to JS Compilation •WebSharper/FunScriptHTML5
  15. 15. XNA IS DEAD Phillip Trelford, @ptrelford Birmingham Xamarin Meetup 2015
  16. 16. LONG LIVE MONOGAME • Develop in Visual Studio (PC) or Xamarin Studio (Mac & PC) • Cross Platform • iOS • Android • Windows • Mac OSX • Linux • Playstation Mobile • Ouya
  17. 17. BUT WAIT…
  18. 18. PROTOTYPE PROTOTYPE PROTOTYPE! 10 WRITE Prototype 20 PLAY Prototype 30 IF fun THEN GOTO 20 40 GOTO 10
  19. 19. THE GAME LOOP User Input Logic Collision Detection Score Render
  20. 20. TASKS: FLAPPY BIRD
  21. 21. RESOURCES Phillip Trelford, @ptrelford Birmingham Xamarin Meetup 2015
  22. 22. CHOOSE YOUR OWN ADVENTURE
  23. 23. TOOLING MonoGame Paint.Net / Gimp MusicMaker Jam Bxfr.Net (Sound effects) Google
  24. 24. 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 __
  25. 25. TRYFSHARP.ORG
  26. 26. BUY THE BOOK
  27. 27. Steps: 1. Enter game jams 2. Join 1 game a month 3. Publish your indie game 4. Make $$$ 5. Go to 1

×