Nauka programowania w C++ do gier wideo - jak zacząć?

0

Witam,

Chciałem zapytać tak jak w temacie.

Potrafię nieco blueprintów z unreala 4, tworzyć grafikę 3d oraz 2d. Chciałbym jednak nauczyć się programować pod C++ aby w unrealu pisać kod który pozwoli mi tworzyć coś ciekawego.

Zastanawiam się jakie książki, kursy online czy też inne źródła wybrać aby do tego dojść. Moje doświadczenie z C++ czy też pythonem to kalkulator ;P.

Proszę osoby które przez to przeszły mają doświadczenie z programowaniem gier(najlepiej w silnikach) o rady lub link do książek bądz innych. Tak aby krok po kroku robić postępy w dobrym kierunku.

Pozdrawiam.

1

Co do Książek C++, wybór jest dość szeroki, ja osobiście polecam "Język C++. Szkoła programowania" Stephen Prata. Przeczytałem, nie zawiodłem się. Przeczytałem jakieś 4/5 książki, i myślę, że raczej znam C++ dobrze. Pamiętaj jednak, że same podstawy za dużo Ci nie dadzą gdy chcesz programować na poważnie - jak masz już terminologie i znasz podstawowe konstrukcje językowe to potem czas przychodzi na zaprojektowanie modelu programu, nieuniknione problemy z pamięcią (przynajmniej dwa razy cię dopadną), i takie tam...

Z książek oprócz tej jednej ci za bardzo nic nie polecę, ale inni zrobili już to za mnie. Tutaj też wątek przyklejony od dawna w C++:
http://4programmers.net/Forum/C_i_C++/140817-Materialy_dostepne_w_sieci
Ze stron internetowych - tutaj znajdziesz mnóstwo informacji na temat C++-sa i standardów:
http://en.cppreference.com
czasami też wiele rzeczy znajdziesz na
http://www.cplusplus.com/

Stackoverflow, jak nie będziesz czegoś wiedział. No i to właściwie tyle. Powodzenia :P

1

co do programowania gier:

jest kilkadziesiąt różnych silników na bazie których powstają gry.
np. na topie teraz jest Unity Engine, ale jest pełno silników, z tego niektóre mają nawet po 15-20 lat... np. ten silnik od Dooma, hehe

  • jak chcesz Unreal, to Unreal Engine
  • bardziej bym polecał naukę konkretnego silnika, a ze silnika dopiero przejść na język programowania (ale taki, jaki ten silnik będzie wymagał)
0

Hej, dzięki za odpowiedzi ;).

Znalazłem to:
1. Pick a language (pick ONE and learn it well until you are comfortable with the basics before moving to step 2)

      1. C++
        ​Tutorials
            http://www.cplusplus.com/doc/tutorial/
            http://www.learncpp.com/
        Books
           
**Programming Principles and Practice Using C++ Second Edition by Bjarne Stroustrup**
Is a book designed to help you learn to program (if you have never programmed before) using C++ as a tool. It is also the intro course book for several degrees at Texas A&M University. Not to mention it is written by Bjarne Stroustrup himself.

**C++ Primer Fifth Edition by Stanley B. Lippman, Josee Lajoie, Barbara E. Moo**
The usual recommendation for Beginner C++, but that phrase is a little misleading. It isn't a book for someone who as never programmed, but rather a book for a programmer who is experienced in another language and looking to learn C++ now. It covers C++ more in-depth.

**The C++ Standard Library Second Edition A Tutorial and Reference by Nicolai M. Josuttis**
​Covers the standard library in-depth. 

**The C++ Programming Language Fourth Edition by Bjarne Stroustrup**

I recommend this purely as a reference book. It too is written by Bjarne Stroustrup. You can certainly read it cover to cover if you like, but it makes a better reference than a book about learning due to its technical nature.

    2. Java
        http://docs.oracle.com/javase/tutorial/
    3. Python
        https://docs.python.org/3/tutorial/index.html
    4. C#
        http://msdn.microsoft.com/en-us/library/aa288436(v=vs.71).aspx
  1. Pick a library
    Allegro - http://alleg.sourceforge.net/
    SDL - http://libsdl.org/
    SFML - http://www.sfml-dev.org/
    PyGame - http://pygame.org/news.html

  2. Make some simple 2D games (screenshots for clarification)

    1.Pong - http://www.wallpapermaven.com/cat/miscellaneous/download/Pong-1920x1200-31.jpg
    2.Worms/Snake - http://www.terminalstudio.com/screens/worm/big1.gif
    3.Breakout - http://www.mathworks.com/matlabcentral/fileexchange/screenshots/1604/original.jpg
    4.Missile Command - http://upload.wikimedia.org/wikipedia/en/8/86/A5200_Missile_Command.png
    5.Space Invaders - http://p1cdn01.thewrap.com/images/2014/07/space-invaders-618x400.png
    6.Asteroids - http://www.notmartha.org/images/other/2012apr/asteroids.jpg
    7.Tetris - http://kosmixmedia.com/static/031fa2e4385dfaf31c3b56135cdc3478.png
    8.Pac-man - http://www.arcade-museum.com/images/118/118124214343.png
    9.Ikari Warriors - http://www.arcade-museum.com/images/118/1181242122380.png
    10.Super Mario Bros - http://schmoesknow.com/wp-content/uploads/2010/11/7-Super-Mario-Bros-.png
    11.`<insert your original game here>`
    12.`<insert your original game here>`
    13.`<insert your original game here>`
    14.`<insert your original game here>`
    
  3. Learn DirectX or OpenGL

  4. Make simple 3D games (maybe even 3D versions of the list in item 3)

  5. Learn Game Engines
    Torque - http://garagegames.com/
    Unity - http://unity3d.com/
    Unreal Development Kit - https://www.unrealengine.com/products/udk/

  6. Start playing with making your own engine

Kroków 2 i 4 póki co nie rozumiem ale powoli startuje :).

"Mały Szczur Już pracuje w silnikach na uniwerku z programistami w pracach zespolowych ale jako grafik. Teraz chce po prostu nauczyć się również kodowania ;)

0

Rozumiem, że to z tego postu: http://www.gamedev.net/topic/661184-where-to-start-as-a-game-programmer/
Następnym razem nie wklejaj tak "na odwal" tylko po prostu zostaw linka.

Nie wiem, ja sam piszę grę (dwuwymiarową), i sam jeszcze ucze się nowych mechanizmów w C++-ie mimo, że podstawy ogarniam. Sam również tworzę grafikę, ale dwuwymiarową. Mój silnik to są na razie szczątki. Osobiście korzystam z SFML 2.0, bibliotek jest dość sporo, każda ci udostępnia szereg możliwości, API... Krok 3 i 4-rty tłumacząc to na polski to po prostu - 3. wymyśl sobie jakąś gre 2D i ją napisz, 4. Naucz się DirectX/OpenGL. Nie wiem, nigdy nie programowałem na poważnie w OpenGL-u ani w DirectX, co najwyżej w GLSL-u shadery... O ile nie chcesz pisać własnych od zera silników to może nie będzie Ci to aż tak bardzo potrzebne by znać DirectX/OpenGL

Ale moim zdaniem tu jest inny problem, jeżeli nigdy nie programowałeś, to nie nauczysz się tak szybko programowania, chyba, że naprawdę podejdziesz do tego w jakiś zaskakujący sposób którego ja nie znam. Więc analizowanie tych kroków jest na razie bez sensu, naucz się C++-sa, potem myśl o tym co chcesz w nim zrobić, bo możesz całkiem sporo, potem można porozmawiać o bibliotekach.

0

@lpanic jeśli chcesz uczyć się przez praktykę to daj mi znać na PW ;)

0

Hej,
a są jakieś książki do programowania 2d , 3d ale niekoniecznie dot. samego języka?
od czego powinien zacząć noob tworzący nudne oprogramowanie biznesowe a o renderowaniu światła nie wie w sumie nic?

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