Skocz do zawartości

XenoN PlayGate


PsichiX

Rekomendowane odpowiedzi

Ale chyba robienie gier 3D w GM'ie to chyba nie jest spełnienie marzeń ;P, jakieś ciekawe efekty graficzne można jeszcze uzyskać, których nie przedstawiłeś w lekcjach i do których mamy sami dojść tongue2.gif?

3D w GM nie jest zadowalające to fakt, ale XenoNa tworzę by też można było zrobić dobre gry 3D z mniejszymi wymaganiami. A to dzięki temu że zrezygnowałem z renderowania w GMie na rzecz tego w XenoNie.

A efekty które jeszcze można dodać, hmm.. no póki co są one tworzone jak widać samemu od podstaw, więc tak jak to bywa przy innych moich przykładach: daję Wam do rąk uniwersalne funkcjonalności, abyście mogli zabawić się w Boga i sami stworzyć takie efekty jakie zechcecie, a ograniczać Was będzie jedynie pomysł i składniki podstawowe (wyprzedzając pytanie: "jakie to składniki?" to na stronie dokumentacji są opisane pogrupowane funkcje :) Ale dokumentacja jest jeszcze nie kompletna więc kilka funkcji może nie zawierać dostatecznych informacji)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 164
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

Te obrazki np. słońce czy pociski są tak fajnie rozmyte kodem czy tak ładnie narysowane po prostu :P? i ten efekt podczas uderzenia asteroidy w słońce te okręgi to obrazek czy też kod :P?

 

E:

Jeżeli chce stworzyć jakiś efekt to krok po kroku :P

1. Tworze obiekt.

2. Wpisuje Header().

3. Ustawienia zależnie co to ma być.

4. Step zależy od ustawień.

5. Rysuje ten obiekt ( ale czego akurat w User defined ? )

Odnośnik do komentarza
Udostępnij na innych stronach

Te obrazki np. słońce czy pociski są tak fajnie rozmyte kodem czy tak ładnie narysowane po prostu tongue2.gif? i ten efekt podczas uderzenia asteroidy w słońce te okręgi to obrazek czy też kod tongue2.gif?

I to i to. To znaczy, normalnie w photoshopie narysowałem je (słońce tylko przerobiłem, aby miał kanał alpha na poświacie) ale efekt nie był wystarczający i bloom uwydatnił rozmycie :)

 

User Event 0 dałem jako bezpieczne rozwiązanie. Zawsze możesz dać w draw, wtedy zamiast każdemu wywoływać User Event 0 wywołujesz Draw (który jest automatycznie wyłączany w inicjacji silnika, jeśli używasz trybu graficznego). Jednak gdy jakimś cudem nie uda się włączyć trybu graficznego to silnik będzie używał tego z GMa a co za tym idzie będzie w drawie automatycznie chciał wyświetlać polecenia graficzne OGL, a różne karty różnie zareagują, jedne po prostu zignorują je a inne mogą wywołać błąd w najgorszym wypadku. Dla tego najbezpieczniej wywoływać User Event :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

Ok, ponieważ dodałem w XenoNie kilka ulepszeń, a więc przyszła pora na dodanie obsługi modułu fizycznego, co za tym idzie skończenie pełnej wersji PlayGate. Jednak zastanawiam się jaki sposób pogrupowania / upakowania funkcji zastosować. Normalne DLLe dla GM mają masę funkcji każda od czegoś innego, ja tak robiłem w starych wersjach XenoNa, ale w PlayGate pogrupowałem je i jedna funkcja zawiera w sobie kilka konkretnych, zależnie jakie argumenty podamy, niby to prostsze, bo jest kilka funkcji które robią wszystko co trzeba, czyli mało funkcji do zapamiętania, ale wykombinowałem aby dać jakąś główną funkcję dla każdej grupy albo w ogóle jedną funkcję i zależnie od zmiennej stanu będzie ta główna funkcja wywoływać tę konkretną. W tedy pozostanie tylko znać góra 8 funkcji głównych i jedynie zmienne stanu, czyli nazwy operacji jakie chcemy wykonać. Niby to jest lepszy sposób ale wtedy trzeba by było dokładnie opisywać funkcje dla każdej zmiennej stanu. Wiem że to może brzmi dla większości jak bełkot ale chodzi w tym wszystkim o ograniczenie ilości funkcji do zapamiętania, ale za to zwiększenie ilości nazw akcji jakie chcemy wykonać. I to mnie męczy, bo nie wiem jak dla Was będzie najlepiej używać PlayGate? Proszę o odpowiedź, jak Wy to widzicie i jak by Wam było łatwiej korzystać :)

 

PS. I nie próbujcie mi tu raportować za doublepost - celowo nie łączyłem postów aby to miało sens i abyście przeczytali bo to ważne ;P

Odnośnik do komentarza
Udostępnij na innych stronach

DOUBLEPOST I JESZCZE MODERATOR! (Żarcik :jezor: )

 

Mi wszystko działa.... sprawdźcie sobie kompy, albo karty graficzne i pamięć RAM. I tera offtop, koleś ściąga, uruchamia. Komp mu się zawiesił. Wymagania:

 

Procesor 200 MHz

Karta graficzna 16 MB

Pamięć RAM 8

 

No to mu nie pójdzie :lol: .

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Już dziś (20.05.2009) w godzinach popołudniowych (lub najpóźniej wieczornych) wydam pełną stabilną wersję PlayGate wraz z przykładem mini-gry do ostatecznego testu silnika, a po tym wypuszcze go na YoYoGames (czyli premiera na dniach :D) gdy będę miał pewność, że wszystko działa jak należy :)

PlayGate przeszedł totalną przemianę struktury oraz dodane zostały dwa nowe moduły (aktualnie zawiera w sobie 3 stabilne z 6 wszystkich modułów, w przyszłych wersjach zostanie dodana reszta). Została też określona lista wszystkich modułów jakie będzie posiadał XenoN. Oto one, oraz ich aktualny stan:

icoChaosMini.pngChaos - Moduł fizyczny. Gotowy (rozwijany)

icoPhotonMini.pngPhoton - Moduł graficzny. Gotowy (rozwijany)

icoEchoMini.pngEcho - Moduł dźwiękowy. Gotowy

icoPsycheMini.pngPsyche - Moduł sztucznej inteligencji. W fazie testów

icoUnknownMini.pngTimeBridge - Moduł kontroli czasu wirtualnego. W fazie produkcji

icoUnknownMini.pngEther - Moduł sieciowy. W fazie produkcji

 

PS. A tu lista wszystkich funkcji jakie można będzie używać w wersji 1.0 (po jednej dla wszystkich czynności danego modułu, konkretyzujemy za pomocą zmiennych stanu, oraz zależnie od podawanych argumentów):

 

*Generalne:

pgHeader() - skrypt nagłówkowy (wszędzie tam gdzie używamy PlayGate)

pgLibraryFree() - zwolnienie biblioteki

pgLibraryLoad() - załadowanie biblioteki

 

*Obsługa modułów:

pgChaos() - obsługa fizyki

pgData() - obsługa danych

pgEcho() - obsługa dźwięku

pgInterface() - obsługa klawiatury i myszy dla okien PlayGate

pgMath() - obsługa obliczeń matematycznych

pgPhoton() - obsługa grafiki

pgSystem() - obsługa systemu (maszyny stanów) XenoN Core

pgWindow() - obsługa okien

Odnośnik do komentarza
Udostępnij na innych stronach

grafika w bibliotece (używa OpenGL), dźwięk również (używa Audiere, ale on jest na razie jako substytut), fizyka też (XenoN). Wszystkie moduły uniezależniłem od GMa, a w grafice dałem możliwość wyboru pomiędzy rysowaniem do okna GMa, a oknami utworzonymi w XenoNie (bonus w postaci automatycznej obsługi przezroczystości i tray'a). Dodatkowo każde XenoNowe okno będzie miało własny rendertarget, ale można tworzyć dodatkowe (coś a'la GMowe surfaces).

Odnośnik do komentarza
Udostępnij na innych stronach

a widziałeś jak to trzeba zrobić? jakie narzucenia są? dolna krawędź okna musi być poniżej paska zadań, wszystko przez CLASSDC i jeszcze jednej właściwości GMowego okna, które wyłapałem z testów. A poza tym skoro będzie się używać XenoNowego renderingu to najlepiej rysować od razu na specjalnie przystosowanym oknie :)

 

EDIT:

Ale wtopa, testuje okna i zapomniałem dodać interfejs klawiatury i myszy bo GM za niego nie odbierze komunikatów xD

EDIT2:

Interfejs dodany, kodowanie przycisków klawiatury oraz myszy takie same jak w GM :)

Odnośnik do komentarza
Udostępnij na innych stronach

(Ważna informacja więc nie raportować :P)

 

Daję tu EXEca z prac nad przykładem do nowego PlayGate (sceneria wzięta ze starego silnika Soullanda (tego z filmiku)).

W aktualnej wersji przykładu zostały użyte 2 moduły - Photon oraz Chaos, a moduł Echo będzie w ostatecznej wersji przykładu, gdy dostanę utworek od Jakima oraz dodam dźwięki otoczenia :D Czyli w skrócie: z GMa pozostały tylko eventy, całą grafikę i fizykę obsługuje PlayGate.

Ściągajcie i piszcie co Wam się podoba, a co nie, oraz co proponujecie dodać do przykładu (ale animacje bohatera olejcie, bo to na razie czysta prowizorka :P)

 

Klawiszologia:

LPM - marsz do celu.

PPM - skok przez czarną dziurę (im dłużej przytrzymywany, tym dłużej aktywna czarna dziura, co za tym idzie, jej siła wzrasta i otoczenie też przez nią skacze :P)

 

Download: https://gmclan.org/up1105_3_PGexample.html

Odnośnik do komentarza
Udostępnij na innych stronach

Supcio, tylko troche te czarne dziury jak wsysają drzewa to dziwnie wygląda, ale ogólnie spoko

drzewka ok, gdyby tylko im jakies ograniczenia dac, bo lamia sie w pol.

Mam świadomość tego i ten problem mnie męczy, bo nie chcę specjalnie dawać modelu drzewa w przestrzeni 3D, choć to by rozwiązało problem, ale też utrudniło by Wam zrozumienie obsługi (a lepiej zacząć od 2D), jednak spróbuję zamienić kolejność operacji fizycznych (dam pierw obsłużenie czarnych dziur, a potem siły kowalencyjne, bo teraz jest na odwrót) oraz dodać 2 siły kowalencyjne, łączące krzyżowo przeciwległe wierzchołki drzewa.

 

Nie wygląda to dobrze... - 25 fps'ów. ;/

Jaka karta i ile (/jakie) programów było w tle?

 

Hahalololo xD

Czemu jak staniemy przed drzewem, i będziemy się szybko "teleportować" czarną dziurą, to drzewo może polecieć za nami? xd

Tak jak Crack napisał: bo i ono wpada w czarną dziurę (w końcu w jej naturze jest to, że wsysa wszystko co w pobliżu do siebie :))

 

Masz w planach dorobienie szejderów bajerów, czy bump mappingów?

Bardzo dobre pytanie :) odpowiedź brzmi: tak :) Właśnie trwają prace nad obsługą shaderów CG :) (kurcze, powinienem zrobić jakąś publiczną listę TODO :P)

Odnośnik do komentarza
Udostępnij na innych stronach

w pierwotnej postaci (w wersji do Soullanda) czarna dziura była dodatkowo z blendingiem addywnym, ale z kolei nie wyglądało to na czarną dziurę, a bardziej na jakiegoś duszka, ale zaraz sie to da i zobaczymy czy efekt większości się spodoba :)

Odnośnik do komentarza
Udostępnij na innych stronach

ERROR in

action number 1

of Step Event

for object EngineGM:

 

Error in code at line 1:

 

 

at position 18: Unknown variable follow

 

 

ERROR in

action number 1

of Step Event

for object EngineGM:

 

Error in code at line 1:

 

 

at position 18: Unknown variable follow

 

Przy naciśnięciu spacji zaraz po otworzeniu aplikacji

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm, to pewnie humorki GMa :/ a spróbuj odpalić jeszcze raz, tak czy inaczej wrzucę później nowszą wersję :P

PS. Mam nadzieję że woda się podoba (a zwłaszcza efekt kaustyk (rozbłysków światła na wodzie)) :D

Odnośnik do komentarza
Udostępnij na innych stronach

Marku, a masz Viste czy jak?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...