GameJam/Compo 4P - pomysł i ankieta

1

Hej, myślę, że skoro jest tu dział gamedev, to może byśmy mogli zrobić gamejam?
Tym bardziej że to forum programistów, i nawet bez zmiany technologii część osób mogłaby tworzyć tekstowe w przeglądarce, winforms czy konsoli.
Chciałbym wybadać ile osób potencjalnie byłoby zainteresowanych.

Czym jest jam:
Zawody/konkurs w tworzeniu gier. Zbierają się chętni i przez określony czas tworzą.
Czasem jest też motyw przewodni (np. "gra musi być sterowana tylko jednym przyciskiem",
lub "musi zawierać rycerzy")

Poniżej propo jak mogłoby to +- wyglądać, ale wiadomo, dawajcie swoje uwagi/sugestie

Czas:
sugeruję na początek szybki, weekendowy, 48 godzinny jam.
np. od jakiegoś piątku ~19/20, do niedzieli tej samej godziny

Temat:
tu zgrzyt bo ktoś musiałby wylosować i dać znać, najbardziej fair: osoba, która nie będzie brała udziału. Jest sporo gotowych generatorów do tematu jama.
(sam chciałbym wziąć udział, więc w miarę możliwości nie pisałbym się na osobę losującą)

Zespoły:
w ramach uproszczenia wykluczyłbym teraz zespoły

Assety i silniki:
Wszystko co spełnia warunki licencji. Narysuj sam, zakodź sam, weź obrazki z internetu public domain, jeśli nie czujesz się na siłach rysować, a wiesz, że kod pójdzie Ci lepiej. Tylko napisz które elementy są Twoje a które nie.

Wrzucanie prac i głosowanie:
Na hosting własny lub jakiś darmowy, tak, żeby inni uczestnicy mogli pograć/obadać.
Data i godzina wrzucania powinna być nieprzekraczalna, należy uwzględnić wcześniej ewentualne problemy i nie wrzucać na ostatnią chwilę. W praktyce często zalicza się prace kilka minut po czasie, ale jako że może nie być osoby decyzyjnej/prowadzącej, to moglibyśmy uznać że jest ostateczny i koniec.
Każda osoba biorąca udział, która wrzuciła projekt, może oddać 3 głosy:
3 punkty
2 punkty
1 punkt
każdy głos na inny projekt, ale nie na swój.

6
Boski napisał(a):

Czas:
sugeruję na początek szybki, weekendowy, 48 godzinny jam.

Trochę krótko...
Proponuję 2-letni, to może @furious programming się wyrobi ze swoim silnikiem i zrobi w nim grę :]

0

Co rok w styczniu jest Global Game Jam. Proponuję się podłączyć, chociaż nie wiem czy już nie za późno na zgłoszenie.

Fajnie jakby była jakaś konkretna miejscówka wynajęta, np. szkoła gdzie wszyscy klepią na jednej sali.

3

Kiedyś myślałem nad czymś podobnym, czyli nad pojedynkiem w ramach społeczności 4programmers. Jednak nie chodziło tutaj o game jam, czyli o robienie prostych gierek w krótkim czasie, a o stworzenie jednej gry, do której każdy mógłby podłączyć swój plugin i grać za pomocą napisanego przez siebie AI.


Weźmy dla przykładu taką grę jak Micro Machines na SNES — prosta gierka, prosty gameplay. Tworzy się podobną grę, implementuje mapę, pojazdy, system fizyki, liczenia okrążeń itd. Ale zamiast dodawać opcję sterowania za pomocą urządzeń wejścia, tworzy się interfejs obsługujący logikę sterowania z poziomu biblioteki DLL. Jeśli ktoś chce się przyłączyć do zabawy, to tworzy własną bibliotekę i implementuje zestaw funkcji do sterowania pojazdem (swoje AI). Te funkcje są wywoływane po stronie gry w każdej klatce, gra przekazuje im informacje na temat pojazdu oraz wycinka mapy — niewielkiego, tylko najbliższe otoczenie pojazdu. Mowa tutaj o kształcie terenu, znacznikach określających w którą stronę pojazd ma jechać, pobliskich pojazdach innych graczy (i ich parametrów, takich jak wektor ruchu oraz prędkość) itd.

Czyli w skrócie — gra jest jedna, każdy może sobie pobrać exe. Zadaniem gracza (czyli programisty) jest napisać bibliotekę-plugin, która implementowała by AI pojazdu i umożliwiała jak najlepsze śmiganie po dowolnej trasie, zważając na kształt terenu oraz na przeciwników. Każdy gracz tworzy swoją bibliotekę i rywalizuje z innymi graczami. Cały czas ma do dyspozycji grę, więc może sprawdzać efekty działania swojego AI. Trasy mogą być tworzone za pomocą jakiegoś prostego edytora, w znanym i prostym formacie, tak aby pisanie AI było w miarę proste (czyli aby każdy mógł spróbować swoich sił, bez względu na swój skill).

Co do właściwej gry — np. raz na tydzień (w weekend) każdy z graczy przysyłałby do użytkownika-hosta swoją bibliotekę i ten użytkownik odpalałby właściwy wyścig. Gra korzystałaby ze swojego silnika oraz z bibliotek DLL graczy do przeprowadzenia symulacji na żywo. Całość byłaby nagrywana np. za pomocą OBS i streamowana do sieci (YouTube, Twitch itp.), aby każdy gracz mógł podziwiać swój kod w akcji.

Zadaniem operatora gry (ligii) byłoby nie tylko odpalanie relacji na żywo i tworzenie/publikowanie powtórki wyścigu, ale także tworzenie tras dla każdego wyścigu. Chodzi o to, aby gracze nie wiedzieli jak będzie wyglądać trasa, a więc aby nie pisali kodu specjalnie dla niej. Kod graczy powinien być uniwersalny, dla dowolnej trasy.


DLL są uniwersalne, można je tworzyć w dowolnym jezyku, więc każdy kto używa technologii, w której można te biblioteki tworzyć, mógłby wziąć udział w zabawie. Jednak tutaj problemem może być bezpieczeństwo (w końcu do DLL można wsadzić dowolny kod, w tym szkodliwy), wiec zamiast bibliotek można by wykorzystać system skryptów — np. Lua, bo to prosty, przyjemny i funkcjonalny język. Chodzi o to, aby gracz nie mógł zaszkodzić ani silnikowi, ani nie miał możliwości narobić szkód w systemie użytkownika-operatora. Dlatego skrypty byłyby lepsze niż DLL, ale implementacja ich interpretera w silniku wymagałyby dużo więcej pracy.

Aby stream wyglądał ciekawie, trzeba by napisać grę w taki sposób, aby pozwalała operatorowi przykuć kamerę do dowolnego gracza lub do dowolnego miejsca na trasie — jak np. w relacji F1, w której chwilę pokazuje się czołówkę, potem np. jakiś konkretny zakręt, potem pojedynek na dalszych miejscach w stawce itd. Czyli aby relacja wyglądała ciekawie. Silnik mógłby sam automatycznie co jakiś czas pokazywać różne miejsca trasy i miejsca w stawce, tak aby relacja była ciekawa i dobrze się ją oglądało (plus komentarz ze strony operatora).

Silnik powinien też zapisywać przebieg wyścigu do pliku, tak aby każdy mógł sobie go pobrać już po relacji i odtworzyć wyścig u siebie, w silniku gry. W ten sposób można by było sprawdzać jak wypadło własne AI (oraz innych graczy), co AI zrobiło słabo lub źle, szukać słabych punktów i poprawiać swój kod. Powtórka powinna dać się dowolnie przewijać, zatrzymywać itd., czyli aby można było szybko i wygodnie sprawdzać jak wypadło AI w wyścigu.


Coś takiego byłoby świetną zabawą, nie wymagającą zbyt wiele pracy. Głowną zaletą byłoby to, że to nie gracze grają, a ich kod — czegoś takiego jeszcze nie widziałem. Klon Micro Machines to tylko przykład, bo tam niewiele jest do roboty — tylko się porusza pojazdem po trasach, uważając na innych graczy.

Urozmaiceniem dla koderów mogła by być mechanika gry nieco bardziej skomplikowana, np. coś jak stary dobry Re-Volt — nie tylko jeżdżenie po fikuśnych trasach, ale też łapanie ”błyskawic” i używanie broni. Znów w formie prostej gry 2D w pixelarcie, z widokiem od góry. Tyle że gracz miałby szersze pole manewru i nieco więcej kodu do naklepania, a więc nieco więcej zabawy, pomysłów, algorytmów, strategii itd.

0

Okej, ankieta była ustawiona na tydzień.
Generalnie przy takim zainteresowaniu nie ma to sensu
(tym bardziej, że nie każdy dowiezie ani wyśle).

@Spine: z długimi jamami jest ten problem, że 90% uczestników zapomni całkowicie, a 10% zrobi coś dopiero w ostatni weekend

@piotrevic: ciężko zebrać ludzi z całej pl w jedno miejsce, liczyłem, że zdalnie będzie to bardziej przystępne.ale wiadomo, wspólne jamy w rzeczywistości są lepsze (piwerko, pizza, ..)

@furious programming: no ciekawy pomysł

1 użytkowników online, w tym zalogowanych: 0, gości: 1