Chcę stworzyć grę w Javie i chciałbym, aby działała na systemach Windows, Linux i Mac. Jestem prawie pewien, że C # jest złym wyborem do tego i nie mam wystarczającego doświadczenia w C lub C ++. Chcę trzymać się z dala od Flasha. Czy zatem Java jest dla mnie dobrym wyborem? Najczęściej używam C # i myślę, że Java jest podobna, więc zakładam, że nie będzie tak trudno się nauczyć. Ale czy jest wystarczająco szybki? Czy istnieje język bardziej odpowiedni dla moich potrzeb niż Java?
java
game-development
cross-platform
CommunistPancake
źródło
źródło
Odpowiedzi:
Java jest wyjątkowo odpowiednia do pisania gier na wiele platform. Główne zalety:
Główną decyzją, którą musisz podjąć, jest to, jakiego środowiska GUI będziesz używać. Istnieje kilka różnych opcji, ale najważniejsze z nich to:
Główne wady Java dla gier są naprawdę związane z „przypadkowymi przypadkami”, które prawdopodobnie nie wpłyną na ciebie, ale są istotne dla niektórych klas gier:
Pamiętaj, że istnieje również kilka opcji wdrażania do rozważenia:
Na koniec warto również rozważyć niektóre inne języki JVM - mają one wszystkie zalety platformy Java wymienione powyżej, ale niektórzy uważają je za lepsze języki niż sama Java. Scala, Clojure i Groovy byłyby najwybitniejszymi i wszyscy mogą korzystać z wymienionych powyżej narzędzi i bibliotek Java.
źródło
Minecraft i bloki, które są ważne, są wbudowane w Javę, więc tak, jest to dobre do tworzenia gier. Głównym problemem, na który natkniesz się podczas korzystania z Java, jest portowanie na platformy mobilne, jeśli wybierzesz tę trasę i napiszesz natywną aplikację. Android jest rodzajem frankensteined Java SE z osobną biblioteką. RIM Blackberry używa Java ME. iOS teoretycznie można programować w Javie, chociaż Objective-C prawdopodobnie byłby lepszym wyborem dla tej platformy.
Java jest dość podobna do C #. Często uważam, że kod C # jest zrozumiały, mimo że znam tylko Javę. Mają inną filozofię projektowania, ale o ile są szeroko stosowane przy minimalnym wysiłku, oba są odpowiednie. C # nie jest strasznym wyborem dla gier pod żadnym względem, chociaż wdrożenie mobilne będzie trudniejsze, a wdrożenie na platformach innych niż Windows będzie bardziej czasochłonne lub trudne, w zależności od konkretnych bibliotek zewnętrznych i tak dalej.
źródło
Najbardziej oczywistym i najmniej odpornym sposobem jest użycie kombinacji javascript HTML5 +. Każda aplikacja lub gra wykonana przy użyciu tego będzie działać na prawie każdym urządzeniu i przeglądarce.
Zaleta : - Do uruchomienia gry na różnych platformach i urządzeniach będziesz potrzebować zerowej konfiguracji.
UWAGA: - Widziałem kilka gier, które są budowane przy użyciu wyżej wymienionych technologii, ale były mniejsze. Ale przypuszczam, że jeśli można zrobić masło z mleka, ser nie jest niemożliwy
źródło
Możesz używać Scala i Scheme Bigloo na Eclipse, aby używać JVM do kodowania stresowego lub akcji równoległej w swojej grze Java.
Dzięki Pattern Design i UML2 możesz także zabezpieczyć kod za pomocą OCL, wszystko w Topcased.org.
Opanowanie tych narzędzi wymaga czasu, ale stanowią one tło Java, podstawę, która popchnie Cię na szczyt.
źródło
Krótka odpowiedź: nie.
Java nie generuje binarnego pliku wykonywalnego, ale tylko kod bajtowy, tak jak robi to C # (CLI), i to nie jest dobra rzecz dla poważnego biznesu w „otwartych środowiskach” z dwóch głównych powodów:
Oczywiście każdy język ma swoje własne biblioteki, ale ze względu na ich dużą liczbę dla każdego języka nie jest to prawdziwy problem i nie wydaje mi się, że jest to cel tego tematu.
Być może na poziomie profesjonalnym możesz znaleźć coś, co może złamać regułę, np. Dev-Kit, który może przetłumaczyć wszystkie instrukcje C # na kod asemblera dla maszyny z prawdziwego świata, ale jeśli tego rodzaju podejście nie znajduje się w kartach, jesteś zmuszony do tego weź pod uwagę tylko C i C ++ dla swojego rozwoju, gdy zamierzasz sprzedawać swój produkt w otwartym środowisku.
Rzeczy są nieco inne dla urządzeń mobilnych, ponieważ są one „zamkniętym środowiskiem”, nawet Android jest praktycznie zamknięty, biorąc pod uwagę fakt, że źródło ROM-ów w prawdziwym świecie nie jest zwykle publicznie dostępne, Android można uznać za open source, ale 99 % pamięci ROM na rzeczywistych urządzeniach nie jest. W takich przypadkach nie można za bardzo się kłócić, wszystko jest już ustawione dla ciebie, a każda platforma ma swój własny język, jak wszyscy wiedzą.
Ostatecznie, jeśli zamierzasz sprzedawać te produkty w otwartych środowiskach, mogę jedynie sugerować języki, które mogą tworzyć skompilowany kod binarny / asemblacyjny, w zamkniętych środowiskach decyzja jest zazwyczaj łatwiejsza z różnych powodów.
źródło