Mais conteúdo relacionado

Apresentações para você(20)

Similar a Real-world game development with Ebitengine - How to make the best-selling Go game(20)


Real-world game development with Ebitengine - How to make the best-selling Go game

  1. Real-world game development with Ebitengine - How to make the best-selling Go game Daigo Sato
  2. All of our games are made with Ebitengine.
  3. It works on Nintendo Switch™!
  4. Compiling a Go program into a native binary for Nintendo Switch™
  5. Why Go? ? Go Gopher by Renee French is licensed under the Creative Commons Attribution 3.0 License.
  6. Number of reasons NOT to use Go for Game Development Back then (2017) ● No widely used game engines for Go existed ● No IDE like Unity3D/Unreal was available ● Not many 3rd party libraries were available for game development ● There were only small communities ● There is no official Go support on any console ● Daigo had professional experience in Unity3D and had no clue about Go
  7. Hi, Daigo! Why don’t you use my OSS game library written in Go for your new games!? Dude, It does not make sense to use Go for Game Development Hajime Hoshi Daigo Sato
  8. You can learn Go quickly, you are a smart man!! I’ll help writing the RPG engine as well, deal? Hmm? It sounds good actually... And you are right, a smart person should learn Go! Hajime Hoshi Daigo Sato
  9. I decided to use Go
  10. So many challenges ● The game library (Ebitengine) did not have any multi-platform support yet, it needed to be ported to every platform we wanted to sell our game. ● The OSS was still immature, unstable, performance problems ○ Not reaching 30 FPS for a simple 2D game ○ No support for mp3, ogg ○ QA in production (Using our players as QA) ● If Hajime is bored with Ebiten, my business is over ※ all info above is based on the situation of the year of 2016 All of them above are unnecessary if you used Unity3D or Unreal
  11. Was it worth it? ?
  12. Hajime is Happy Hajime Hoshi ● Used Odencat games to test Ebitengine ● Odencat games being the Demo for Ebitengine ● Bear’s Restaurant proves Ebitengine runs on Nintendo Switch™ ● Someone is Dogfooding your OSS ● Fun and comfortable working experience with Go ● Gives energy to his life
  13. Daigo is ... Daigo Sato
  14. Daigo is Happy Daigo Sato ● Very fast iteration with very short compile time. ● The limitation rather gave the power ● Being able to borrow the super talented engineer’s power ● Have the feeling of full-control ○ Closer to native ○ High Maintainability / Portability ○ Dedication for crash-free ● Homebrew game engine is good for mental health
  15. Chicken Egg Problem
  16. We’ve grown together
  17. How we make games
  18. We have to make many games
  19. In a meaningful way
  20. Evolve games Clock of Atonement Ported the existing RPGMaker2000 game Bluebird of Happiness Prove if we can make an escape room game / implemented sponsor system Bear’s Restaurant Support edge to edge experience for all devices / Ads Minigame System Fishing Paradiso Prove we can make more non-RPG games
  21. Write once, Run Everywhere
  22. Odencat Game Runtime Native Layer IAP / Ads / Analytics / Storage / ... Game Data Odencat RPG Runtime Common Logic / Game Logic ObjC/Java/C++ Go + Ebitengine msgpack per platform one per game
  23. For each game, we are just swapping the game data ♫ Game Data Music Graphics Scripts .ogg .png .json
  24. RPG Editor ● ReactJS + Electron ● Very similar to RPG Maker series ● Build a game only with commands ● Non-engineers can make games
  25. Animation Tool ● Pure Go tool ● Make keyframe animations ● Let artist make animations without using the RPG Editor
  26. Switch target to make different builds. The same Go code runs for every game & every platform
  27. One improvement for All New Feature / Optimization / Crash fix / SDK Update
  28. Test in Production Sharing the codebase enabled us to use our less popular games to test new features/updates. OK OK
  29. Wrap up
  30. Take away ● Solve the Chicken-Egg Problem if you build OSS ● I you develop everything from scratch, you should have a good reason to do so. ● Making a game with Go is fun
  31. Add to Wishlist NOW!
  32. @daigo Follow me on Twitter!

Notas do Editor

  1. In order to develop a successful OSS, it is necessary to solve the Chicken-Egg Problem. Evolving with your customer can be a good strategy. Making a game is hard, if you develop everything from scratch, you’d better have a good reason to do so. Making a game with Go is fun. It is true that I could’ve achieved what I’ve done with other languages, but it is good for your mental health if you use a language with a good philosophy.