• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Silnik graficzny... Jak się do tego zabrać (jakie biblioteki itp.) ?

Cloud VPS
0 głosów
356 wizyt
pytanie zadane 13 grudnia 2015 w C i C++ przez Michał Gibas Pasjonat (19,630 p.)
Witam!

Od dłuższego czasu uczę się wielu bibliotek graficznych 3D i 2D... Planuję obecnie z moją ekipą złożoną z kilku kolegów programistów stworzenie silnika graficznego pod gry (2D lub 3D). Jakie biblioteki graficzne mi polecacie? Obecnie znam SDL, OpenGL i trochę SFML'a.

2 odpowiedzi

+2 głosów
odpowiedź 13 grudnia 2015 przez adrian17 Mentor (354,720 p.)
wybrane 13 grudnia 2015 przez Michał Gibas
 
Najlepsza
Jeśli chcecie robić 3D to za bardzo nie ma innej opcji niż użycie samego OpenGLa.

SDL lub SFML wciąż się przydzadzą, ale nie jako biblioteki graficzne, a jako narzędzie do tworzenia i zarządzania oknem (co w zasadzie jest ich podstawowym zastosowaniem).
0 głosów
odpowiedź 13 grudnia 2015 przez MetGang Nałogowiec (34,360 p.)
Póki co lepiej by było 2D ogarnąć. Sam SFML w sobie jest niejako kombajnem różnych bibliotek/modułów. Jeśli znasz/znacie OpenGL na dobrym poziomie możecie go wykorzystać do renderu, a SFMLa np. do obsługi wydarzeń. Osobiście proponuję zrobić coś co znacznie ułatwi i przyśpieszy pracę.

Przykład z mojej bibliotek: Zamiast używać jakiejś tam metody Keyboard::isKeyPressed(sf::Keyboard::A) (czy jakoś tak) z dodatkowym boolem blokującym ciągłe trzymanie (żeby po przytrzymaniu klawisza if wykonał się tylko raz) mam własną, prostą funkcję IOS.Check(Key::A(Pressed));.

Grunt żeby skupić się na kwiestiach I/O (coś w stylu jak wyżej pokazałem), uproszczona obsługa wydarzeń, render wielowarstwowy z shaderami (OpenGL Shading Language - GLSL, daje ogromne możliwości), jakaś lepsza konsola debugerska (nie ta cmd, tylko wbudowana w okno gry), manager zasobów (np. spr.setTexture(RES.GetTexture("id_tekstury");), ogromna ilość funkcji pomocniczych (rand, length(point1,point2), ToString, ToInt, parsery itp). I ważna kwiestia: Jeśli już coś robicie, to róbcie to porządnie i przemyślanie, bo refaktorycja (pisanie od nowa) może być pracochłonne i obniżające morale.

Podobne pytania

0 głosów
1 odpowiedź 479 wizyt
pytanie zadane 17 listopada 2015 w C i C++ przez Izzz Nowicjusz (170 p.)
0 głosów
1 odpowiedź 336 wizyt
pytanie zadane 4 kwietnia 2018 w Sprzęt komputerowy przez niezalogowany
0 głosów
1 odpowiedź 345 wizyt
pytanie zadane 1 czerwca 2016 w Urządzenia mobilne przez DragonCoder Nałogowiec (36,500 p.)

93,488 zapytań

142,422 odpowiedzi

322,773 komentarzy

62,908 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...