Najkrócej o kółko i krzyżyk


#1

Czy ktoś zastanawial się z Was jak najkrócej opisać taką grę?
Czy moglibyście napisać w jak najbardziej skondensowanej formie jak powiniena wyglądac taka gra? Można to robić w swoim wymyslonym języku , skrypcie.

To mogło by być ciekawym doświadczeniem jak to widzą graficy a jak programiści.
Sam pisałem trochę jezyków, ale mój opis ciągle zajmuje za dużo. Jak zatem wyglądałby idealny opis jakiejś prostej gry?


#2

Kółko i krzyżyk haiku:

Są kółka i krzyżyki
Te w linii wygrywają
Muszą być trzy


#3

@damoch Mile, choć jeszcze jakaś animacja by się przydała.

Ja na razie piszę w mruby bo to proste, jak sie api ustabilizuje moge dorobic lua.
Pytanie jak to rozlozyc. Jak napisac prosto.


#4

Domyślam, że chodzi Ci o tzw. reguły gry.

Celem gry jest ustawienie w linii trzech swoich znaków. Ten, kto to zrobi, wygrywa.
Za linię uznaje się nieprzerwany ciąg trzech znaków poziomy, pionowy lub ukośny.
Znakami jednego gracza są kółka, a drugiego krzyżyki.
Gracze na zmianę stawiają po jednym znaku.
Po zapełnieniu planszy, jeśli żaden gracz nie osiągnął celu, gra kończy się remisem.

Chyba, że chodzi Ci o kod gry xD


#5

:wink: chodziło mi o kod gry. Nie chodzi mi o program do grania (komputer jako przeciwnik) ale opis interface, wygladu itd.

nie chodzi o żaden jezyk programowania, ale opis.
Plansze to bym zrobił tak, albo najlepiej by wszystkie tekstury to były napisy/cyferki/zmienne typu enum itd.
A jak tworzymy sobie plansze to zaleznie od tego jaka mamy rozdzielczosć …

Po prostu jak Waszym zdaniem powinien najprościej wyglądac opis gdy. Formalnie jak taki program powinien wyglądac.

Nie ograniczajcie się do jakiegos języka. Pełna dowolnosc. Może być asci , grafika. Ważne by na podstawie tego czegoś dało się za pomoca jakiegoś programu zrobić grę. Musi to być też w miare ogólne bo ma działać na każdej grze.

Dzis napisanie języka to czasem 3 dni. Ale wymyslenie jak to ma wyglądac nie jest łatwe. Ja swój projekt napisałem szybko, ale stal sie rozwlekly. to prawie 3 strony tekstu. Powoli go zmniejszam i są pewne sukcesy, ale nadal to jeszcze za dużo.


#6

No dobra, więc…

Hola, kolego. Ty chcesz KOD czy OPIS INTERFEJSU?

Pogubiłem się. Chcesz teraz, aby ktoś opisał Ci jak ma wyglądać opis kółka i krzyżyk? Może poczytaj o game design documentach Jak napisać Game Design Document

Eeee… Co? Po co w 2016 pisać KOLEJNY język programowania? Istnieje ich obecnie około pierdyliarda.

O ile wiem, pisałeś w SDL. To pewnie wymagało napisania własnego silnika, a potem dopiero gry. Jeżeli tak, 3 strony tekstu wydaje się być całkiem niezłym wynikiem. Jeżeli następny pomysł na skracanie kodu zawiera nazywanie zmiennych jedną literą, albo pisanie kilku instrukcji w jednej linii - odadzam :slight_smile:

Zastanawiam się, czemu tak uparłeś się na te kółko i krzyżyk - skoro już ukończyłeś tą grę, to może już pora na kolejny projekt?


#7

To może zada to samo pytanie inaczej.

To prawda, że chcę zacząć inny projekt, ale problemy techniczne zastopowaly to wszystko. Na razie walcze z androidem.

Moje pytanie brzmi, jak napisać Menu.
Każda gra ma jakieś. Może być ich kilka poziomów, wybieramy poziomy, plansze jakies ustawienia. Jak Waszym zdaniem trzeba by było opisac te wszystkie menu. Jak najprościej opisac połączenia, wygląd itp.


#8

Na czym polega problem? Powiedz, może pomożemy.

Moim zdaniem niech na początek będzie ono proste.

Podam Ci przykładowo:

MENU GŁÓWNE:

Tytuł gry

  1. Start [odpala grę]
  2. Wyjdź [wychodzi do OS]

MENU W GRZE [po wciśnięciu ESC gra się zatrzymuje i wyświetla komunikat]

Czy chcesz wyjść z gry

  1. Tak [wychodzi do OS]
  2. Nie [zamyka menu, wznawia grę]

Mam nadzieję że o to chodziło. Trudno powiedzieć nie wiedząc jak wygląda gra.


#9

Tak to wlasnie mialem na mysli.

Ale niestety nie da sie tego przelozyc na program.
Menu glowne = co to jest? opis sceny, czy przycisku?

  1. start (rozumiem, ze 1. to klawisz? a jesli nie klawisz to jakie sa koordynaty przycisku? Jak rozumiem nie ma on tekstury a jak by mial to jak by wygladal opis? to jedna tekstura czy moze zlozenie?
    np. mamy 4 rogi do tego ramki, ktore powtarzamy
    Nie wszedzie jest ESC

nie opisales planszy, np. u gory ilosc punktow, albo zegar (jak wyglada , z czego sie sklada itp)
itd. jest tego troche. Nie chce tworzyc jezyka ogolnego przeznaczenia, ale jezyk opisu gui,design gry jak najbardziej. Oczywiście coś tam sobie napisałe, ale może ktoś ma jakiś lepszy, krótszy opis?


#10

@mikolaj tylko to, o co prosisz, to są już na tyle “zaawansowane” rzeczy, że nikt CI nie powie…
No, koordynaty przycisku. X,Y - masz.

Patrząc na ten post coraz bardziej mam wrażenie, że karmimy trolla :V


#11

@Cadogan Dlaczego zaawansowane?
Jak bys to opisal. I pytanie brzmi jak bys to opisal najkrocej, aby wciaz bylo czytelne.
Co w tym takiego zaawansowanego?

Chyba, ze bedac na grupie tworcow gier nikt nie wie jak zrobic przycisk. To raczej Twoja wypowiedz zakrawa na defetyzm i trolowanie o jakis super skomplikowanych opisach designu przycisku :wink:


#12

Napisałem “zaawansowane”, nie dlatego, że jest to technicznie zaawansowana rzecz, tylko dlatego, że tak daleko zachodzi w szczegóły techniczne projektu, że nie da się opisać go dokładnie na poziomie abstrakcji, na którym jesteśmy.

Przycisk to przycisk, na ch*j drążyć temat. Ma jakąś teksturę,w większości przypadków nieskomplikowany efekt wizualny/dźwiękowy, może napis i po jego wciśnięciu coś się dzieje.

Jak chcesz mieć dokładny opis, to weź jakiekolwiek narzędzie projektowe albo nawet GIMPa/Corela i zrób sobie projekt albo najlepiej wywal SDLa, przejdź na np. Unity, Cococos2D/CocoSharp czy jakikolwiek inny tego typu silnik w którym takie elementarne rzeczy jak przycisk (oczywiście mówię tu o przycisku w UI, a nie o przycisku w lokacji :P) masz już zaimplementowane, jedyne co musisz zrobić to wstawić jego teksturę i go oskryptować i ,bez obrazy, nie będziesz zadawał głupich pytań, bo chyba nie oczekujesz, że zaraz dostaniesz kloc kodu do interfejsu :stuck_out_tongue:


#13

Teraz ja nie rozumiem.

@Cadogan Ale może zaproponuj jakiś przykład, albo powiedz jak to jest w unity jeśli lepiej się czujesz.

Pisze, że to już jest, a ja śmiem wątpić. Zazwyczaj API jest rozwlekłe i wiekszość rzeczy i tak nie jest opisana, albo domyslnie jest wyliczana i jak chcesz troche inaczej to masz problem. Przycisk jest rozny, moze miec teksture, ale nie musi, moze sie porszac , ale ne musi itd.

powiedzmy tak:

p1=przycisk(“tekstura1”,x,y,w,h,animacja,kiedy)
animacja to informacja gdzie sa klatki animacji, jaki jest czas,
kiedy to kiedy sie pojawia przycisk i kiedy mozna dopiero w niego kliknac.

zauważ że to jedna linijka i o zadnej twojej ‘zaawansowanej’ technice nie moze byc mowy. Moze ktos zaproponuje opis tekstowy jak wyzej, moze ktos graficzny edytor, moze ktos jeszcze jakos inaczej. Moze zamiast marudzic zastanow sie czy to mialo by sens.

Istnieje Tiled narzedzie do robienia plansz, powoli rozrasta sie a opis jest tekstowy. Moze powstanie kiedys edytor do plansz i scen, menu. Kto wie?


#14

Generalnie w takim Unity wstawiasz przycisk z poziomu interfejsu graficznego i w samym kodzie już tego nie ruszasz, chyba, że potrzebujesz coś z nim zrobić podczas działania aplikacji.

Może jestem ograniczony umysłowo, ale nie widzę potrzeby tekstowego opisywania interfejsu, za wyjątkiem dokumentacji projektu, gdzie takie rzeczy, jak położenie przycisku, w samym tekście jest zbędne…


#15

To narysuj jak wstawiasz i co tam mozesz zmienic a co nie i jak to zrobic najprosciej a jednoczesnie aby sie dalo uzyc w roznych elementach gry. To jest pytanie i jak widze dla niektorych wyzwanie.


#16

Tylko powiedz mi jedną rzecz. Po co…
To jest pytanie strasznie ogólne, nawet bez skonkretyzowania narzędzia i technologii.
To tak jakbym chciał opisu jak dokładnie zrobić coś na procesorze bez wiedzy o tym co to za procesor, jaki ma zestaw instrukcji itd…


#17

@Cadogan Bo to jest powtarzalna rzecz przy tworzeniu gier. A zestaw instrukcji to slaby przyklad. Tu masz zestaw. Kazda biblioteka ma wyswietl obrazek, postaw kropke, narysuj linie. Coś Ci wiecej trzeba? Na siłę chcesz znaleźć problemy bo Ci sie nie podoba. Ale Twoje marudzenia sa zupełnie z sufitu. Napisz cokolwiek bo na razie zrzędzisz jak stara baba, że się nie da bo tak. Nie podałeś żadnego przykładu.


#18

Dobra masz kod w języku whitespace, podrzucam Ci od razu kompilator tego dla platformy .NET (http://spacesharp.batard.info/)
Kod zawiera się między klamrami, każda linijka zawiera slash, który musisz sobie wywalić, bo tutaj nie przejdzie :confused:
{
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
}


#19

@mikolaj masz też w asemblerze (x64)
extern MessageBoxA : PROC
extern ExitProcess : PROC
public main

.data
napis1 db ‘Przycisk’, 0
napis2 db ‘Masz ten swoj przycisk :P’, 0

.code
main:
sub rsp, 40
mov rcx, 0
mov rdx, OFFSET napis2
mov r8, OFFSET napis1
mov r9, 0
call MessageBoxA
call ExitProcess
mov ecx, eax
END


#20

Masz w JSFucku

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]()