W mojej szkole kieruję klubem zajmującym się tworzeniem gier. Chciałbym pracować nad projektem tego lata, który mógłbym wykorzystać jako samouczek w następnym semestrze. Nigdy nie robiłem czegoś takiego, więc zastanawiałem się, czy ktoś ma jakieś wskazówki lub pomysły.
Zasadniczo chcę zrobić bardzo prostą grę. Coś jak strzelanka z góry, w której wbiegają wrogowie, aby ich zabić i zebrać trochę łupów. Chcę jednak, aby wszystko było bardzo łatwo modyfikować. Ludzie w klubie mają niewielkie doświadczenie w tworzeniu gier, więc gdybym mógł skonfigurować moją grę w taki sposób, aby ludzie mogli ją łatwo modyfikować i dodawać funkcje, byłoby to dla nich świetne.
Rzeczy takie jak posiadanie klasy wroga, w której zachowanie jest łatwe do grania, lub zmuszanie broni do strzelania w inny sposób / dodawanie nowych broni i nowych łupów. Nawet dodając nowe elementy do gry. Jaki byłby najlepszy sposób na zbudowanie gry, aby umożliwić tego rodzaju plastyczność?
źródło
Odpowiedzi:
Tradycyjnym sposobem osiągnięcia tego celu w rozwoju gier jest zastosowanie architektury opartej na danych w systemach gier.
Zasadniczo oznacza to, że kod nie implementuje określonego rodzaju broni (pistoletu) z wyraźnie określonymi wartościami dla zasięgu / obrażeń / penetracji, a raczej wypełnia ogólne pojęcia broni dystansowej (zasięg / obrażenia / penetracja ...) z zewnętrznego źródła danych (do kodu). To zewnętrzne źródło może się różnić od parsowalnych (być może XML) plików wczytywanych z dysku, do plików binarnych lub elementów bazy danych generowanych za pomocą narzędzi wewnętrznych lub zewnętrznych dla samego silnika gry.
Definiując coś w rodzaju wroga, system sztucznej inteligencji może być zaprojektowany do obsługi pewnej liczby ogólnych zachowań (agresywnych, defensywnych, wsparcia, tchórzów), które są następnie modyfikowane przez elementy oparte na danych.
Mój nowy wróg zaczyna się od agresywnego podstawowego zachowania AI z wartościami opartymi na danych dla: -ignore graczy> mój poziom + X -przekaż graczy do X jednostek poza punktem odrodzenia -flee, gdy zdrowie <X-ustalone priorytety zdolności - priorytety umiejętności walki (gdy gracze zbliżają się zbyt blisko)
Bardziej skomplikowany schemat sterowany danymi może pozwolić na zdefiniowanie określonych punktów danych (zdarzeń), w których stan AI przechodzi (maszyna stanów skończonych) do innego stanu (lub nawet szansę przejścia do jednego z N innych stanów), umożliwiając użytkownikom zdefiniowanie skomplikowana hierarchia zachowań.
Wszystko to oczywiście wymaga więcej pracy niż tylko jawnego kodowania zachowania, ale jest to zabawne wyzwanie, aby umożliwić użytkownikom tworzenie treści bez modyfikacji źródła.
Do zdobycia są punkty bonusowe:
W przypadku gry instruktażowej skierowanej do bardziej technicznego tłumu większość pracy polega na zaprojektowaniu klas / obiektów, które udostępniają użytkownikom czyste interfejsy, które z kolei mogą być oparte na danych.
źródło
Jeśli szukasz kilku pomysłów na rozpoczęcie projektu i budowania go krok po kroku, aby można go było przekształcić w samouczek, zapoznaj się z XNA Game Programming Adventures . Autor ma skonfigurowanych kilka samouczków, wraz z objaśnieniami i kodem źródłowym, które są zwiększane krok po kroku.
źródło
Proponuję zajrzeć do samouczka Java Game Development na stronie www.thenewboston.com
Być może nie jest to dokładnie to, czego szukasz pod względem kolesi z bronią i całym tym jazzem, ale daje to miły krok po kroku podział wielu kluczowych czynników w rozwoju gry. Prezenter „Bucky” ma również wyluzowany styl nauczania dla zabawy. Cieszyć się.
źródło