Niin elikkä mitenkäs pseudokoodina vois toteuttaa tän näköisen maailman?
Tossa kuva mitä pitäis näyttää:
http://www.consoleclassix.com/info_img/
Ja tossa vähän videokuvaa miltä liikkumisen tulis näyttää:
http://www.youtube.com/watch?v=_O_09fZjJHA&feature=related
Mietin et oisko semmonen systeemi mahdollista, että ois joku tekstitiedosto, mistä se lukis merkkejä ja niiden mukaan sitten piirtäis sitä maailmaa vai häh?
Eli jos ois vaikka Nethackin kartan näkönen tekstitiedosto esim:
+-----------------+ |.................| |......+----------+ |......| |......+----------+ |.................| |.................| +-----------------+
Niin oisko se toteutus sitten jotenkin että kaikki noi pisteet tuossa kartassa muutettais kuviksi missä näkyis pelkästään lattia ja katto ja noi viivat tuossa muutettais sitten kuviksi missä näkyis seinä..? Vai oonko ihan hakoteillä tän touhun kanssa, yksityiskohtia esim kuinka monta askelta eteenpäin näkee jne niin voi miettiä sitten myöhemmin, mutta tuommoisen toteusidea ois ihan kiva jotenkin saada aikaseksi.. Niin ja oon siis itse päätellyt että tuo ois 2D maailma, eikä 3D oonko ihan väärässä? Oon saanu sen käsityksen, että jos kuvataan hahmon silmistä niin se ei välttämättä tarkoita sitä että pelis ois 3D
Mutta semmoista tällä kertaa toivottavasti joku osaa auttaa jollakin tavalla ja jos jotain sattuu kiinnostaa niin koodauskielenä käytän Visual Basiccia (6 tai .NET en oo viel päättäny) tietty jos joku osais suositella toista kieltä millä ton vois toteuttaa helpommin niin ideoita otetaan vastaan..
-Feltsu
Yksi mahdollisuus olisi ray casting
Eihän niitä voi suoraan muuttaa "kuviksi, joissa näkyy...", kun seinät ovat eri etäisyyksillä ja eri kulmista nähtyinä erilaisia.
Jos haluat, että hahmo voi katsella ympärilleen vapaasti (eikä vain 90 asteen kulmissa), joudut piirtämään maailman 3D:nä. Siitä huolimatta voit tallentaa tasot tuossa formaatissa; päätät vain merkin perusteella, piirretäänkö lattia (neliö vaakatasossa) vai seinä (kuutiosta neljä näkyvää sivua. Itse peli voi yhä toimia 2-ulotteisesti.
Seinän suunnalla (- vs. |) ei ole merkitystä, koska eihän seinää voi koskaan nähdä sisäpuolelta. Siksi on helpompi merkitä kaikki (samanlaiset) seinät samalla merkillä, esim. #.
Joo no tarkotus ois tommonen 90 asteen kulmat, koska se vissiin ois helpompi toteuttaa ja vaikka ei olisikaan niin silti, haluun semmosen old-school meiningin..
c++ + opengl, ois aika helppo tehdä, tietenkin olettaen, että osaa c++. :)
No kyllä mä jonkun verran tuota c++:aa osaan, mut en ehkä ihan tarpeeks et lähtis joku tommonen, varsinkin kun opengl:stä en tajuu hölkäsen pöläystä, enkä kait oo löytäny suomenkielistä opasta, ainakaan sellasta missä opetettais pelintekoa jotenkin kivasti :) Mut jos löytyy niin kerrohan ihmeessä! Vai oliko putkan c++ matopeli opengl:ää?
EDIT: Joo toi matopeli käytti SDL:ää.. Höh :(
Itse suosittelen seuraavaa kirjaa, jos haluaa oppia OpenGL:lää peliohjelmoinnissa. Kirja on kohtalaisen vanha, mutta silti perusteet pitää silti hyvin paikkansa, mutta uusimpia tekniikoita kirja ei kata.
Suomipelit.comista löytyy jonkinlainen suomenkielinen OpenGL-opas. Opas käsittelee vain perusteita, mutta kaipa sillä alkuun pääsee. Joka tapauksessa karu totuus on, että ilman englantia et tule pärjäämään.
Kyllä mulla englanti yleisesti ottaen sujuu (teenhän siitä pelistäkin englanninkielisen), mut semmosen jutun oon huomannu, et jos jotain oppaita englanniksi lukee (varsinkin asioista mistä en tajuu paljoakaan, esim opengl) niin tykkää mennä sormi vähän niinku suuhun :( Mut pitää varmaan lueskella ja ihmetellä..
Tee sillä, mikä kiinnostaa ja tuntuu helpolta. Esim. suomalainen CoolBasic. Mielestäni turha yrittää tuossa vaiheessa vielä C++:ssan tasosta kieltä, jos muutenkin haluaa koodata vain koodaamisen ilosta.
Tosin tietysti se on ihmisestä kiinni, mikä on helppoa ja mikä ei, mutta jos ei halua heti alussa lannistua, kannattaa (edelleen, tämä on vain minun mielipide, en halua aloittaa uutta kielisotaa..) valita joku helpompi kieli jotta voi keskittyä aluksi itse ohjelmointiin ja sen perusteisiin.
Edit. oho, taisin ymmärtää aiheen väärin, luin aloituspostin vain pikaisesti ja osan C++ssaa ehdottavista kommenteista...:)
Pampi on kyllä aivan oikeassa siinä, että ei kannata valita C++:aa noin kevein perustein. Mikään ei estä toteuttamasta peliä VB:llä (suosittelen mieluummin VB.NETiä). Harjoitusmielessä voisi olla mielenkiintoista toteuttaa esimerkiksi ehdotettu ray casting -algoritmi Wolfenstein 3-D:n tyylillä. Suunnittelemaasi ruutupohjaiseen maalimaan kyseinen algoritmi nimittäin sopii erinomaisen hyvin, kun taas OpenGL on aika tylsä perusratkaisu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.