Talliprojekti


  • Jyhkyjen harrastajat

    Alustus

    Päätin tehdä Pemberleyn muutoksesta ihan topan, ehkä saan tällä itseäni niskasta kiinni ja työstämään muutosprojektin loppuun. Pemberley on ollut lähes alusta lähtien muutosten alla. Ulkoasu vaihtui aluksi ainakin pari-kolme kertaa, sitten tila päivittyi 2000-luvulle siirtymällä Drupalin päälle jonka jälkeen se on lipunut vähän puolivillaisella otteella ja ylläpidolla ainakin kolme-neljä vuotta. Yritin tehdä uutta ulkoasua ties monta kertaa, mutta mikään ei tuntunut omalta. Nykyinen ulkoasu on kauhea omasta mielestäni ja uusi versio tuleekin olemaan Ionicin ja tämän fooruminkin tapaan hyvin pelkistetty, simppeli ja vaalea. Kaikki turha kikkailu jää pois edustasta, kikkaillaan sitten bäkkärin (backendin) puolella.

    Pääpointti

    Päätin että Pemberley ottaa taas loikan eteenpäin ja kesyttää uusimman trendin: javascriptin (nodejs) 😄! Koska pyörää ei kannata keksiä uudelleen niin otan tallipohjaksi KeystoneJS:n. Se on samaa kastia WordPressin ja Drupalin kanssa, mutta ohjelmointikielenä javascript ja palvelimena pyörii nodejs (sama kuin tällä foorumilla). Nodejs mahdollistaa että talli on SPA (single page app), eli kuten tämä foorumikin. Selatessa topien välillä edestakaisin ei tapahdu selainpäivitystä. Tietokantana taustalla tulee pyörimään MongoDB. Virtuaalitalli ei tarvitse mielestäni MySQL:n tapaista monsteria taustalle vaan pyörii kepeästi Mongon:n päällä.

    Topan idea?

    Pidän tätä topaa eräänlaisena blogina, päivittelen tähän silloin tällöin (tavoite kerta viikkoon) miten projekti etenee ja muuta siihen liittyvää: suunnitelmia, haaveita, ajatuksia. Kaikkea mahdollista. Ehkä tämä toimii sitten jossain vaiheessa myös tutoriaalina, sillä lähdekoodin tulen julkaisemaan. Open source kunniaan :)!


  • Jyhkyjen harrastajat

    Tekniikkaa ja muuta
    • Ohjelmointikieli: JavaScript
    • Tietokanta: MongoDB
    • Sisällönhallintajärjestelmä: KeystoneJS
    • Demo tallin hosti: Heroku
    • Linkki demoon (2.9.16 -> demo muutti Herokuun, nyt ei pitäisi tulla turhia katkoja)

  • Jyhkyjen harrastajat

    Rakenne

    Sisältötyypit:

    Hahmotelmaa tarvittavista sisältötyypeistä. Käytän näissä englantia koska musta tuntuu oudolta käyttää englanninkielisen koodin seassa suomea 😛. Ja ehkä täsä voi joskus olla hyötyä muillekin kuin suomalaisille virtuaaliharrastajille… Alla listattu eri sisältömalleja (schema) eli tallin peruspalikat.

    Tämä talliprojekti pyrkii realistisuuteen, eli hevonen periyttää tiettyjä ominaisuuksia eteenpäin. Nämä perittävät ominaisuudet tulee olemaan samat kuin toisessa projektissa jota työstän (aka “Virtuaalitallipelissä”), joten ehkäpä joskus hamaassa tulevaisuudessa tämä talliprojekti on ns. laajennos tuohon peliin, mutta ei siitä sen enempää tässä 😉.


    Page:
    Tavalliset sisältösivut: etusivu, esittely…


    Animal:
    Perustiedot, jokaisella eläinlajilla sama.

    • name
    • nickname
    • dob (syntymäpäivä)
    • father
    • mother
    • personality
    • offspring (viittaus Animal -malliin)
    • diary (viittaus Diary - malliin)

    Horse:
    Perii eläimen (Animal) tiedot jonka lisäksi:

    • breed
    • color (viittaus Base, Modification ja Pattern malliin)
    • markings
    • discpline
    • discpline level
    • comptetitions (viittaus Competition -malliin)
    • genome (perittävät ominaisuudet)

    Base color:
    Hevosen pohjaväri

    • term
    • short term
    • genes { agouti, extension, white }

    Modification / dilution color:
    Pohjaväriä muuttavat ominaisuudet

    • term
    • short term
    • genes { cream, dun, champagne, silver, pearl, roan }

    Pattern color:
    Kuviointi

    • term
    • short term
    • genes { sabiano, tobiano, overo }

    Competition:
    Osallistuminen, jokainen osallistuminen omana objektina

    • date
    • location
    • class
    • result

    Diary
    Päiväkirjamerkinnät/treenit/muut

    • author
    • date
    • content

    Perinnöllisyys:

    Mielestäni virtuaalimaailmasta puuttuu realistisuus: jokainen hevonen voi olla paras ja kahmia mainetta ja kunniaa itselleen. Niimpä olen jo vuosia kehitellyt omaa periytymiskaavaa ja tustunut muiden harrastajien kehittämiin systeemeihin. Mutta koska jokaisella on vähän oma näkökulma ja mielipide, päätin että luon itselleni sopivan systeemin.

    Hevoset perivät ominaisuuspisteitä vanhemmiltaan tietyn randomkaavan mukaan (jota en ole vielä edes ajatellut). Eli kahdesta hyvästä hevosesta ei tule 100% varmuudella hyvää varsaa, vaan jopa huono. Samalla haluaisin että hevosen elinikää ei voisi ennalta tietää, kuolinpäivä määritettäisiin hevosta generoidessa ja sitten ne kupsahtaisi kun aika tulee. Kuolinpäivään voisi vaikuttaa myös onnettomuudet tai sairaudet joita generoitaisiin jollain tietyllä kaavalla.

    Hevosen kilpailutaso/potentiaali jää omistajan vastuulle, jos järjestelmä generoi kouluhevosen potentiaaliksi kouluratsastuksen ja max tasoksi He A niin omistajan pitää itse pysyä siinä (ainakin vielä tässä vaiheessa kun “Virtuaalitallipeli” ei ole valmis).

    Tiivistettynä:

    • perittävät ominaisuuspisteet
    • väri ja säkä periytyisi
    • ennalta määrätty kuolinpäivä
    • onnettomuudet / sairaudet voisi myös tappaa

    Ominaisuuspisteet
    Pisteet jakautuu karkeasti kolmeen kategoriaan: rakenne, askellajit ja luonne & taidot.

    Rakenne:

    • head
    • neck
    • withers
    • back
    • shoulders
    • legs
    • hooves

    Askellajit:

    • walk
    • trot
    • gallop
    • pace
    • ambling gait

    Luonne:

    • obedience
    • nerves
    • maneuverability
    • curiosity
    • humor
    • patience
    • endurance
    • agility
    • speed

  • Jyhkyjen harrastajat

    varaan…


  • Jyhkyjen harrastajat

    Ensimmäiset leiskarungot

    Tallit etusivu
    Pemberley koostuu useista eli alatalleista joita tulee luultavasti vielä lisää ainakin pari kappaletta. Tällä sivulla olisi nuo kaikki tallit listattuna. En tahtonut oikein keksiä mitään fiksua tapaa listat noita talleja niin ne on nyt tuollattis. Se on responsiivinen, että mobiilissakin toimii smoothisti.

    Tallin etusivu
    Tallin etusivulle lyhyt kuvaus tallin pääkasvatusroduista sekä luultavasti kasvattilistaus siihen perään. Eipä kait siihen oikeen mitään muuta kannata edes laittaa? Nostoina jalostukseen tarjottavia oria/tammoja randomisti.

    Hevoset listaus
    Oikeesti yritin keksiä tähän jotain kivempaa tapaa kuin perinteinen ja tylsä taulukko, mutta ei kait siihen ole mitään fiksumpaa toteutusta.

    Hevosen sivu
    Jotenkin vähän sekavan oloinen omaan mieleen. Mitenköhän tätä saisi siistimmäksi… Siinä nyt kumminkin näkyy suunilleen kaikki mitä haluan sivuilla näyttää (päiväkirja puuttuu). Kilpailutaulukossa voisi näkyä vaikka max. 5-7 parasta sijoitusta (uusimmat), siinä oikealla sitten olisi yhteenvetona voitto- ja sijoitus%. Sukutaulu vois olla tuollainen perinteisestä poikkeava, siinä voisi näkyä nimen lisäksi vielä rotu, säkä ja väritys.


  • Jyhkyjen harrastajat

    Viime viikkoina saatu aikaiseksi:

    • hevosta luodessa haetaan “virtuaalitallipelistä” geenit eli periytyvät ominaisuudet ja tallennetaan ne luotavalle hevoselle
    • luodun hevosen geenit tallentuvat myöst “virtuaalitallipelin” kantaa vastaisuuden varalle 😉
    • demo muutti Herokuun, ei siis pitäisi olla tiedossa katkoksia kuten C9-palvelussa…

    Tulevien viikkojen suunnitelmat:

    • hevosen profiilisivu kuntoon (sittenhän talli on jo melkein valmis itseasiassa), no ei nyt ihan kumminkaan…

    Pitkän tähtäimen suunnitelmat:

    • hevosen sukutaulu täytetään automaattisesti
    • kilpailut: millainen pitäisi olla niiden käyttöliittymä niitä syöttäessä, simppeli sen pitäisi ainakin olla että olisi helppoa ja nopeaa
    • tarvitseeko tallilla olla muita käyttäjiä kuin admin, esim. valkkujen kirjottajat voisi rekisteröityä ja kirjottaa tarinansa suoraan hevosen sivulla olevalla lomakkeelle?

  • Jyhkyjen harrastajat

    Viime viikkoina saatu aikaiseksi:

    • lisätty värigeenit: pohjaväri, modifikaatio/diluutio ja kirjavuus

    Tulevien viikkojen suunnitelmat:

    • hevosen profiilisivu kuntoon (sittenhän talli on jo melkein valmis itseasiassa), no ei nyt ihan kumminkaan…

    Pitkän tähtäimen suunnitelmat:

    • hevosen sukutaulu täytetään automaattisesti
    • kilpailut: millainen pitäisi olla niiden käyttöliittymä niitä syöttäessä, simppeli sen pitäisi ainakin olla että olisi helppoa ja nopeaa
    • tarvitseeko tallilla olla muita käyttäjiä kuin admin, esim. valkkujen kirjottajat voisi rekisteröityä ja kirjottaa tarinansa suoraan hevosen sivulla olevalla lomakkeelle?

  • Jyhkyjen harrastajat

    Ikääntyminen
    Päädyin ikääntymisessä CAS-järjestelmään. Se on minun käyttööni sopiva, harrastan hitaalla temmolla ja taukoja on vuodessa varmasti enemmän kuin aktiivisia kausia. Yritän jättää koodiin kumminkin mahdollisuuden speksata omia ikääntymisiä, sillä rajaehdolla että vauhti on tasainen. Hevonen ei siis voi ikääntyä viikossa 0-vuotiaasta 5-vuotiaaksi ja siitä edespäin 2kk = 1url vuosi tyylllä. Koska tausta-ajatuksena on realistisuus, niin en näe järkeä epätasaisessa ikääntymisessä.

    Pitkään pohdin myös vuoropohjaista ikääntymistä, eli harrastajalla olisi tietyn verran XP (experience points, “expaa” eli taitopisteitä) per vuoro. Yhdellä vuorolla voisi tehdä sitten erinäköisiä asioita: ikäännyttää, astuttaa, kisata, valmentaa, ruokkia, ratsuttaa, jne… ja nämä toimet verottaisi sitten tieyn verran pisteitä kokonais-saldosta. Yksi vuoro voisi olla esimerkiksi viikon mittainen. XP:tä kertyisi tehtyjen/saavutettujen asioiden mukaan: voitot tai sijoitukset kisoissa/näyttelyissä, siitä onnistuiko astutus (ja myöhemmin siitä syntyikö varsa elävänä), miten treenaus/ratsastus onnistui (nämä voisi olla jopa jotain pikkupelejä!), jne jne. Loputtomasti mahdollisuuksia! Pelaamalla vuoron siis kaikki hevoset ikääntyisivät sen viikon eteenpäin, riippumatta siitä teitkö sillä mitään vuoron aikan. Tällöin ei haittaisi pitkätkään on/off tauot pelaamisessa.

    Nyt kun pohdin ja makustelen tätä vuoropohjaisuutta niin ei vitsit, tämähän alkoi houkuttaa yhä enemmän! Ainoaksi ongelmaksi muodostuu oikeastaan kisat, eli ne eivät olisi perinteisiä johon voi osallistua kuka vaan (eli tallin ulkopuoliset) ELLEI määrittelisi että pelaaja voi pelata yhden vuoron per päivä (kisoihin voisi siis osallistua keskiyöhän mennessä 23:55 ja tulokset tulisi 00:05)… Tässä siis otetaan jo sitä huomioon että pelisi olisi jossain vaiheessa selainpeli jota pelaa useampi harrastaja. Silloin kaikki yhden päivän aikana osallistumaan laitetut hevoset kisaisi toisiaan vastaan, muuten kisat pitäisi vetää täytehevosilla (joille pitäisi arpoa kisapisteet jotta tallin hevosten ominaisuuspisteillä olisi jotain vaikutusta)… Toisaalta onko sillä väliä onko luokassa olevat kilpailijat muiden harrastajien hevosia vai kuten laukkamaailmassa käytetyt täytehevoset? Ei minusta.

    Lyhyesti plussat ja miinukset

    CAS

    ➕ sopiva tempo omaan makuun

    ➕ valmiit laskurit olemassa (virtuaalijelppi)

    ➕ käytössä jo monilla harrastajilla, tuttu vaikkei käyttäisikään

    ➕ realistinen, varsa ei voi olla vanhempi kuin emänsä/isänsä

    ➖ sukupolvet menevät hitaasti, kasvatustyö hidasta

    Vuoropohjainen

    ➕ pelaaja itse määrittelee temmon, sopii kaikille pelaajille

    ➕ realistisempi, pitää miettiä mitä haluat tehdä vuoron aikana (ei voi tehdä kaikkea) > haastavampi pärjätä > panostetummat hevoset (?)

    ➖ rajoittaa, et voi olla kaikkivaltias: tehdä milloin ja mitä vaan


  • Suomenhevoskasvattajat

    Vitsi että toi vuoropohjainen kuulostaa kivalta! 🙂

    Oon koittanut omankin projektitallin tehdä mahdollisimman realistiseksi: virtuaaliraha käytössä, tamma kantaa varsaansa pidempään kuin viisi sekuntia jne 😄


  • Jyhkyjen harrastajat

    @Sippe joo nyt kun sitä itsekin enemmän mietin niin alan milteimpä kallistumaan vuoropohjaisuuteen. Silloin pelaaja saa itse päättää miten nopeasti haluaa pelata ja panostaminen tiettyyn hevoseen/hevosiin näkyisi paremmin kun kaikilla ei voisi vaikkapa juuri kisata niin paljon kuin haluaa.


 

16
Online

888
Users

11.7k
Topics

215.1k
Posts

Kysyttävää, kommentoitavaa tai palautetta? Ota yhteyttä suoraan ylläpitäjään (Tilli): maatila.pemberley@gmail.com.

Looks like your connection to Keskusta was lost, please wait while we try to reconnect.