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

GEE - Własny silnik do tworzenia gier 3D [C++/OpenGL]

Object Storage Arubacloud
+3 głosów
439 wizyt
pytanie zadane 1 czerwca 2021 w Nasze projekty przez swetroniusz Użytkownik (540 p.)

Cześć!

Muszę przyznać, że odkąd ostatni raz coś tu pokazałem sporo się zmieniło cheeky. Jakoś w październiku 2019, po roku nauki OpenGL, wpadłem na pomysł żeby spróbować stworzyć własny silnik do tworzenia gier. Coś jak UE4, tylko na mniejszą skalę, o wiele uboższą wersję, ale przez to spójną i łatwiejszą do ogarnięcia (co nie jest takie łatwe do osiągnięcia jak mi się wydawało).

Po ponad półtora roku mogę Wam zaprezentować zalążek...

 My Game Engine Engine (tak, to najlepsze co mogłem wymyślić)

Lista rzeczy które chyba wspiera mój silnik

  • Podstawowe features silnika:
  • Projekt podzielony na sceny, wsparcie dla wielu scen
  • System aktorów i komponentów (trochę jak w UE4)
  • Ładowanie modeli z plików
  • System HierarchyTree - pliki modeli 3D są zazwyczaj hierarchiczne, dlatego konwertowane są na takie HierarchyTree, w planach edytowanie tych tree i zapisywanie ich znowu na plik (jeśli np. chcemy sprawdzić i naprawić zepsuty plik modelu).
  • Serializacja praktycznie wszystkiego
  • System eventów
  • Staram się utrzymać multiplatformowość, lecz nie próbowałem tego kompilować na linuxie.
  • Renderowanie (OpenGL)
  • PBR (wraz z IBL), BRDF Cook-Torrance
  • SMAA1X, SMAAT2X (temporal AA, wykorzystuje velocity buffer który może też zostać użyty do zaimplementowania motion blur)
  • SSAO
  • HDR+Bloom
  • Shadow mapping (omnidirectional i 2D dla directional lights/niektórych spot lights)
  • Normal mapping
  • Parallax Occlusion Mapping
  • Deferred shading
  • System materiałów (który jest trochę upośledzony) - albedo, roughness, metallic, ao, normal, depth maps, kolory jeśli nie ma tekstur, animacja materiałów.
  • Animowanie meshów (skeletal meshes)
  • Fizyka przy użyciu PhysX (zaimplementowałem tylko podstawowe funkcje)
  • Kule, kostki i bake'owanie własnych meshów
  • Audio: prymitywne, wykorzystuje OpenAL soft
  • Ładowanie dźwięków z .wav
  • Dźwięki pozycyjne (3D)
  • Własny edytor projektów:
  • Dodawanie, usuwanie i edytowanie aktorów i komponentów w real-time
  • Dość przyjemny interfejs w kodzie do dodawania własnych przycisków do edytora, np. jeśli tworzymy własne klasy
  • Podgląd meshów, materiałów, zmiana ustawień w real-time (które się jeszcze nie zapisują).

 

Zapraszam do przetestowania!

  • W folderze Projects znajdziesz 2 przykładowe projekty.
  • Wszystko co niebieskie lub fioletowe można kliknąć (to przyciski)
  • Rozszerzanie okna jeszcze nie działa
  • TAB aby przełączyć między kontrolowaniem kamery a edytorem, F2 aby podejrzeć modele kolizji
  • Wymaga OpenGL 4.0 i zainstalowanego Visual C++ 2015-2019 Redistributable (instalka znajduje się w folderze)

Github - zerknij do brancha without_assets zeby pobrac lżejszą wersje. Uwaga: nie odpowiadam za potencjalne szkody na psychice spowodowane próbą kompilacji tego potwora - brak wsparcia CMake, bo za bardzo tego nie ogarniam.

.EXE ~150MB, lżejsza wersja

VirusTotal (jakby fakt że jest to projekt open-source nie wystarczał)

 

Jak na razie nie polecam nic w tym tworzyć - czasami się crashuje. Spora część kodu jest do zmiany, mój styl programowania się mocno przez cały ten czas zmienił. Jestem otwarty na wszelkie sugestie, propozycje i krytykę.

Dzięki za poświęcony czas.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 634 wizyt
pytanie zadane 22 listopada 2020 w C i C++ przez Konto123 Nowicjusz (120 p.)
+1 głos
2 odpowiedzi 250 wizyt
0 głosów
1 odpowiedź 214 wizyt

92,536 zapytań

141,377 odpowiedzi

319,454 komentarzy

61,922 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...