RPG2D - czyli wersja prototypowa mojej gry RPG

8

Witam.
Chciałbym podzielić się z Wami prototypową wersją mojej gry. Gra jest we wczesnym stadium rozwoju, ale prace wciąż nad nią trwają i mam nadzieję, że w najbliższym czasie zostanie ukończona. W założeniu ma to być gra 2D RPG, czyli przygodowa, w której będziemy mogli walczyć z przeciwnikami na różne sposoby, rozwijać bohatera, wykonywać wszelakie zadanie no i pchać fabułę do przodu.

Chętnie wysłucham Waszych porad i sugestii co można dodać lub zmienić. :-)

sterowanie:
-WASD + Enter
-Strzałki + Spacja

rozmiar:
4,17 MB

download
RPG2D v0.1.rar (skan w VirusTotal)

image

4

Przydałoby się wideo z gry, dla tych, którzy nie chcą odpalać exe.

Dobrze też by było, gdyby opisał tekstowo o co chodzi itp.
To też dobre ćwiczenie przed reklamowaniem gry wydawcy/klientom.

Elevator pitch itd.

Tutaj masz mały opis: https://www.tinybuild.com/how-to-pitch-your-game

0

Na razie jest to mocny prototyp, świat gry jest bardzo mały tzn. jest tylko to co na załączonym screenie.

1

Jakbyś szukał grafiki, to chyba mógłbyś użyć tego, co przez lata zrobiono dla Battle for Wesnoth:
image

Według tego co piszą ( https://wiki.wesnoth.org/Wesnoth:Copyrights#The_Battle_for_Wesnoth_-_Visual_and_Audio_Contributions ), wszystkie wizualne assety są teoretycznie free.
Tylko musisz spełnić wymagania licencji - Twoja gra musiałaby być open source.

tBane napisał(a):

Na razie jest to mocny prototyp, świat gry jest bardzo mały tzn. jest tylko to co na załączonym screenie.

Ale chyba masz jakiś obraz w głowie tego co chcesz osiągnąć?
Np. na jakiej grze się wzorujesz? Czym się będzie Twoja gra różniła od niej? itd.

1

Tak mam grę na której się wzoruję - Gothic 3 The Beginning ;-)

1

Nie ma wersji online? Albo filmiku z gameplaya chociaż?

1

Chrome mocno blokuje mi pobranie tego pliku. 'Ten plik zawiera złośliwe oprogramowanie lub pochodzi z podejrzanej strony'
a po screenie:

  • cienie pod elementami na mapie powinny mieć inny kolor - teraz musiałem się zastanawiać czy to na pewno cienie. Dobrze, żeby miały go też postacie. Ten od drzewa powinien mieć bardziej rozmiar korony niż pnia, skoro światło pada od góry
  • jeśli okręgi pod postaciami to range, to może wyświetlać je na hover myszki (podobnie w sumie nazwy czy dodatkowe parametry/statystyki)? I nie powinny nachodzić na budynki (sortowanie)
  • styl graficzny jest mocno mieszany. O ile drzewka i kamienie przypominają pixelart, o tyle domki/budynki już nie
    jak wrzucisz filmik chętnie coś dodam
1

Jeśli chodzi o budowle, to moim zdaniem, zamiast rysować ołówkiem w Paint'cie, dobrze by wyglądało narysowanie ich z użyciem krzywych, np. w Inkscape. Chyba, że celujesz w styl Kapitana Bomby...

1
Boski napisał(a):

Chrome mocno blokuje mi pobranie tego pliku. 'Ten plik zawiera złośliwe oprogramowanie lub pochodzi z podejrzanej strony'

Chrome sam z siebie jest wirusem, więc niech nie przygania. Skan w VirusTotal — plik wykonywalny jest czysty.

1

Witam.
Dodałem kilka poprawek do mojej gry i chciałbym Wam ją zaprezentować. Jeżeli masz jakiś pomysł co mógłbym do niej dodać daj znać ;-)

wersja
v 0.2

sterowanie
-WASD + Enter
-Strzałki + Spacja

rozmiar
5.41 MB

image

updates
-dodano pasek zdrowia gracza, teraz widać ile gracz ma punktów życia
-zwiększono szybkość gracza, tak że gracz może teraz uciekać przed potworami, gdy walka okaże się zbyt ciężka
-dodano wczesny system skryptów (teraz obiekty są wczytywane z pliku mapy)
-zwiększono zasięg ataku zarówno gracza jak i potworów, walki są przyjemniejsze
-dodano ataki potworów, od teraz można toczyć prawdziwe walki
-zaktualizowano budynki świątynii, teraz są w stylu pixel art
-dodano zanikanie obiektów, obiekty stają się półprzeźroczyste, gdy gracz znajduje się za nimi
-naprawiono błędy związane z animowaniem bohatera
-ukryto diagnostyczne elipsy, teraz aby zobaczyć zasięg obiektu należy na niego najechać kursorem

download

2

Jak dla mnie to te napisy białe gdzieś giną w tle często.
screenshot-20240511204038.png
Zwiększyłbym widoczność - np. umieszczając je w prostokątnej ramce. Albo może po prostu dodając cień/czarną obwódkę wokół liter.

No i czasem pasek wchodzi za drzewa np. przy wilku:
screenshot-20240511204552.png
Nie wiem, czy to specjalnie, ale ja bym oczekiwał, że pasek energii i nazwa postaci będzie widoczna zawsze.

No i paski energii bym zróżnicował (dużo energii - zielony kolor; średnio - żółty kolor; mało: czerwony kolor).

2
LukeJL napisał(a):

No i paski energii bym zróżnicował (dużo energii - zielony kolor; średnio - żółty kolor; mało: czerwony kolor).

Gdyby OP robił w Unity, to by mógł sobie zrobić gradient jako pole skryptu:

screenshot-20240511224429.png

A w skrypcie po prostu odnosiłby się do tego gradientu:

public void SetHp(int hpValue, float hpBarFillRate)
{
    hpValueText.text = hpValue.ToString();
    hpValueBar.fadeOutProgress = hpBarFillRate;

    hpValueBar.color = hpValueText.color = hpValueGradient.Evaluate(hpBarFillRate);
}

@tBane: nie rób w SFML. Szkoda się tego uczyć.

3

Witam.
Chciałbym zaprezentować Wam kolejną wersję mojej gry. Jest to już trzecia wersja demonstracyjna i mam nadzieję, że się wam spodoba. Dodałem kilka poprawek i parę nowych funkcji.
Liczę na Wasz odzew co by można było dodać lub zmienić. W każdym razie, zapraszam :-)

wersja
v 0.3

sterowanie
-WASD + Enter
-Strzałki + Spacja

rozmiar
3.50 MB

updates
-poprawiono podpisy obiektów - teraz mają czarny kontur i dzięki temu są jeszcze czytelniejsze
-teraz nazwy oraz paski życia potworów są zawsze widoczne i nie są zasłaniane przez inne obiekty
-dodano zioła - zbierz je a wyleczą Twoje rany (tylko niektóre leczą)
-dodano ścieżki/drogi, na których nie pojawiają się potwory no chyba, że akurat gracz je rozzłościł

download
RPG2D v0.3.rar

image

1

Super, że rozwijasz! Coraz przyjemniej się gra.

  • pytałeś o pathfinding, ale oprócz tego imo potrzebujesz użyć nieco fizyki, tj połączyć te 2 rzeczy. Teraz chodzenie jest bardzo statyczne - kolizja blokuje ruch, a o wiele przyjemniej jest gdy się 'ślizga' od przeszkody. Czyli, jeśli nacisnę W+A to chciałbym iść po skosie, a jak będzie drzewo, to postać powinna się delikatnie przesuwać w tym kierunku, w którym może (jeśli drzewo blokuje od lewej strony i nieco od dołu, to postać powinna w przypadku W+A przesuwać się w górę). To nie jest jakoś mega skomplikowane, kilka operacji na wektorach
  • czy myślałeś o systemie ekwipunku? fajnie, jakby te zioła i inne przedmioty dało się zbierać, i wykorzystać później
  • przydałoby się troche UI, generalnie to gruba sprawa ale dużo można się nauczyć (nie na zasadzie, rysuje okno, rysuje przycisk, ale lista okienek, każde okienko ma liste kontrolek ( takich jak przycisk, napis, slider), dziedziczenie w kontrolkach)
1

Witam!
Chciałbym zaprezentować wam czwartą wersję mojej gry. Dodałem kilka nowości oraz poprawek. Zapraszam do oceniania i komentowania :-)

wersja
v 0.4

sterowanie
-WASD + Enter + E
-Strzałki + Spacja + L-Ctrl

rozmiar
5.10 MB

system operacyjny
Windows

updates
-dodano system ekwipunku - naciśnij klawisz E lub L-Ctrl i zobacz jakie przedmioty udało ci się zebrać
-w ekwipunku można korzystać z przedmiotów poprzez naduszenie Spacji lub Enter
-zmieniono wygląd paska życia
-po zabiciu potwora wypada teraz z niego mięso, które można zebrać i odnowić HP

RPG2D 021 v.04.png
RPG2D 022 v.04.png
download
RPG2D v0.4.rar

1

Super, że projekt się rozwija i coraz więcej rzeczy jest w nim zaimplementowanych, jednak zauważyłem, że to kolos na glinianych nogach — masz poważne braki w podstawach. Zdajesz się być kolejną ofiarą trendu rozpowszechnianego głównie przez youtubowych bieda-game deweloperów. I ten rak trawi branżę, niszcząc przede wszystkim początkujących koderów gier — nie liczy się funkcjonalność i jakość, a fajerwerki na ekranie, szybka gratyfikacja i aplauz.

Wspominam o tym dlatego, że brakuje mu choćby podstawowych danych — plik wykonywalny nie ma żadnej ikonki (nawet testowej), nie ma też uzupełnionych danych na temat nazwy programu, jego wersji czy informacji o twórcy i prawach autorskich (eksplorator systemowy i okno właściwości pliku nie pokazują żadnych niedomyślnych danych o pliku wykonywalnym). Te dane powinieneś wstępnie uzupełnić tuż po utworzeniu projektu w IDE.

Nie udało mi się uruchomić tej gry (o tym za chwilę), ale z danych, które podałeś (i ze zrzutów) wynika, że jedyne co ta gra posiada to obsługę mapy z aktorami i graczem, a także niektórych ficzerów rozgrywki. Zakładam, że nie masz tak podstawowych rzeczy jak choćby obsługa mapowania inputu (i wsparcia gamepadów), wsparcia trybu pełnoekranowego (desktopowego i ekskluzywnego), możliwości ustawienia parametrów pętli głównej (framerate oraz jego ograniczanie), wsparcia etapów (game stages) oraz innych fundamentalnych, niezwykle istotnych rzeczy.

Zabierasz się za ten projekt od końca, czyli od rozgrywki, ignorując fundament jakim jest silnik. Im dłużej będziesz zwlekał z dodaniem podstawowych rzeczy, tym więcej czasu później stracisz na ich implementację i dostosowywanie tego co już masz do nowych funkcji (bo cała rozgrywka będzie od nich zależeć). Istnieje też wysokie ryzyko, że np. implementując mapowanie inputu, cały kod rozgrywki będzie wymagał przepisania na nowo, co zeżre jeszcze więcej czasu.

Nie odbieraj tego posta jako ataku personalnego, bo nim nie jest. Jeśli chcesz dokończyć ten projekt i zapewnić mu wysoką jakość, natychmiast zakończ prace nad rozgrywką, wróć do podstaw silnika i zaimplementuj w nim ficzery, na których opierać się będzie dosłownie cała gra. Im szybciej i lepiej je zaimplementujesz, tym lepiej dla całego projektu i twojej motywacji do dalszych prac. Pamiętaj, że domu nie buduje się zaczynając od dachu, który ledwo trzymać się będzie na kominie.

Wracając do problemów technicznych — gra nie uruchamia się, bo odwołuje się do bibliotek dll, które nie istnieją w moim systemie (Windows 10, 22H2, z najświeższymi aktualizacjami). Brakuje poniższych bibliotek:

  • vcruntime140d.dll
  • msvcp140d.dll
  • vcruntime140d_1d.dll
  • ucrtbased.dll

Obstawiam, że nie mam zainstalowanego czegoś pokroju Visual Studio, stąd brak tych bibliotek. Zainteresuj się tym tematem i kompiluj swój projekt w taki sposób, aby nie wymagał dodatkowych dll, a jeśli już, to dołącz je do instalacji/archiwum gry (o ile ich licencja na to pozwala). Nie używam SFML-a, bo to słaba i ssąca pałkę CPU biblioteka, więc tutaj rozwiązania musisz poszukać na własną rękę. Albo wywalić SFML-a i skorzystać z SDL-a, który żadnych zależności nie wymaga i działa wszędzie, w dodatku szybciej od SFML-a.


PS: mała rada — jeśli publikujesz zbiór wielu plików w formie pliku archiwum, to nie kompresuj katalogu z plikami, a znajdujące się w tym katalogu pliki. Jeśli spakujesz same pliki, to użytkownik będzie miał wybór: albo wypakować same pliki, albo wypakować je do konkretnego katalogu, proponowanego przez archiwizator (opcje Extract here oraz Extract to "foldername\").

Przez to, że pakujesz cały katalog, użytkownik traci taką możliwość — opcja Extract here wypakuje katalog z plikami, a Extract to "foldername\" wypakuje katalog, w którym będzie katalog, w którym będą pliki. To super-irytujące.

0

ok. dziękuję za rady. Postaram sie naprawić te błędy. Pomysł z ikoną jak najbardziej przypadł mi do gustu, postaram się to zrobić. Postaram się również pakować pliki w rar'ze tak jak doradziłeś. A co do pada - zastanowię się :-)

1

Dobra, nowa wersja odpala się i działa. ;)

Niestety wydajność tej gry jest tragiczna — framerate wynosi zawrotne 15 klatek na sekundę (użyłem FRAPS-a do jego określenia). To akurat typowe dla SFML, bo ta biblioteka zdaje się kompletnie ssać na low-endowych urządzeniach, pomimo tego, że spokojnie mogę grać np. w Broforce (który jest lekkim bloatwarem). W jaki sposób renderujesz zawartość gry? Software'owo czy z wykorzystaniem GPU?

Drugi problem jest taki, że trzymając lewy Ctrl, okno zasobnika miga — tak długo jak trzymam wciśnięty ten klawisz, tak długo zasobnik pokazuje się i znika. Musisz sprawdzać czy dany klawisz został świeżo wciśnięty i jeśli tak, to zmienić widoczność zasobnika, a jeśli jest trzymany, to nic nie robić.

3
furious programming napisał(a):

PS: mała rada — jeśli publikujesz zbiór wielu plików w formie pliku archiwum, to nie kompresuj katalogu z plikami, a znajdujące się w tym katalogu pliki. Jeśli spakujesz same pliki, to użytkownik będzie miał wybór: albo wypakować same pliki, albo wypakować je do konkretnego katalogu, proponowanego przez archiwizator (opcje Extract here oraz Extract to "foldername\").

Wolę mieć nadmiarowy katalog, niż przypadkowo wypakowane pliki bez katalogu - potem szukaj sobie co było w tym archiwum, kiedy wypakujesz je na pulpit.
Poza tym taki spakowany katalog jest idiotoodporny - to samo się broni.
Wolę irytować power usera, niż dostać komentarz od nooba, że archiwum zaśmieciło mu dysk.

0

Dobra, naprawiłem włączanie/wyłączanie ekwipunku. Zaktualizowałem archiwum. Przepraszam za ten podstawowy błąd.

1

Nie znam się na programowaniu gamedev, za małolata sporo grałem na konsolach/pc i tak się zastanawiam w jakim celu tworzysz ten projekt? Jeśli hobbystycznie to ok, ale jeśli chcesz go puścić w świat to taki rpg 2d single player z grafiką ala tibia bardziej pasuje pod mobilki niż pc w tych czasach

3
furious programming napisał(a):

ten rak trawi branżę, niszcząc przede wszystkim początkujących koderów gier — nie liczy się funkcjonalność i jakość, a fajerwerki na ekranie, szybka gratyfikacja i aplauz.
...
Wspominam o tym dlatego, że brakuje mu choćby podstawowych danych — plik wykonywalny nie ma żadnej ikonki (nawet testowej), nie ma też uzupełnionych danych na temat nazwy programu, jego wersji czy informacji o twórcy i prawach autorskich (eksplorator systemowy i okno właściwości pliku nie pokazują żadnych niedomyślnych danych o pliku wykonywalnym). Te dane powinieneś wstępnie uzupełnić tuż po utworzeniu projektu w IDE.
...
Zakładam, że nie masz tak podstawowych rzeczy jak choćby obsługa mapowania inputu (i wsparcia gamepadów), wsparcia trybu pełnoekranowego (desktopowego i ekskluzywnego), możliwości ustawienia parametrów pętli głównej (framerate oraz jego ograniczanie), wsparcia etapów (game stages) oraz innych fundamentalnych, niezwykle istotnych rzeczy.
...
Zabierasz się za ten projekt od końca, czyli od rozgrywki, ignorując fundament jakim jest silnik. Im dłużej będziesz zwlekał z dodaniem podstawowych rzeczy, tym więcej czasu później stracisz na ich implementację i dostosowywanie tego co już masz do nowych funkcji (bo cała rozgrywka będzie od nich zależeć). Istnieje też wysokie ryzyko, że np. implementując mapowanie inputu, cały kod rozgrywki będzie wymagał przepisania na nowo, co zeżre jeszcze więcej czasu.

To wygląda jak gatekeeping...

"Szybka gratyfikacja i aplauz" jeśli motywują go do nauki programowania, nie są żadnym rakiem.

Jeśli sobie eksperymentuje i nawet nie wie, czy to co zrobi będzie warte tego, żeby dorabiać tam jakieś menu, opcje, konfiguracje itd., to na razie niech sobie nie zaprząta tym głowy.
Na pewno dla początkującego gamedeva fascynujące będzie rozpoczęcie projektu od implementacji obsługi tłumaczeń...
Ale wtedy zanim zacznie robić właściwą część aplikacji (GAMEPLAY!), to już zapomni co chciał zrobić :]

Nie wymagajmy od początkującego, żeby od razu był ekspertem i budował swój projekt w jakiś zaplanowany sposób...

Jak OP będzie już pisał grę na poważnie, to weźmie Unity, gdzie wielu rzeczy nie trzeba planować z takim wyprzedzeniem, a game stages realizujesz mechanizmem ładowania sceny.

1

Nie wymagam od początkującego, aby był ekspertem, a zwracam uwagę na to, że projekt ten powstaje od końca. I nie chodzi tu tylko o to, że pierwsze co powstaje ro rozgrywka — po prostu brakuje fundamentalnych funkcji, na których ta rozgrywka miałaby się opierać. Takie projekty niemal nigdy nie doczekują końca, a jeśli już, to dociągnięcie go do grywalnej wersji jest katorgą, zmuszającą do ciągłego poprawiania już napisanego kodu. Kod nie jest skalowalny, bo był pisany na pałę, byle iść dalej.

Zabawa zabawą, jednak jeśli już autor zakłada wątek, przedstawia postępy i oczekuje feedbacku, to powinno się zwrócić uwagę na wszystkie aspekty, nie tylko na zrzut ekranu z rozgrywki. Dlatego zwracam uwagę na to, że aby projekt szedł do przodu i praca nad nim była przyjemna, należy choćby wstępnie dobrze go sobie przemyśleć, zadbać o dobry fundament i powoli implementować kolejne ficzery, przykładając się do jakości kodu i jego architektury.

Pisanie kodu bez myślenia nad tym wszystkim nauczy co najwyżej dodawania kolejnych funkcji, zamiast pełnej sztuki wytwarzania oprogramowania. Tak samo jak wkuwanie tutoriali na pamięć — niby robi się więcej, ale fundament, czyli znajomość danego narzędzia i umiejętność ekstrapolowania jego zastosowania, leży i kwiczy.

Chcesz mieć dowód, że idzie to w złym kierunku? Poprośmy o źródła i zróbmy review. 😉

Spine napisał(a):

"Szybka gratyfikacja i aplauz" jeśli motywują go do nauki programowania, nie są żadnym rakiem.

Nie zrozumiałeś. Mowa była o youtuberach, którzy rzekomo robią vlogi pokazując jak ich gra ewoluuje i którzy starają się uczyć innych jak robić gry. Ich celem zdaje się nie być tworzenie gry w celu jej późniejszego opublikowania, a zarabianie na wyświetleniach. Dlatego zamiast pokazywać i omawiać nudne rzeźbienie podstaw, pokazują wyłącznie rozgrywkę i wszystkie kolorowe cukierki, które podobają się widzom. A kiedy pokazują jakieś urywki z klepania kodu albo pokrótce omawiają implementację nowej funkcji, to widać, że kod ledwo kupy się trzyma i że brak mu sensownej architektury.

Są kanały, które podchodzą do tego tematu poważnie (np. GMTK), które faktycznie skupiają się na nauce i propagowaniu dobrych praktyk. Twórcy niektórych z nich sami nagrali materiały na temat tego, że vlogi youtuberowych game-deweloperów piorą świeżakom mózgi i uczą totalnie złych praktyk, właśnie dlatego, że ich celem nie jest produkcja i ostateczna publikacja gry, a prowadzenie kanału i zarabianie na reklamach.

Tutaj macie przykładowy materiał poruszający ten temat:

2
furious programming napisał(a):

Nie wymagam od początkującego, aby był ekspertem, a zwracam uwagę na to, że projekt ten powstaje od końca. I nie chodzi tu tylko o to, że pierwsze co powstaje ro rozgrywka — po prostu brakuje fundamentalnych funkcji, na których ta rozgrywka miałaby się opierać. Takie projekty niemal nigdy nie doczekują końca, a jeśli już, to dociągnięcie go do grywalnej wersji jest katorgą, zmuszającą do ciągłego poprawiania już napisanego kodu. Kod nie jest skalowalny, bo był pisany na pałę, byle iść dalej.

Właśnie dlatego te pierwsze projekty się nie udają, bo OP musi się tego sam nauczyć. Jak napisałeś trochę później w tym poście - nie nauczy się tego na oglądaniu tutoriali, tak samo jak na czytaniu postów. Jeśli zacznie grzebać w silniku, to zanim skończy i cokolwiek ogarnie, zdąży kilka razy zapomnieć, co chciał jeszcze do gierki dodać.

Niech robi po swojemu, w końcu dojdzie do prób optymalizacji i sam dojdzie do tego, że robił źle od początku. Inaczej się tego nie dowie.

3

Ograłem v0.4 kilka uwag:

  • te hovery na rzeczy na mapie mogłyby też się włączać, jeśli postać jest w zasięgu ich interakcji (podniesienie przedmiotu) + dopisać w jaki sposób (press 'e'...)
  • z sortowaniem dalej trochę problemów jest, jak przedmiot jest lewej-górnej strony drzewa, to jego hover jest wyświetlany pod drzewem
  • nie ma GameOver na koniec punktów hp
  • ekipunek fajna baza pod rozbudowanie, waga przedmiotów, maksymalny udźwig, przedmiot w ręce, założona zbroja itd. (a graficznie, to fajnie, jakbyś oprócz slotów i przedmiotów dał tam jakieś tło/ramka napis 'ekwipunek')
  • najbardziej chyba obecnie brakuje celu - system questów? i drzewka dialogowe
  • statystyki postaci / atrybuty / skille? pewno masz w planach na później

widzę też że mapa jest trzymana w pliku tekstowym, nice, im więcej danych tak powyciągasz z kodu tym lepiej. czasem używa się np. arkuszy kalkulacyjnych google, i później export ze strony do .csv i w grze wczytanie. dosyć wygodna opcja bo w arkuszu możesz sobie to sortować, kolorować dodatkowo, dodawać komentarze itd.

1
tmk3 napisał(a):

Niech robi po swojemu, w końcu dojdzie do prób optymalizacji i sam dojdzie do tego, że robił źle od początku.

Ciekawe, że w innych kategoriach forum, kiedy ktoś robi coś źle, to odpowiedzi są dokładnie takie, jak moje w tym wątku — robisz coś źle, marnujesz czas, potencjalnie w przyszłości zmarnujesz przez to jeszcze więcej czasu, więc przyswój teorię, sensownie zaprojektuj podstawy i dopiero wtedy zajmuj się nabudowywaniem kolejnych warstw. A tu jakimś dziwnym trafem podwójne standardy się urodziły.

Kiedy @tBane pytał niedawno o algorytm pathfindingu, jakoś nikt nie sugerował mu własnej implementacji i próbowania na własną rękę, a od razu zostały zasugerowane algorytmy A*, Dijkstra i zalewowy. I te sugerowali ci sami, którzy w tym wątku polecają ignorowanie obecnego stanu wiedzy i samodzielne eksperymentowanie. Wybaczcie, ale to lekka hipokryzja.

Inaczej się tego nie dowie.

Dowie się, bo po to rozmawia się z innymi deweloperami, aby móc uczyć się na cudzych błędach, zamiast tracić czas ucząc się wyłącznie na własnych. Równie dobrze można by twoje podejście ekstrapolować na inne dziedziny życia i byłyby równie szkodliwe co obecne w tym wątku. Nie brałeś narkotyków to weź, bo inaczej nie dowiesz się, że niszczą zdrowie i życie. Nie skakałeś nigdy z okna to skocz z drugiego piętra, w końcu inaczej nie dowiesz się jak to jest mieć połamane nogi czy kręgosłup.

Każdy doświadczony deweloper na tym forum (i wszędzie indziej), który odpowiada początkującym, doskonale zna ich problemy. Dlatego zamiast zachęcać ich do błądzenia po omacku, na podstawie własnego doświadczenia starają się pokazać te błędy, przekazać swoją wiedzę i dobre praktyki, a dzięki temu uchronić początkującego od tracenia czasu na samodzielne rozwiązywanie problemów, które są powszechnie znane i z którymi borykały się do tej pory miliony deweloperów.

Dobra architektura projektu i dobrej jakości kod nie są przedmiotami eksperymentów, bez względu na dziedzinę programowania. Każdy trzeźwo myślący i doświadczony koder dobrze to wie, więc zaprzeczając temu w tym wątku, sugerujecie ignorować to co niezwykle istotne, a tym samym robicie OP krzywdę.

Ignorowanie podstaw jest usprawiedliwione tylko w przypadku tworzenia szybkiego prototypu celem sprawdzenia w praktyce czy coś zadziała czy nie, a potem kod do kosza i implementacja na nowo, tym razem porządnie. Ten projekt nie wygląda na byle prototyp, więc zalecane jest promowanie dobrych praktyk zamiast bylejakości. Kod można przepisać i sto razy, ale czasu nie cofniesz ani o sekundę.

1
furious programming napisał(a):
tmk3 napisał(a):

Niech robi po swojemu, w końcu dojdzie do prób optymalizacji i sam dojdzie do tego, że robił źle od początku.

Ciekawe, że w innych kategoriach forum, kiedy ktoś robi coś źle, to odpowiedzi są dokładnie takie, jak moje w tym wątku — robisz coś źle, marnujesz czas, potencjalnie w przyszłości zmarnujesz przez to jeszcze więcej czasu, więc przyswój teorię, sensownie zaprojektuj podstawy i dopiero wtedy zajmuj się nabudowywaniem kolejnych warstw. A tu jakimś dziwnym trafem podwójne standardy się urodziły.

Odpowiedzi nie są dokładnie takie jak Twoje...
Odpowiedzi mają mniejszy zakres i dotyczą problemów ludzi zadających pytania, a Ty mu tutaj od razu cały plan na resztę życia rozpisałeś...

furious programming napisał(a):

Kiedy @tBane pytał niedawno o algorytm pathfindingu, jakoś nikt nie sugerował mu własnej implementacji i próbowania na własną rękę, a od razu zostały zasugerowane algorytmy A*, Dijkstra i zalewowy. I te sugerowali ci sami, którzy w tym wątku polecają ignorowanie obecnego stanu wiedzy i samodzielne eksperymentowanie. Wybaczcie, ale to lekka hipokryzja.

Wtedy on o to pytał i dyskusja odbywała się na ten jeden konkretny temat.

furious programming napisał(a):
tmk3 napisał(a):

Inaczej się tego nie dowie.

Dowie się, bo po to rozmawia się z innymi deweloperami, aby móc uczyć się na cudzych błędach, zamiast tracić czas ucząc się wyłącznie na własnych. Równie dobrze można by twoje podejście ekstrapolować na inne dziedziny życia i byłyby równie szkodliwe co obecne w tym wątku. Nie brałeś narkotyków to weź, bo inaczej nie dowiesz się, że niszczą zdrowie i życie. Nie skakałeś nigdy z okna to skocz z drugiego piętra, w końcu inaczej nie dowiesz się jak to jest mieć połamane nogi czy kręgosłup.

Ja Ci mogę mówić, że papierosy są szkodliwe i nie musisz wcale ich palić, dlaczego więc jesteś palaczem?

Jak dojdzie w swoim projekcie do momentu, kiedy czegoś mu będzie brakowało, to wtedy się będzie zastanawiał jak to wykonać.
I tak SFML jest tak łyse, że zmusi go do myślenia i implementacji bardzo podstawowych rzeczy...

Mam wrażenie, że Ty się tak umartwiasz nad swoim silnikiem, że chcesz aby inni też poczuli ten ból...

furious programming napisał(a):

Każdy doświadczony deweloper na tym forum (i wszędzie indziej), który odpowiada początkującym, doskonale zna ich problemy. Dlatego zamiast zachęcać ich do błądzenia po omacku, na podstawie własnego doświadczenia starają się pokazać te błędy, przekazać swoją wiedzę i dobre praktyki, a dzięki temu uchronić początkującego od tracenia czasu na samodzielne rozwiązywanie problemów, które są powszechnie znane i z którymi borykały się do tej pory miliony deweloperów.

Możesz prawić morały ile wlezie, ale OP i tak zrobi, co uważa.
A jeśli go zasypiesz sugestiami, to przestanie czytać w połowie...

furious programming napisał(a):

Dobra architektura projektu i dobrej jakości kod nie są przedmiotami eksperymentów, bez względu na dziedzinę programowania. Każdy trzeźwo myślący i doświadczony koder dobrze to wie, więc zaprzeczając temu w tym wątku, sugerujecie ignorować to co niezwykle istotne, a tym samym robicie OP krzywdę.

To jest niezwykle istotne, ale nie na tym etapie nauki.

furious programming napisał(a):

Ignorowanie podstaw jest usprawiedliwione tylko w przypadku tworzenia szybkiego prototypu celem sprawdzenia w praktyce czy coś zadziała czy nie, a potem kod do kosza i implementacja na nowo, tym razem porządnie. Ten projekt nie wygląda na byle prototyp, więc zalecane jest promowanie dobrych praktyk zamiast bylejakości. Kod można przepisać i sto razy, ale czasu nie cofniesz ani o sekundę.

Znowu gatekeeping...
Ten projekt to jest po prostu większy projekt do kosza.
On nie jest jeszcze na poziomie pozwalającym na pisanie szybkiego prototypu, like a pro...

1

Jak mamy takie święte wojny toczyć (bo w zasadzie to jest typowo endless temat rób silnik vs rób grę vs rób grę i silnik) to może się przenieśmy o innego wątku, bo śmietnik op robimy. A tutaj niech każdy zostawia feedback wg własnego uznania

1

@furious programming
Napisałeś jakąś ścianę tekstu, a OP robi sobie zwykły projekt do szuflady, przy którym ma się uczyć. Nie będzie z tego strzelał, nie musi być zgodnie ze sztuką i tak jak @furious programming sobie wymyślił. Daj mu się tym bawić po swojemu i robić błędy, nikogo nie obchodzi moralizatorstwo i przekonywanie, że jego rady są lepsze (już pomijając to, że o gamedevie najwięcej do powiedzenia mają na 4p ci, którzy nie mają z nim nic wspólnego).

OP uczy się i dobrze się bawi przy swojej grze, wielu devów zostaje przy gameplayu i nie interesują ich zagadnienia związane z silnikiem, nie ma w tym nic złego. Niech robi swoim tempem, a nie spełnia ambicje samozwańczych ekspertów z 4p

1 użytkowników online, w tym zalogowanych: 0, gości: 1