Pelien tekoa

Hommasin Game Maker 5.3A:n . Nyt olisi vain kiva saada jostakin ohjeita, joilla pääsee alkuun. Pelin kotisivujen ohjeet ei toimi. Tiedättekö siis joitakin hyviä sivuja?
7854
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Pelit, DirectX

Jos teet pelejä windows -ympäristöön, hanki kirja "DirectX -ohjelmointi". Löytyy ainakin kirjastosta:
http://www.helmet.fi/
(Pääkaupunkiseudun kirjastojärjestelmä)

Kirjasta saat hyviä vinkkejä, mutta yksi korjaus kirjan esimerkkeihin/ohjeisiin:

Laita pelisilmukkaan:

Sleep(1);

Tuo laittaa säikeen "nukkumaan" 1 millisekunniksi, eli 1/1000 s.

Jos pelin näyttö päivitetään 25 kertaa sekunnissa
(vrt: Elokuva: 24/s, tv Euroopassa 25/s, tv jenkeissä: 30/s), niin 1/25 s = 40 ms.

Tuo pelin suorituskyvyn kannalta siis "tuhlaa" prosessorin suorituskyvystä korkeintaan 1/40 -osan, eli 2,5 %

Mutta huomaa, että CPU:n käyttöaste pelin aikana tippuu tuon ansiosta 100 %:sta todellisen tarpeen osoittamaan määrään, joka taas riippuu pelisi tehtävistä prosessorille ja prosessorin nopeudesta.

Hyödyt: PC:n energiankulutus pienenee, hukkalämmöntuotto laskee, mikä pidentää PC:n ikää, ja jos PC:ssä on lämpötilaohjatut tuulettimen kierrokset, myös pienentää tuulettimen melutasoa.

Ainakin kannettavalla PC:llä peliäsi pelaavat kiittävät, jos älyät tuon Sleep(1) pelisilmukkaasi laittaa.

Tuon poisjättö on joko laiskuutta tai jäänne ajalta, jolloin tyypillinen prosessori oli 16 Mhz 80386SX, kun tyypillinen nyt on 800 Mhz celeron/amd Duron - n. 3000 Mhz Pentium 4 tai amd Athlon.

cpu-nopeus on siis varovaisestikin arvioiden 50-kertaistunut noista ajoista, voi olla jopa 200 -kertaistunut. Ja pian varmasti ylikin.

pelisilmukka voisi siis näyttää tältä:

while NOT Application.Terminated do begin
//
Sleep(1);
//
if PeekMessage(...)
then HandleMessage
else UpdateDisplay;
end;

Pelissä voit myös hyödyntää säikeitä (Threads), mutta huomaa, että näytön päivitys säikeestä käsin on hankalaa. Käytä siis säikeitä vain, jos siihen on perusteltu syy!

Äänestä
  • Ainiijoo muuten nukutatsä tai et ton threadin ja vaikka se olisi prosessin ainoa threadi, niin se ei ikinä käytä 100% prosessorin ajasta, siitä huolehtii käyttöjärjestelmä. Et toi sun teksti on täyttä pas&&& joten koita hankkia huomiota itsellesi muuten kuin täällä esittämällä jotain neroa.

    Äänestä

  • Petteri kirjoitti:

    Ainiijoo muuten nukutatsä tai et ton threadin ja vaikka se olisi prosessin ainoa threadi, niin se ei ikinä käytä 100% prosessorin ajasta, siitä huolehtii käyttöjärjestelmä. Et toi sun teksti on täyttä pas&&& joten koita hankkia huomiota itsellesi muuten kuin täällä esittämällä jotain neroa.

    Mitähän sinäkin kuvittelet peliohjelmoinnista käsittäväsi? Se, että pelaa Doom1:n läpi ei tarkoita sitä että olisit kaikkitietävä peliohjelmoija.

    Äänestä

Hyvä,hyvä! Mutta ei nuo jutut oikein vastaa kysymykseeni. Ja niinkuin nimimerkistä käy ilmi en paljoa noista ymmärrä. Sitäpaitsi Game Makerissa ei käytetä ohjelmointikieltä pahemminkaan(tietääkseni). Joten odottelen lisää vastauksia!

Äänestä

Kommentoi aloitusta


Aloittelija kirjoitti:

Hommasin Game Maker 5.3A:n . Nyt olisi vain kiva saada jostakin ohjeita, joilla pääsee alkuun. Pelin kotisivujen ohjeet ei toimi. Tiedättekö siis joitakin hyviä sivuja?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu