Forge of Empires von AS3 bis Haxe. Post mortem

In Kommentaren zur Übersetzung des Berichts von HaxeUp Sessions 2020 Hamburg - Der Winter Haxe Status Report - wurde eine Frage gestellt, warum Haxe benötigt wird. NatĂŒrlich antworteten sie ihm an derselben Stelle in den Kommentaren. Die vorgeschlagene Übersetzung eines anderen Berichts aus der Vergangenheit von HaxeUp sollte meiner Meinung nach ein zusĂ€tzliches Argument zur Verteidigung von Haxe sein, as Dieser Bericht handelt von einem Spiel, das mehr als 500 Millionen Euro verdient hat.


Der Autor des Berichts, Nenad, ist einer der InnoGames-Programmierer, die an der Konvertierung von Forge of Empires von ActionScript nach Haxe gearbeitet haben. Vor 2 Jahren sprach InnoGames in Amsterdam ĂŒber ihre Arbeit in dieser Richtung. Heute können wir sagen, dass sie es vollstĂ€ndig geschafft haben - jetzt werden beide Versionen des Webclients (Flash und html5) aus einer einzigen Codebasis auf Haxe zusammengestellt. Und dieser Bericht ist im Wesentlichen eine ÜberprĂŒfung der geleisteten Arbeit und der getroffenen Entscheidungen, sowohl erfolgreich als auch nicht sehr gut.


Bild


Beginnen wir mit der EinfĂŒhrung - wer sind InnoGames?


InnoGames — (. ) 400 . , , ( ). (lifetime revenue) 1 . .


Bild


Forge of Empires — :


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

Bild


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


, , , html5-:


Bild


1. , InnoGames — , , tween-, .


Bild


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


Bild


2. :
:


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

:


  • , .
  • ,
  • ,

Bild


2018 html5-, . .


html5- -.


, .


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


Bild


3. :


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

Bild


4. , mocked-, .


Bild


, mocked-:
ActionScript- — , , mocked- ActionScript. Haxe- ( ). .


"" (, ). Haxe- :


  • mocked- Haxe
  • mocked-
  • .

( ) .


Bild


5. — , ActionScript- , "" :


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

.. — , ActionScript-.


Bild


6. , , , — . .


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


: swf- , OpenFL .


Bild


7. ( ) — , . Pull Request Flash JavaScript.


, UI-.


html5- Flash-.


Bild


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


Bild


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


Bild


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


Bild


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


Bild


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


Bild


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


Internet Explorer Flash- .


Bild


, InnoGames Haxe, .. Flash- ActionScript-, html5- — Haxe-, . html5-, OpenFL html5.


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


Haxe-, Flash, JavaScript. , Haxe- .


, — .


Bild


: OpenFL html5-, Flash- , .


HaxeUp.


Bild


14. ( ) — Haxe, 2 . , ( Haxe- , IDE), :


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

, :


Bild


1. (workflow) — 2 : . , — . , mocked-, .


ActionScript Haxe, ( ).


Bild


2. — . Haxe- :


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

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


Bild


3. — html5- , . , Internet Explorer Flash-, , Haxe .


Wenn das Team die Entwicklung des Konverters neu starten mĂŒsste, wĂ€re dies daher so plattformĂŒbergreifend wie möglich.


Bild


Jetzt verwenden beide Versionen des Forge of Empires-Browser-Clients Haxe-Code. Vielen Dank fĂŒr Ihre Aufmerksamkeit!


All Articles