Simulaatio fantasiamaailman hirviöistä
-
- Active Member
- Posts: 155
- Joined: Wed Dec 03, 2008 8:17 pm
- Location: Haukipudas
Simulaatio fantasiamaailman hirviöistä
tämmöinen projekti, johon sain idean majestyä pelatessa.
Toisin kuin majestyssä, tässä pelaaja ohjastaa erillaisia hirviöitä. tässä demoversiossa on vain 4 erillaista hirviötyyppiä.
koska olen aivan unohtanut pelajan, niin käyttäjä ei voi vielä vaikuttaa mitenkään tapahtumiin.
En jaksanut piirtää grafiikaa, joten hirviöiden grafiikkana on vain ja ainoastaan pikseli.
vihreä pikseli on zombi. punainen on luuranko. sininen on haamu. mangenta on mörkö (bogeyman) ja vähän-niinkuin-vaalean-sininen on olio (thing). 3x3 pikselin kokoiset kuutiot ovat kauppoja, mistä hirviöt ostavat parannusjuomia, parempia aseita ja muita maagisia juomia. rahan puutteessa hirviöt hyökkäävät toistensa kimppuun ja jos hyökkääjän taso on isompi kuin kohteen, niin kohde lähtee juoksemaan karkuun. AI ei ole vielä loistava, mutta suhteellisen toimiva (oma mielipide).
tällä hetkellä hirviöt osaavat vain ja ainoastaan tappaa toisiansa.
kuva
Lataa demo.
ps. jos on omia uniikkeja ideoita hirviöistä ja haluat jakaa niitä, kerro ihmeessä.
Toisin kuin majestyssä, tässä pelaaja ohjastaa erillaisia hirviöitä. tässä demoversiossa on vain 4 erillaista hirviötyyppiä.
koska olen aivan unohtanut pelajan, niin käyttäjä ei voi vielä vaikuttaa mitenkään tapahtumiin.
En jaksanut piirtää grafiikaa, joten hirviöiden grafiikkana on vain ja ainoastaan pikseli.
vihreä pikseli on zombi. punainen on luuranko. sininen on haamu. mangenta on mörkö (bogeyman) ja vähän-niinkuin-vaalean-sininen on olio (thing). 3x3 pikselin kokoiset kuutiot ovat kauppoja, mistä hirviöt ostavat parannusjuomia, parempia aseita ja muita maagisia juomia. rahan puutteessa hirviöt hyökkäävät toistensa kimppuun ja jos hyökkääjän taso on isompi kuin kohteen, niin kohde lähtee juoksemaan karkuun. AI ei ole vielä loistava, mutta suhteellisen toimiva (oma mielipide).
tällä hetkellä hirviöt osaavat vain ja ainoastaan tappaa toisiansa.
kuva
Lataa demo.
ps. jos on omia uniikkeja ideoita hirviöistä ja haluat jakaa niitä, kerro ihmeessä.
Turmankylä
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
Re: Simulaatio fantasiamaailman hirviöistä
Error: unable to set graphics mode
-
- Active Member
- Posts: 155
- Joined: Wed Dec 03, 2008 8:17 pm
- Location: Haukipudas
Re: Simulaatio fantasiamaailman hirviöistä
virhe ei ollut minusta riippuvainen, vaan sinun tietokoneesta, koska tämä on testattu 7 vuotta vanhassa leivänpaahtimessa, missä ohjelma pyöri melkein täydellisesti.oskari wrote: Error: unable to set graphics mode
koneen pitäisi ainakin pystyä 1280x1024 resuluutioon ja 16 bittiseen värisyvyyteen.
Turmankylä
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
Re: Simulaatio fantasiamaailman hirviöistä
Ei ohjelmoija voi tietenkään syyttää käyttäjää mistään. Ohjelman toimivuus on täysin pelintekijän vastuulla. Vähintä mitä ohjelmoija voi tehdä, on antaa käyttäjälle eri vaihtoehtoja. Suosittelen käyttämään GFXModeExists()-funktiota.Requiem for Anthrax wrote:virhe ei ollut minusta riippuvainen, vaan sinun tietokoneesta, koska tämä on testattu 7 vuotta vanhassa leivänpaahtimessa, missä ohjelma pyöri melkein täydellisesti.oskari wrote: Error: unable to set graphics mode
koneen pitäisi ainakin pystyä 1280x1024 resuluutioon ja 16 bittiseen värisyvyyteen.
-
- Active Member
- Posts: 155
- Joined: Wed Dec 03, 2008 8:17 pm
- Location: Haukipudas
Re: Simulaatio fantasiamaailman hirviöistä
Okei se oli minun moka, kun unohdin kertoa näyttövaatimukset ekassa postissa.Jonez wrote:Ei ohjelmoija voi tietenkään syyttää käyttäjää mistään. Ohjelman toimivuus on täysin pelintekijän vastuulla. Vähintä mitä ohjelmoija voi tehdä, on antaa käyttäjälle eri vaihtoehtoja. Suosittelen käyttämään GFXModeExists()-funktiota.Requiem for Anthrax wrote:virhe ei ollut minusta riippuvainen, vaan sinun tietokoneesta, koska tämä on testattu 7 vuotta vanhassa leivänpaahtimessa, missä ohjelma pyöri melkein täydellisesti.oskari wrote: Error: unable to set graphics mode
koneen pitäisi ainakin pystyä 1280x1024 resuluutioon ja 16 bittiseen värisyvyyteen.
Turmankylä
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
Re: Simulaatio fantasiamaailman hirviöistä
Hyvä on Edit: Vielä graffat ja vähän hienosäätöö nii sit on tosi hieno. Keep up the good work!
Tekeillä uusi peli!
Re: Simulaatio fantasiamaailman hirviöistä
Aivan mahtava, rekkasin tänne näin just tän takii
Tää peli on mahtava, onks tän kaltane peli vaikee tehä, ajattelin tehä vähän samanlaisen, muute, sellanen ongelma on ku toi ikkuna on tosi pieni eikä siin näy muutaku tekstit ja välil vilahtaa jotain taustalla, pystyks korjaamaan sillee et menis normaalisti, varmaan mä ainoo kenel tää ongelma?
Tää peli on mahtava, onks tän kaltane peli vaikee tehä, ajattelin tehä vähän samanlaisen, muute, sellanen ongelma on ku toi ikkuna on tosi pieni eikä siin näy muutaku tekstit ja välil vilahtaa jotain taustalla, pystyks korjaamaan sillee et menis normaalisti, varmaan mä ainoo kenel tää ongelma?
Re: Simulaatio fantasiamaailman hirviöistä
Lue ne CB:n esimerkit (F8), ja sitten Ongelmat-alueelle jos tulee ongelmia koodauksen kanssa ja esimerkit ja tutoriaalit -alueelta löytyy kanssa hienoja esimerkkejä. Äläkä unohda katsoa Mestari ja oppipoika -ketjua. Siinä oli nyt muutama vinkki alkuun pääsemiseksi.Jerzy wrote:Aivan mahtava, rekkasin tänne näin just tän takii
Tää peli on mahtava, onks tän kaltane peli vaikee tehä, ajattelin tehä vähän samanlaisen, muute, sellanen ongelma on ku toi ikkuna on tosi pieni eikä siin näy muutaku tekstit ja välil vilahtaa jotain taustalla, pystyks korjaamaan sillee et menis normaalisti, varmaan mä ainoo kenel tää ongelma?
EDIT:
Ja tämäntapaisen pelin teosta en oikein tiedä. Tekoäly sinun pitää osata koodata ja piirtokomennot myös pitäisi hallita. Ikkunan kokoa voi vaihtaa SCREEN -komennolla.
EDIT:
Jos tarkoitit siis omaa tekelettäsi että ikkuna on niin pieni.
EDIT:
Tuli aika paljon offtopicia :/Ja tervetuloa foorumeille vain.
Ontopic:
Testailin tuota peliä ja hienosti tehty kyllä. Ainoat viat olivat että vaikea erottaa noita pikseleitä tuolta, ja teksti katosi liian nopeasti ei ehtinyt kunnolla lukemaan. :/
Code: Select all
#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Re: Simulaatio fantasiamaailman hirviöistä
Minullakin tuo ikkuna menee inhottavasti 400*300 kokoon, varmaan yhteensopivuusonkelmia resojen kanssa. Mutta muuten näyttäisi aika mielenkiintoiselta projektilta
Last edited by Substance on Fri Dec 04, 2009 7:24 pm, edited 1 time in total.
-
- Active Member
- Posts: 155
- Joined: Wed Dec 03, 2008 8:17 pm
- Location: Haukipudas
Re: Simulaatio fantasiamaailman hirviöistä
tämä ei kyllä ollut hankala tehdä. nyt satun olemaan mukavalla päällä niin...Jerzy wrote:Aivan mahtava, rekkasin tänne näin just tän takii
Tää peli on mahtava, onks tän kaltane peli vaikee tehä, ajattelin tehä vähän samanlaisen, muute, sellanen ongelma on ku toi ikkuna on tosi pieni eikä siin näy muutaku tekstit ja välil vilahtaa jotain taustalla, pystyks korjaamaan sillee et menis normaalisti, varmaan mä ainoo kenel tää ongelma?
Code: Select all
For m.monster =Each monster
'Statuksen vaihtuminen
If m\ticks>500 Then
arvo_status:
If m\hp<=m\hpm*0.5 Then
If m\potions>0 Then
'käytä juoma
Repeat
m\hp=m\hp*1.25
m\potions=m\potions-1
If m\potions=0 Or m\hp>=m\hpm*0.75 Then Exit
Forever
nmm.message=New (message)
nmm\teksti=m\name+" Drank potions "
nmm\luonti=Timer()
Goto arvo_status
Else
m\status=5 ' menee kauppaan nukkumaan tai ostamaan pulloja
EndIf
EndIf
If m\raha>=150 And m\hp<>m\hpm And m\potions<5 Then m\status=5
If m\raha<150 And m\hp>=m\hpm*0.8 Then m\status=3 ' metsästä vastustajia
If m\hp=m\hpm And m\potions>=5 Then m\status=0 ' yleistä häröilyä
m\ticks=0
EndIf
'kauppa
If status=5 Or m\raha>=100 Then
For r.rakennus=Each rakennus
haku_alko=0
If haku_alko=0 Then
m\target_x=r\x
m\target_y=r\y
Else
If Max(Distance(m\x,m\y,m\target_x,m\target_y),Distance(m\x,m\y,r\x,r\y))=Distance(m\x,m\y,r\x,r\y) Then
m\target_x=r\x
m\target_y=r\y
EndIf
EndIf
If m\x=r\x And r\y=r\y Then
Repeat
If m\raha>=50 Then
m\potions=m\potions+1
m\raha-50
ElseIf m\raha=0 And m\hp<=m\hpm*0.25 Then
m\hp=m\hp*1.45
If m\hp>m\hpm Then m\hp=m\hpm
nmm.message=New (message)
nmm\teksti=m\name+" Had a peaceful nap"
nmm\luonti=Timer()
Exit
Else
nmm.message=New (message)
nmm\teksti=m\name+" Went shopping"
nmm\luonti=Timer()
Exit
EndIf
Forever
EndIf
Next r
EndIf
'liikkuminen
If m\status=0 Or m\status=3 And m\x=m\target_x And m\y=m\target_y Then
m\target_x=Rand(-mappi_x,mappi_x)
m\target_y=Rand(-mappi_y,mappi_y)
Else
For am.monster = Each monster
If am\id<>m\id Or am\tyypi<>m\tyypi Then
If am\x=m\x And am\y=m\y Then
vahinko_a=0
vahinko_b=0
For o=1 To m\nopeus
noppa_a=Rand(1,6)
noppa_b=Rand(1,6)
If noppa_a>noppa_b Then
vahinko_a=vahinko_a+Rand(m\dam_min,m\dam_max)
ElseIf noppa_a=noppa_b Then
vahinko_a=vahinko_a+Rand(m\dam_min,m\dam_max)/2
vahinko_b=vahinko_b+Rand(am\dam_min,am\dam_max)/2
Else
vahinko_b=vahinko_b+Rand(am\dam_min,am\dam_max)
EndIf
Next o
If vahinko_a>vahinko_b Then
vahinko_a=vahinko_a-vahinko_b
vahinko_b=0
ElseIf vahinko_a<vahinko_b
vahinko_b=vahinko_b-vahinko_a
vahinko_a=0
EndIf
am\hp=am\hp-vahinko_a
m\hp=m\hp-vahinko_b
If am\hp<=0 Then
m\exp=m\exp+Rand(am\dam_min,am\dam_max)+(am\exp*am\level)
m\raha=m\raha+500+am\raha
m\potions=m\potions+am\potions
otoja(am\Tyypi)=otoja(am\Tyypi)-1
nmm.message=New (message)
nmm\teksti=m\name+" Killed "+am\name+""
nmm\luonti=Timer()
Delete am
EndIf
If m\hp<=0 Then
am\exp=am\exp+Rand(m\dam_min,m\dam_max)+(m\exp*m\level)
am\raha=am\raha+500+m\raha
am\potions=am\potions+m\potions
otoja(m\Tyypi)=otoja(m\Tyypi)-1
nmm.message=New (message)
nmm\teksti=am\name+" Killed "+m\name+"."
nmm\luonti=Timer()
Delete m
Goto next_oto
EndIf
EndIf
If m\status=3 Then
If am\x<m\x+40 And am\x>m\x-40 And am\y<m\y+40 And am\y>m\y-40 And am\tyypi<>m\tyypi Then
m\target_x=am\x
m\target_y=am\y
m\ticks=0
Exit
EndIf
Else
If am\x<m\x+20 And am\x>m\x-20 And am\y<m\y+20 And am\y>m\y-20 And am\tyypi<>m\tyypi Then
m\target_x=am\x
m\target_y=am\y
m\ticks=0
Exit
EndIf
EndIf
EndIf
Next am
If m\exp>=m\expn Then
m\exp=m\exp-m\expn
m\level=m\level+1
doa=Rand(1,4)
m\dam_min=m\dam_min+doa
m\dam_max=m\dam_max+doa
m\hpm=m\hpm+25*doa
m\hp=m\hpm
m\expn=m\expn*2
nmm.message=New (message)
nmm\teksti=m\name+" advanced To level "+m\level+"."
nmm\luonti=Timer()
EndIf
dice_move=Rand(1,2)
m\ticks+1
If dice_move=1 Then
If m\y<>m\target_y Then
If m\y<m\target_y Then
m\y+1
ElseIf m\y>m\target_y Then
m\y-1
EndIf
Else
If m\x<m\target_x Then
m\x+1
ElseIf m\x>m\target_x Then
m\x-1
EndIf
EndIf
Else
If m\x<>m\target_x Then
If m\x<m\target_x Then
m\x+1
ElseIf m\y>m\target_x Then
m\x-1
EndIf
Else
If m\y<m\target_y Then
m\x+1
ElseIf m\y>m\target_y Then
m\y-1
EndIf
EndIf
EndIf
DOL=Rand(1,1000)
If DOL=1000 Then
m\raha=m\raha+25
nmm.message=New (message)
nmm\teksti=m\name+" Found 25 gold coins"
nmm\luonti=Timer()
EndIf
EndIf
'piirtäminen
If m\TyyPI=0 Then Color 255,0,0
If m\Tyypi=1 Then Color 0,255,0
If m\Tyypi=2 Then Color 0,0,255
If m\Tyypi=3 Then Color 255,0,255
Dot m\x,m\y
next_oto:
Next m
mutta sitä en tiedä miksi ne resuluutiot sekoilee.
Turmankylä
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
huonoja pelejä, purkkaisia viritelmiä, tylsiä tarinoita.
Re: Simulaatio fantasiamaailman hirviöistä
Okei Ei kyl mitään hajua et miten täst pitäis jatkaaRequiem for Anthrax wrote:tämä ei kyllä ollut hankala tehdä. nyt satun olemaan mukavalla päällä niin...Jerzy wrote:Aivan mahtava, rekkasin tänne näin just tän takii
Tää peli on mahtava, onks tän kaltane peli vaikee tehä, ajattelin tehä vähän samanlaisen, muute, sellanen ongelma on ku toi ikkuna on tosi pieni eikä siin näy muutaku tekstit ja välil vilahtaa jotain taustalla, pystyks korjaamaan sillee et menis normaalisti, varmaan mä ainoo kenel tää ongelma?siittä vaan tutkimaan miten rfa on tehnyt tämänkin tekoälyttömyyden (koodi on sitten vähän Wanhempaa kuin tossa minun demossa )Code: Select all
For m.monster =Each monster 'Statuksen vaihtuminen If m\ticks>500 Then arvo_status: If m\hp<=m\hpm*0.5 Then If m\potions>0 Then 'käytä juoma Repeat m\hp=m\hp*1.25 m\potions=m\potions-1 If m\potions=0 Or m\hp>=m\hpm*0.75 Then Exit Forever nmm.message=New (message) nmm\teksti=m\name+" Drank potions " nmm\luonti=Timer() Goto arvo_status Else m\status=5 ' menee kauppaan nukkumaan tai ostamaan pulloja EndIf EndIf If m\raha>=150 And m\hp<>m\hpm And m\potions<5 Then m\status=5 If m\raha<150 And m\hp>=m\hpm*0.8 Then m\status=3 ' metsästä vastustajia If m\hp=m\hpm And m\potions>=5 Then m\status=0 ' yleistä häröilyä m\ticks=0 EndIf 'kauppa If status=5 Or m\raha>=100 Then For r.rakennus=Each rakennus haku_alko=0 If haku_alko=0 Then m\target_x=r\x m\target_y=r\y Else If Max(Distance(m\x,m\y,m\target_x,m\target_y),Distance(m\x,m\y,r\x,r\y))=Distance(m\x,m\y,r\x,r\y) Then m\target_x=r\x m\target_y=r\y EndIf EndIf If m\x=r\x And r\y=r\y Then Repeat If m\raha>=50 Then m\potions=m\potions+1 m\raha-50 ElseIf m\raha=0 And m\hp<=m\hpm*0.25 Then m\hp=m\hp*1.45 If m\hp>m\hpm Then m\hp=m\hpm nmm.message=New (message) nmm\teksti=m\name+" Had a peaceful nap" nmm\luonti=Timer() Exit Else nmm.message=New (message) nmm\teksti=m\name+" Went shopping" nmm\luonti=Timer() Exit EndIf Forever EndIf Next r EndIf 'liikkuminen If m\status=0 Or m\status=3 And m\x=m\target_x And m\y=m\target_y Then m\target_x=Rand(-mappi_x,mappi_x) m\target_y=Rand(-mappi_y,mappi_y) Else For am.monster = Each monster If am\id<>m\id Or am\tyypi<>m\tyypi Then If am\x=m\x And am\y=m\y Then vahinko_a=0 vahinko_b=0 For o=1 To m\nopeus noppa_a=Rand(1,6) noppa_b=Rand(1,6) If noppa_a>noppa_b Then vahinko_a=vahinko_a+Rand(m\dam_min,m\dam_max) ElseIf noppa_a=noppa_b Then vahinko_a=vahinko_a+Rand(m\dam_min,m\dam_max)/2 vahinko_b=vahinko_b+Rand(am\dam_min,am\dam_max)/2 Else vahinko_b=vahinko_b+Rand(am\dam_min,am\dam_max) EndIf Next o If vahinko_a>vahinko_b Then vahinko_a=vahinko_a-vahinko_b vahinko_b=0 ElseIf vahinko_a<vahinko_b vahinko_b=vahinko_b-vahinko_a vahinko_a=0 EndIf am\hp=am\hp-vahinko_a m\hp=m\hp-vahinko_b If am\hp<=0 Then m\exp=m\exp+Rand(am\dam_min,am\dam_max)+(am\exp*am\level) m\raha=m\raha+500+am\raha m\potions=m\potions+am\potions otoja(am\Tyypi)=otoja(am\Tyypi)-1 nmm.message=New (message) nmm\teksti=m\name+" Killed "+am\name+"" nmm\luonti=Timer() Delete am EndIf If m\hp<=0 Then am\exp=am\exp+Rand(m\dam_min,m\dam_max)+(m\exp*m\level) am\raha=am\raha+500+m\raha am\potions=am\potions+m\potions otoja(m\Tyypi)=otoja(m\Tyypi)-1 nmm.message=New (message) nmm\teksti=am\name+" Killed "+m\name+"." nmm\luonti=Timer() Delete m Goto next_oto EndIf EndIf If m\status=3 Then If am\x<m\x+40 And am\x>m\x-40 And am\y<m\y+40 And am\y>m\y-40 And am\tyypi<>m\tyypi Then m\target_x=am\x m\target_y=am\y m\ticks=0 Exit EndIf Else If am\x<m\x+20 And am\x>m\x-20 And am\y<m\y+20 And am\y>m\y-20 And am\tyypi<>m\tyypi Then m\target_x=am\x m\target_y=am\y m\ticks=0 Exit EndIf EndIf EndIf Next am If m\exp>=m\expn Then m\exp=m\exp-m\expn m\level=m\level+1 doa=Rand(1,4) m\dam_min=m\dam_min+doa m\dam_max=m\dam_max+doa m\hpm=m\hpm+25*doa m\hp=m\hpm m\expn=m\expn*2 nmm.message=New (message) nmm\teksti=m\name+" advanced To level "+m\level+"." nmm\luonti=Timer() EndIf dice_move=Rand(1,2) m\ticks+1 If dice_move=1 Then If m\y<>m\target_y Then If m\y<m\target_y Then m\y+1 ElseIf m\y>m\target_y Then m\y-1 EndIf Else If m\x<m\target_x Then m\x+1 ElseIf m\x>m\target_x Then m\x-1 EndIf EndIf Else If m\x<>m\target_x Then If m\x<m\target_x Then m\x+1 ElseIf m\y>m\target_x Then m\x-1 EndIf Else If m\y<m\target_y Then m\x+1 ElseIf m\y>m\target_y Then m\y-1 EndIf EndIf EndIf DOL=Rand(1,1000) If DOL=1000 Then m\raha=m\raha+25 nmm.message=New (message) nmm\teksti=m\name+" Found 25 gold coins" nmm\luonti=Timer() EndIf EndIf 'piirtäminen If m\TyyPI=0 Then Color 255,0,0 If m\Tyypi=1 Then Color 0,255,0 If m\Tyypi=2 Then Color 0,0,255 If m\Tyypi=3 Then Color 255,0,255 Dot m\x,m\y next_oto: Next m
mutta sitä en tiedä miksi ne resuluutiot sekoilee.