Omat peli- ja ohjelmaprojektit

  • Keskustelun aloittaja Keskustelun aloittaja Zvona
  • Aloitettu Aloitettu
Noh, nyt peli generoi kartan annetun kuvatiedoston perusteella. Kartat 128x128 - 4096x4096 tileä. Proseduraaliset metsät kohinasta. Pelialue piirretään 32x32 tilemap-chunkkeina omassa langassa (tästä ei paljoa apua). Kameraa voi pannata, zoomata, kääntää 45 asteen portaassa tai portaattomasti. Minimapilla voi liikkua kartan eri osiin, ja siinä on boksi, joka näyttää kameran näyttämän alueen. Lisäksi minimapin tekstuuri asetetaan koko kartan taustakuvaksi, joten myös renderöimättömillä alueilla on jotain grafiikkaa.

Jos 4096x4096 tilemapin piirtää 16x16px tilesetillä kokonaan, niin siitä tulee niin iso, että peli lataa monta minuuttia, vie 12 gigaa muistia, ja jos se n näyttää kerralla kokonaan, fps on 2. Godotin Tilemapeissa ei taida olla mitään mipmap-tukea, vaan niistä pitäis generoida uudet tilemapit pienemmällä resoluutiolla, tai jotkut tekstuurit tms.

Menee aika vaikeaksi, kun en oikein näistä grafiikkahommista ymmärrä. OpenTTD esim. näyttää aika pienen osan pelikartasta kerrallaan suurimmallakin zoomilla, joten siitäkään ei voi ottaa mallia.

Seuraavaksi pitäisi pohtia, miten 2D-listan saa jaettua suunnilleen suorakulmaisiin polygoneihin. Suomessa tonttijako on usein tehty kohtisuoraan vesistöön nähden. Ehkä alkuun riittää toteutus, että tontit saa yleensä jaettua, ja sitä jakoalgoritmiä voi hifistellä myöhemmin. Sen lisäksi pitäisi sitten tontin kulmat tallentaa, ja piirrellä jotain polylinejä sen perusteella. Polylinet vain menevät päällekäin, joten en tiedä pitäisikö laskea vain tarvittava määrä viivoja pisteiden välille.

Mitenkähän tuollaiset yleensä tehdään? Ei ole oikein mitään hajua, miten lähteä edes liikkeelle. Kohinasta on helppo lukea arvoja, mutta pirullako lennosta jaat maat tontteihin...

Normaalinäkymä:
game_view01.png


Kamera käännettynä kulmaan:
game_view02.png


Aika paljon ulos zoomattu näkymä 4096x4096 kartalla.
taustatekstuuri.png
 
Binaaripuu tai vastaava voisi olla yhdenlainen lähtökohta eri tarkkuuksien generoimiseen. Puun uudelleengenerointi tyhjästä toki on hidasta. Ainakin staattiselle sisällölle renderöinti toimisi nopeasti. Puun voisi tietenkin esilaskea ja tallettaa levylle pakattuna. Binaaripuun uudelleenlaskeminen voisi myös rinnakkaistua ihan kivasti. Samasta ideasta löytyy monimutkaisempiakin toteutuksia, jos geometria ei ole neliöitä, mutta ehkä helpompi ensin testata yksinkertaisella lähestymistavalla. Jos tuntuu toimivan niin sitten siitä jatkaa etiäpäin ja jos ei toimi niin ei mennyt niin paljon aikaa hukkaan.

bsp lienee turha, jos puhutaan 2d-sisällöstä, mutta voi silti olla kiinnostavaa luettavaa: Binary space partitioning - Wikipedia
 
Viimeksi muokattu:
Vuosia on tullut Unityn kanssa värkkäiltyä ja siinä sivussa opittua C#. Wingsiä ja muita luolastolentelypelejä aikanaan lukemattomia tunteja näpyttäneenä päätin tehdä oman version sellaisesta. Frayspace tulee sisältämään deathmatchin ja team deathmatchin lisäksi capture the flag ja control points tiimipelimoodit. Kaikki moodit tukee 4 pelaajan lokaalia moninpeliä ja deathmatchissa lisäksi Chaos moodi, jossa kaikki pelaajat samalla ruudulla ja tästä syystä pelaajia voikin olla 8.
Eka (jo sisällöltään vanhentunut) traileri löytyy Steamistä ja Youtubesta eka dev update, ajatuksena pitää kehityksestä jatkossa logia tollasilla nopeilla pätkillä. Julkaisu tulee olemaan kesän jälkeen tänä vuonna - toivelistaa ja seuraa jos kiinnostaa!

E: katos, tähän saa upotettuakin videon.

Traileri:


Dev Update:

 
Tässä jonkin aikaa kirjoittanut itselle kirjoitus sovellusta ja tarkoitus olisi julkaista se kevään aikana muidenkin käytettäväksi. Alunperin lähdin kehittämään hyvin minimalistista notepad tyylistä sovellusta, mutta melko nopeasti eri ominaisuuksia alkoi kertymään kuten ladonta asetukset, teemat/värit, esitallennetut fontti & väriasetukset, teksti sapluunat, Markdown tuki jne.

Tähän mennessä (mielestäni) kivoin ominaisuus on asetuksien nopea vaihto pikanäppäimillä tai vierittämällä hiiren rullaa halutun asetuksen päällä, joka mahdollistaa sisällön kontekstin sitomisen editorin väreihin, jolloin tietää, että fontilla X ja väreillä AB oleva ikkuna sisältää asiaan Y liittyvän asian (esimerkiksi päivittäinen muistiinpano, sähköposti, kääntäjän virheviesti yms.) ilman että tarvitsee vielä lukea riviäkään tekstiä.

IMG_2023-03-11_1957.png


Teknologiana ihan HTML, CSS & JS ja sovellus on sitten kääritty työpöytäsovellukseksi Taurin avulla. Toimii ihan kivasti ja Tauri käyttää käyttöjärjestelmän omaa selainmoottoria (WebKik, WebView 2), jolloin sovelluksen ei tarvitse tuoda omaa Chromiumia mukanaan Electronin tapaan ja bundlen koko on ~3.5 Mt, josta ~700 kt on kuvaketta.

Taurin lisäksi ulkopuolisina kirjastoina käytössä command-pal, mousetrap ja tab override, mutta loput on tehty itse. Taroituksena vielä muuntaa JavaScript TypeScriptiksi ja sitten laittaa avoimeen tai suljettuun betaan käyttäjille.
 
Tein tällaisen Speden Speleistä tutun reaktiopelin harjoitustyönä Unity 3D -kurssilla pari vuotta sitten kai Reaktori. Käänsin Android-versionkin, mutta halusin siihen mainoksia, niin nyt Play Storeen pitäisi tehdä Privacy Policy ja en osaa sellaista kirjoittaa, mitä ihmettä siihen voisi laittaa, pitäisikö lukea koko Unity Adsin Privacy Policy ja siitä kirjoittaa oma versio sen pohjalta. Aiemmin kai toimi, kun linkkasi siihen, mutta enää ei kai.
 
Tein tällaisen Speden Speleistä tutun reaktiopelin harjoitustyönä Unity 3D -kurssilla pari vuotta sitten kai Reaktori. Käänsin Android-versionkin, mutta halusin siihen mainoksia, niin nyt Play Storeen pitäisi tehdä Privacy Policy ja en osaa sellaista kirjoittaa, mitä ihmettä siihen voisi laittaa, pitäisikö lukea koko Unity Adsin Privacy Policy ja siitä kirjoittaa oma versio sen pohjalta. Aiemmin kai toimi, kun linkkasi siihen, mutta enää ei kai.
En tiedä, mutta ihan käsittämätöntä paskaa että tolla sivulla mainos tulee suoraan niiden nappuloiden päälle. Ei näin. :facepalm:
 
Joo. Taisin jossain vaiheessa ajatella niin, että jos tulee puhelimella, niin sitten se suosittelisi appin asentamista, mutta se jäi nyt, kun en saa sitä kauppaan. Ja iOS-versiota ei ole tulossa.
 
Tuli nyt mullakin nappien eteen. Ei näköjään työpöytäselaimen mobiilimoodi näyttänyt oikein.
 
Tein tällaisen Speden Speleistä tutun reaktiopelin harjoitustyönä Unity 3D -kurssilla pari vuotta sitten kai Reaktori. Käänsin Android-versionkin, mutta halusin siihen mainoksia, niin nyt Play Storeen pitäisi tehdä Privacy Policy ja en osaa sellaista kirjoittaa, mitä ihmettä siihen voisi laittaa, pitäisikö lukea koko Unity Adsin Privacy Policy ja siitä kirjoittaa oma versio sen pohjalta. Aiemmin kai toimi, kun linkkasi siihen, mutta enää ei kai.

Enpä huomannut aikaisemmin, mutta itse tein kanssa joskus 200x ensimmäisillä Android studioilla tämmösen oman version speden speleistä, vähän nopeampaan giana-sisters tyyliin. Tarkoitus oli joskus jatkaa muttei sitten motivaatio riittänyt, ajatuksena oli että nuo pallot alkaisivat skrollaamaan ylös alas vaikeustason kasvaessa.

Ihan turvallinen ladata https://tjk.fi/Reaktoid.apk ja testata vaatii tosin androidista sen "allow developer content" tms päälle. Tehty ZTE Bladelle joten tableteilla ei toimi, ehkä puhelimilla. Mutta on siis olevinaan räyhäkkäämpi ja nopeampi versio tuosta pelistä, kyllä sillä jotkut kaverit on hakanneet yli 400 jos oikein muistan.
 
Enpä huomannut aikaisemmin, mutta itse tein kanssa joskus 200x ensimmäisillä Android studioilla tämmösen oman version speden speleistä, vähän nopeampaan giana-sisters tyyliin. Tarkoitus oli joskus jatkaa muttei sitten motivaatio riittänyt, ajatuksena oli että nuo pallot alkaisivat skrollaamaan ylös alas vaikeustason kasvaessa.

Ihan turvallinen ladata https://tjk.fi/Reaktoid.apk ja testata vaatii tosin androidista sen "allow developer content" tms päälle. Tehty ZTE Bladelle joten tableteilla ei toimi, ehkä puhelimilla. Mutta on siis olevinaan räyhäkkäämpi ja nopeampi versio tuosta pelistä, kyllä sillä jotkut kaverit on hakanneet yli 400 jos oikein muistan.

Asentuu puhelimelle, mutta ei näy kuin pieni ruutu vasemmassa yläreunassa. Kaikki muu on mustaa.
 
Asentuu puhelimelle, mutta ei näy kuin pieni ruutu vasemmassa yläreunassa. Kaikki muu on mustaa.

Joo ei vissiin taivu näille uusien puhelimien resoluutioille, tehty siis joskus ZTE Bladelle.. Täytyis kattoa jos löytyis jostain lähdekoodit vielä..
 
Asentuu puhelimelle, mutta ei näy kuin pieni ruutu vasemmassa yläreunassa. Kaikki muu on mustaa.

Tuli semmonen vielä mieleen että tämä toimii muistaakseni vain vaaka-tasossa, jos kääntää pystyyn tai toisinpän niin soi musat :)
 
Tuli semmonen vielä mieleen että tämä toimii muistaakseni vain vaaka-tasossa, jos kääntää pystyyn tai toisinpän niin soi musat :)

Foldissa niin oudot kuvasuhteet että ei tahdo toimia niinkään. Jään odottamaan päivitystä :comp:
 
Tässä jonkin aikaa kirjoittanut itselle kirjoitus sovellusta ja tarkoitus olisi julkaista se kevään aikana muidenkin käytettäväksi. Alunperin lähdin kehittämään hyvin minimalistista notepad tyylistä sovellusta, mutta melko nopeasti eri ominaisuuksia alkoi kertymään kuten ladonta asetukset, teemat/värit, esitallennetut fontti & väriasetukset, teksti sapluunat, Markdown tuki jne.

Tähän mennessä (mielestäni) kivoin ominaisuus on asetuksien nopea vaihto pikanäppäimillä tai vierittämällä hiiren rullaa halutun asetuksen päällä, joka mahdollistaa sisällön kontekstin sitomisen editorin väreihin, jolloin tietää, että fontilla X ja väreillä AB oleva ikkuna sisältää asiaan Y liittyvän asian (esimerkiksi päivittäinen muistiinpano, sähköposti, kääntäjän virheviesti yms.) ilman että tarvitsee vielä lukea riviäkään tekstiä.

IMG_2023-03-11_1957.png


Teknologiana ihan HTML, CSS & JS ja sovellus on sitten kääritty työpöytäsovellukseksi Taurin avulla. Toimii ihan kivasti ja Tauri käyttää käyttöjärjestelmän omaa selainmoottoria (WebKik, WebView 2), jolloin sovelluksen ei tarvitse tuoda omaa Chromiumia mukanaan Electronin tapaan ja bundlen koko on ~3.5 Mt, josta ~700 kt on kuvaketta.

Taurin lisäksi ulkopuolisina kirjastoina käytössä command-pal, mousetrap ja tab override, mutta loput on tehty itse. Taroituksena vielä muuntaa JavaScript TypeScriptiksi ja sitten laittaa avoimeen tai suljettuun betaan käyttäjille.

Kirjoitusohjelmille varmasti on vielä tilaa.
Pääseekö tätä testaamaan jostain?
 
Tehtiin tuossa Pythonilla ja Pygamella Hirsipuu peli. :D
Ensimmäinen vähän isompi Python projekti.
Ihan toimiva peli sinänsä tuli vaikka koodissa onkin paljon optimoitavaa...
Niin ja mielenkiintonen kieli toi python ja hyvin äkkiä sillä saa aikaan kaikennäköstä
 
Tehtiin tuossa Pythonilla ja Pygamella Hirsipuu peli. :D
Ensimmäinen vähän isompi Python projekti.
Ihan toimiva peli sinänsä tuli vaikka koodissa onkin paljon optimoitavaa...
Niin ja mielenkiintonen kieli toi python ja hyvin äkkiä sillä saa aikaan kaikennäköstä
Mulla rupee läppärissä tuuletin huutamaan täysillä kun pelin käynnistää ja CPU:n käyttö pysyy satasessa ohjelman aukiolon ajan.
 
Mulla rupee läppärissä tuuletin huutamaan täysillä kun pelin käynnistää ja CPU:n käyttö pysyy satasessa ohjelman aukiolon ajan.
Pitää sitten mitä luultavammin rajoittaa tota fps:ää kun nyt se on rajoittamaton pois lukien toi animaatio ruutu.
Pitää kahtoa josko johonkin aikaan päivällä ois aikaa tutkia tota. Nyt oon jo laskemassa lampaita... :smoke:
 
Tehtiin tuossa Pythonilla ja Pygamella Hirsipuu peli. :D
Ensimmäinen vähän isompi Python projekti.
Ihan toimiva peli sinänsä tuli vaikka koodissa onkin paljon optimoitavaa...
Niin ja mielenkiintonen kieli toi python ja hyvin äkkiä sillä saa aikaan kaikennäköstä
Fyi; Pelitti (10 vuotta vanhalla) mäkilläki hyvin. Kunhan tosiaa python3 löytyy (en tiiä tuleeko käyttiksen mukana). Esim. homebrew ja sit brew install python3, jonka jälkee linux ohjeet pätee macosillekki.
 
AMD Ryzen 5 7530U
No kyllähän tuolla sitten tosiaan jonkuin verran varmaan laski prossun käyttöaste. Mä alkuun aattelin, että sielä on joku tuhnu 2 ydin i3 ultrabook tjsp. :D
Toi pygame on itsessään olemassa aika prossua rasittava käsittääksein.
 
Moi!

Aloitin itse ohjelmoinnin harjoittelemisen lähes 20 vuotta sitten, ja yksi ensimmäisistä projekteista oli Pörssiromahdus-niminen tekstipohjainen selainpeli. Pelin ideana on aina ollut oman yrityksen/yrityksien pyörittäminen sekä valuuttojen ja tavaroiden kaupustelu muiden pelaajien kanssa.

Tämä sama projekti on tullut aloitettua alusta aika monta kertaa. Ensin Pörssiromahdus, sitten kansainvälisemmin MarketCrash.

Viimeisimmän projektin nimi on nyt MoneyGame. Peli antaa mahdollisuuden pyörittää monen eri tyypin yrityksiä: resurssien tuotanto, tavaroiden tuotanto, asuntovuokraus, kaupat, pankit jne. Myös valuuttojen/tavaroiden treidaaminen pörssin (The Exchange) kautta on keskeisessä roolissa.

Heti etusivulta löytyy muutama kuvakaappaus, ja rekisteröinti vaatii tällä hetkellä vain nimen ja uuden salasanan, eikä tietenkään maksa mitään:

Jos joku vaivautuun kokeilemaan asti, arvostaisin kaikenlaista palautetta!
 
Moi!

Tämä sama projekti on tullut aloitettua alusta aika monta kertaa. Ensin Pörssiromahdus, sitten kansainvälisemmin MarketCrash.

Jos joku vaivautuun kokeilemaan asti, arvostaisin kaikenlaista palautetta!

Klikkasin linkkiä ja näytti heti siltä että aikaa ja vaivaa on nähty, siitä 5/5.

Näin sunnuntai (tuhannen krapula) aamuna ei kyllä pysty millään keskittymään mihinkään numeroihin, saati ettå pelissä pärjäisi.. Ehkä joku muu :)
 
Rekisteröityminen ei onnistunut.

"Form submission failed. {"status":"error","message":"A server-side error occured - please try again."} ()"
 
Rekisteröityminen ei onnistunut.

"Form submission failed. {"status":"error","message":"A server-side error occured - please try again."} ()"
Kiitos paljon ilmoituksesta! Oli tosiaan hetken aikaa pimeänä tuo rekisteröityminen, mutta nyt pitäisi taas toimia.
 
Koodailin tämmöisen selainpelin:

Esikuvana on The New York Timesin Connections-peli. Tarkoitus on muodostaa neljä kappaletta neljän sanan ryhmiä sanoista, jotka liittyvät toisiinsa jollakin tavalla. En ole mikään mestaripelintekijä, mutta on hauska yrittää pitää tietokannassa riittävästi pelejä, että joka päivälle on uusi.
 

Statistiikka

Viestiketjuista
261 793
Viestejä
4 547 336
Jäsenet
74 849
Uusin jäsen
ookooo

Hinta.fi

Back
Ylös Bottom