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

Imagine Engine - Silnik 3D napisany w C++


Gość skprime

Rekomendowane odpowiedzi

Opublikowano

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

iesign.png

Projekt porzucony na rzecz mojego nowego silnika.

 

 

Imagine Engine - Co to za twór?

Jest to silnik 3D napisany w C++. Jest on efektem wielu miesięcy myślenia, projektowania i finalnie pisania.

Aktualnie jest on we wczesnej wersji Alpha, dlatego "brakuję" wielu rzeczy i można spodziewać się licznych bugów. :)

Nie jest to silnik podobny do Unreal Engine, czy Unity 3D. Nie posiada on IDE, grę musimy designować kodem.

Jest to bardzo fajna zabawa! :)

Silnik jest w pełni Cross-platform, supportuje Windowsa, Mac OSX, Linuxa, nawet jeżeli chodzi o takie elementy jak

separator path'ów, jeżeli użyjemy PATH_SEPARATOR z klasy FilePath silnik automatycznie dopasuje separator do danej platformy,

na Windowsie bedzie to "\", na Linuxie i wielu innych "/".


Features

Silnik posiada podstawowe możliwości takie jak:

-Ładowanie modeli (.obj)

-System audio

-Entity component system

-Skrypty

-Skyboxy

-Tekstury

-Oświetlenie

-Sprites

-Blending

-Kolizje

-Elementy UI

-MSAA

-Input: Obsługa myszki, klawiatury

-Konsola (Możemy dodawać własne komendy i decydować co ma się po nich wydarzyć)

-Matematykaaa

-Shadery GLSL

-Cross-platform solutions (Takie jak FilePath, typy danych F32, S32, U64 itd)

-I wieeele innych rzeczy


Jakiś download, source code?

Silnik udostępniany jest w postaci Source-code. Posiada on także kilka zależności (Dependencies) takie jak SDL2, GLEW, standard C++11 (Wszystkie wymieniłem na GitHub'ie).

Link do GitHuba gdzie znajdziemy Source-code i przykładowe gry:

https://github.com/skprime/ImagineEngine


A jak zrobić grę?

Aktualnie szykuję dokumentację i poradnik w dwóch językach (Polski i Angielski) do mojego silnika.

Wkrótce pojawią się odnośniki.

Póki co polecam przejrzeć gry przykładowe.


Mogę pomóc?

Jest to projekt Open-source, każdy może udzielać się na Githubie, w komentarzach pod tym tematem, podawać swoje pomysły, zgłaszać problemy.

Było by to bardzo pomocne dla mnie (Ponieważ piszę ten silnik sam i jest to dosyć trudnę), a co ja mogę zaoferować dla tych

aktywnych pomocników to wymienienie Twojego nicku w Credits na Githubie i tutaj w tym temacie. Zapraszam! :)



Screenshoty:

ss1.pngss2.pngss3.png

screen.png

image.png

123.png

image3.png

Untitled.png

Untitled.png

Starsze SS (Bardzo wczesna wersja - przed Pre Alpha):

ss4.png

 

Changelog dostępny jest na GitHub'ie (Changelog.txt).

Opublikowano

Z*******e, ladnie napisane naprawde :) pobawie sie tym.

 

Dzięki wielkie i liczę na uwagi. :)

 

Edit:

 

I oczywiścię mogę zaoferować Twój nick w credits w zamian za testowanie. :)

Opublikowano

REFRESH

 

Najnowszy update (Pre-alpha 1.0.7) wprowadza konsolę + API (Możemy dodawać własne komendy, decydować co ma się dziać po wpisaniu danej komendy).

 

Untitled.png

Opublikowano

Imagine Engine z ostatnim update Pre-alpha 1.0.11_02-FINAL wita wersje Alpha 1.0.0. :)

 

EDIT:

 

Szykuje nowe examples oraz poradnik do silnika na YouTube. :)

Opublikowano

Według mnie bardzo pomysłowe. Jak będę miał czas, chętnie się tym pobawię.

 

Bardzo dziękuje i zapraszam. :)

 

W razię problemów proszę pisać - ja służę pomocą.

Opublikowano

No to troche konstruktywnej krytyki:

1. https://github.com/skprime/ImagineEngine/blob/master/Engine/error/error.cpp#L22-L38 dlaczego cast do char* i dlaczego zmienna i funkcje globalne.

2. Co to za magiczne wartosci w Error::throwErrorCode i dlaczego ta funkcja nie robi tego co ma w nazwie?

3. Error::throwErrorFileNotFound zbedna zmienna i polecam std::string::c_str().

4. https://github.com/skprime/ImagineEngine/blob/master/Engine/assets/material/materialAsset.cpp#L31-L32 po co(kazda klasa to ma)?

5 https://github.com/skprime/ImagineEngine/blob/master/Engine/platform/file.cpp#L46 zbedne file.close() RAII twym przyjacielem, a i nie lepiej uzyc jakiejs natywnej funkcji(PathFileExists(Windows)/stat(unix*))

6. https://github.com/skprime/ImagineEngine/blob/master/Engine/platform/types.h to juz kwestia idywidualna, ale jak dla mnie sa one mniej czytelne(polecam cinttypes).

7. Duzo metod statycznych, az za duzo.

Wiecej mi sie nie chce.

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano

bool FilePath::exist(const std::string &path)
{
	std::ifstream file(path);

	if(file.good())
	{
		file.close();

		return true;
	}
	else
	{
		file.close();

		return false;
	}
}
==

 

 

 

bool FilePath::exist(const std::string &path)
{
	std::ifstream file(path.c_str());
	return file;
}
w sumie nie jestem pewny czy static_cast tu pasuje (działać działa, ale file to klasa), @Vesim - ?­

nvm, cast zbędny

846331404756772371599.jpeg
Opublikowano

No to troche konstruktywnej krytyki:

1. https://github.com/skprime/ImagineEngine/blob/master/Engine/error/error.cpp#L22-L38 dlaczego cast do char* i dlaczego zmienna i funkcje globalne.

2. Co to za magiczne wartosci w Error::throwErrorCode i dlaczego ta funkcja nie robi tego co ma w nazwie?

3. Error::throwErrorFileNotFound zbedna zmienna i polecam std::string::c_str().

4. https://github.com/skprime/ImagineEngine/blob/master/Engine/assets/material/materialAsset.cpp#L31-L32 po co(kazda klasa to ma)?

5 https://github.com/skprime/ImagineEngine/blob/master/Engine/platform/file.cpp#L46 zbedne file.close() RAII twym przyjacielem, a i nie lepiej uzyc jakiejs natywnej funkcji(PathFileExists(Windows)/stat(unix*))

6. https://github.com/skprime/ImagineEngine/blob/master/Engine/platform/types.h to juz kwestia idywidualna, ale jak dla mnie sa one mniej czytelne(polecam cinttypes).

7. Duzo metod statycznych, az za duzo.

Wiecej mi sie nie chce.

 

A więc bardzo dziękuje za poświęcony czas, postaram się dociągnąć wszystko na co zwróciłeś uwagę. :)

 

Na prawdę bardzo dziękuje, ponieważ gdy tak się siedzi i siedzi przy tym kodzie po prostu robi się takie głupoty nie umyślnię (Mam nadzieję, że rozumiesz o co mi chodzi). :)

 

EDIT:

 

Alpha 1.0.8 is here. Jest już sporo poprawek - za godzinkę wyjeżdżam i nie będę miał możliwości programowania podczas drogi, dlatego staram się przed wyjazdem zrobić jak najwięcej.

Opublikowano

REFRESH

 

Dziś wracam z wyjazdu i wracam do aktywnej pracy nad silnikiem.

Opublikowano

Tym projektem właśnie zdyskwalifikowałeś mnie z konkursu, będę głosował na Twój engine.

Edit:\\ Właśnie trzymasz w ręku potencjalne źródło swojego utrzymania.

arijh2.jpg

Opublikowano

Tym projektem właśnie zdyskwalifikowałeś mnie z konkursu, będę głosował na Twój engine.

Edit:\\ Właśnie trzymasz w ręku potencjalne źródło swojego utrzymania.

 

Serdeczne wielkie dzięki dla Ciebie za komentarz i za głos! :)

 

----

 

Najnowszy update 1.5.x wprowadza Sprites z możliwością tworzenia Layerów, regulowania "prędkości" switchowania tekstur w Layerze. Example1 dostał update, który prezentuje jak one działają. :)

Opublikowano

Oto dziwny, krótki i skromny przykład jak działają sprites w Imagine Engine.

Filmik nie ukazuje działania multi layerów (Na filmiku zastosowano tylko jeden) i pokazuję tylko 2 tekstury.

Oczywiście multi layery i ich switchowanie działają, tak samo layery można tworzyć nawet i z 1000 tekstur, jednak w tym dziwnym

filmiku tego nie zaprezentowałem. :)

 

https://www.youtube.com/watch?v=3KWmDVye8D0

Opublikowano

@MXVOL Mówiąc "Wsparcie" masz na myśli dodanie go jako języka skryptowego? :D

Opublikowano

Alpha 1.10.0 i system kolizji skończony! :)

 

Teraz będę pracował nad fizyką..

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...