Skocz do zawartości

W czym GML, jest gorszy od innych języków?


Sutikku

Rekomendowane odpowiedzi

Sam uważam, że Game Maker jest potężną bronią w rękach programisty, ale wszystko ma swoje wady i zalety ("a kto umarł, ten nie żyje"). Jakie są główne jego wady? Piszcie ogólnie, bo równie dobrze można się cały dzień kłócić co jest lepsze Java czy C++, mi chodzi tylko o główne wady GM.

Odnośnik do komentarza
Udostępnij na innych stronach

w GM:S normalnie masz GML w wirtualce uruchamiany (popraw mnie gnysiu, jesli sie myle?), a kompilacja do c++ jest w YoYoCompilerze

Odnośnik do komentarza
Udostępnij na innych stronach

Jest jeszcze with(), w zależności od argumentu możesz iterować na jednym obieckie [wpisujesz ID obiektu, np. 100043 albo instance_create(x,y,obj)], wszystkich obiektach w roomie (all) albo na wszystkich kopiach danego obiektu (czyli nazwa obiektu, która de facto także jest liczbą). Można też wpisać self, czyli własne ID, albo other, które działa w evencie Collision with [obj]lub, ewentualnie, w zagnieżdżonej konstrukcji with(). Przykład:

GML
//Step obiektu ob1

var1 = 32 //zmienna danego obiektu ob1

with(ob2)

{

var1 = 24 //zmienna danego obiektu ob2

with(other) var1 += 4 //zmienna obiektu ob1 wywołującego obecnie with(ob2)

}

show_message(var1)

var1 każdego obiektu ob1 wzrośnie o 4*instance_number(ob2).

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

A wady ma takie:

 

- brak typów byte, int

- brak wartości null

- brak możliwości tworzenia własnych metod mimo złudnej obiektowości

- zaszłości z Delphi ( begin/end, := )

- w warunkach == i = to to samo

- nie można przypisywać wartości do więcej niż jednej zmiennej na raz: a = b = 1

- nie ma operatora trójargumentowego a = (b > 1) ? 2 : 3;

- true to wszystko >= 0.5, a w innych językach true to wszystko != 0

 

I tu mowa o wersji 1.4, bo wcześniej było też chociażby:

 

- brak pomijania kolejnych wyrażeń and/or gdy pierwszy and = false albo pierwszy or = true, co oznacza, ze następne już wartości wyrażenia nie zmienią

- brak ++ i --

Odnośnik do komentarza
Udostępnij na innych stronach

Języki jak C++ są kompilowane, a nie skryptowe (nie mówię o kompilatorze Yoyo) co daje im poważną przewagę szybkości

Właśnie dzięki Runnerowi można było dekompilować gry

Brak otwartego kodu może mieć wpływ na rozwój

Języki jak C++ mają głównie większe możliwości, przez co programista zaimplementuje sobie obsługę wielu rdzeni (czego jeśli się nie mylę - GM ciągle nie obsługuje [ew. może już obsługuje)

- GM (sam w sobie) musi nadrabiać funkcjonalności za pomocą zewnętrznych bibliotek (chyba, że już jest tak zaawansowany, że nie trzeba)

 

No i Yoyogames ssie :D

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...