Kto mi wytłumaczy dlaczego w kodzie gry "Breakouts" w tych różnych dwóch frameworkach ...

0

tj. Impact JS i Phaser (chodzi o pisanie gier w HTML5+JS) -> jest taka różnica w ilości kodu.

Zobaczcie sami:

0

Przecież w pierwszym linku podałeś jeden plik będący jedynie małą częścią gry, a drugi link prowadzi do całego silnika...

0

Porównujesz kod małego kawałka gry, z kodem całego frameworka

0
Patryk27 napisał(a):

Przecież w pierwszym linku podałeś jeden plik będący jedynie małą częścią gry, a drugi link prowadzi do całego silnika...

Przecież nie trudno sobie wejść w cały folder masz u góry listwę i przejrzeć inne pliki, jeśli to zrobisz to zobaczysz, że w całym folderze gry we frameworku Impact JS, jest max z 1000 linii kodu, a w tym drugim dużo więcej - czyli ten plik zawierający 35k linii to tam jest zdefiniowany cały framework, i on musi być po prostu żeby to się skompilowało i autor tej gry go nie pisał, tak?

0

JS nie jest językiem kompilowalnym tylko interpretowanym. Co do pytania - to tak, frameworków używa się żeby przyśpieszyć sobie pracę (btw. jak ktoś jest uparty to gierkę w czystym js też napisze).

0

Tu masz chyba rozwiązanie zagadki:
https://github.com/city41/breakouts/tree/3e346991b7579e90a7459dd1dc76dea3989b16ed/breakouts/impactjs

ImpactJS is a commercial library requiring a license to develop with. Therefore you can't play with this Breakout unless you have a license and can provide your own copy of Impact. All of the Impact files in impact/, weltmeister/ etc are not in this repo

po prostu widocznie tam Impacta wcale nie ma, ale jak wykupisz sobie licencję to piszą co zrobić, żeby odpalić ten przykład.

JS nie jest językiem kompilowalnym tylko interpretowanym.

  1. Zależy od wirtualnej maszyny. V8 kompiluje just-in-time do kodu natywnego (co robią inne wirtualne maszyny nie mam pojęcia)

  2. istnieją transpilatory ES6 do ES5, więc de facto ludzie traktują dzisiaj JS jak język kompilowany.

  3. ale i tak nie wiem co ma to do tematu tego wątku w sumie. Możliwe, że gamecreatorrowi chodziło ogólnie o build process, a nie kompilacje w sensie stricte?

0
LukeJL napisał(a):

Tu masz chyba rozwiązanie zagadki:
https://github.com/city41/breakouts/tree/3e346991b7579e90a7459dd1dc76dea3989b16ed/breakouts/impactjs

ImpactJS is a commercial library requiring a license to develop with. Therefore you can't play with this Breakout unless you have a license and can provide your own copy of Impact. All of the Impact files in impact/, weltmeister/ etc are not in this repo

po prostu widocznie tam Impacta wcale nie ma, ale jak wykupisz sobie licencję to piszą co zrobić, żeby odpalić ten przykład.

JS nie jest językiem kompilowalnym tylko interpretowanym.

  1. Zależy od wirtualnej maszyny. V8 kompiluje just-in-time do kodu natywnego (co robią inne wirtualne maszyny nie mam pojęcia)

  2. istnieją transpilatory ES6 do ES5, więc de facto ludzie traktują dzisiaj JS jak język kompilowany.

  3. ale i tak nie wiem co ma to do tematu tego wątku w sumie. Możliwe, że gamecreatorrowi chodziło ogólnie o build process, a nie kompilacje w sensie stricte?

Moim głównym celem jest dowiedzenie się ile twórca tej gry Breakouts w tym Phaser'ze musiał faktycznie napisać linijek kodu, a więc on nie napisał tych wszystkich 35k linii kodu, tylko to jest jakiś plik z tym całym frameworkiem i jest on wymagany do kompilacji tak?

0

Nie, nie napisał, a Phaser to framework i wymagany jest do działania tej gry.
Określenie kompilacja w stosunku do języka JS nie jest poprawne.

0

Phaser jest frameworkiem JS i to co wrzuciłeś: https://github.com/city41/breakouts/blob/master/breakouts/phaser/js/lib/phaser.js
to chyba tylko i wyłącznie kod źródłowy frameworka Phaser. Kodu źródłowego Impacta nie ma tutaj w ogóle, bo Impact to projekt komercyjny.

A to, co programista gry Breakout napisał używając Phasera, to masz w tym katalogu chyba:
https://github.com/city41/breakouts/tree/master/breakouts/phaser/js/src
co wcale małym programikiem nie jest. Ponad 1000 linijek kodu na prostą gierkę Breakout z użyciem gotowego frameworka?
Coś tu jest strasznie przekombinowane.

Więc nie porównywałbym Phasera i Impacta, bo wielkość kodu, który wrzuciłeś więcej powie o nawykach programisty gry, a nie o frameworkach.
Zresztą zobacz, że Impactowy Kod tej gry:
https://github.com/city41/breakouts/blob/master/breakouts/phaser/js/src/Game.js
jest napisany przez innego programistę, niz ten, który napisał phaserową wersję gry:
https://github.com/city41/breakouts/blob/master/breakouts/impactjs/lib/game/main.js

Czyli kolejna zagadka rozwiązana: różni programiści produkują różny kod, bardziej lub mniej rozdmuchany.
Te przykłady należy traktować bardziej jako przykłady "jak można napisać" coś używając danego frameworka, a ciężko na ich podstawie porównywać który framework jest lepszy/gorszy itp.

0
LukeJL napisał(a):

...

Znalazłem tą samą grę wprost z oficjalnej strony Phaser -> dużo dużo krótszy -> http://phaser.io/examples/v2/games/breakout -> (około 200 linii)

1 użytkowników online, w tym zalogowanych: 0, gości: 1