Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Gra 2D RPG - szukam kogoś do współpracy

Ostatnio zmodyfikowano 2024-08-19 13:58
Autor Wiadomość
tBane
Temat założony przez niniejszego użytkownika
» 2024-08-17 21:19:10
Dodałem kilka rzeczy do swojej gry.

-zbroje, spodnie, hełmy można je zbierać, zakładać i wpływają na wygląd postaci
-bronie w grze, z których można korzystać tzn. ubrać je, walczyć nimi, a są to między innymi topór, miecz, pałka, młot ...
-tarcze - można je założyć i wtedy zwiększają obronę
-kilka potworów w tym troll, kolcorożec, bies, szpon, golem ...
-system ekwipunku - można przeglądać zawartość naszego plecaka oraz zakładać przedmioty na bohatera
-trade system - można teraz przenosić przedmioty np. z mebli, skrzyń do plecaka i odwrotnie
-wstępny system zadań - na razie są 3 podstawowe zadania, można wyświetlać dziennik z zadaniami
-wstępny panel gracza - można przeglądać poziom oraz statystyki naszego bohatera
-bodysets - kilka bazowych wyglądów NPC np. man-blackhaired, woman-redhaired, boy-brownhaired etc ..

https://github.com/tBane1995/2D-RPG

jest kilka bazowych wyglądów NPC'ów
jest kilka bazowych wyglądów NPC'ów
dodano kilka potworów
dodano kilka potworów


P-181446
pekfos
» 2024-08-18 12:24:19
Jak chcesz się pochwalić konkretną wersją gry, możesz dodać ją jako release na githubie (https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). W innym razie, dobrze by było mieć na githubie wszystko co potrzebne do zbudowania gry, jak choćby solucja i projekt Visuala, albo nagłówki SFML (skoro i tak wrzuciłeś ~7MB plików DLL). Jako test możesz sklonować repo do osobnego katalogu i sprawdzić czy sam jesteś w stanie to zbudować.

Nie wiadomo jak tą grą sterować. Trzeba albo sprawdzić kod, albo próbować wszystkiego jak leci, przy czym to że gra reaguje na myszkę tylko utrudnia zgadywanie. Więc jak np NPC proponuje handel, to nie wiem czy muszę znać jakiś klawisz czy tej funkcjonalności po prostu nie ma. Możesz wrzucić opis sterowania do ekranu powitalnego, to i tak jest prowizorka póki nie ma menu.
W walce bardzo brakuje jakiejś animacji trafienia i chybienia, bo bez tego nie wiadomo co się w ogóle dzieje. Dziobak ma większy zasięg ataku od gracza, więc można stać i machać spacją bez końca, a nawet jak jest w zasięgu to gracz ma ledwie 25% szansy trafienia. Lepiej by było mieć częstsze, ale słabsze trafienia.
Broń w tej grze wydaje się być kosmetyczna. Na start pięściami zadaję 12 obrażeń, a pałką 13. Do tego tylko obrażenia od pięści się skalują od statystyk, a "bonus od broni" jest stały.
P-181447
tBane
Temat założony przez niniejszego użytkownika
» 2024-08-18 14:48:36
Dzięki za rady :-)
Na pewno zrobię ten ekran startowy z informacją jak sterować, to bardzo dobry pomysł.
Co do walki to mam na razie prosty system trafień tzn.
C/C++
void attack( Unit * attacker, Unit * defender ) {
   
   
if( rand() % attacker->DEXTERITY - rand() % defender->DEXTERITY > 0 ) {
       
defender->takeDamage( attacker->getDamage() );
   
}
   
}

Wiem, że muszę to poprawić tylko jeszcze nie wiem jak. Spróbuję również zaimplementować animację trafienia. Co do wielkości obrażeń zadawanych od broni, to mają być stałe - tak będzie prosto i wygodnie :-)
P-181451
pekfos
» 2024-08-18 15:32:25
Symulacja na szybko:
atk\def 1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19
   1   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%   0%
   2  49%  24%  17%  12%  10%   8%   8%   6%   6%   6%   4%   4%   4%   4%   3%   3%   2%   3%   2%
   3  67%  50%  33%  25%  18%  17%  15%  13%  10%  11%   9%   8%   8%   7%   6%   7%   5%   5%   5%
   4  75%  63%  49%  36%  30%  25%  23%  19%  18%  17%  14%  11%  11%  11%  10%   9%   7%   8%   8%
   5  82%  70%  60%  51%  41%  32%  30%  27%  23%  21%  18%  15%  15%  14%  12%  15%  12%  11%  11%
   6  84%  76%  67%  59%  49%  42%  38%  33%  28%  27%  23%  20%  19%  18%  16%  16%  13%  15%  12%
   7  86%  79%  71%  63%  57%  51%  44%  37%  34%  33%  27%  26%  23%  21%  20%  18%  15%  18%  14%
   8  87%  80%  73%  66%  62%  55%  50%  44%  39%  37%  33%  28%  26%  25%  24%  23%  17%  20%  17%
   9  89%  84%  77%  72%  66%  61%  56%  50%  45%  40%  36%  34%  31%  28%  26%  26%  22%  25%  20%
  10  91%  86%  80%  75%  70%  66%  60%  54%  49%  47%  42%  36%  33%  30%  29%  29%  26%  26%  21%
  11  93%  88%  83%  78%  74%  70%  64%  59%  55%  53%  46%  44%  40%  36%  32%  32%  29%  30%  26%
  12  91%  87%  82%  77%  72%  69%  66%  63%  57%  54%  50%  44%  41%  39%  35%  35%  30%  30%  27%
  13  94%  90%  85%  80%  77%  74%  70%  66%  62%  60%  55%  52%  47%  44%  42%  41%  35%  36%  30%
  14  93%  89%  85%  81%  79%  75%  71%  66%  64%  62%  58%  53%  50%  45%  45%  41%  36%  37%  32%
  15  94%  90%  85%  83%  81%  76%  73%  69%  67%  65%  62%  57%  52%  50%  46%  46%  41%  39%  35%
  16  94%  90%  86%  84%  82%  78%  75%  72%  68%  67%  63%  59%  55%  52%  52%  47%  44%  43%  38%
  17  94%  92%  89%  86%  83%  79%  78%  74%  73%  69%  65%  62%  61%  57%  54%  52%  48%  46%  41%
  18  94%  92%  88%  86%  82%  80%  78%  75%  73%  70%  68%  64%  62%  57%  55%  54%  50%  48%  43%
  19  94%  90%  88%  84%  83%  80%  77%  74%  72%  70%  67%  66%  62%  58%  56%  55%  51%  52%  45%
Możesz trochę poprawić sytuacje dodając stałą do dex w tym warunku. Wszystko się trochę przesunie w bardziej dwucyfrowe procenty trafień. Np
C/C++
if( rand() %( attacker->DEXTERITY + 3 ) - rand() %( defender->DEXTERITY + 3 ) > 0 )
   
Dopóki dex jest nieujemne, nie ma ryzyka dzielenia przez zero, albo 0% szansy trafienia. Załączam kod jakbyś chciał poeksperymentować z innymi warunkami.
C/C++
#include <cstdio>
#include <cstdlib>

int main()
{
   
printf( "     " );
   
for( int a = 1; a < 20; ++a )
       
 printf( "%4d ", a );
   
   
printf( "\ratk\\def\n" );
   
   
for( int dex_atk = 1; dex_atk < 20; ++dex_atk )
   
{
       
printf( "%4d", dex_atk );
       
for( int dex_def = 1; dex_def < 20; ++dex_def )
       
{
           
int hit = 0, tests = 1000;
           
           
srand( 0 );
           
for( int i = 0; i < tests; ++i )
           
{
               
if( rand() % dex_atk - rand() % dex_def > 0 )
                   
 ++hit;
               
           
}
           
           
printf( " %3.0f%%", 100.f * hit / tests );
       
}
       
printf( "\n" );
   
}
}
P-181453
tBane
Temat założony przez niniejszego użytkownika
» 2024-08-18 18:15:18
bez srand() wydaje się jakby działało lepiej dla niskich wartości:

atk\def 1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19
   1  38%  29%  23%  20%  16%  17%  14%  12%  12%  11%  11%  10%  10%  10%   8%   8%  10%   8%   8%   7%   7%   6%   6%   5%   5%   6%   5%   5%   4%
   2  49%  40%  34%  27%  24%  23%  20%  19%  18%  17%  12%  14%  14%  13%  10%  11%  10%  10%   9%   8%   7%   8%   7%   6%   6%   5%   7%   5%   7%
   3  58%  48%  39%  35%  31%  28%  26%  22%  22%  18%  18%  15%  13%  14%  14%  14%  13%  12%  12%   9%  10%  10%  10%  10%   9%   8%   8%   7%   7%
   4  62%  55%  51%  45%  34%  30%  29%  26%  25%  22%  22%  19%  19%  19%  17%  16%  14%  14%  14%  14%  13%  12%  13%  11%  11%  10%  11%  11%   8%
   5  66%  60%  55%  48%  47%  38%  35%  30%  28%  27%  24%  22%  22%  20%  17%  18%  18%  17%  15%  15%  16%  12%  12%  13%  13%  12%  10%  12%  11%
   6  74%  67%  62%  54%  49%  44%  39%  38%  35%  31%  31%  25%  24%  23%  24%  22%  20%  20%  18%  16%  16%  17%  14%  17%  14%  14%  14%  13%  13%
   7  75%  68%  63%  58%  55%  50%  46%  44%  37%  38%  32%  29%  30%  23%  24%  23%  25%  24%  22%  20%  21%  15%  17%  18%  16%  16%  14%  15%  12%
   8  77%  71%  70%  63%  58%  54%  50%  45%  43%  42%  35%  35%  31%  33%  26%  27%  26%  23%  20%  24%  21%  19%  17%  21%  18%  18%  17%  15%  13%
   9  80%  75%  70%  65%  60%  59%  55%  50%  47%  39%  40%  38%  34%  32%  29%  27%  26%  29%  25%  23%  22%  22%  20%  20%  20%  21%  18%  19%  17%
  10  83%  79%  72%  70%  64%  62%  57%  54%  52%  47%  42%  41%  38%  35%  32%  33%  30%  27%  28%  25%  25%  27%  22%  23%  19%  21%  18%  19%  19%
  11  83%  78%  75%  70%  70%  61%  62%  57%  55%  52%  46%  42%  42%  39%  37%  32%  33%  30%  31%  26%  28%  26%  26%  24%  23%  20%  22%  21%  17%
  12  84%  79%  77%  73%  70%  68%  67%  61%  55%  53%  49%  45%  44%  41%  37%  36%  35%  32%  35%  29%  29%  27%  26%  26%  24%  24%  23%  23%  21%
  13  85%  83%  78%  76%  73%  70%  67%  62%  57%  55%  54%  49%  43%  44%  41%  39%  37%  35%  33%  35%  30%  30%  30%  30%  26%  25%  27%  25%  21%
  14  84%  83%  82%  77%  75%  72%  69%  67%  60%  58%  56%  50%  48%  46%  45%  40%  39%  37%  34%  34%  31%  31%  31%  29%  28%  30%  29%  25%  26%
  15  86%  84%  80%  79%  73%  73%  73%  68%  64%  59%  58%  53%  54%  52%  48%  46%  40%  39%  38%  37%  35%  33%  34%  30%  31%  30%  28%  27%  27%
  16  87%  84%  80%  78%  78%  71%  72%  69%  66%  62%  59%  58%  55%  50%  50%  48%  43%  43%  40%  39%  35%  33%  33%  35%  31%  31%  32%  28%  28%
  17  88%  83%  80%  79%  75%  76%  72%  72%  66%  63%  62%  60%  57%  59%  53%  50%  47%  46%  44%  44%  34%  40%  37%  35%  34%  33%  32%  30%  29%
  18  89%  88%  84%  80%  77%  77%  75%  69%  68%  65%  64%  65%  61%  58%  54%  52%  50%  48%  47%  41%  41%  44%  36%  36%  37%  35%  34%  30%  30%
  19  89%  88%  86%  84%  80%  76%  76%  72%  71%  67%  66%  63%  62%  58%  59%  54%  53%  50%  47%  43%  44%  41%  39%  36%  38%  37%  33%  33%  30%
  20  90%  87%  83%  85%  81%  80%  77%  73%  74%  71%  68%  65%  62%  59%  58%  55%  54%  52%  51%  48%  45%  43%  42%  40%  38%  37%  37%  37%  34%
  21  91%  88%  86%  83%  83%  81%  78%  76%  74%  71%  68%  67%  62%  64%  62%  57%  57%  53%  54%  50%  50%  47%  44%  41%  41%  41%  38%  36%  35%
  22  90%  88%  86%  84%  81%  81%  77%  79%  76%  73%  71%  68%  66%  63%  62%  59%  56%  57%  54%  52%  52%  46%  47%  46%  42%  40%  38%  42%  36%
  23  91%  88%  87%  84%  83%  83%  80%  77%  75%  74%  74%  71%  67%  66%  63%  61%  58%  60%  55%  54%  49%  49%  47%  46%  47%  40%  45%  38%  41%
  24  91%  90%  88%  85%  85%  82%  80%  80%  76%  72%  73%  68%  70%  68%  65%  62%  59%  56%  57%  56%  53%  52%  52%  50%  47%  46%  45%  44%  40%
  25  91%  90%  87%  86%  85%  83%  83%  80%  77%  74%  75%  71%  66%  66%  67%  65%  64%  60%  60%  56%  56%  54%  50%  52%  47%  45%  44%  46%  39%
  26  93%  91%  88%  87%  84%  84%  82%  79%  76%  72%  74%  70%  72%  65%  68%  67%  62%  62%  59%  61%  59%  55%  55%  51%  50%  46%  47%  47%  46%
  27  91%  91%  86%  86%  83%  84%  80%  81%  79%  77%  75%  71%  72%  70%  68%  67%  64%  65%  59%  61%  56%  58%  55%  54%  50%  50%  49%  48%  44%
  28  94%  91%  88%  89%  88%  84%  83%  79%  79%  77%  71%  74%  74%  70%  68%  69%  65%  64%  61%  62%  62%  57%  58%  54%  53%  51%  48%  47%  48%
  29  92%  92%  88%  89%  86%  83%  84%  80%  80%  76%  78%  77%  73%  72%  72%  70%  68%  66%  62%  64%  58%  56%  60%  56%  53%  56%  49%  52%  50%
P-181457
pekfos
» 2024-08-18 18:37:13
To jest metoda statystyczna, obserwujesz błąd obliczeń. Możesz go zmniejszyć zwiększając liczbę prób. srand ze stałą jest tam po to by każdy test działał na tym samym ciągu losowym, przy każdym uruchomieniu.
P-181458
tBane
Temat założony przez niniejszego użytkownika
» 2024-08-18 19:17:58
OK. Ale zostanę przy samym rand().
Co do widoczności trafień, pomyślałem, że zrobię tak jak jest w grze Heroes Lore: Wind of Soltia, czyli będę wyświetlał info jakie obrażenia zostały zadane lub "miss"jeżeli będzie pudło.

No i wrzuciłem wersję release na githuba, więc można pobierać.
P-181459
tBane
Temat założony przez niniejszego użytkownika
» 2024-08-18 20:46:47
No i zrobione wstępnie, muszę tylko uwzględnić jeszcze "wysokości jednostek". Ale dziś już mi się nie chce :P

more miss and LVL UP
more miss and LVL UP
P-181460
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona