Skocz do zawartości

Nad czym aktualnie pracujesz?


ANtY

Rekomendowane odpowiedzi

KnockOut - Ring Entrance

Mozecie mnie teraz zjechać za animacje i jakość (WMM mi zepsul a juz drugi raz nie chcialo mi sie renderowac) smile2.gif

 

EDIT:

Nast trailer już z pokazaną walka smile2.gif No i mam nadzieje że w lepszej jakości jak dorwe dobry prog do obróbki video.

E2: W nazwisku Witka zjadłem C i przy okazji zauważyłem że jest WBO zamiast WBC (przy testach pewnie zmieniłem) smile2.gif

 

Jak dla mnie, to wygląda dobrze.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Heloł!

 

Teraz zaprezentuję wam takie tam cóś... ogółem nie jest to gra tylko tak jakby szkolę się w GML. To prosty generator map 3D (dokładnie, zgapiłem od Minecrafta <_< ). Znajdziecie go w moim Uploaderze: https://gmclan.org/up7193.html

Trzeba kliknąć po około sekundzie (jeżeli masz dobry procesor, to możesz po dłuższym czasie) dwa razy spację, by zatrzymać generowanie się świata

PS. Nie grzebcie w środku pliku, bo mam tam taki bajzel, że się go wstydzę :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Tilesy będą lekko większe niż instancje, chyba lepiej będą wtedy pasować.

Tileset będzie mniej więcej tak wyglądał, później go jeszcze dopracuję.

LotA.jpg

 

A teraz zabieram się w końcu do robienia systemu ataku. Na obronę będzie wpływały nie tylko statystyki bazowe jednostek ale także teren na którym stoi jednostka oraz jaką ma kondycję. Nie wiem czy jeszcze wprowadzać doświadczenie jednostek, może będzie pomyślę nad tym.

Odnośnik do komentarza
Udostępnij na innych stronach

Do obliczania zasięgu używam własny algorytm napisany można to powiedzieć tak na chłopski rozum bez żadnych poradników.

 

1. Tworzę ds_grid ( _g ) wartości komórek będą oznaczać ile jednostce ( która wywołała sprawdzanie zasięgu ) zostało na danym polu 'punktów ruchu' ( puki co na tym etapie jest pusta ).

 

2. Czyszczę ds_grid zasięgu ( _g ) wartością którą przyjąłem jako niezbadany tile ( u mnie to stała unknown = -100 )

 

3. Tworzę 2 Tablice stackX[0] oraz stackY[0] ich wartości to referencje na tymczasowe ds_stack. Te ds_stacki później posłużą jako kolejka niesprawdzonych jeszcze komórek.

 

4. Komórkę w ds_grid ( _g ) na której stoi teraz jednostka zapełniam wartością jej szybkości/'punkty ruchu' ( u mnie to zmienna _s ) oraz ustawiam pierwszą pozycję do kolejki sprawdzeń. To jest ta pozycja od której ruch ma się rozejść czyli tam gdzie jednostka aktualnie stoi i dodaję tą pozycję do ds_stack.

GML
ds_grid_set( _g, _x, _y, _s ); ds_stack_push( _stackX[0], _x ); ds_stack_push( _stackY[0], _y );

 

5. Teraz robię pętle która najpierw pobiera pozycję z ds_stacków i z tej pozycji bada 4 kolejne tą na 1 do góry od niej, 1 na dół, 1 w lewo, 1 w prawo i jeżeli uzna że to pole jest możliwe do przebycia przez jednostkę ( sprawdzane są czy 'punkty ruchu' się nie tym polu nie wytraciły ) to ustawia tą komórkę w ds_grid ( _g ) o wartość pozostałych 'punktów ruchu' i wkłada pozycję tej komórki na ds_stack. Pętla kończy się kiedy wszystkie ds_stacki zostaną puste.

 

To wygląda tak:

! Z edytowane - zapomniałem o usunięciu stacków z pamięci na końcu

GML
for ( i = 1; i < _s; i += 1 )

{

_size = ds_stack_size( _stackX[i-1] );

_stackX = ds_stack_create(); _stackY = ds_stack_create();

for ( j = 0; j < _size; j += 1 )

{

_x = ds_stack_pop( _stackX[i-1] );

_y = ds_stack_pop( _stackY[i-1] );

_remain = ds_grid_get( _g, _x, _y ); // tutaj czytam ile pozostalo ruchu na tym polu

// funkcja ta zwraca ile punktow ruchu pozostalo na badanym polu po uwzglednieniu kosztow ruchu tilesow

_square = check_square_move( _g, _x, _y - 1, _remain );

if ( _square > 0 )

{ ds_grid_set( _g, _x, _y - 1, _square );

ds_stack_push( _stackX, _x );

ds_stack_push( _stackY, _y - 1 ); }

 

_square = check_square_move( _g, _x, _y + 1, _remain );

if ( _square > 0 )

{ ds_grid_set( _g, _x, _y + 1, _square );

ds_stack_push( _stackX, _x );

ds_stack_push( _stackY, _y + 1 ); }

 

_square = check_square_move( _g, _x - 1, _y, _remain );

if ( _square > 0 )

{ ds_grid_set( _g, _x - 1, _y, _square );

ds_stack_push( _stackX, _x - 1 );

ds_stack_push( _stackY, _y ); }

 

_square = check_square_move( _g, _x + 1, _y, _remain );

if ( _square > 0 )

{ ds_grid_set( _g, _x + 1, _y, _square );

ds_stack_push( _stackX, _x + 1 );

ds_stack_push( _stackY, _y ); }

 

}

ds_stack_destroy( _stackX[i-1] );

ds_stack_destroy( _stackY[i-1] );

}

ds_stack_destroy( _stackX[_s-1] );

ds_stack_destroy( _stackY[_s-1] );

 

A do narysowania pathu po którym porusza się jednostka ( ta biała linia na screenie używam wbudowanego w GMa A* mp_grid )

Odnośnik do komentarza
Udostępnij na innych stronach

A taka ważna optymalizacyjna sprawa. Żeby pętla nie sprawdzała komórek na których zostały już zapisane punkty ruchu to w skrypcie

check_square_move( moves_grid, x, y, remain ) trzeba dać gdzieś warunek:

 

GML
if ( ds_grid_get( argument0, argument1, argument2 ) == unkown )

{

// tutaj oblicznie pozostalych puntow ruchu i zwracanie ich

}

else

{

return -1;

}

Edit: u mnie ten skrypt jest bardziej rozbudowany bo sprawdzam nie tylko typ tile ale także czy coś na nim nie stoi a jak tak to co, bo np przez jednostki z teamu da się przejść a przez wrogie nie.

Odnośnik do komentarza
Udostępnij na innych stronach

Spokojnie, on sobie leci dalej, tylko chciałem uchwycić jak jeszcze nie styka się z czujnikiem. Tak na początku prac można zobaczyć tylko lustra, ale w kolejnych łorldach dojdą stałe "lustra" i teleportery, mam nadzieje, że urozmaici to troszkę całą grę :D

Odnośnik do komentarza
Udostępnij na innych stronach

Aktualnie jestem na takim poziomie prac, że gra praktycznie będzie gotowa za parę dni, bo pozostało mi zrobienie mapek, menu i wskazówek. Chętnie zrobiłbym także level editor, bo w samej grze przewiduje tylko 21 mapek (nie chce jej przedłużać na chama, lepsze krótsze niż nudne monotonne i etcetera). Co do ciemności nie znajduje racji bytu w tej części, bo nie pasuje do "fabuły", ale podsunołeś mi fajny pomysł, na kolejną, następną część? Ale to później najpierw skończmy to :D

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

 

No, no! Dobra robota :thumbsup: co prawda nie cierpię takich gier RPG (sorry za me gusta), ale dla fanów owego gatunku z pewnością będzie to niezła gratka :)

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm. Może to poprostu ten typ terenu. W naero jest ich wiele (różnych), ale jeśli takie opinie się powtórzą to postaram się coś z tym zrobić.

Nie wiem za bardzo jednak co. Musi byc "napaciane" gdyż sporo roślin, które widać na filmie można poprostu wyzbierać dostając przedmioty do wykorzystania (na filmie np. leczę się kwiatami, które rosną na zewnątrz posągu).

Odnośnik do komentarza
Udostępnij na innych stronach

Nie ma takiej opcji. Mapa jest podzielona na pewne obszary, z czego każdy ma coś charakterystycznego dla siebie, i na każdym znajdziesz jakiegoś npc z interesem do Ciebie.

Generator nie stworzy mi mapy odwzorowującej fabułę :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

TAAAAAAAAAAAAAK

Grasz normalnie tylko łazisz po jednej planecie z wieloma innymi kulkami (sterowanymi przez żywych graczy naturalnie), wymieniasz się z nimi tatuażami (zakładając że będą) itp i wykonujesz razem z nimi misje których sam nie dasz rady

Skazane na sukces

Odnośnik do komentarza
Udostępnij na innych stronach

Przykład takiego MMO z naciskiem na fabułę jest tutaj:

http://www.my-fantasy.net/start2/ kiedyś jak w to grałem to jeszcze fabuła nie była ukończona ( kończyła się na 80 levelu ) i mało było sekretnych drug fabularnych, teraz nie wiem jak jest, pewnie dodali po prostu więcej wszystkiego :P

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