Ebiten in 2019
It's been 6 years since I started to develop Ebiten. This article is a retrospective of Ebiten in 2019.
TL;DR
- I'm happy that a game in Ebiten (Bear's Restaurant) received some awards.
- There are chances to contribute to Go, especially to a relatively minor tools like gomobile.
- A game library will never be improved if there are no users. In 2019, we increased use cases of Ebiten and turn a feedback loop.
January
- I think I was working on Ebiten based on feedbacks by "Bear's Restaurant"'s author.
February
- "Bear's Restaurant" was released.
- The author is Daigo.
- This game is made with an in-house game engine written in Ebiten.
- As far as I know, Bear's Restaurant has reached 400K downloads.
- After releasing Bear's Restaurant, we needed to address many issues in mobile environments (e.g. there was an unexpected line on the screen in Xperia). I have fought against many bug reports this year.
- Go 1.12 was released. This includes
Syscall18
I implemented. This was needed for OpenGL bindings on Windows.
March
- Released Ebiten v1.9.0. The new features are no-Cgo on Windows, Metal on macOS, and so on.
- For the Metal part, I used Dmitri's source code with Dmitri's permission.
- The reason why I implemented Metal version is because Apple was trying to deprecate OpenGL.
- Started to implement Go 1.12 port of GopherJS.
- Launched ebiten.org.
April
- neguse developed a game cut’n’align in Ebiten (the article about this game in Japanese).
- I improved the audio part of Ebiten based on neguse's feedbacks.
May
- Fishing Paradiso was released.
- This game is made with the same engine Bear's Restaurant uses.
- As far as I know, Fishing Paradiso has reached 480K downloads. This is the most downloaded mobile game in Go so far.
- Gave a presentation "Mobile Game Development in Go" (Japanese) at golang.tokyo #24
June
- Bear's Restaurant received Top3 award and Avex award at Google Play Indie Games Festival 2019. Congratulations!
この度くまレスがIndie Game FestivalでTop3+Avex賞受賞となりました。Googleおよび関係者の方々、素晴らしいコンテストを開いていただきありがとうございました。Googleのインディーゲームへの本気度と愛がつたわるいいイベントでした!https://t.co/5HEJmOjy8Z
— Daigo (@daigo) June 30, 2019
July
- Gave a LT "Mobile Game Development in Go" at GopherCon 2019.
- The summary is that "you can develop decent mobile games in Go".
- Ebiten was introduced also at "Get Going with WebAssembly" by Johan Brandhorst.
- Odencat Inc. was established by Daigo. For now, this company’s focus is to sell games developed with Ebiten.
— Hajime Hoshi (星一) (@hajimehoshi) August 27, 2019
August
- Started to implement enabling Go modules in gomobile.
- At GopherCon, I talked to the Go team members including Austin and was told: "why don't you do that?"
- Ebiten is a heavy user of gomobile, and enabling Go modules is a critical feature. I run for a contributor.
September
- Go 1.13 was released.
- This included a breaking change in
syscall/js
. Ebiten already supported this before releasing. - By the way, Go 1.14 plans to add another breaking change (
==
will not be available to comparejs.Value
s). I plan to support this.
- This included a breaking change in
October
- OpenDiablo2 adopted Ebiten.
- Before adopting Ebiten, OpenDiablo2 used C# or other languages.
- OpenDiablo2 is a project to reimplement Diablo2, and this uses resources of the official Diablo2 locally installed.
- OpenDiablo2 utilizes Ebiten so heavily as never before and they found some performance issues in Ebiten. The author Essial and I are discussing and trying to improve Ebiten's performance.
November
- Released Ebiten v1.10.0. The new features are iOS Metal,
ebitenmobile
command, and so on.
December
- Snowman Story is planned to be released.
Ebiten in 2020 and after
- I hope supporting Go modules in gomobile would be finished.
- Then I'd be able to release Ebiten v2.0.
- For adding features, the highest priority things are what actual games want.
- I'll continue to discuss with Daigo and the people in OpenDiablo2.
- Shaders and vector graphics are still in the task queue.
- More examples and documents are needed to increase the users.
- What about offering easy-to-use assets and examples that use them?
- I'd like to write a book if I have bandwidth.