Tai rekisteröidy jo tänään!
Sivuja: [1] 2

Project HNGR

0 jäsentä ja 1 Vieras katselee tätä aihetta.
Aloitusviesti: 31. Elokuu 2016, 11:00 (muokannut karhu 30. Huhtikuu 2017, 22:49)Peukku ylös +0Peukku alas -0
Project HNGR (nimiä saa ehdottaa.. :D)


Elikkäs jälleen kerran tälläinen ikuisuusprojekti. Se on sellainen hungergames -tyylinen ylhäältä kuvattu selainpeli. Missä ei tavallaan pelata. Valitaan vaan listasta ittelleen oma "favorite,"AI-Botti. Boteilla on erilaisia skillejä jotka on niille proseduraalisesti generoituja niiden nimen mukaan. Kenttäkin on ofc proseduraalisesti generoitu.

Hostaaja voi siis tehdä oman pelihuoneen, mihin muut voi yhdistää, sitten veikataan omaa pelaajaa voittajaks ja ne tappelee keskenään siellä. Omalle botille voi pelin aikana antaa erilaisia pickuppeja/lahjoja, mikä voi auttaa oman botin selviytymistä. Pelissä ois sellanen unreal worldin/dwarf fortressin tyylinen semitarkka damagentunnistus, sitten ois suunnitteilla sellainen dwarf fortress tyylinen tarinankerronta -systeemikin.

Pelin kielenähän on puhdas javascripti ja html5 hölmöily. Servupuolella pyörii javascriptinä node.js ja socket.io.


Tässä muutama alphaprototyypittelykuva, että saa edes jonkinlaista käsitystä, mitä olen pelistä luomassa. Ihan hirveetä prototyyppishaibagrafiikkaa näin aluksi. (Kyllä.. tapan kaikki on legendaarinen peli, niin miksi en tekisi hahmoista vähän samantyylisiä.. :D) ja noista viivoista yms turha välittää, kunhan debuggaamistarkoituksessa piirtelin pelaajan kuulo ja näkö-etäisyyksiä.



-+

Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#1: 01. Syyskuu 2016, 18:41Peukku ylös +0Peukku alas -0
Sain muutaman päivän duunailun jälkeen väsättyä uuden maailmageneraattorin kuntoon. Aikasemmin väsäsin koko kartan kerralla peliin yhdistäessä ja pelin kartan maksimikoko oli 12800 x 12800, isoimmat koot oli erittäin hidasta väsäillä ja isoissa kartoissa oli sitten jo esim puitakin yhdessä arrayssä joku ~20 000 kpl. Oli aika hidasta hitaimmilla koneilla, mobiililla ja älytelkkarilla. :D Nyt kartta generoituu sitä tahtia, mitä etenet kartalla.

Tosin nyt ei voi hienosti kattoa lobbyssä, että minkätyylinen mappi on tähän tyyliin;


Tai no. Voisinhan minä periaatteessa väsätä jonkun minimapin alkuun, mutta se lisäis sitten lataamisaikaa.

Seuraavaksi pitäis laittaa "algoritmit" kuntoon ja tehdä kartasta enemmänkin saarityylinen. (Eli, kun x tai y arvo on tarpeeks, niin tilen tyypistä tulee vettä :D) Sitten pitäis varmaan siirtää koko worldin generaattoriscripti javascriptin web workkeriks jotenkin. Tällä hetkellä ilmenee ihan puolikkaan millisekunnin pätkäsy, kun uutta karttaa luodaan lennosta, koska pelin logiikkakin pyörii tällä hetkellä ilman web workkeria.
1x
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#2: 31. Tammikuu 2017, 10:16Peukku ylös +0Peukku alas -0
Hetkellisten jäätymisten jälkeen ja uudelleen suunnittelupöydälle palaamisen kanssa tulin siihen tulokseen, että kirjotan koko koodin uusiks vielä enemmän OOP -tyyliin ja en kirjoita koko grafiikkamoottoria itse, vaan otan pixiJS -grafiikkamoottorin käyttöön. Menee hermot normaalin canvasin kanssa ja webGL -shadereiden laskemisessa menee mielenterveys, varsinkaan kun matikkapuoli ei ole aina ihan täydellisesti hallussa noiden matriisien kanssa.

Aluks oli ideana rakentaa iso proseduraalisesti generoitu maailma, jonka koodikin oli valmis, mutta buginen. (Jostain syystä joihinkin kohtiin vaihtu itsestään uusi tile, vaikka ei pitäisi, joku seediongelma tms) Tulin siihen tulokseen, että rakennan eka pienemmän maailman, tietenkin sen proseduraalisesti, mutta sen verran pienen, että en joudu piilottamaan/luomaan maailmanpalikkaobjekteja lennosta, vaan ne on kokoajan "olemassa." Tällä tavalla en kuluta kaikkea aikaa maailman luomiseen, vaan rakennan itse pelin luurangon ja AI:n valmiiksi, että voin testata onko peli edes hauska pelata. :D

Tuli myös palvelin hankittua, mutta siinä on vain 512mb muistia, niin menee oma aika testaillessa miten niin vähäinen muistimäärä jaksaa pyörittää taustapalvelinta.
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#3: 31. Tammikuu 2017, 10:27Peukku ylös +0Peukku alas -0


Tuli myös palvelin hankittua, mutta siinä on vain 512mb muistia, niin menee oma aika testaillessa miten niin vähäinen muistimäärä jaksaa pyörittää taustapalvelinta.




Onko kyseessä virtuaalipalvelin?
Tykkään
#4: 31. Tammikuu 2017, 11:24Peukku ylös +0Peukku alas -0



Onko kyseessä virtuaalipalvelin?
joo.. digitaloceanilta.
1x
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#5: 31. Tammikuu 2017, 11:44 (muokannut Mercedes 31. Tammikuu 2017, 12:38)Peukku ylös +0Peukku alas -0
joo.. digitaloceanilta.




Kun saat pelin kuntoon siten että siitä tulee rahaa niin siihen varmaan saa ostettua lisää muistia. En tosin tunne kyseistä firmaa.


Edit: katsoin firman sivua ja se kyllä onnistuu.
Tykkään
#6: 02. Helmikuu 2017, 10:27Peukku ylös +0Peukku alas -0



Kun saat pelin kuntoon siten että siitä tulee rahaa niin siihen varmaan saa ostettua lisää muistia. En tosin tunne kyseistä firmaa.


Edit: katsoin firman sivua ja se kyllä onnistuu.
Joo digitalocean on näppärä. Muutamalla napinpainalluksella voin sylkeä uusia palvelimia pihalle, tai laittaa vanhaan muistia lisää. Kerran kuussa laskutetaan ja on aina pari kuukautta aikaa maksaa lasku. :D
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#7: 02. Helmikuu 2017, 12:57Peukku ylös +0Peukku alas -0
Joo digitalocean on näppärä. Muutamalla napinpainalluksella voin sylkeä uusia palvelimia pihalle, tai laittaa vanhaan muistia lisää. Kerran kuussa laskutetaan ja on aina pari kuukautta aikaa maksaa lasku. :D


Toi kuulostaa tosi hyvältä. Ehkä minäkin otan itselleni virtuaalipalvelimen.
Tykkään
#8: 02. Helmikuu 2017, 20:16Peukku ylös +0Peukku alas -0
Menee vähän offtopiciksi, mutta IMO noi Digitaloceanin VPS:t on aika kalliita ominaisuuksiinsa nähden. Ainakin siis jos ei ole käyttöä tuolle että noita dropletteja pystyy helposti kloonailemaan tai esim. skaalailemaan käyttötarpeen mukaan. OVH:lta saa esim. neljän euron hintaan jo aika paljon enemmän irti tuosta VPS:stä. Jos oikeen haluaa penniä venyttää niin joskus myös itse vuokrannut jotain devi-VPS:iä lowendboxin diileistä ihan muutamalla dollarilla / kk.

Itse pelistä; ihan mielenkiintoiselta vaikuttaa, nää verkkopelit on aina jänniä vaikka ovatkin tosi työläitä kehittää. Näistä kannattaa yleensä värkätä jonkinlainen demo jo suht aikaisessa vaiheessa, koska yleensä verkotetuista peleistä tuppaa kummallisia bugeja löytymään (etenkin kun alustana on HTML5) :)
1x
Tykkään
#9: 03. Helmikuu 2017, 09:45Peukku ylös +0Peukku alas -0
Menee vähän offtopiciksi, mutta IMO noi Digitaloceanin VPS:t on aika kalliita ominaisuuksiinsa nähden. Ainakin siis jos ei ole käyttöä tuolle että noita dropletteja pystyy helposti kloonailemaan tai esim. skaalailemaan käyttötarpeen mukaan. OVH:lta saa esim. neljän euron hintaan jo aika paljon enemmän irti tuosta VPS:stä. Jos oikeen haluaa penniä venyttää niin joskus myös itse vuokrannut jotain devi-VPS:iä lowendboxin diileistä ihan muutamalla dollarilla / kk.

Itse pelistä; ihan mielenkiintoiselta vaikuttaa, nää verkkopelit on aina jänniä vaikka ovatkin tosi työläitä kehittää. Näistä kannattaa yleensä värkätä jonkinlainen demo jo suht aikaisessa vaiheessa, koska yleensä verkotetuista peleistä tuppaa kummallisia bugeja löytymään (etenkin kun alustana on HTML5) :)
Joo monesti oon OVH:ta miettinyt, ei oo ollut vaan sopivaa ajankohtaa pystyttää uutta, pitäis aina kuun alussa/lopussa tehdä vaihto. Ehkä jossakin vaiheessa. 2gb muistimäärä ois kyllä aika tarvittava kun LAMP -stackin lisäks heittää pyörimään node -palvelimen. (tai sit heitän vps:n pelkästään node -käyttöön, koska kyllähän noita nettisivutiloja saa ilmasiks, esim arkku.net)

HTML5 on kiva alustavalinta pelille sen takia, että sitä voi pyörittää vaikka älytelkkarin selaimella :D (On tullut muuten kokeiltua, oli vähän lagista ainakin tässä pelissä.) Isoin ongelma on varmaan huijauksen esto, mutta tällä hetkellä ideana on tehdä hostaus ja laskeminen pelin hostaajan tietokoneella, josta data lähetetään node -palvelimelle, joka taas jakaa sen peliin liittyneille. Eli ainut joka voi huijata tai "rikkoa" pelin on itse pelin hostaaja. Eikä tämä vaikeaa ole, koska selaimessa ei hankala ole javascriptiä muutella. (en ole varma et onnistuisko tekemään jonkun hashi -varmennuksen, että peli on varmasti "oikea," node -palvelimeen yhdistättäessä.

Mut tää on ollut kiva projekti joka on antanu tuntua varsinkin tähän verkkopeli -hommaan ja muutenkin oon oppinut uutta javscriptistä. Seuraavaks lähen kaikkea tekemään uusiks selvällä syntaksilla ja hyvillä selvillä muuttujien nimillä.
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#10: 03. Helmikuu 2017, 10:20Peukku ylös +0Peukku alas -0
Minulla on ollut joskus OVH, muistaakseni siinä oli tosi hyvä control panel.
Tykkään
#11: 03. Helmikuu 2017, 10:39Peukku ylös +0Peukku alas -0
Minulla on ollut joskus OVH, muistaakseni siinä oli tosi hyvä control panel.
Joo tuli huvikseen tilattua nyt tuo testiks. Vähän kauemmin kestää hyväksymisessä, kuin esim digitaloceanissa. Paneelista en vielä voi sanoa mitään, toivottavasti ois yhtä hyvä ku digitaloceanissa. Eli selvä ja simppeli.
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#12: 03. Helmikuu 2017, 10:46Peukku ylös +0Peukku alas -0
Joo tuli huvikseen tilattua nyt tuo testiks. Vähän kauemmin kestää hyväksymisessä, kuin esim digitaloceanissa. Paneelista en vielä voi sanoa mitään, toivottavasti ois yhtä hyvä ku digitaloceanissa. Eli selvä ja simppeli.


Kerro siitä paneelista sen jälkeen kun olet tutustunut siihen miten se vertautuu Digital Oceanin vastaavaan.
Tykkään
#13: 06. Helmikuu 2017, 10:19 (muokannut karhu 06. Helmikuu 2017, 14:22)Peukku ylös +0Peukku alas -0

Kerro siitä paneelista sen jälkeen kun olet tutustunut siihen miten se vertautuu Digital Oceanin vastaavaan.
Kieltämättä digitaloceanin paneeli on vähän nykyaikaisempi ja selvempi. Ovh:lla näkyy taas enemmän tietoa yhdellä sivulla. Molemmat ihan käytettäviä, mutta digitaloceanissa vähän käyttäjäystävällisempi käyttöliittymä.

E: Ompas myös ärsyttävää, että noilta ei saa omaa DNS:ää, jos ei siirrä domainia niille. :|
E: Onnistuupa.
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto
#14: 18. Huhtikuu 2017, 07:46Peukku ylös +1Peukku alas -0
Noniin hommat ja hiljainen kehitys jatkuu sillä, että heitin kaiken vanhan koodin roskiin ja aloitan koko touhun puhtaalta pöydältä. Teen kaiken sellaisena OOP -tyylillä ja aattelin sittenkin reworkata koko systeemin sellaiseksi, että pelit pyöritettäisiin pelin omalla palvelimella. Käyttäjät voisi tehdä oman tunnuksen sinne ja hankkia itselleen uusia AI hahmoja ja laittas ne tappelemaan keskenään. Käyttäjä olisi vähän niinkuin "hunger gamesin kouluttaja." Seuraava ongelma olisi tietenkin palvelimen resurssit, että miten pieneksi minun pitää karttaa pienentää. Ainakin kartan isoa tilekokoa aattelin pienentää, että aluetta pystyisi muokkaamaan paremman näköiseksi. Nyt oon tosin vasta rakentamassa clienttipuolen gui -systeemiä, joka on jo nyt aika hieno ja aattelin ottaa sen käyttöön muissakin peleissä. Sit vähän olen rakennellut palvelinpuolen tietokantayhteyttäm

Palvelimen koodirakenteen tekisin aulatyylillä, että palvelin heittäisi uusia lobbyjä pystyyn miten käyttäjä niitä tekisi ja kaikki pelilogiikka ja tick:it pyöris omina prosesseina. Jokaisella aulalla ois omat callbackit sitten palvelimen "nettikoodiin" joka lähettäis tiedon clienteille.

Isoin ongelma on tällä hetkellä vielä se, että miten saan websocketit pyörimään ssl -yhteyden kautta ja miten ssl yhteys hidastaa pelin latenssia.
3x
Tykkään
WWW: ROITTO.INFO
TWEET: @PRoitto

Sivuja: [1] 2
 

Powered by SMF 2.0.11 | SMF © 2006–2009, Simple Machines LLC