• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Code review stworzonej gry

VPS Starter Arubacloud
0 głosów
307 wizyt
pytanie zadane 11 kwietnia 2019 w C# przez Shimeo7 Obywatel (1,910 p.)

Dzień dobry, chciałbym Was prosić o przegląd kodu, abyście wyrazili swoje zdanie, co o nim sądzicie, co można zrobić lepiej, gdzie popełniłem błędy (np. redundancja). Opowiem krótko o grze, wcielacie się w ludzika przypominającego Robin-Hooda i Waszym zadaniem jest przejście wszystkich poziomów, podczas tej wędrówki musicie zabić każdego wroga na danym poziomie, aby przejść na kolejny. Na każdym poziomie możecie podnosić różnego rodzaju rzeczy, od klasycznych broni, po magiczne eliksiry, które dodają nam życie. Aby zebrać broń wystarczy na nią wdepnąć naszą postacią i doda nam się do ekwipunku. Przeciwnicy również was mogą ranić, dlatego trzeba uważać. Gra jest w systemie turowym. Możliwe są 2 główne akcje(są jeszcze inne, ale do nich wyświetlają się odpowiednie przyciski) ruch i atak, aby wybrać, czy ruszamy się, czy atakujemy wystarczy przejść na odpowiednią zakładkę i kliknąć odpowiednią strzałkę. Jeżeli chcemy zaatakować a nie mamy broni, to nic się nie dzieje. Link do GitHuba: Dungeons

To moje pierwsze code review, więc proszę o wyrozumiałość, jeżeli w powyższym wpisie coś pominąłem, ale liczę na konstruktywną krytykę z Waszej strony.

Jeżeli ktoś chciałby zagrać to wystarczy pobrać lub sklonować i kolejno Dungeons/Dungeons/bin/Debug/Dungeons.exe

komentarz 11 kwietnia 2019 przez MrxCI Dyskutant (8,260 p.)
Mam problem z przejściem pierwszego poziomu, po wybraniu zakładki atak i próby zaatakowania stwora on zawsze mnie zabija.

 

Bardzo męczące jest to klikanie strzałek oraz grafiki nachodzą na siebie, to samo z kolizją między stworkami.

Choć wciąż lepsza niż 30% słabych gier na steamie po 10€

Na temat kodu nie wypowiem się bo nie mam doświadczenia z językami C, co najwyżej mogę powiedzieć że bardzo ważnym elementem jest komfort w grze, aby skupić się na postaci a nie ogarnianiu interfejsu
komentarz 11 kwietnia 2019 przez Shimeo7 Obywatel (1,910 p.)
Tak, rozumiem o co chodzi, w grze jest kilka broni, których charakterystyka ataku się między sobą różni. Ale co do samego ataku nie wchodząc w szczegóły to musisz znajdować się idealnie pod, nad, obok przeciwnika; jeśli jesteś np. na ukos od niego, to atak nie przejdzie. Wróg dokonuje na Tobie obrażeń w momencie jak dotknie picturebox twojej postaci, niedoskonałe, wiem, ale chciałem sprawić, aby gra działała. Następnym krokiem będzie dopieszczenie ;) Nachodzenie na siebie obrazków jest zabiegiem celowym i zawsze postać gracza, jeżeli będzie miała taką samą lokacje jak coś innego to obrazem gracza przesłoni inny. Z tym klikaniem wiem, że upierdliwe, zastanawiam się nad strzałkami, jako alternatywne sterowanie. Czy Twoim zdaniem dodanie instrukcji obsługi interfejsu poprawiłoby komfort gry?

2 odpowiedzi

0 głosów
odpowiedź 11 kwietnia 2019 przez marcin99b Szeryf (81,480 p.)
wybrane 11 kwietnia 2019 przez Shimeo7
 
Najlepsza
Pierwsze co się rzuca w oczy, to wszystkie pliki w folderze głównym
Popracuj nad segregacją tego, bo przy większych projektach się pogubisz
Pewnie nawet tutaj pod koniec się gubiłeś

Do tego ignorowanie zasad SOLID
W przypadku niektórych klas można powiedzieć, że wszystko robi wszystko

Na pewno poczytaj o wzorcach projektowych, na pewno ogarnij zasady SOLID
Dobrze gdybyś ogarnął testy, przynajmniej jednostkowe (dość przyjemne narzędzia to NUnit i Moq)

Do tego poczytaj o elementach C#, takich jak m.in LINQ bo w kilku miejscach masz nieczytelne "pętla w pętli w której jest if..."

I też nie bój się tworzenia wielu klas (pomocne aby zachować zasade SRP z zasad SOLID)
komentarz 11 kwietnia 2019 przez Shimeo7 Obywatel (1,910 p.)
edycja 11 kwietnia 2019 przez Shimeo7
Dziękuję za wyczerpującą odpowiedź. Masz rację, pod koniec było ciężko z połapaniem ;)

Postaram się popracować nad tym kodem.
komentarz 12 kwietnia 2019 przez Shimeo7 Obywatel (1,910 p.)

@marcin99b, mam pytanie, czy jeżeli już mam tak nieuporządkowany folder główny z klasami, czy mogę zrobić z nim teraz porządek, w taki sposób, aby nie było wszystko w jednym folderze? Jeżeli tak, to czy są jakieś wytyczne jak to pogrupować?

komentarz 12 kwietnia 2019 przez marcin99b Szeryf (81,480 p.)
Co do wytycznych to są różne praktyki
Ale ogólnie próbuj nazywać to tak jak podpowiada ci intuicja

Przykładowo jak gdzieś trzymasz jakieś pliki na których operujesz, to możesz nazwać to Resources
Albo jak masz operacje na czymś to Services
Są akurat tutaj różne sposoby

Możesz poczytać na temat nazewnictwa namespace i na temat tego co powinno być w czym
Ogólnie zasada jest taka, żeby wszystko miało określoną odpowiedzialność
Np w namespace Users jest wszystko co związane z użytkownikami
A wewnątrz tego masz jakieś Services, jakieś Resources, jakieś Sagas, jakieś... i tak dalej

Nie wiem czy dobrze to wytłumaczyłem

Jak coś to namespace składa się z nazw folderów, w których jest klasa
np namespace Users.Services oznacza że jest w folderze Services, który jest w folderze Users
0 głosów
odpowiedź 2 maja 2019 przez Shimeo7 Obywatel (1,910 p.)
Poprawiłem kod, czy ktoś teraz może na niego rzucić okiem? Dodałem również parę nową możliwość w ten sposób to ujmę. Jeżeli aktualny item gracza to miecz to obrazek gracza posiada miecz, jezeli ma maczugę, to gracz na obrazku trzyma maczugę.

Podobne pytania

+3 głosów
0 odpowiedzi 220 wizyt
+3 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 9 września 2022 w C# przez Artur Koniec Gaduła (3,670 p.)
0 głosów
0 odpowiedzi 378 wizyt
pytanie zadane 4 lipca 2021 w Python przez CubeStorm Pasjonat (15,020 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...