Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C++ a tworzenie gier.


Rekomendowane odpowiedzi

Opublikowano

Cześć wszystkim.

Rozpocząłem naukę programowania w języku C++ no i powolutku idę do przodu. Z każdą chwilą mam co raz to więcej pytań, dlatego też postanowiłem je tutaj zadać. Zapewne znajdą się tacy którzy albo powiedzą że były już takie tematy, albo że dopiero podstawy poznaje a już gry chce robić - za taką pomoc to ja z góry dziękuję :P

Oto te pytania:

1. Czy C++ to dobry wybór?

2. Aktualnie korzystam z poradników, lekcji, zamieszczonych na kanale (yt) Pasja Informatyki, jednakże zdaje sobie sprawę, że wszystkiego tam nie ma, ba a może nawet i połowy, dlatego też chciałbym prosić o polecenie jakieś opłacalnej, wartej uwagi książki.

3. Dajmy że już poznam i opanuje podstawy C++, co dalej? Co to jest (wiem tyle że coś z grafiką :p ) DirectX, OGL czy direct3d i z czym to się je? Trzeba ich się uczyć tak jak C++?

4. Z czego składa się silnik gier? Lepiej stworzyć własny czy wybrać jakiś z dostępnych? Jak go stworzyć?

5. Jak się tworzy grę?: pisze coś w C++ i łączy z np powyższym OGL? (nie chodzi mi o grę konsolowa)

No i chyba to tyle. Mam nadzieję że mnie zrozumiecie i potraktujecie poważnie, ponieważ chciałbym się w tym kierunku rozwijać i zgłębić w te tematy.

Pozdrawiam serdecznie. :)

 

Wysłane z mojego D5503 przy użyciu Tapatalka

 

Opublikowano

1. Mnie się wydaje dobrym, ale jeśli chciałbyś robić konkretnie aplikacje na urządzenia mobilne, to dobrym wyborem byłaby też Java

2. " jednakże zdaje sobie sprawę, że wszystkiego tam nie ma, ba a może nawet i połowy, " nie może, tylko na pewno ;-;. C++ jest obszerny jak cholera xD,

Osobiście nie polecam za bardzo Pasji Informatyki - uczyłem się stamtąd, uważnie oglądnąłem i przeanalizowałem filmy, a mimo wszystko, nie za dużo umiałem obiektówki. Praktycznie nic, prócz teoretycznej wiedzy, co to klasa. Zacząłem czytać niedawno Symfonię C++ (w wydaniu, które mam, jest kilka rzeczy, które nie działają w obecnym standardzie C++, ale są to praktycznie tylko: zmienić "main()" na "int main()" i, jeśli rzecz jasna chcesz, dodać u góry "using namespace std;", więc się tym nie przejmuj) i zauważyłem, że pan Zelent mnóstwo rzeczy pominął. Ogólnie, im młodsze jego filmy, tym gorzej (jak dla mnie) tłumaczone. Tak więc, tutaj wypiszę to, co mogę Ci polecić:

 

Strony WWW:

 

- cpp0x.pl - najlepsza dokumentacja w polskim, a może i europejskim internecie, można także znaleźć tam kurs dla początujących

- msdn.microsoft.com - tutaj, jako tako, nie nauczysz się programować, ale z pewnością przyjdzie Ci się zmierzyć z biblioteką windows.h (WinAPI), która jest bardzo przydatna, zwłaszcza w konsoli, a jako, że jest to biblioteka od Microsoft'u, to na jego stronie znajdują się dokładne opisy wszelkich funkcji itp. Sam niezwykle często używam, aby móc ulepszać mój język, Caracal'a :)

http://www.cs.put.poznan.pl/arybarczyk/Kurs%20C++.pdf - tutaj masz kurs specjalnie do tworzenia gier w C++ (autor opisuje tutaj ogólnie programowanie, bo w końcu tworzenie gier też jest częścią programowania), który możesz śmiało uznać za pierwsze źródło wiedzy na początek. Osobiście, nie przeczytałem go w całości, ale z tego, co udało mi się przeczytać, przypuszczam, że pan Kuczmarski znakomicie wszystko wytłumaczył :>

 

Książki: (Możesz bardzo tanio kupić je pod koniec roku, ponieważ studenci informatyki kończą naukę, toteż sprzedają niepotrzebne im już materiały - a co niepotrzebne, to i nie takie drogie)

 

- Symfonia C++ pana Grębosza - najnowsze wydanie ma chyba 2 tomy, to, które mam ja, składa się z trzech tomów. Na mój gust najlepszy początek.

- Pasja C++ pana Grębosza - nie bierz tej książki na początek, najlepiej, po przeczytaniu wszelkich tomów Symfonii

- Języki C i C++ TWÓJ PIERWSZY PROGRAM - nie czytałem tej książki, aczkolwiek moja ciocia na studiach właśnie z niej się uczyła. Może być przestarzała względem standardu, więc bardziej polecam Symfonię.

 

3. Po opanowaniu podstaw programowania strukturalnego (po prostu tego, czego będziesz się z początku zapewne uczył, a przynajmniej powinieneś), opanuj programowanie obiektowe na miarę doczesnym poziomie. Następnie, wystarczy, że zaczniesz oglądać poradniki/dokumentację jakiejś biblioteki graficznej (Przykładowo: SFML, Allegro, WPF (w którym jest robiona masa doczesnych aplikacji), a jeśli chodzi o biblioteki nadające się do gier 3D, to poszperaj w OpenGL, i bodajże Vulcano od Nvidii, nie do końca pamiętam nazwy). Jeśli na prawdę zrozumiesz metody działania C++ w miarę dobrym poziomie, po prostu rozpocznij praktykę, w której nabierzesz doświadczenia i potrenujesz algorytmiczne myślenie (możesz też zrobić to przez rozwiązywanie Sudoku, próbując odkryć przy nim jakiś dobry algorytm rozwiązywania).

 

4. Tutaj Ci nie odpowiem bo nie za bardzo się na tym znam, ale @skprime i @Jaca777 powinni Ci w tym pomóc, bo robili oni silniki, które udostępniali nawet na forum.

 

 

 

Mam nadzieję, że w miarę Ci pomogłem :)

jw19e8.png

Opublikowano

Aktualnie korzystam z poradników, lekcji, zamieszczonych na kanale (yt) Pasja Informatyki, jednakże zdaje sobie sprawę, że wszystkiego tam nie ma, ba a może nawet i połowy, dlatego też chciałbym prosić o polecenie jakieś opłacalnej, wartej uwagi książki.

Połowy czego? Całości możliwości c++? Nie, na pewno nie ma połowy.

4. Jeśli chcesz zrobić grę, to bierz gotowy silnik. Jeśli chcesz zrobić silnik, to rób silnik.

708121422388637873334.png

Opublikowano

Jak najbardziej rozumiem Twoją sytuację i Twoję pytania. :)

 

1. C++ to dobry wybór. Cross-platform, chodzi natywnie, sporo bibliotek, API graficzne są "celowane" pod ten język, nie trzeba wrapperów. Co prawda wiele innych języków była by dobra, ale myślę, że akurat pod takie rzeczy potrzeba czegoś mocniejszego od języka, który chodzi na VM (Sorki Jaca :)).

2. Jeżeli nauczysz się dobrze podstaw, to dalej po prostu pisz programy, czegoś nie będziesz wiedział to wtedy pytaj, uzupełniaj wiedzę. Nie jesteś w stanie powiedzieć od razu w tym momencie czego powinieneś się jeszcze nauczyć, najlepej jest podjać jakiś cel, pomyśleć nad jakimś projektem, dobrze go zaprojektować, przemyśleć jak ma działać, żebyś się potem nie pogubił i po prostu pisać, uczyć się na błędach. :)

3. Ja polecam OpenGL. Rozwiązanie Cross-platform, GLSL. Poczytaj sobie o tym API graficznym. Osobiście polecam używać biblioteki SDL2 do windowingu, trzymania inputa, czasu i wielu innych rzeczy + GLEW do extensions.

Ucz się od razu pod programmable pipeline, a nie fixed function pipeline. :)

4, 5. Pisząc swój silnik możesz się wiele nauczyć, jak działają silniki, jak działa API graficzne, jak to się je. Taka wiedza jest na prawdę przydatna, można zacząć od prostych gier 2D używajac SDL2 typu PONG, ogarnąć podstawy OpenGL'a, idąc później dalej. :) Silnik można zaprojektować na różne sposoby, użyć różnych bibliotek, różnych API graficznych, dlatego każdy z nich się mocno różni.

 

Edit:

 

Jak chcesz dowiedzieć się czegoś więcej, to napisz do mnie na PW. 

Opublikowano

Cześć wszystkim. Rozpocząłem naukę programowania w języku C++ no i powolutku idę do przodu. Z każdą chwilą mam co raz to więcej pytań, dlatego też postanowiłem je tutaj zadać. Zapewne znajdą się tacy którzy albo powiedzą że były już takie tematy, albo że dopiero podstawy poznaje a już gry chce robić - za taką pomoc to ja z góry dziękuję :P Oto te pytania: 1. Czy C++ to dobry wybór? 2. Aktualnie korzystam z poradników, lekcji, zamieszczonych na kanale (yt) Pasja Informatyki, jednakże zdaje sobie sprawę, że wszystkiego tam nie ma, ba a może nawet i połowy, dlatego też chciałbym prosić o polecenie jakieś opłacalnej, wartej uwagi książki. 3. Dajmy że już poznam i opanuje podstawy C++, co dalej? Co to jest (wiem tyle że coś z grafiką :p ) DirectX, OGL czy direct3d i z czym to się je? Trzeba ich się uczyć tak jak C++? 4. Z czego składa się silnik gier? Lepiej stworzyć własny czy wybrać jakiś z dostępnych? Jak go stworzyć? 5. Jak się tworzy grę?: pisze coś w C++ i łączy z np powyższym OGL? (nie chodzi mi o grę konsolowa) No i chyba to tyle. Mam nadzieję że mnie zrozumiecie i potraktujecie poważnie, ponieważ chciałbym się w tym kierunku rozwijać i zgłębić w te tematy. Pozdrawiam serdecznie. :) Wysłane z mojego D5503 przy użyciu Tapatalka

 

C++ to z*******y wybór, można również robić gry w C#, ale w C++ jest praktycznie większość gier napisanych np. chociażby sam CS, który jest napisany w OpenGL, a to biblioteka C++. Ewentualnie Java, ale serio chcesz robić jakiegoś zabijacza czasu dla nastolatków?

 

Połowy? Wejdź na cpp0x - wykuj wszystkie biblioteki i działy oraz dokumentacje (tak, nawet robieniu stron w C++) z tematami + wszystkie zadania ze spoja.

 

Efekt? Nie umiesz nawet 1/4 C++. Ktoś tutaj zrobił Ci błędny widok na programowanie lub sam sobie taki wymyśliłeś, Języki programowania są jak chiński - masz 35k funkcji, metod, danych itd. Przeciętny programista potrzebuje 10k, bizmesmen z kolei 15k, a osoba wykształcona już 25k. Oczywiście jest jeszcze gramatyka, czasy itd. - czyli składnia kodu. Dodatkowo co chwila dochodzą nowe wyrazy, bo ciągle się coś na rynku IT pojawia i powstają do tego kolejne biblioteki, ewentualnie to coś będzie mieć swoją własną bibliotekę i trzeba to będzie złączyć z kodem.

 

3. Oczywiście, że trzeba. Baa po to nawet się uczyłeś C++. Są to biblioteki graficzne tzw. API - dzięki API masz kalkulator z przyciskami z okienkiem na wynik czy z innymi działaniami. Ogólnie dzięki temu masz grafikę i wszystko to co jest zamiast nagiego kodu.

 

4. Silnik gier to mechanika gry. Np. Quake, gdzie za wybicie się z rakiety czy dostawanie obrażeń i grawitację, jak leci pocisk - odpowiada za to silnik.

Jak ogarniasz jakiś język to od pół godziny do półtora, ale nie licz na pokaz fajerwerków. Silniki w grach robi się znacznie, znacznie dłużej.

 

5. Piszesz w OpenGL fizykę jakiegoś przedmiotu, jakieś tam funkcje itd. Generalnie wszystkie zachowania w grze.

 

­

pyhvh7E.png


 


Opublikowano

Cześć wszystkim. Rozpocząłem naukę programowania w języku C++ no i powolutku idę do przodu. Z każdą chwilą mam co raz to więcej pytań, dlatego też postanowiłem je tutaj zadać. Zapewne znajdą się tacy którzy albo powiedzą że były już takie tematy, albo że dopiero podstawy poznaje a już gry chce robić - za taką pomoc to ja z góry dziękuję :P Oto te pytania: 1. Czy C++ to dobry wybór? 2. Aktualnie korzystam z poradników, lekcji, zamieszczonych na kanale (yt) Pasja Informatyki, jednakże zdaje sobie sprawę, że wszystkiego tam nie ma, ba a może nawet i połowy, dlatego też chciałbym prosić o polecenie jakieś opłacalnej, wartej uwagi książki. 3. Dajmy że już poznam i opanuje podstawy C++, co dalej? Co to jest (wiem tyle że coś z grafiką :p ) DirectX, OGL czy direct3d i z czym to się je? Trzeba ich się uczyć tak jak C++? 4. Z czego składa się silnik gier? Lepiej stworzyć własny czy wybrać jakiś z dostępnych? Jak go stworzyć? 5. Jak się tworzy grę?: pisze coś w C++ i łączy z np powyższym OGL? (nie chodzi mi o grę konsolowa) No i chyba to tyle. Mam nadzieję że mnie zrozumiecie i potraktujecie poważnie, ponieważ chciałbym się w tym kierunku rozwijać i zgłębić w te tematy. Pozdrawiam serdecznie. :) Wysłane z mojego D5503 przy użyciu Tapatalka

1. C++ to jeden z najlepszych wyborów jakich mogłeś dokonać, gratuluję.

2. Professional C++, 3-cia edycja

3. Jak umiesz już język to musisz zapoznać się z bibliotekami. DirectX to zbiór bibliotek multimedialnych, OpenGL to biblioteka graficzna tak samo jak Direct3D. Korzystając z tych bibliotek możesz pisać programy, które wykorzystują kartę graficzną do generowania obrazu.

4. Silniki gier składają się zazwyczaj z silnika fizycznego, silnika sztucznej inteligencji, renderera (generuje obraz) oraz jakiegoś wewnętrznego interpretera skryptów.

5. Zazwyczaj to najpierw tworzy sie silnik gry, później pisze się skrypty, które działają wewnątrz takiego silnika.

 

 

C++ to z*******y wybór, można również robić gry w C#, ale w C++ jest praktycznie większość gier napisanych np. chociażby sam CS, który jest napisany w OpenGL, a to biblioteka C++. Ewentualnie Java, ale serio chcesz robić jakiegoś zabijacza czasu dla nastolatków?

 

Połowy? Wejdź na cpp0x - wykuj wszystkie biblioteki i działy oraz dokumentacje (tak, nawet robieniu stron w C++) z tematami + wszystkie zadania ze spoja.

 

Efekt? Nie umiesz nawet 1/4 C++. Ktoś tutaj zrobił Ci błędny widok na programowanie lub sam sobie taki wymyśliłeś, Języki programowania są jak chiński - masz 35k funkcji, metod, danych itd. Przeciętny programista potrzebuje 10k, bizmesmen z kolei 15k, a osoba wykształcona już 25k. Oczywiście jest jeszcze gramatyka, czasy itd. - czyli składnia kodu. Dodatkowo co chwila dochodzą nowe wyrazy, bo ciągle się coś na rynku IT pojawia i powstają do tego kolejne biblioteki, ewentualnie to coś będzie mieć swoją własną bibliotekę i trzeba to będzie złączyć z kodem.

 

3. Oczywiście, że trzeba. Baa po to nawet się uczyłeś C++. Są to biblioteki graficzne tzw. API - dzięki API masz kalkulator z przyciskami z okienkiem na wynik czy z innymi działaniami. Ogólnie dzięki temu masz grafikę i wszystko to co jest zamiast nagiego kodu.

 

4. Silnik gier to mechanika gry. Np. Quake, gdzie za wybicie się z rakiety czy dostawanie obrażeń i grawitację, jak leci pocisk - odpowiada za to silnik.

Jak ogarniasz jakiś język to od pół godziny do półtora, ale nie licz na pokaz fajerwerków. Silniki w grach robi się znacznie, znacznie dłużej.

 

5. Piszesz w OpenGL fizykę jakiegoś przedmiotu, jakieś tam funkcje itd. Generalnie wszystkie zachowania w grze.

 

­

 

Ad 1. Można robić gry w innych językach ale C++ to najlepszy wybór. CS nie jest napisany w OpenGL ale w C++.

Ad 2. Cpp0x to słaba stronka, można się mało z niej nauczyć.

Ad 3. Pojęcie API i blioteka to nie są pojęcia tożsame, nie wprowadzaj ludzi w błąd

Ad 4. Bardzo uprosiłeś pojęcie silnika...

Ad 5. Po pierwsze w OpenGL się nie pisze bo to nie język programowania, możesz pisać w C++ korzystając z biblioteki OpenGL. OpenGL nie jest silnikiem fizycznym i nie służy do obliczania fizyki.

Nie wprowadzaj ludzi w błąd.

RAsfepN.png
Opublikowano

@Osama

Cpp0x to bardziej do szukania funkcji itp. których się potrzebuje, niżeli do nauki, słowem - dokumentacja :v

jw19e8.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...