Od czego zacząc robienie gry?


(baciany) #1

Mam zamiar zrobic Grę komputerowa (karcianke np. poker itp.)

Napiszcie mi w jakim języku najlepiej to zrobic i jak zacząc

Konkretnie chodzi mi o kurs programowania po którym będę w stanie zrobic taką grę.


(Ryan) #2

"Robienie" gry najlepiej zacząć od nauki programowania na czymś nieskomplikowanym. Jeszcze w historii nie zdarzyło się tak, żeby brak wiedzy na jakiś temat doprowadził do ukończenia sporego projektu.

Zanim zaczniesz się zapierać - nawet gra karciana stwarza szereg trudności, których nie będziesz w stanie pokonać bez doświadczenia. Na sieci jest kilka tutoriali z cyklu "jak zrobić grę" (jeden z nich - od zera do gier kodera - polecany był na forum) ale smutna prawda jest taka, że żaden samouczek nie zastąpi godzin spędzonych dobrowolnie przed klawiaturą przy własnym, pchełkowatym kodzie.

Czyli w skrócie - z punktu widzenia kodu powinieneś najpierw napisać wszystko, tylko nie grę. Nabędziesz doświadczenia, napiszesz kółko i krzyżyk, później sapera, wreszcie pokera. Ale to wymaga czasu i poświęcenia.

Ponadto na grę składa się jeszcze kilka pomijanych czynników, jednym z nich jest grafika, kolejnym muzyka, jeszcze jednym design. Nie da się w jednym poście napisać dlaczego te elementy są istotne. Zrozumienie tego także wymaga czasu. :slight_smile:


(baciany) #3

Mam "Od zera do gier kodera" ale na ekranie kompa żle się to czyta - po kilku stronach oczy mnie bolą. Jak jet książka to zmusza do pracy a jak ma sie kurs na kompie to czasem tak korci zeby z ebooka skopiowac kod i wkleic i ze umiemy.

Grafiką, muzyką i stylem to się nie przejmuję. Ważniejsze jest programowanie.

Zresztą karty moge skserowac

Jakią książkę mi polecasz ?? (prócz tego "od zera do ...")??

P.S.

Jeżei bym się starał to gdzieś ile muszę się uczyc zeby zrobic taką gre karcianą chociaż a ile zebym mugł zrobic gre chociaż taką jak GTA 2????


(Dolorismachina) #4

Nie można powiedzieć ile potrzeba. Jednemu wystarczą dwa miesiące, a innemu potrzebne będzie parę lat. GTA2 sam nie stworzysz. Do tego potrzeba całego zespołu.


(Ryan) #5

@baciany: temat "jaka książka" pojawił się na forum już przynajmniej dwa razy - zerknij tam zamiast pytać ponownie. Podstawy są identyczne bez względu na to co chcesz zaprogramować: pralkę, grę czy arkusz kalkulacyjny. Kiedy poznasz podstawy możesz zacząć czytać bardziej ukierunkowane pozycje.

Póki co jednak - szkoda nawet czasu na ich wypisywanie, bo sam jeszcze nie wiesz która część programowania gier (a zapewniam Cię, że nie ma czegoś takiego jak "koder gier" - musisz sobie w pewnym momencie wybrać specjalizację) Cię interesuje. Fizyka? Grafika? AI? Muzyka? Gameplay? Kod sieciowy? Każda z tych specjalności wymaga jednakowych podstaw i pewnej charakterystycznej wiedzy specjalistycznej. Nie ma jednej odpowiedzi na Twoje pytanie i póki nie znasz podstaw dobrej odpowiedzi nie uzyskasz od nikogo.

DMA Design (autorzy GTA2) już na początku lat 90 zatrudniało 10 osób. W 99, kiedy wyszło GTA2, prawdopodobnie nad grą pracowało 20-30 osób. Można swobodnie założyć, że każdy z programistów miał wtedy za sobą od roku do 15 lat doświadczenia w zawodzie (zanim zaczął pracę musiał się kilka lat uczyć). Może to nie odpowiada na Twoje pytanie wprost, ale do stworzenia gry GTA2-podobnej potrzebujesz około pięciu programistów z 3-5-letnim doświadczeniem zawodowym (czyli programujących od 5-10 lat). Pomijam grafików, muzyków, testerów użyteczności i wszystkich tych, o których się zawsze zapomina.


(Dorotajejer) #6

A może są gdzieś w sieci jakieś juz gotowce - gotowe skrypty, której tylko można "troche" przekształcić , dodać coś od siebie i zrobić gre... Osobiście dośyć niedawno temu niałem zajawkę na zrobienie wlasnego MMoRPG ale nigdzie nie znalalzme takich skryptów... a żeby to w C++ napisac to na serio trzeba mieć Niezłe doświadczenie w programowaniu, niezbędna wiedze oraz Baaaardzo dużo czasu -.o :slight_smile:


(Ryan) #7

@yamakuzo: skrypty to nie jest dobre słowo, ale tak, istnieją w sieci darmowe silniki na bazie których można stworzyć grę. Problem polega na tym, że ich jakość (z drobnymi wyjątkami) oscyluje między "bardzo słabe" a "przeciętne" i ich użyteczność jest znikoma. Jak większość otwartych projektów dokumentacja jest na dole listy TODO i czas poświęcony na naukę danego rozwiązania jest spory (należy do tego dodać niezbędną w analizie kodu praktyczną znajomość danego języka programowania).

Poza tym - nie odzukujmy się - jaka jest szansa na to, że jedna osoba stworzy świetny, grywalny produkt? Zerowa. Większość osób po pewnym czasie prób z autorskimi projektami przekonuje się, że w pojedynkę można wyłącznie tworzyć tzw. prototypu - fragmenty większej gry, które mają na celu wyłącznie przetestowanie pewnej koncepcji. A co do samej koncepcji - wymyślenie czegoś wartego prototypu też nie jest rzeczą, którą można wykonać na kolanie. Nie bez przyczyny od wielu już lat programiści nie są designerami (ponownie: z drobnymi wyjątkami). Dziś nie wystarczy, by zielony kwadrat zabijał niebieskie trójkąty. :slight_smile:


(Ryś) #8

http://msdn.microsoft.com/vstudio/expre ... fault.aspx 8)

Pomoże ci to jeżeli umiesz angielski


(baciany) #9

NIE INSTALUJE SIĘ. pisze ze potrzebuje Visual C Exres Edition SP1.

skąd to pobrac??

P.S.

Jak się tym robi gry?? Czy trudno jest. Gdzie znajde do tego jakiś kurs (oprucz google :mrgreen: )


(ERROR22) #10

http://msdn.microsoft.com/vstudio/express/visualc/


(Ryan) #11

Łatwo, jeśli potrafi się programować.

Podkreśliłem Ci warunek, który jest prawdziwy dla każdego środowiska uruchomieniowego. Błagam Cię, zacznij pisanie kodu od czegoś prostego. Przekonasz się, że nawet papier-kamień-nożyczki nie są takie proste jak Ci się zdaje...


(baciany) #12

Ołkej zacznę.

Zamieżam sobię kupic Symfonię C++ (wyczytałem że książka najlepsza)

I zaczynam Od Podstaw. Może pod koniec roku zrobie coś ala Pacman


(Michajls) #13

to jak chcesz pisać kiedyś gry :stuck_out_tongue: to to ci się przyda;] http://www.mentis.pl/2063-wprowadzenie-do-algorytmow no i ucz się matematyki.


(Ryan) #14

Cormen to świetna pozycja, ale algorytmy to tylko jedna część programowania. Z Cormena nie dowiesz się niczego na temat żadnego języka. Bez znajomości (praktycznej) jakiegokolwiek języka można sobie fajnie teoretyzować, ale to w zasadzie wszystko, co można po przeczytaniu tej książki robić. :slight_smile:


(Michajls) #15

a ja myślałem, że algorytmy to podstawa programowania;)

to że najpierw przydałoby się opanować jakiś język, to oczywiste. Cormen nie zamiast, a po Symfonii;)


(baciany) #16

Matmy teoretycznie nie muszę się uczyc bo mam same piątki i czasem szustki (na koniec zawsze 5) Ale na tym się nie kończy, lecz nie wiem po co ta matma.


(mktos) #17

"szóstki" pisze się przez "ó". Nie samą matmą człowiek żyje.

A teraz sytuacja wzięta z "życia", po co jest matematyka w programowaniu:

Programujesz grę, w której znajduje się statek kosmiczny i on ma takie coś jak radar. Masz współrzędne, gdzie znajduje się statek gracza i jaki ma zasięg. I masz współrzędne drugiego statku i chcesz sprawdzić, czy znalazł się on w zasięgu radaru - i jeżeli tak, to pokazać graczowi, że oto wykryto statek wroga na przykład. W jaki sposób to zrobić?

Matematycznie: jak sprawdzić, czy punkt znajduje się wewnątrz kuli o znanym środku i promieniu.


(Ryan) #18

To źle myślałeś. Są takie dziedziny programistyczne, gdzie jedynym stosowanym konstruktem jest maszyna stanów i algorytmów tam zero (np. proste systemy wbudowane). Chyba, że do algorytmu "dodawanie elementu to tablicy" potrzebujesz lektury pokroju Cormena.

O mamo...

Co do matematyki - zależy co zamierzasz robić. Przykładowo przy programowaniu grafiki niezbędna jest algebra liniowa.


(Morfeuszpl) #19

Ludzie przeważnie myślą ,że stworzenie gry to przeczytanie książki i odrazu można zaczynać tworzyć grę jaką się tylko chce. Do tego potrzeba serii książek, no i sporo praktyki. Jeśli mówimy o pisaniu gry od zera to nie polega to na napisaniu PrzesunPostac, Strzel itd. Bo takie rzeczy oferują kreatory które nijak się mają do tworzenia gier. Samo pytanie "w jakim języku najlepiej to zrobic" jest bezsensowne bo język nie ma tu znaczenia. Tu się liczy potencjał programisty danego języka(W każdym języku da się coś fajnego zmajstrować), poza tym tworzenie gry nie jest ustandardyzowane, Trzeba wybrać na jaką grupę systemów operacyjnych tworzymy grę, na jaki sprzęt. Potem przychodzi kwestia wyboru bibliotek potrzebnych do stworzenia gry(Do sterowania kartą dźwiękową, do wyświetlania grafiki, do tworzenia GUI). Do grafiki możemy wykorzystać OpenGL który oferuje większą przenośność, Direct3D czyli windowsowy wynalazek. Do gui można oczywiście wykorzystać WinApi, tylko wątpie by wtedy pisanie gry byłoby taką przyjemnością :). Wszystkie kursy pisania gier są dla mnie troche śmieszne ponieważ w rzeczywistości nie nauczą cię pisać gier, nauczą Cię jak bezmyślnie kopiować kod. Więc najlepiej to....poczytaj o różnych językach programowania, porównaj ich wady i zalety i na przykład krótkie przykłady prostych programów. Wybierz ten który wydaje ci się najprostszy. Poczytaj o nim różne kursy i jeśli poczujesz ,że to jest to, to dopiero wtedy kup dobrą książke. Jak opanujesz dobrze zasady, to napisz jakiś program, potem kolejny coraz większy, rozejrzyj się w poszukiwaniu ciekawych bibliotek, spróbuj ich użyć. Po takim czymś, będziesz wiedział jak się zabrać za napisanie gry. Nie chodzi o to byś uczył się na pamięć np. WinApi. Chodzi o to ,że w razie potrzeby będziesz wiedział czego użyć i jak używać dokumentacji. To będzie najważniejsza umiejętność w pisaniu programów, w tym gier.

Pozdrawiam


(Mr Hektor) #20

MorfeuszPL ma rację, a gry zawsze sie pisze w WinApi (nie mowie tu o smiesznych grach we flashu), a zeby nauczyc sie WinApi (ktory nie jest specjalnie latwy) MUSISZ znac zwykly c++ w stopniu przynajmniej sredniozaawansowanym, ja sam sie tego uczylem, od wyswietlania komunikatow po generator liczb losowych, i polecam ksiazke "C++ bez obaw" ktora mnie wszystkiego nauczyla