Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Pelin tekeminen

Sivun loppuun

Triton [05.02.2008 21:08:29]

#

Haluaísin opetella tekemään kunnolla pelejä 2 -sekä 3D -pelejä, mutta en ole varma millä kielellä se kannattaisi. Mikä on mielestänne paras pelinteko ohjelmointikieli? Kumpi mielummin VB4 vai C++ tai sitten joku CoolBasic vai miten onnistuisi QBasicillä? Ja ihan mielenkiinnosta kysyn, että miten voi lataa grafiikka C++:ssaan?

Kray [05.02.2008 21:18:10]

#

C++:ssaa suosittelen. Sinuna tutustuisin SDL:ään: www.libsdl.org grafiikka varten. Opettele kuitenkin ensin perusteet.

vehkis91 [05.02.2008 22:56:59]

#

Joo c++ on hyvä vaihtoehto...
Itse juuri harjoittelen sitä pelintekoa varten...

Mobel [05.02.2008 23:30:07]

#

C++ tietty on se perinteinen. No pitäähän sitä taas Javaa mainostaa, mikä ei tosiaan sekään mahdoton vaihtoehto. Itse asiassa Javalla voi nykyään tehdä jo lähes samoja asioita kuin C++:lla eikä se ole kovinkaan paljoa hitaampi. Javalla tehdyt sovellukset eivät rajoitu selaimissa pyöriviin appletteihin, vaan sillä voi myös tehdä "tavallisia" ohjelmia.
Monella taholla ollaan myös sitä mieltä, että Java on pop! ;)

anttipanda [06.02.2008 12:52:40]

#

Mainio tapa aloitella pelinteko: http://creators.xna.com/Education/GettingStarted.aspx

Jos C# on hanskassa tai hanskautuu, niin 3D tai 2D pelien tekoon pääsee muutamassa hetkessä sisälle. Ei tarvitse huolehtia lainkaan rautapuolesta (näyttölaitteiden alustukset yms) kunhan tarpeeksi moderni rauta löytyy alta. Itse olen XNA:lla pientä peliä tekemässä, ja olen ollut erittäin tyytyväinen.

jlaire [06.02.2008 14:11:58]

#

Triton kirjoitti:

Haluaísin opetella tekemään kunnolla pelejä 2 -sekä 3D -pelejä, mutta en ole varma millä kielellä se kannattaisi. Mikä on mielestänne paras pelinteko ohjelmointikieli?

Millä tahansa kunnon kielellä voi tehdä pelejä. Käytä sitä mitä osaat / mistä tykkäät, "paras kieli" on täysin mielipidekysymys.

Triton kirjoitti:

Kumpi mielummin VB4 vai C++ tai sitten joku CoolBasic vai miten onnistuisi QBasicillä?

Minä en vapaaehtoisesti käyttäisi mitään noista. :)

Mahko [06.02.2008 15:06:39]

#

Python on aika kiva kieli peliohjelmointiin. Ja jos lontoon murretta osaa niin juuri pelin tekoonkin löytyy oppaita pygame.org:sta.

DancingDevil [06.02.2008 19:47:05]

#

JAVA! java on helpompi kuin c++ ja ainakin yhtä nopea(Tästä saatta olla moni eri mieltä mutta javaa luullaan hitaaksi koska se joskus oli) Jme:eellä vaan sitten 3D tekemään.

User137 [06.02.2008 20:42:04]

#

Jaa, itse en ole vielä koskaan löytänyt pienintäkään Javan 3D demoa joka latautuisi minuuttia nopeammin saati sitten pelattavuus joka voi olla erittäin karu verrattuna koneläheisempiin kieliin :P

Antakaa toki joku hyvä esimerkki jos olen väärässä, joka myös toimii hieman vanhemmilla koneilla. Olisi nimittäin harhaanjohtavaa sanoa kieltä tehokkaaksi jos se toimii hyvin vain uusimmilla tietokoneilla.

Mobel [06.02.2008 22:09:02]

#

Onhan noita Javalla toteutettuja, ihan toimiviakin pelejä.
Täällä ainakin muutama: http://java.com/en/games/desktop/

Tässä ainakin joku 3D-peli, joka vaikuttaa ihan hyvältä: http://java.com/en/games/desktop/specforce.jsp
Demon siitä ainakin voi ladata.

Päärynämies [06.02.2008 23:21:48]

#

Itse vaikka en peliohjelmointia harrastakaan, niin suosittelisin C++ saa sen tehokkuuden ja yleisyyden takia. Materiaalia löytyy paljon. Kieli voi olla aluksi hieman hankala, mutta kun sisään pääsee, niin pystyy melkeinpä mihin tahansa, omat taidot tietysti rajana.

Grafiikan lataukseen C++:ssa käytetään erinäisiä kirjastoja. Nuo kirjastot siis sisältävät sinulle valmista koodia, jolla voit ladata kuvan näytölle jne. C++:ssa on tietyt standardikirjastot, mutta niiden tarjoamat "palvelut" keskittyvät enemmän esimerkiksi erilaisiin ohjelmoinnin perusrakenteisiin.

Ja itse jättäisin kokokaan huomioimatta nuo muiden käyttäjien kommentit nopeudesta, jos ei kyseessä ole selvästi asiaan perehtynyt harrastaja tai asiantuntija. Useimmat noista kommenteista ovat kerta niin yleistävää roskaa, että niiden informaatioarvo on lähellä nollaa. Esimerkkinä tässäkin ketjussa DancingDevilin kommentti Javan nopeudesta C++:aan verrattuna. Onhan Java nopea, mutta edelleen Java pyörii oman virtuaalikoneensa päällä kun taas C++ käännetään sellaisenaan ajettaviksi ohjelmiksi. Tästä aiheesta tietysti voi kiistellä (ja on kiistelty jo monesti) vaikka kuinka kauan.

Myöskään melko turha alkaa pohtimaan eri kielten vaikeuseroja, kun jokainen olemme omanlaisiamme oppijoita. Joku voi oppia toisen kielen hetkessä ja toinen ei opi koskaan (tosin kummatkin tapaukset melko harvinaisia taitavat olla). Opettele sellainen kieli mikä kiinnostaa itseäsi, ei sitä mikä muita kiinnostaa. Kun osaat yhden proseduraalisen kielen, toisen oppiminen on huomattavasti helpompaa.

Tällästä valistusta tällä kertaa.

Mobel [07.02.2008 00:35:05]

#

Tuo kielen valintahan on tietty ihan itsestä kiinni ja siitä mistä kiinnostuu. Eiköhän aika moni tässäkin ketjussa postannut myönnä C++:n olevan melkos hyvä pelien koodailuun, mutta ei se tarkoita kielen olevan mukava/kiinnostava opetella.

Kuten Päärynämieskin totesi, kannattaa opetella se kieli, joka kiinnostaa ja sopii käteen. Tällaisessa ketjussa on kuitenkin hyvä tuoda esille eri vaihtoehtoja. Jos ei ole suuremmin vihkiytynyt lajin saloihin ei välttämättä ole perillä esimerkiksi nyt vaikka Javan tai jonkun muun kielen viimeisimmistä ominaisuuksista, jolloin saattaa kiinnostava kieli jäädä opettelematta vaikkapa nyt sen luullun hitauden vuoksi.

johncage [07.02.2008 01:05:38]

#

Vb:llä ei pelejä oikein tehdä. Java ei ole kyllä kovin nopea myöskään. Itse koodailen tämänhetkistä projektia BlitzMaxilla. Siitä löytyy sekä 2D, että 3D, versiot. Hieno ja ennenkaikkea intuitiivinen ja hauska kieli.

https://www.ohjelmointiputka.net/keskustelu/16569-blitzmax-koodaajia

Mobel [07.02.2008 01:34:20]

#

Toki VB:llä pelejä voi tehdä. Mitä sitten vaikka sen omat grafiikkakirjastot ovatkin hitaita? Usein peleissä käytetäänkin ulkoisia kirjastoja grafiikan piirtoon kuten SDL, OpenGL tai DirectDraw/3D.

Ohjelmointikieltä opeteltaessä ei myöskään kielen "nopeudella" ole niinkää väliä. Ohjelmoijan taidoilla ja kokemuksella on jonkin ohjelman nopeuden kannalta paljon enemmän väliä kuin sillä, millä kielellä ohjelma on kirjoitettu.

Eli suosittelen edelleen valitsemaan sen kielen, mikä eniten kiinnostaa!

johncage [07.02.2008 01:44:01]

#

Kyllähän viballe löytyy esim. DXGame Engine. Ohjelmointikieltä opeteltaessa käännöksen nopeudella ei ole tietenkään mitään tekemistä. Itse olen ammatissani koodaillut viballa paljon (vb3-vb6). Hieno kieli. Ei se pelin tekemistä varten kuitenkaan ole suunniteltu. Vb:llä tekee nopeasti toimivan käyttöliittymän ja kolmitasoarkkitehtuuria mukavasti vanhaa mts:ää tai com++:aa hyödyntäen.
Mutta jos peliä tahtoo rakentaa, niin kannattaa katsoa muita kieliä.

Pekka Karjalainen [07.02.2008 12:22:26]

#

Päärynämies kirjoitti:

Onhan Java nopea, mutta edelleen Java pyörii oman virtuaalikoneensa päällä kun taas C++ käännetään sellaisenaan ajettaviksi ohjelmiksi. Tästä aiheesta tietysti voi kiistellä (ja on kiistelty jo monesti) vaikka kuinka kauan.

Javaan saa natiivikääntäjiä. Gjc on vapaata softaa, ja sillä on sama "back-end" (natiivikoodia tuottava osa) kuin gcc:llä. Valitettavasti Javalla ei silti ole helppoa tehdä C-mäisen nopeaa koodia, koska Javan oliomalliin kuuluu reflektio ja sillä on hintansa.

C++:aa taas voi tulkata CINT-ohjelmalla.

Käytännössä tietenkin Javan normaali käyttö tapahtuu JVM:n yhteydessä ja C++:n natiivikoodina. Yleistyksenä Päärynämiehen väite oli ihan oikea.

Joku muu puhui kielten nopeuksista enemmän. Se onkin rakas aihe ohjelmointikeskusteluissa.

Mitähän oletuksia on takana väitteessä "kieli X on nopeampi kuin Y"? Oikeasti kielten nopeuksia ei voi verrata, koska mitattava suoritusnopeus on vain jollakin kielen toteutuksella tehdyllä konkreettisella ohjelmalla, ja sen nopeus riippuu myös käytetystä laitteistosta ja ohjelmoijan taidoista. Voi vain yleistää, että verrattavissa tilanteissa kielellä X tehdyt ohjelmat ovat kieltä Y keskimäärin nopeampia. Tähänkin pitäisi jotain tilastoa näyttää, että tulos olisi edes leikisti tieteellinen.

Oikeasti kai kielien X ja Y nopeutta vertailevat tarkoittavat, että he tekivät kerran kielellä X sellaisen ohjelman, joka käyttääkseni teknistä ilmaisua "rokkaa totaalisesti", ja siksi X on ainakin sata kertaa parempi kuin se Y, jota naapurin Pertti käyttää. Pertillä on sitäpaitsi finnejäkin naamassa, ja hänen Rekku-koiransa haukkuu yöllä, kun yritän koodata.

Tai niin minä ne väitteet luen ;-) (paitsi että joskus Rekku on Musti)

kwanttitatti [07.02.2008 14:47:34]

#

Itsekin aloitin ohjelmoinnin ihan vain sen takia kun halusin ja haluan koodata pelejä.Nyt olen vain tullut sellaiseen pisteeseen että kannattaako aloittaa C++:san opettelu (opettelin joskus) kun olen opetellut suurimman osan Javan perusteista ja nyt tajuan noista C++ jutuista jotain ihan erilailla kun silloin 10 natiaisena joka yrittää opetella C++:saa ilman aikaisempaa kokemusta.Eli kannattaako?Olen vähän sitä mieltä että C++:aa tekisi mieli oppia.

Kray [07.02.2008 15:09:28]

#

DancingDevil kirjoitti:

JAVA! java on helpompi kuin c++ ja ainakin yhtä nopea(Tästä saatta olla moni eri mieltä mutta javaa luullaan hitaaksi koska se joskus oli) Jme:eellä vaan sitten 3D tekemään.

Kuules, Java ja moni muukin kieli kylläkin perustuu c:n syntaksiin. C on aivan yhtä helppo jos vain on lisäkirjastot olemassa.

Blaze [07.02.2008 15:14:46]

#

kray kirjoitti:

C on aivan yhtä helppo jos vain on lisäkirjastot olemassa.

Javassa ei tarvitse hoitaa muistinhallintaa ite. Se ON iso juttu.

Päärynämies [07.02.2008 22:46:48]

#

Aina yhtä hienoja nämä ohjelmointikielien helppouden vertailut syntaksin samankaltaisuuden perusteella. Ikinä ei kannata netin keskustelupalstoilla kysyä, että "Millä kielellä aloittaisin?" tai vastaavaa, sillä se on yksi niistä ikuisuusaiheista, josta tullaan niin kauan vääntämään kättä, kun on olemassa useampi kuin yksi ohjelmointikieli.

Java on hyvä toisessa asioissa ja C++ toisissa asioissa. Samoja asioita et pysty niillä tekemään. Uskallan väittää, että C++:lla voit tehdä kaiken minkä Javallakin, mutta Javalla et voi kaikkea mitä C++:lla.

Valitse vain se oma kielesi ja aloita ohjelmoiminen. Itse aikoinaan valitsin sen mikä kuulosti kivalta.

DancingDevil [08.02.2008 17:58:10]

#

Jos haluaa vertailla C++:ssaa ja Javaa niin kannattaa vilkaista näitä:

http://en.wikipedia.org/wiki/Comparison_of_Java_and_C++
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
http://www.objectmentor.com/resources/articles/javacpp.pdf

Nuo löytyi pikaisella selailulla.

kwanttitatti [10.02.2008 14:11:54]

#

Tuollanen tutoriaali löyty jos haluaa opetella tekemään pokerin Javalla:
http://www.tutorialized.com/view/tutorial/Writing-a-Complete-5-Card-Poker-Game-in-Java/25356


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta