05 września 2013

Koniec prac nad Generatorem Postaci do KC

Udało mi się ominąć kolejne problemy związane z generatorem, wyłapałem tez kilka błędów oraz
dopisałem kilka funkcjonalności. Jestem zadowolony z mechanizmu wyliczającego obronę postaci oraz biegłości i specjalizacje w broni. Mam nadzieję, że nie pomyliłem się w tej części, bo jest to z jednej strony skomplikowany kawałek mechaniki systemy i w efekcie kodu, a z drugiej element kluczowy dla prowadzenia prawidłowej walki.
Efekt prac
W tej chwili generator jest w pełni sprawny – losuje postaci na poziomach 0-20 dla jednej lub dwóch profesji, dla kilkunastu ras, jest w stanie uwzględnić większość ułomności i zdolności nadnaturalnych w cechach, liczy odporności, dodaje zawody… Przez chwilę problemem było podnoszenie i wyliczanie odporności co poziom, ale i tę trudność udało mi się przeskoczyć. Skupiam się jeszcze na dorabianiu kilku braków np.: nie uwzględnianiu nietypowych ułomności (grubas i jednooki! ) oraz pewnych drobnych usprawnień w wyglądzie.
Główny widok generatora
Pomysły na przyszłość
Na forum kc-tów rzuciłem propozycję co jeszcze dodać do generatora, tak aby tworzone z jego pomocą niego postacie były ciekawsze. Pojawił się min. pomysł dopisania generator pochodzenia czy wyglądu – czyli elementów jakich nigdy nie było w oryginalnych kctach, a dałyby możliwość personalizowania bohatera. Postaram się dopisać także i te elementy w najbliższym czasie.

EL Elddage
RASA: Gnom - kobieta; PROFESJA: Kapłan / Mag; POZ: 6 / 5; CHAR: neutralny dobry; PD: 84
ZAWODY: Jubiler , Płatnerz , Treser , Stolarz , Ptasznik , Garbarz
NADATURALNE:
UŁOMNOŚCI:
POCHODZENIE: Wyższa Klasa Średnia ; PRZEDROSTEK: EL; DOCHÓD: 96
WZROST: 124; WAGA: 63; WIEK: 72
ŻYW 120; SF 113; ZR 96; SZ 84; INT 146; MD 155; UM 117; CH 85; PR 131; WI 68; ZW 16
ODPORNOŚCI: 1-136; 2-103; 3-101; 4-83; 5-114; 6-71; 7-56; 8-40; 9-63; 10-76;
BROŃ 1: Laska; bgł. 85; TR 106 ; opźn. 3; SKUT ob 88 (58) ; OB 88 (88); SP 2B ; AT 3 (3)
BROŃ 2: Nożyk; bgł. 95; TR 116 ; opźn. 1; SKUT kł 68 (58) tn 58 ; OB 66 (66); SP B ; AT 4 (4)
ZBROJA: Kurtkowa typowa ; OGR. - , 1/2; OB. DAL 62 ; WYP. 60 / 100 / 85
Trudności
Siadając do pracy spodziewałem się, że napisanie generatora będzie skomplikowane. Niektóre elementy naprawdę ciężko było przenieść z papieru na kod. Kilka problemów spowodowało nawet zniechęcenie i myśl, aby rzucić go w diabły. Szczęśliwie nie zrobiłem tego i jestem z siebie zadowolony. Jakkolwiek ilość godzin i pracy włożonych w generator były ogromna tak końcowy efekt jest bardziej niż zadawalający.
Kod
Kod jest otwarty – po otworzeniu programu w oknie przeglądarki każdy może do niego zajrzeć. I pośmiać się z niego lub nie. Koniec końców przydałoby się teraz zrobić refaktoring. Nie jest to po prostu najpiękniejszy kawałek oprogramowania jaki zdarzyło mi się napisać. Przy ograniczonych zasobach czasu jakimi dysponowałem uważam, że i tak jest dosyć czytelny. Główny zarzut jaki mam do siebie to źle rozplanowane moduły. Na początek napisałem w jednym pliku kilka podstawowych funkcjonalności, zamiast od razu rozbijać je na kawałki. Dopiero jak już powstał główny mechanizm losowania cech zdałem sobie sprawę, że jeśli w ten sposób będę pisał dalej to nie będę w stanie poprawić błędów ani czytelnie i sensownie dodawać kolejnych wymaganych elementów. Z czasem porozbijałem generator na kilkanaście oddzielnych plików, które trzymają, wyliczają i wyszukują różne elementy ważne przy tworzeniu postaci, ale przydałoby się jeszcze trochę poprawić strukturę projektu. Tak 100% przejrzysty to on nie jest. Gdyby ktoś chciał modyfikować kod lub go poprawiać, zorientowanie się w tym co zostało napisane może sprawić pewne problemy.
Książe Eldelm
RASA: Człowiek - mężczyzna; PROFESJA: Rycerz / Kapłan; POZ: 5 / 0; CHAR: praworządny dobry; PD: 40
ZAWODY: Gracz (szuler) , Pisarz , Kolekcjoner , Myśliwy
NADATURALNE: odporny na głó
UŁOMNOŚCI:
POCHODZENIE: Elita władzy ; PRZEDROSTEK: Książe; DOCHÓD: 710
WZROST: 177; WAGA: 76; WIEK: 23
ŻYW 145; SF 162; ZR 70; SZ 106; INT 89; MD 115; UM 56; CH 132; PR 94; WI 81; ZW 10
ODPORNOŚCI: 1-84; 2-82; 3-95; 4-82; 5-62; 6-57; 7-75; 8-71; 9-75; 10-46;
BROŃ 1: Lanca ciężka; bgł. 137; TR 160 ; opźn. 4; SKUT kł 236 ; OB 65 (45); SP B OBUR; AT 1 (1)
BROŃ 2: Młot typowy; bgł. 112; TR 135 ; opźn. 4; SKUT ob 161 (91) ; OB 68 (68); SP B ; AT 1 (1)
BROŃ 3: Espadon -miecz ciężki falisty dwuręczny; bgł. 127; TR 150 ; opźn. 7; SKUT kł 221 tn 341 ; OB 69 (69); SP Specjalista ; AT 1 (1)
ZBROJA: Półzbroja górna typowa + Metalowa mała; OGR. 1/2 , 1/3; OB. DAL 56 ; WYP. 75 / 130 / 90
Kiedy go zobaczycie?
W tej chwili przeglądam to co napisałem i przychylam się do tego, aby zaprezentować efekt prac 'na dniach', a wspomniane propozycje z forum dodać w ciągu najbliższych tygodni.
Trochę statystyki
Powstało w sumie 68 plików odpowiedzialnych w mniejszym lub większym stopniu za tworzenie postaci. Jest zdefiniowanych 18 profesji, 15 ras (przy czym kilka z uwzględnieniem modyfikatorów kobieta – mężczyzna), wciągnięta została cała lista zawodów, nadnaturalek, ułomności, broni i pancerzy. Ilość linii kodu jest …. ogromna – wolę nie wiedzieć ile dokładnie. Muszę przyznać, że nie spodziewałem, że aż tyle tego będzie. Projekt został napisany w środowisku NetBeans 7.3.1. i zajęło to dwa miesiące.
Podsumowanie
Stworzenie generatora zajęło mi cały wolny czas (i trochę ponad) jaki moge przeznaczyć na hobby. Postaram się w najbliższym miesiącu napisać jakiś artykyuł (kilka wisi rozgrzebanych) zamiast klepać kolejne linijki kodu. Tak czy inaczej jestem niezwykle zadowolony z efektu jaki uzyskałem.
Jako, że żaden kod nie jest wolny od błędów w moim też jest ich jeszcze troszkę. Postaram się je możliwie szybko wyłapać i poprawić.
EL Sulris
RASA: Ogr - mężczyzna; PROFESJA: Barbarzyńca; POZ: 10; CHAR: praworządny zły; PD: 10
ZAWODY: Treser
NADATURALNE: odporny na wszelki magnetyzm (9)
UŁOMNOŚCI: podrywacz
POCHODZENIE: Niższa Klasa Średnia ; PRZEDROSTEK: EL; DOCHÓD: 45
WZROST: 206; WAGA: 131; WIEK: 17
ŻYW 396; SF 373; ZR 131; SZ 98; INT 73; MD 81; UM 39; CH 80; PR 113; WI 35; ZW 2
ODPORNOŚCI: 1-51; 2-52; 3-48; 4-78; 5-85; 6-109; 7-132; 8-115; 9-113; 10-115;
BROŃ 1: Maczuga ciężka typowa; bgł. 147; TR 197 ; opźn. 7; SKUT ob 318 (243) ; OB 128 (128); SP Specjalista ; AT 1 (1)
ZBROJA: Skóra zwierzęca gruba ; OGR. - , 1/2; OB. DAL 104 ; WYP. 75 / 110 / 130
p.s. Przykładowe postaci - przeplatające tekst - powstały w generatorze.

p. s. 2
Imiona - wykorzystałem te dostępne z generatora imion ze strony 
http://www.rinkworks.com/

2 komentarze:

  1. Nic tylko czekać na oddanie pracy. Gratuluje samozaparcia, sam wiem jak ciężko jest wracać do tematu jeśli nie ma się czasu czy chęci. Bankowo przetestuje.

    OdpowiedzUsuń
    Odpowiedzi
    1. W tym tygodniu edytor powinien być dostępny on line.

      Usuń

Tu możesz wstawić swój komentarz