Pracuję nad biblioteką, aby pomóc w tworzeniu gier 2D ze Scalą. Jak dotąd jest to zbiór pomocnych klas, ładowanie plików, wykrywanie kolizji, obrazy, duszki itp.
Kiedy przestaje być biblioteką klas i zaczyna być motorem? Gdzie dokładnie leży różnica między użytecznym frameworkiem a silnikiem gry?
terminology
Lanbo
źródło
źródło
Odpowiedzi:
Myślę, że zamieszanie, w które wpadają ludzie, polega na tym, że jedno składa się na ogół z drugiego, więc ludzie naprawdę chcą wiedzieć, kiedy masz wystarczająco dużo jednego, aby być uważanym za drugiego.
Nigdy.
Nie ma żadnego.
Teraz pozwól mi wyjaśnić odpowiedzi. Silnik gry składa się z bibliotek klas. Nie przestają być bibliotekami klas tylko dlatego, że znajdują się w silniku gry. Biblioteka jest użyteczną strukturą do zaspokojenia określonych potrzeb w obrębie silnika gry. Podstawą wymagającą pełnej gry jest silnik gry.
Oto kilka przykładów silników gier:
I kilka przykładów bibliotek
Mam nadzieję że to pomoże
źródło
Naprawdę nie ma konkretnej definicji ani jednego (ani pokrewnego terminu „ramy”, jeśli o to chodzi). Istnieją setki różnych sposobów interpretacji różnych subtelnych różnic w pakietach oprogramowania i przypisywania im klasyfikacji.
Osobiście postrzegam „bibliotekę” jako rzecz, która zapewnia stosunkowo niewielki i ukierunkowany zestaw funkcji, podczas gdy „framework” zapewnia większą lub szerszą funkcjonalność, a „silnik” zapewnia to samo (lub więcej) i zazwyczaj ma zestaw powiązane z nim narzędzia.
Widziałem dość osobistej interpretacji tych samych terminów przez inne osoby, aby czuć się bezpiecznie, co sugeruje, że „silnik” zapewnia większą lub wyższą funkcjonalność niż zwykle „biblioteka” zazwyczaj… ale tam, gdzie wyznaczasz tę granicę dla własnego oprogramowania to zależy od Ciebie.
źródło
To trudne pytanie, ponieważ granica między biblioteką a silnikiem może być czasami bardzo cienka, rozmyta. Muszę powiedzieć, że momentem, w którym biblioteka zamienia się w silnik, jest moment, w którym dostosowuje się on do konkretnej gry lub określonego rodzaju gry.
Na przykład: silnik Unreal (lub Source lub Quake) został zaprojektowany do użytku w grach FPS (można go wykorzystać w innych grach, ale poświęcasz trochę czasu na działanie przeciwko silnikowi). Ogre3d (lub nawet Directx, SDL lub inne popularne biblioteki) można wykorzystać do tworzenia dowolnego rodzaju gier, bez konieczności wyrywania głównych części kodu lub obejścia ich.
źródło