Skip to content

Instantly share code, notes, and snippets.

@onliniak
Last active October 6, 2024 16:31
Show Gist options
  • Save onliniak/7020c59ff2eb9d554cad0c76b54e5206 to your computer and use it in GitHub Desktop.
Save onliniak/7020c59ff2eb9d554cad0c76b54e5206 to your computer and use it in GitHub Desktop.
Welcome file

To coś ma podobno pomóc przyszłym twórcom piszącym rozszerzenia do Ardoongi.

Tworzymy nową postać

Ostrzeżenie: Istnieją minimum 4 grupy ludzi.

  • Ci którzy mają pomysł na swój świat i spisują go w Wielkiej Księdze Zasad.
  • Ci którzy nie mają dobrych pomysłów, więc wolą skopiować gotowe rozwiązanie na nowe urządzenia.
  • Gracze.
  • I Ci którzy myślą sobie tak:
    • Skoro gracze fabularni i mechaniczni mogą żyć obok siebie.
    • To czemu by nie zrobić czegoś takiego, że są 2 światy położone obok siebie.
    • Wasi królowie ogłosili embargo i strażnicy wyrzucają wszystkie przedmioty spoza listy, więc na przemycenie broni masowej zagłady nie masz co liczyć.
    • Ale możesz sobie w dowolnym momencie przeskakiwać między systemami z gotowymi mechanikami, ogólną fabułą i wszystkim co dało się ukraść.
    • Jednocześnie sama gra po prostu definiuje jak dodawać nowe rozszerzenia
      • Więc o zepsuciu czegokolwiek nie ma mowy.
      • I można stworzyć zabójczą strategię marketingową:
        • Gry papierowe jako usługa w jednym miejscu
        • Wewnętrzny stan reprezentowany przez mocno uproszczony blockchain.
          • Losowe liczby brane z transakcji BitCoina i Ethereum.
        • I jeszcze dajmy zero kont premium, zero reklam i w jakimś dziwnym języku jak interslavic.
          • Protokół komunikacyjny też ukradnę, czego skutkiem ubocznym powinna być możliwość pisania wiadomości do przyjaciół z zapomnianych mediów alternatywnych Tylko Dla Świadomych.
        • Nic nie robię, zbieram pochwały, plan jest genialny.

Rasa, Klasa i tak dalej

Podczas projektowania tego czegoś pojawiło się pytanie "Dlaczego wojownicy nie mogą korzystać z magii ?" Można je było rozwiązać na minimum 3 sposoby:

  1. Jednorazowe zwoje jak w Gothicu.
  2. Większość zaklęć można zastąpić alchemią.
  3. Magowie nas oszukują korzystając ze zwojów wielokrotnego użytku (magia runiczna w Gothicu). Każdy może nauczyć się czarować ale nie każdemu będzie się chciało rozwijać many do odpowiedniego poziomu.

Nie pamiętam już jak ten system się nazywał ale jest podobny do Gothica3:

Komentarz: źle to przetłumaczyłem. Chodzi o to, że:
Istnieją gry sztywne, gdzie na początku wybierasz unikalne zdolności i już nie możesz ich zmienić.
Gry z mnóstwem bonusów w stylu "super cios zwiększający obrażenia przeciw lodowym smokom o miliard miliardów procent".
I po całej mapie rozsiane są umiejętności, z których budujesz własną postać.
Myślałem o tym ostatnim.

  • Mamy całą masę perków.
  • Podstawowe odblokowują się po osiągnięciu odpowiednich statystyk.
  • Średnie wymagają odblokowania jednego lub kilku podstawowych.
  • Unikalne dostępne są tylko i wyłącznie dla odpowiednich klas.
  • Zaawansowane wymagają średnich itp. Na przykład:
  • Żeby awansować na pierwszy krąg magii muszę mieć 25 inteligencji.
  • Jeśli jestem naturalnym czarodziejem mam dostęp do specjalnego perka zwiększającego ilość many o 35% i inteligencję o 50.
  • Jeśli wybrałem barbarzyńcę, znalazłem pierścień +25 inteligencji to nadal mogę zostać nowicjuszem.
  • W obu przypadkach muszę znaleźć odpowiedniego nauczyciela.
  • Albo znaleźć odpowiednią książkę w bibliotece, po uzyskaniu perka czytanie.

Plik konfiguracyjny

https://ne-on.org/

Na pierwszy rzut oka wygląda dziwnie ale umożliwia mi podzielenie jednego dużego pliku na kilkaset mniejszych w stylu TOML albo mieszanie stylów. Jeden plik mam w stylu Yaml, drugi JSON, a trzeci TOML.

Wracając, każdy perk składa się z:

  • unikalnego ID
  • tekstów w formacie IETF:
    • międzynarodowe oznaczenie języka
    • (opcjonalne) międzynarodowe oznaczenie kraju
    • (opcjonalne) oznaczenie alfabetu. latin dla łaciny i cryl dla cyrilicy.
      • Nazwy
      • Opisu
        • Nazwę po angielsku oddzielamy od oznaczenia języka znakiem "_"
  • stopnia zaawansowania (ogranicza ilość opcji na ekranie)
  • wymagań umieszczonych w kratkach nawiasach kwadratowych "[]"
    • Zwróć uwagę, że system jest całkowicie niezależny od używanego języka. Zamiast nazw używa unikalnego ID przy odwoływaniu się do innych perków.

Tak naprawdę nie znam międzysłowiańskiego. Korzystałem z translatora oraz sprawdzacza pisowni. Jak można się było spodziewać proste teksty pisane oficjalną standaryzowaną polszczyzną jeszcze przechodzą. Ale z mową potoczną i uproszczeniami jest problem. Dlatego używam nieoficjalnej między-słowiańszczyzny spolszczonej. Według CzataGPT = Ten opis može zajmować i nekoliko linij.

Tak swoją drogą wspólna mowa według Śródziemia była co najmniej niepokojąca. Tacy Hobbici nieutrzymujący kontaktów dyplomatycznych i handlowych praktycznie z nikim nie powinni być zrozumiani w ludzkich miastach. Wspólne języki (o ile mówisz wolno) są zrozumiałe ale jednocześnie wydają się obce i nie pasują do żadnej znanej mowy. Tam Anglicy dokonali swego dzieła, wymordowali wszystkich tubylców i zastąpili ludźmi mówiącymi 100% po angielsku. Tak zlikwidowali akcenty, gwary i ogromne odległości między "swoimi" ziemiami. Nawet gdyby założyć, że Śródziemie to obszar wielkości Polski.

extra: 

- Perk(
GUID = be0f7448-918c-4c83-93ac-eb1075c8ba8c
name_pl = Pierwszy krąg magii
description_pl-PL = '''
Ten opis
może zająć
nawet kilka
linijek
'''
type = entry, 
requirements: [int: 25]
)

- Perk(
GUID = be0f7448-918c-4c83-93ac-eb1075c8ba8c
name_isv-PL-latin = Perwi krug czarow
description_isv-PL-latin = '''
Tutoj opis 
može obužiti 
i několiko čislov.
'''
type = entry, 
requirements: [int: 25]
)

- Perk(
GUID = 3331131ef16d4fc582a7590b59e5c3f4
name_pl = Drugi krąg magii
description_pl = '''
Ten opis
może zająć
nawet kilka
linijek
'''
type = intermediete, 
requirements: [
int: 50
entry: be0f7448-918c-4c83-93ac-eb1075c8ba8c
]
)

W Vallheru była taka dziwna konstrukcja, że rasy i klasy mogły nadpisywać formuły matematyczne. U mnie nazywa się to dziedzictwem. Powiedzmy, że moja rasa świetnie posługuje się łukiem. Każdy dostaje +10 do łucznictwa na start.

GID= 46dca812-a254-4655-9a0d-3fb3440a9617
extra= Ability(
GID=bow
start=10
)

Dziedzictwo jest tylko małym wycinkiem rzeczywistości. Ta konkretna rasa dostaje:

  • +5 inteligencji za każdy Astral Point
  • Zaczyna z 10 punktami inteligencji
  • Nie może mieć więcej jak 123 cm wzrostu.
  • Zaczyna z wagą 15 kg.
  • Wszystkie punkty łucznictwa mnożymy razy 50
    • lub zamiast jednego punktu dostajesz 6.
  • Wszystkie premie do walki mieczem są pomniejszane o 5.
    • Pamiętaj: umiejętność nie może spaść poniżej 0.
    • Ewentualnie premia jest dzielona przez 50.
  • Na to wszystko nakładane są premie od dziedzictwa.
  • Klasy same w sobie nie istnieją.
  • Wszystkie dostępne opcje będą później dostarczone w postaci JSON Schema.
    • Dla zwiększenia czytelności GID zawsze będzie słowem angielskim

Dlaczego liczby są identyczne ? System podliczy wszystkie plusy i minusy oraz mnożenia i dzielenia. Jeśli masz takie same zyski i straty to dostajesz 0 punktów różnicy. Każdy serwer może swobodnie zwiększać ich ilość.

extra= 
- Physical(
height_max=123
weight_start=15
)

- Skill(
GID=int
start=10
ap=5
)

- Ability(
GID=bow
#"+"=5
"*"=50
)

- Ability(
GID=sword
"-"=5
#"/"=50
)

heritage= 46dca812-a254-4655-9a0d-3fb3440a9617