Dalam komentar tentang menerjemahkan laporan dari HaxeUp Sessions 2020 Hamburg - Laporan Status Musim Dingin Haxe - sebuah pertanyaan diajukan tentang mengapa Haxe diperlukan. Tentu saja, mereka menjawabnya di tempat yang sama, di komentar. Usulan terjemahan laporan lain dari HaxeUp sebelumnya, menurut pendapat saya, harus menjadi argumen tambahan untuk membela Haxe, karena laporan ini adalah tentang game yang telah menghasilkan lebih dari 500 juta euro.
Penulis laporan, Nenad, adalah salah satu programmer InnoGames yang bekerja untuk mengubah Forge of Empires dari ActionScript ke Haxe. 2 tahun yang lalu di Amsterdam InnoGames berbicara tentang pekerjaan mereka ke arah ini. Hari ini kita dapat mengatakan bahwa mereka melakukannya sepenuhnya - sekarang kedua versi klien web (Flash dan html5) dikumpulkan dari basis kode tunggal pada Haxe. Dan laporan ini pada dasarnya adalah tinjauan atas pekerjaan yang dilakukan dan keputusan yang diambil, baik yang berhasil maupun yang tidak terlalu baik.

Mari kita mulai dengan pengantar - siapakah InnoGames?
InnoGames β (. ) 400 . , , ( ). (lifetime revenue) 1 . .

Forge of Empires β :
- InnoGames ( )
- : , ( ). PvE, PvP .
- 500 .
- , 2012
- Android iOS.

, Forge of Empires , InnoGames Flash. , html5- , Flash-.
, , , html5-:

1. , InnoGames β , , tween-, .

, (, CreateJS Flash API ActionScript- JavaScript). Egret OpenFL β . Egret , . Egret β , "", . , .
Haxe OpenFL β , .. . , OpenFL .

2. :
:
- . ActionScript- , ActionScript- . , "" ActionScript-, ,
- ,
- html5- flash-. ( QA), . , . flash-, html5- .
:

2018 html5-, . .
html5- -.
, .
A/B , html5-, β flash-. 2018 html5- -. html5- 85-86% .

3. :
- - -. Egret, .. . , : Forge of Empires , ActionScript Haxe, InnoGames . , InnoGames ActionScript->Haxe. InnoGames , , , ( InnoGames Haxe).
- .. , InnoGames
- Haxe OpenFL
- Haxe .

4. , mocked-, .

, mocked-:
ActionScript- β , , mocked- ActionScript. Haxe- ( ). .
"" (, ). Haxe- :
( ) .

5. β , ActionScript- , "" :
.. β , ActionScript-.

6. , , , β . .
flash- - swf, ATF-. , html5-. : html5-, flash- .
: swf- , OpenFL .

7. ( ) β , . Pull Request Flash JavaScript.
, UI-.
html5- Flash-.

8. (dependency injection) Robotlegs, swiftsuspenders. swiftsuspenders . Haxe- @:rtti
β xml-, . .. , html5- ( xml- ). , : @:rtti
ITypeDescriptionAware
β , , , , ( ). , .

9. Canvas- , .. , Microsoft Edge β ( ).

10. ? , - .
InnoGames OpenFL , , WebGL, drawcall.

11. OpenFL . SubBitmapData
β , ( β !). , , drawcall.

12. ? , !
html5- . β , drawcall ( , drawcallβ, ; gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)
). drawcallβ. .

13. ? β !
- html5- 60 , Internet Explorer β webgl-, . , , Internet Explorer 10% , "" !
Internet Explorer Flash- .

, InnoGames Haxe, .. Flash- ActionScript-, html5- β Haxe-, . html5-, OpenFL html5.
, InnoGames (. . 4), , , , ActionScript. Haxe . , "" .
.
Haxe-, Flash, JavaScript. , Haxe- .
, β .

: OpenFL html5-, Flash- , .
HaxeUp.

14. ( ) β Haxe, 2 . , ( Haxe- , IDE), :
- -, . , . , ,
src
ActionScript-, Haxe- . , "" CI, IDE, . " " (ActionScript- ), , , , " ", Haxe git, ActionScript- - -, . Haxe , ActionScript-. Haxe ActionScript- Ant-. .
, :

1. (workflow) β 2 : . , β . , mocked-, .
ActionScript Haxe, ( ).

2. β . Haxe- :
- master- ""
- conversion- Haxe-
- develop- -.
merge-, - ActionScript develop- Haxe-. , "". .

3. β html5- , . , Internet Explorer Flash-, , Haxe .
Oleh karena itu, jika tim harus memulai kembali pengembangan konverter, maka itu akan menjadi lintas-platform mungkin.

Tapi sekarang kedua versi klien browser Forge of Empires menggunakan kode Haxe. Terimakasih atas perhatiannya!