Tempa Kerajaan dari AS3 ke Haxe. Post mortem

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.


gambar


Mari kita mulai dengan pengantar - siapakah InnoGames?


InnoGames β€” (. ) 400 . , , ( ). (lifetime revenue) 1 . .


gambar


Forge of Empires β€” :


  • InnoGames ( )
  • : , ( ). PvE, PvP .
  • 500 .
  • , 2012
  • Android iOS.

gambar


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


, , , html5-:


gambar


1. , InnoGames β€” , , tween-, .


gambar


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


gambar


2. :
:


  • . ActionScript- , ActionScript- . , "" ActionScript-, ,
  • ,
  • html5- flash-. ( QA), . , . flash-, html5- .

:


  • , .
  • ,
  • ,

gambar


2018 html5-, . .


html5- -.


, .


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


gambar


3. :


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

gambar


4. , mocked-, .


gambar


, mocked-:
ActionScript- β€” , , mocked- ActionScript. Haxe- ( ). .


"" (, ). Haxe- :


  • mocked- Haxe
  • mocked-
  • .

( ) .


gambar


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


  • ( , ..)
  • ( Haxe-)
  • Haxe-

.. β€” , ActionScript-.


gambar


6. , , , β€” . .


flash- - swf, ATF-. , html5-. : html5-, flash- .


: swf- , OpenFL .


gambar


7. ( ) β€” , . Pull Request Flash JavaScript.


, UI-.


html5- Flash-.


gambar


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


gambar


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


gambar


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


gambar


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


gambar


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


gambar


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


Internet Explorer Flash- .


gambar


, InnoGames Haxe, .. Flash- ActionScript-, html5- β€” Haxe-, . html5-, OpenFL html5.


, InnoGames (. . 4), , , , ActionScript. Haxe . , "" .
.


Haxe-, Flash, JavaScript. , Haxe- .


, β€” .


gambar


: OpenFL html5-, Flash- , .


HaxeUp.


gambar


14. ( ) β€” Haxe, 2 . , ( Haxe- , IDE), :


  • -, . , . , , src ActionScript-, Haxe- . , "" CI, IDE, . " " (ActionScript- ), , , , " ", Haxe git, ActionScript-
  • -, . Haxe , ActionScript-. Haxe ActionScript- Ant-. .

, :


gambar


1. (workflow) β€” 2 : . , β€” . , mocked-, .


ActionScript Haxe, ( ).


gambar


2. β€” . Haxe- :


  • master- ""
  • conversion- Haxe-
  • develop- -.

merge-, - ActionScript develop- Haxe-. , "". .


gambar


3. β€” html5- , . , Internet Explorer Flash-, , Haxe .


Oleh karena itu, jika tim harus memulai kembali pengembangan konverter, maka itu akan menjadi lintas-platform mungkin.


gambar


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


All Articles