Upgrade to Pro — share decks privately, control downloads, hide ads and more …

functional_games

Avatar for nanaki04 nanaki04
October 26, 2018

 functional_games

関数型言語がゲーム開発に向いているかについてのプレゼンです。
2018年10月26日の京都エリクサーミートアップで発表したプレゼンテーションのスライドになります。

Avatar for nanaki04

nanaki04

October 26, 2018

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ About me • Robert Jan ZwetslootʢϠϯʣ • גࣜձࣾςΫϩε •

    ιʔγϟϧήʔϜ։ൃΤϯδχΞ • ओʹϑϩϯτΤϯυ • Unity C# / Cocos2D JS / CocosCreator Typescript / Laravel PHP • ಠֶɿElixir / F# / Rust
  2. ΦϒδΣΫτࢦ޲ΛΠϝʔδ͢Δͱ Visualisation of OOP Input |> |> Void Side Effect

    Side Effect Side Effect Side Effect Side Effect Side Effect State State State State State
  3. Ͳ͏΍ͬͯؔ਺ܕʹڵຯΛ࣋ͬͨʁ How I got into FP? • ̍೥൒લɺDave ThomasࢯͷϓϨθϯςʔγϣϯΛݟͨ •

    ʮΤϦΫαʔΛΠϯετʔϧ͠ɺREPLΛ։͍ͯɺேʹͳ Δ·Ͱָ͠ΜͰ͍ͨʯ • ࢲ΋ΤϦΫαʔΛΠϯετʔϧ͠ɺREPLΛ։͍ͯɺࠓ· ͰࣙΊΒΕͳ͍
  4. Ͳ͏΍ͬͯؔ਺ܕʹڵຯΛ࣋ͬͨʁ How I got into FP? • ̍೥લήʔϜͷϦϝΠΫϓϩδΣΫτͷϓϩτλΠϓ࡞੒ • ಉ྅ʹʮReduxʯʹ঺հ͞Εͨ

    • σόοάɾςετ͠΍͢͞ʹڻ͍ͨ • ݁ہʮReduxʯͰͷήʔϜ։ൃ͸ϦεΫߴ͗ͯࣙ͢Ίͨ • ϓϩδΣΫτ͕ࣦഊͨ͠
  5. ϑϩϯτΤϯυ Client application • F# |> .dll |> UnityήʔϜΤϯδϯ •

    BlenderͰۨͷ3DϞσϧ࡞੒ ࡞੒ํ๏ ײ૝ • ηοτΞοϓ͸஍ࠈͰͨ͠ • ҰͭͷΞϓϦέʔγϣϯεςʔτͷ৔߹͸ύʔϑΥʔϚϯε͕΍͹͔ͬͨ • F#ͷγϯλοΫε͕៉ྷʂ
  6. όοΫΤϯυ Server application • Elixir OTP • TCP / UDP௨৴

    • σʔλ͸GenServerʹอ࣋͢Δʢσʔλϕʔεͳ͠ʣ ࡞੒ํ๏ ײ૝ • ͲΜͳσʔλྔΛ࢖ͬͯ΋ϝνϟΫνϟૣ͍ʂ • ͨͩͷαʔόʔϗεςΟϯά͸શ෦HTTPઐ༻ T_T
  7. σόοάπʔϧ Debug Tool • Redux Development ToolsͷΑ͏ͳπʔϧʢͷͭ΋Γʣ • RustͰ࡞੒ •

    TCP௨৴ͰϑϩϯτΞϓϦ͕ܨ͙ ࡞੒ํ๏ ײ૝ • ׳ΕͮΒ͍ݴޠ͕ͩɺඇৗʹ҆શ • ઌʹF#ΛֶΜͰྑ͔ͬͨʂ • σόοάπʔϧ͕͠͹Β͘ಈ͘ͱcpu࢖༻཰300%ʂ