Krótki ściągawki do oceny bibliotek, frameworków, silników i zestawów SDK oraz wybierania najlepszych
- Biblioteki, frameworki, zestawy SDK silników itp. Są narzędziami, które służą do rozwiązywania problemów lub pomagają w rozwiązywaniu problemów i spełniają określone wymagania.
- Ocena oznacza ustalenie, który z nich spełnia najwięcej wymagań.
Dlatego zanim jeszcze zaczniesz oceniać, musisz jasno określić, w jakim scenariuszu jesteś i jakie masz wymagania, ponieważ na te pytania powinna odpowiedzieć ocena.
Scenariusz określa, skąd pochodzą wymagania (kto decyduje, co jest wymaganiem, a co nie).
Typowe scenariusze to:
Najobszerniejszy scenariusz projektu
Ty sam lub wraz z przyjaciółmi chcesz stworzyć swoją (być może pierwszą) grę. Idealnie, możesz sam decydować o wszystkim i jesteś ograniczony tylko do podstawowych specyfikacji technicznych i wymagań technicznych (czy powinna to być gra mobilna, gra na PC, konsola, gra internetowa ...). Możesz zdecydować, co chcesz.
Domniemane wymagania będą polegać na tym, że możesz chcieć nauczyć się czegoś konkretnego (języka, konkretnego frameworka / silnika)
Scenariusz studencki
Wymagania mogą pochodzić od nauczyciela. Typowe wymagania, jakie miałem w tym przypadku: gra musi mieć pewne elementy fizyki i wsparcie sieci dla wielu graczy. Lub musi być napisany w C ++. Tak więc ocena staje się łatwa. Szukasz silnika gry, który pozwala kodować w c ++ i może już zawierać silnik sieciowy i fizyki.
Bardziej zły (rzeczywisty) wymóg: wszystko musi być napisane od zera (ale korzystanie z bibliotek jest dozwolone). Dlatego edytor nie jest dozwolony (np. Unity3D). Więc nie szukasz silników / sdks, ale bibliotek.
Scenariusz gry niezależnej
Chcesz później zarabiać na grze. Dlatego musisz ją jakoś sprzedać, co spowoduje sprawdzenie, które wymagania pochodzą ze sklepu, w którym chcesz sprzedać swoją grę.
Czy pozwala na gry Java, gry HTML5, ...)
Czy wymaga to dołączenia określonych bibliotek (jeśli tak, w jakich językach są dostępne te biblioteki)
Google Playstore wymaga napisania gry jako gry na Androida, Apple AppStore wymaga napisania gry jako aplikacji na iOS. Lub musisz wybrać silnik wieloplatformowy.
Profesjonalny scenariusz
Masz nie tylko sklep z wymaganiami, ale najprawdopodobniej wydawca lub klient mają własne wyobrażenia o wymaganiach. W tym scenariuszu będziesz miał także większy zespół zatrudnionych programistów. W zależności od zestawu umiejętności pojawiają się nowe wymagania (nasi programiści mogą pisać tylko c ++, więc nie możemy używać czystego silnika gry Java / Android bez potrzeby (dużo) czasu na naukę czegoś nowego).
Nie wchodzę w szczegóły tego scenariusza, kiedy udało ci się zbudować zespół pracowników i znaleźć klienta / wydawcę, którego już wiesz, czego szukasz w ocenie rzeczy.
Jak zdecydować, jakie są moje wymagania, kiedy jestem hobbystą lub indi i nikt mi nie mówi?
Zadajesz sobie pytania na temat swoich celów i gry?
Jaka powinna być moja gra? mobilne, pc, web (html / Js), których kontrolerów będę używać (ekran dotykowy, żyroskop, pad do gier)
Co nowego w mojej grze i co mają też inne gry. Te części, które mają także inne gry (renderowanie, audio, obsługa danych wejściowych), będą wykonywane przez większość narzędzi (silników gier), jakie można znaleźć, lub łatwo jest spakować biblioteki posiadające tę funkcjonalność we własnej grze lub silniku gry.
Jaki jest wymiar mojego projektu: wściekłe ptaki lub skyrim? Angry Birds można wykonać w prawie każdym narzędziu, a skyrim byłby ograniczony do narzędzi o wysokiej wydajności z (zakładanymi) latami dodatkowej personalizacji (wysokowydajne silniki terenowe nie są łatwe)
Czy moim jedynym celem jest zrobienie gry? tak? idealnie, możesz użyć bardzo zaawansowanych rzeczy, takich jak Unity, Unreal, ... posiadających poręczny edytor i dużą społeczność zapewniającą samouczki i odpowiadającą na pytania. Odciąża cię to od obsługi zadań niskiego poziomu, takich jak ładowanie siatki, wdrażanie własnych funkcji matematycznych ...
Czy moim celem jest nauczenie się czegoś konkretnego? tak? czego chcesz się nauczyć?
Który język powinienem wybrać? Jeśli celem jest nadal wykonanie gry, wybierz tę, którą Twój zespół zna najlepiej? Jeśli chcesz nauczyć się określonego języka, wybierzesz narzędzie w tym języku.
Czy narzędzie X będzie miało wystarczającą wydajność dla mojej gry? Może nigdy się nie dowiesz. Nawet w dużych produkcjach faza optymalizacji i polerowania zajmuje dużo czasu i jest ogromnym wyzwaniem. Zacznij dbać o wydajność, gdy napotkasz problemy z wydajnością. Nie wiesz, jak będzie działać narzędzie, dopóki nie osiągniesz swoich limitów. Wszystko na stronie dewelopera narzędzi to tylko przybliżone przypuszczenie. Po latach oceny narzędzi przestałem wierzyć w cokolwiek ze strony programistów.
Odpowiedzi na takie pytania prowadzą do wymagań. Ocena polega na znalezieniu listy narzędzi i TESTOWANIU (nie tylko czytaniu strony głównej) tego, co narzędzie może dostarczyć, a czego nie.
Wymagania nie są cięte w kamień, ale są dynamiczne. Przyjdą i odejdą podczas rozwoju. Na przykład, czy gra wymaga fizyki, zależy od projektu. Jeśli projekt się zmieni, wymaganie może się również zmienić.
Podejmij wymagania i zacznij. Zmieniającymi się wymaganiami są chleb powszedni cierpienia, ahm, zadowoleni deweloperzy niezależni od wielkości projektu i poziomu doświadczenia.