Autor Wątek: Esenthel Engine  (Przeczytany 42790 razy)

Offline Esenthel

  • Użytkownik
    • Esenthel

# Luty 05, 2008, 13:56:52
Witam,

Niedawno udostępniłem mój silnik publicznie (darmowy do celów nie-komercyjnych).
Pobrać można go ze strony http://www.esenthel.com/pl/download.html
Zawiera instalację krok po kroku, dokumentację, tutoriale, narzędzia oraz inne bajery.

Oto pełna lista tzw "feature'ów"

1. Główne cechy

prostota
prędkość
stabilność
efekty wizualne
fizyka
stale doskonalony
masa pożytecznych funkcji




2. Szczegółowo opisane cechy

AI (Sztuczna Inteligencja)
odnajdywanie ścieżki (bazowane na dwuwymiarowych wielokątach)


Animacje
szkieletowa
klatki kluczowe
płynne przejścia
zajścia
wysoce kompatybilna (jedna animacja dla humanoidów działa na wszystkich humanoidalnych szkieletach)


Kamera
wsparcie dla 4 kamer - Fpp, Tpp, Izometryczna, Dowolna
efekty kamery - trzęsienie, falowanie
automatyczne generowanie "frustum culling"


Geometria
obliczanie powierzchni, objętości, odległości, transformacje (przemieszczanie, obracanie, skalowanie, transformacje przez macierz), podstawowa detekcja kolizji, rysowanie
płaszczyzna
punkt (2d/3d)
krawędź (2d/3d)
trójkąt (2d/3d)
czworokąt (2d/3d)
prostokąt
prostopadłościan
obracalny prostopadłościan
koło
kula
kapsuła
walec
torus
stożek
piramida


Grafika
kolory rgb, barwa, jasność, przezroczystość, odwrotny, dodawanie, interpolacja
kalibracja gamma
4:3, 5:4, 16:9, 16:10 lub dowolne proporcje ekranu
wsparcie dla shaderów 2.0, 3.0
buforowanie wierzchołków dla podstawowych funkcji rysujących (obrazki, elementy gui, obiekty geometryczne, ...)
filtrowanie anizotropowe, mip-mapping, synchronizacja, tryb okienkowy / pełnego ekranu
zrzuty ekranu
rysowanie czcionek z cieniami
wsparcie dla tekstur L8, A8, A8L8, X8R8G8B8, A8R8G8B8, DXT3, DXT5, ...
lockowanie, unlokowanie, edycja, przycinanie, rozmycie, downsampling, ustawianie i pobieranie pixeli tekstur
zamiana bump na nprmal mapy
importowanie bmp, png, jpg, tga, dds
światła punktowe, stożkowe, kierunkowe
wsparcie dla occlusion query
system cząsteczkowy (bazowany na prostym kształcie albo animowanym szkielecie)
viewport'y, rendertarget'y
płynne przejścia pomiędzy ekranami
efekty 2D - napisy, rozmycia, przejścia przy użyciu specjalnej tekstury


GUI (Graficzny Interfejs Użytkownika)
wsparcie dla - przycisków, checkbox'ow, combobox'ow, menu kontekstowych, pulpitow, pasków natężenia, dowolnych elementów, obrazków, zakładek, tekstu, viewport'ow, list, pasków postępu, regionów, pasków przewijania, linijek z tekstem, okienek, okienek wyboru plików / katalogów


Input
klawiatura, myszka, joypady
wykrywanie stanów klawiszy, naciśnięć, zwolnień, dwu-klików, kombinacji
przycinanie kursora myszki do prostokątu, wyłączanie sterówników, sprzętowy kursor


IO (Wejście / Wyjście)
klasa obiektu plikowego pozwalająca na odczyt i zapis plików binarnych, tekstowych, xml, z pamięci, plików, plików wewnątrz plików z wsparciem dla szyfrowania danych
informacje o pliku / katalogu, szukanie pliku / katalogu, tworzenie/usuwanie pliku/katalogu, operacje na wszystkich plikach wewnątrz katalogu
pakowanie danych różnych plików do jednego dużego pliku PAK (zachowuje hierarchię katalogów, automatycznie sortuje dane dla szybszego dostępu)
wykrywanie napędów (dyski twarde, napędy optyczne)


Matematyka
minimum, maksimum, średnia, wartość bezwzględna, saturate, znak, przycinanie, zaokrąglanie, zaokrąglanie do góry, zaokrąglanie w dół, część ułamkowa, align, kwadraw, sześcian, pierwiastek, pierwiastek sześcienny, potęga, logarytm naturalny, logarytm dwójkowy, sinus, cosinus, sincos, tangens, cotangens, arcus cosinus, arcus sinus, arcus tangens, kąt, liniowa interpolacja, interpolacja 'hermite', potęgowa interpolacja, rozwiązywanie równań 0-go, 1go, 2go i 3go stopnia
wektory (2, 3, 4 wymiarowe rzeczywiste i całkowite), operacje - dodawanie, odejmowanie, mnożenie, dzielenie, zmiana znaku, wartość bezwzględna, najmniejszy komponent, największy komponent, indeks najmniejszego komponentu, indeks największego komponentu, normalizacja, długość, długość^2, ustawianie długości, iloczyn skalarny, iloczyn wektororwy, prostopadła, porównywanie, porównywanie z epsilonem, transformowanie przez macierz
macierze (3x3, 4x3, 4x4), operacje - dodawanie, skalowanie, obracanie, mnożenie, odwracanie, z kwaternionu
512 bitowe liczby całkowite i zmiennoprzecinkowe, operacje - dodawanie, odejmowanie, mnożenie, dzielenie, reszta z dzielenia, kwadrat, pierwiastek
funkcja kalkulatora (obliczanie wartości podanych ciągów, np "sin(2*x) + dot(vec(1,2,3),vec(4,5,6)) + 15*(1+2*pow(x,y))" jako liczby całkowite, zmiennoprzecinkowe oraz wektory


Modele
wierzchołki (pozycja, normalna, tangens, binormalna, tekstura0, tekstura1, indeks macierzy, współczynniki wagi, rozmiar, indeks duplikatu wierzchołka)
krawędzie (indeksy wierzchołków, przystające face'y, normalne, opcje, identyfikator)
trójkąty (indeksy wierzchołków, przystające face'y, przystające krawędzie, normalne, opcje, identyfikator)
czworokąty (indeksy wierzchołków, przystające face'y, przystające krawędzie, normalne, opcje, identyfikator)
automatyczne mapowanie uv
transformowanie (przemieszczanie, skalowanie, transformowanie przez macierz), odwracanie, odbicie lustrzane
prawidłowe obliczanie normalnych, tangentów, binormalnych
zespalanie wierzchołków, krawędzi, zaokrąglanie krawędzi, face'ów
łączenie, rozszczepianie, kopiowanie
łączenie wierzchołków z sąsiadami, wierzchołków z sąsiednimi krawędziami, krawędzi z sąsiednimi face'ami, prostokątów z krawędziami
zamiana trójkątow na czworokąty, czworokątów na trójkąty, krawędzi na wielokąty
operacje logiczne na 2 i 3 wymiarowych modelach (or, and, xor, sub..) - BETA
dodawanie/usuwanie wierzchołków/krawędzi/trójkątów/czworokątów
optymalizacja (usuwanie wierzchołków w jednej linii, face'ow, cache wierzchołków)
binarny/tekstowy format, importowanie formatów 3ds, ase, obj, wrl, x, xml (igame/3dxi)


Pamięć
zerowanie, kopiowanie, kopiowanie 'jeśli', kopiowanie na bazie indeksow, ustawianie wartości, porównywanie, zamienianie, kopiowanie z wyrównaniem (8do32, 16do32, 24do32, 32do8, 32do16, 32do24), szyfrowanie, allokowanie, reallokowanie
kontenery pamięci działające na dowolnej strukturze (bazowane na liście, bazowane na blokach)
cache dla przechowywanie dynamicznie ładowanych danych (modeli, materiałów, tekstur, animacji, szkieletów lub własnych danych) z sortowaniem po nazwie dla szybszych dostępów, oraz możliwością ładowania danych w lokalnej lub globalnej ścieżce
sortowanie własnych typów danych z własnymi funkcjami porównującymi


Różne
wsparcie dla pliku konfiguracyjnego
detekcja procesora (mmx, 3dnow, sse, sse2, sse3, liczba rdzeni)
menadżer stanów
losująca jednostka, tworząca liczby całkowite, zmiennoprzecinkowe, prawidłowe wektory odchylenia, współrzędne punków (wewnątrz lub na powierzchni) kul, prostopadłościanów, kapsuł, walców, krawędzi, okręgów, prostokątów
wsparcie dla logowania
pobieranie i ustawianie tekstu do schowka
wykrywanie języka systemu operacyjnego
operacje na tekstach (case up, case down, dodawanie, długość, porównywanie, porównywanie ścieżek, zaczyna się z, zawiera, zawiera słowa, zamiana, pobieranie rozszerzenia, nie rozszerzenia, ścieżki i nazwy, zamiana z i do - liczb całkowitych, zmiennoprzecinkowych, binarnych, szesnastkowych, wektorów
wsparcie dla pomiaru czasu, czas uruchomienia programu, stanu, różnica czasu od ostatniej klatki, ilość klatek na sekundę
operacje na czasie i datach -  różnica pomiędzy datami w sekundach, sekundy od 1 stycznia 0 roku 00:00:00 (ze wsparciem dla lat przestępnych)
minimalizowanie, maksymalizowanie, aktywacja, przesuwanie, pobieranie rodzica, pobieranie aktywnych okien systemu operacyjnego
wsparcie dla "przeciągnij i upuść"
de/kompresja danych


Sieć
pobieranie plików z internetu


Fizyka (dzięki PhysX)
detakcja kolizja ciał stałych
rag doll'e
kontrolery postaci
aktorzy - sfery, kapsuły, prostopadłościany, obracalne prostopadłościany, wypukłe, złożone z trójkątów (tylko statyczne)
stawy - stałe, zawiasy, sferyczne, wysuwające, rozłączalne
obliczanie pozycji aktorów, macierzy, prędkości, prędkości kątowej, energii, masy, oporów


Shadery
wypukłości - płaskie, normalne, parallax, relief
odblaskowe / środowiskowe mapy
dynamiczne mapy świateł
light blooming
glow
światło dużego zakresu + adaptacja oka
motion blur
per pixel lighting
cienie "stencil shadows" (miękkie i twarde)
cienie "shadow mapping" (miękkie i twarde)
wolumetryczne oświetlenie
miękkie cząsteczki
efekty ognia, wody, sierści, mgły, nieba
efekty interfejsu użytkownika


Dźwięki
1 i 3 wymiarowe, strumieniowanie formatów wav / ogg, z pliku lub pamięci
grupy głośności dźwięków (odgłosy, głosy, muzyka, otoczenia, globalne)
system muzyki i odgłosów otoczenia odtwarzający losowe ścieżki z wybranych tematów muzycznych ze wsparciem dla płynnych przejść pomiędzy ścieżkami


Wątki
zarządzanie procesami
uproszczona obsługą wielowątkowości
osobne wątki dla przetwarzania gry, obliczania fizyki, renderowania, przetwarzania dźwięków


Zapraszam  :)
« Ostatnia zmiana: Wrzesień 27, 2011, 21:07:48 wysłana przez Dab »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline revo

  • Użytkownik

# Luty 05, 2008, 14:31:07
Silnik robi duuuuże wrażenie. Zastanawiałeś się na jakich warunkach mógłbyś go udostępnić do celów komercyjnych? Nigdy nie waidomo czy nie-komercyjny projekt nie stanie sie w pewnym momencie komercyjny ;)

Od kiedy go pisałeś? Dużo czasu poświęcałeś poza pracą/uczelnią/czymkolwiek (dalej studiujesz na PWr? ;) ) ?
« Ostatnia zmiana: Luty 05, 2008, 14:35:28 wysłana przez revo »

Offline Riddlemaster

  • Użytkownik
    • Moja strona domowa

# Luty 05, 2008, 14:53:35
Cytuj
światło dużego zakresu + adaptacja oka
;) Może lepiej było pozostawić to w oryginale.

A poza tym stronka coś się chyba nie wczytuje, a lista feature'ów robi wrażenie.

do Złośliwca: to już drugi skończony silnik na Warsztacie w ostatnim czasie - idzie nam coraz lepiej :)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 05, 2008, 14:58:51
Proponuję zamiast wklejać listę featurów na forum zrobić porządną podstronę o silniku. :)

Offline Esenthel

  • Użytkownik
    • Esenthel

# Luty 05, 2008, 15:00:56
dziekuje za pozytywna opinie :) do celow komercyjnych to na pewno za jakas oplata, jej skala nie jest jeszcze ustalona, ale zawsze sie mozna dogadac, np czesc oplaty przed, a reszte po wydaniu produktu.
swoja przygode ze studiowaniem na szczescie juz mam za soba:) obecnie pracuje jako programista.
a silnik pisze od.. bardzo dawna, wlasciwie odkad pamietam, bedzie juz z kilkanascie lat ;)
jesli strona sie nie wczytuje, prosze sprobowac pozniej (u mnie dziala ok)
« Ostatnia zmiana: Luty 05, 2008, 15:03:52 wysłana przez drean »

Offline Lobsang Rampa

  • Użytkownik
    • Global Epidemic

# Luty 05, 2008, 15:05:14
Silnik robi spore wrażenie, gratulacje, tym bardziej, że zdecydowałeś się nim podzielić :)

Offline Kot

  • Użytkownik

# Luty 05, 2008, 15:05:51
Cytuj
bedzie juz z kilkanascie lat
Nic jak tylko pogratulować zapału i zaparcia :)

Offline Zene

  • Użytkownik
    • Zenedith’s dev blog

# Luty 05, 2008, 15:48:56
Respect.

Offline orzech

  • Użytkownik
    • homepage

# Luty 05, 2008, 17:26:56
Gratuluję! :)

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Luty 05, 2008, 17:58:38
Gdzieś Ty się uchował? Z jakiej choinki się nagle urwałeś? ;) Jeżeli wszystko co wymieniłeś naprawdę działa i wszystko jest stabilne to naprawdę biję pokłon i szczerze podziwiam. Wspaniała robota.


dziekuje za pozytywna opinie :) do celow komercyjnych to na pewno za jakas oplata, jej skala nie jest jeszcze ustalona, ale zawsze sie mozna dogadac, np czesc oplaty przed, a reszte po wydaniu produktu.

A nie zamierzasz sam zrobić coś komercyjnego co wykorzysta ten silnik? Taka reklama dla swojego silnika i może parę groszy. :)



obecnie pracuje jako programista.

Programista gier czy czegoś innego?
« Ostatnia zmiana: Luty 05, 2008, 18:01:00 wysłana przez MDW »

Offline kamykadze

  • Użytkownik

# Luty 05, 2008, 17:58:49
Wielki szacunek.

Offline dzemeuksis

  • Użytkownik
    • Blog quodmeturbat

# Luty 05, 2008, 18:32:05
A nie zamierzasz sam zrobić coś komercyjnego co wykorzysta ten silnik? Taka reklama dla swojego silnika i może parę groszy. :)
@MDW: Gdzieś Ty się uchował? Z jakiej choinki się nagle urwałeś? ;)
http://forum.warsztat.gd/index.php/topic,2891.0.html
http://forum.warsztat.gd/index.php/topic,3775.0.html
http://forum.warsztat.gd/index.php/topic,2892.0.html
Nie wiem, czy to komercyjny projekt, ale reklamą dla silnika tak czy owak będzie dobrą :)

Offline shergar

  • Użytkownik
    • Black Ice Tales

# Luty 05, 2008, 18:57:27
Świetna robota a przede wszystkim respect za udostępnienie engine dla mas. Choć w sumie to także niezła reklama dla waszego projektu - takie przyjemne z pożytecznym ;)

Silnik ma wsparcie dla mutli [serw-klient]?

Jest może lista silników popełnionych przez "członków" warsztatu?

therealremi

  • Gość
# Luty 05, 2008, 19:10:04
Jest może lista silników popełnionych przez "członków" warsztatu?
Niepotrzebna, tu kazdy pisze wlasny silnik  :D

Offline Haxy.M

  • Użytkownik

# Luty 05, 2008, 19:36:28
No no. Podziwiam. Jeśli potrafi to wszystko, to kupa dobrej roboty. Narazie pobrałem sam i zobaczę co da się z tym cudem zrobić.