Skocz do zawartości

Twuj Stary


Czołg Krymski

Rekomendowane odpowiedzi

  • Filar Społeczności

Twuj Stary

fabuła:

póki co trochę jej brak. Z kolejnymi wpisami wypełnię to polę

gatunek: walking simulator, narrative

grafika: ja

udźwiękowienie: ja

programowanie: ja

 

Zobaczymy jak się ten projekt potoczy. Jak na razie pracuję nad technicznymi sprawami, później zajmę się samym gameplayem. W zamyśle ma to być gra typu walking simulator nastawiona na obyczajową fabułę, eksplorację i muzykę. Wstępna moja idea jest taka, że jesteśmy pewnym mężczyzną, który postanawia odwiedzić swojego starego samotnego ojca gdzieś w górach. Wokół tego obuduję cały plot. No i będzie towarzyszyć graczowi piesek

n91Rlpq.png

1kF5Tlp.png

tgu7fKb.png

 

6J5DXw6.png

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

właśnie ogarniam sobie system jazdy starą Vespą, która będzie przydatnym środkiem transportu, ale nie będzie mogła wjechać na pagórki większe, dlatego będzie zdana na drogi. Symulowana fizyka jazdy jeszcze troszkę kuleje, ale i tak cud, że udało mi się coś wyskrobać, bo ni cholery nie ogarniałem jak to ugrać z heightmapą. Postać jeszcze nie siedzi na skuterze, bo to tylko prototyp. Nie umiem modelować i chociaż wygląda to niczego sobie, to jednak cholercia troszkę chyba za dużo poligonów i się nieco gryzie z oprawą. Jeszcze pokombinuję nieco

 

edit: z tym dźwiękiem strasznie mi się to kojarzy z łazikami z Colobota xD

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

benc. Strasznie się napieprzyłem, żeby jakoś niekartonowato bohater ujeżdżał tę maszynę, ale ostatecznie ruchy wyszły bardzo naturalne

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

no właśnie wiem, a cholernie mi się nie chce :D modelowanie to dla mnie udręka i nie wiem za bardzo jak to zrobić, by było i czytelnie i low poly. Może jakiś gmclanowicz by nieco pomógł w stworzeniu modelu :D?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Niesamowita jest u ciebie dbałość o szczegóły bardzo mi się podoba, kolizje wiadomo do dopracowania.

A o co chodzi dokładnie z tym? Jaki masz problem?

 

a dziękuję bardzo. Co do heightmapy po prostu jest to jedyny element (prócz dlla do dźwięków), który opieram czysto na gotowych skryptach, bo nie rozgryzłem jego działania. No i użyłem bardzo starego surowego przykładu co już używałem z dobre 5 lat temu http://www.host-a.net/u/the%20sivart/3d%209.gmk Problem był taki, że nie wiedziałem z początku jak rozwiązać kwestię zmiany nachylenia motoru względem powierzchni, ale potem po prostu po łebkach zrobiłem to tak, że sprawdzam wysokość na heightmapie punktu tuż przed przodem pojazdu, odejmuję ją od wysokości X Y samego motoru i mam jakąś ładną liczbę, która mówi jak zmienia się nachylenie podłoża i od tego sobie wszystko już uzależniłem. Teraz za to mam inny poważniejszy problem z tym wszystkim, bo chciałbym jednak móc sobie nałożyć jakąś teksturę na tego terraina ale bez powielania - rozciągniętą na całą długość heightmapy. I cholera nie wiem jak to zrobić bazując na skryptach, których używam :(

Odnośnik do komentarza
Udostępnij na innych stronach

Wiem o co chodzi i wiem w którym miejscu zmienić, tzn tutaj:

GML (terraincreate)
adraw=true;

for (yy=0;yy<global.sheight;yy+=1){

adraw = !adraw;

z2=ds_grid_get(global.terraingrid,yy,xx+1);

d3d_model_vertex_normal_texture(global.terrainmodel,yy*global.terrainsize,(xx+1)*global.terrainsize,z2,0,0,1,adraw,1);

z1=ds_grid_get(global.terraingrid,yy,xx);

d3d_model_vertex_normal_texture(global.terrainmodel,yy*global.terrainsize,xx*global.terrainsize,z1,0,0,1,adraw,0);

}

 

Zmienić trzeba argumenty xtex i ytex w d3d_model_vertex_normal_texture tylko muszę pomyśleć w jaki sposób.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

o jeny, kłaniam się nisko :) też pogrzebię w tym kodzie i zobaczę, czy da się coś ugrać. Jeszcze raz dzięki!

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra ogarnąłem to:

GML
var maxX1 = (global.sheight-1)*global.terrainsize;

var maxY1 = (global.swidth-1)*global.terrainsize;

 

for(xx=0;xx<global.swidth-1;xx+=1)

{

d3d_model_primitive_begin(global.terrainmodel,pr_trianglestrip);

for (yy=0;yy<global.sheight;yy+=1)

{

z2=ds_grid_get(global.terraingrid,yy,xx+1);

d3d_model_vertex_normal_texture(global.terrainmodel,yy*global.terrainsize,(xx+1)*global.terrainsize,z2,0,0,1,

(yy*global.terrainsize)/maxX1,

((xx+1)*global.terrainsize)/maxY1);

 

z1=ds_grid_get(global.terraingrid,yy,xx);

d3d_model_vertex_normal_texture(global.terrainmodel,yy*global.terrainsize,xx*global.terrainsize,z1,0,0,1,

(yy*global.terrainsize)/maxX1,

(xx*global.terrainsize)/maxY1);

}

d3d_model_primitive_end(global.terrainmodel);

}

 

 

To co zrobiłem to podzieliłem pozycję każdego wierzchołka terenu przez maksymalną szerokość i wysokość terenu.

No i oczywiście wywaliłem te adraw bo już do niczego nie są potrzebne.

 

 

EDIT: Tutaj masz optymaniej

GML
var maxX = (global.sheight-1)*global.terrainsize;

var maxY = (global.swidth-1)*global.terrainsize;

for(xx=0;xx<global.swidth-1;xx+=1)

{

d3d_model_primitive_begin(global.terrainmodel,pr_trianglestrip);

for (yy=0;yy<global.sheight;yy+=1)

{

var z2 = ds_grid_get(global.terraingrid,yy,xx+1);

var xPos = yy*global.terrainsize;

var yPos = (xx+1)*global.terrainsize;

d3d_model_vertex_normal_texture(global.terrainmodel, xPos, yPos, z2, 0, 0, 1, xPos/maxX, yPos/maxY);

 

var z1 = ds_grid_get(global.terraingrid,yy,xx);

var xPos = yy*global.terrainsize;

var yPos = xx*global.terrainsize;

d3d_model_vertex_normal_texture(global.terrainmodel, xPos, yPos, z1, 0, 0, 1, xPos/maxX, yPos/maxY);

}

d3d_model_primitive_end(global.terrainmodel);

}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

o materdeje, działa elegancko :) dziękuję z całego serca za fatygę, bardzo mi tym zadanie ułatwiłeś

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Tylko nie rób gigantycznej tekstury terenu. Jak chcesz zrobić ogromny świat to polecałbym podzielić go na chunki. Wiesz złączyć 4 (lub więcej) modeli terenu ze sobą, żeby te textury nie były takie rozmyte

 

nie no, starcza mi skromna tekstura max 300x300 tylko żeby móc wyodrębnić kolorystycznie niektóre wzniesienia, piach etc. Podział na chunki to jednak kawał roboty, a otwartość mojego świata też nie będzie powalająca, dlatego wolę zadowolić się całym terrainem bez podziałów. Tym bardziej, że heightmapa jest rzędu 64x64, także komputer się nie spoci

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

also, majstruję teraz najbardziej przy optymalizacji i z racji, że chciałbym mieć nieco większe pole renderowania to rezygnuję z klimatów typowo leśnych na rzecz bardziej podhalańskich wiosek, coby zmniejszyć ilość drzew w ostateczności. Ajajaj, gdybym tak znał jakieś tajniki na dużą i efektywną roślinność bez uszczerbku na fpsach :(

wnGd1m7.png

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Stawiałbym że nie chodzi o poly w sumie a o ilość instancji, wiesz jakie GM ma problemy z dużą ich ilością.

 

A właśnie ty to robisz w GM8? Bo tam jest gorzej z optymalizacją niż w GMS.

 

no i tu pies jest pogrzebany właśnie. Mogę sobie na upartego w jednej instancji rysować dwadzieścia drzew, ale robi się to problematyczne w kwestii kolizji. Ano, ciągle sentyment mnie trzyma przy ósemce. Jak znajdę czas to przerzucę projekt do studio i zobaczę, czy będzie sprawniej działać

Odnośnik do komentarza
Udostępnij na innych stronach

Do takich gęsto położonych obiektów stosuje się quadtree: https://gamedevelopment.tutsplus.com/tutori...ce--gamedev-374

 

Można też podzielić mapę na równe części i wtedy przypisać obiektom do którego chunku należą. To stosowałem parę razy bo jest łatwiejsze.

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ę...