Eli ajattelin ruveta tekemään VB:llä 3D Sotapeliä.
Ja tarkoitan sillä että se olisi Operation Flashpoint:in tapainen peli eli aika reallinen.
Ja kysyn olisiko täällä ketään innokaita tekemään sellaista?
VB on väärä kieli 3d-pelien tekoon, koska ohjelman nopeus jää todella heikoksi. Suosittelen opettelemaan C++:saa ja OpenGL:lää.
Niin mutta opiskelussa menee vuosia
Kyllä mun mielestä VB lläkin onnistuupi?
Millä kielellä tahansa first person shooterin tekemisen opetteluun menee vuosia.
Kannattaa ehkä opetella sopiva kieli ennen kuin edes suunnittelee tuollaisia.
Ää! Voihan sen veepeelläkin koodata jos haluaa, hommaa vaan livakkaan rajapinnan :o mutta se ei tosiaan oo mikään pelintekokieli joten C tai C++ alle o/ ja jos oisin sä niin kyllä harkitsisin jotain matopeliä, space invadersiä tai simppeliä sokkelopeliä. Kaksdeenä. Ör. Ja muutenkin kandee harjotella peliohjelmointia ja niinkuin kaikkien kiva kaveri Blaze jo sanonkin, niin keltanokalla tummuu persus aika pahasti, kun tippuu sieltä extrasuperhienojen suunnitelmien korttitalon päältä.
Nitro-Man kirjoitti:
Niin mutta opiskelussa menee vuosia
Itse asiassa ei läheskään. Jos tietää mitä tahtoo, intoa riittää ja jos omistaa esim. ohjekirjan, niin ainakin alkuun on helppo päästä. Eihän kukaan ole seppä syntyessään.
Kipperi, vaikka kuinka riittäisi intoa, niin ohjelmointitaidoton kyllä kuluttaa vuosikausia, ennen kuin on rahkeita tehdä edes pelikelpoinen 3D-peli, puhumattakaan, että se olisi hyvä. Kun vielä on kyseessä vasta yläasteensa aloittanut, niin tuskin on puoliakaan tarvittavasta matematiikasta hallussa, fysiikasta puhumattakaan.
Nitro-Man, ajattelet aika kovasti, mutta et ikinä ole tainnut päästä ajatusta pitemmälle. Peliä ei edelleenkään tehdä tuolla tavalla. Ensin täytyy opetella hieman alkeita. Tuolla jostakin kuvan arpomisesta kyselit, eikä se oikein vakuuta kyvystä tehdä 3D-peliä. Sitten, kun on edes hieman jotakin taidon tapaista, tehdään projekti kunnolla alkuun, ja jos se näyttää lähtevän kunnolla käyntiin, aletaan pestata porukkaa mukaan.
Kovin vakuuttavaa kuvaa ei anna sekään, että tämä on jo ainakin kolmas profiilisi täällä. Tulee väkisinkin hieman trollaava kuva. Eikö voi sitä yhtä ja samaa käyttää?
Edit: Aivan niin, totta, profiilissa lukeekin yhtenä harrastuksena projektit. Niitä tuntuu tosiaan löytyvän joka lähtöön.
Niin asia on noin että minulla on suunattomasti projekteja mitä en ole tehnyt.Nyt aloin tekemään Coin Pusheria (pelikone) niin aijon edes sen tehdä alusta loppuun.
Mutta tosiaan että menee C/C++ opiskellessa VUOSIKAUSIA
Ja se juuri minua "pelottaa" en koskaan jaksa tehdä loppuun.
Pitäisi kai yrittää päästä pois tuollaisesta tavasta mutta helppoa sekään ei ole!
Nitro-Man kirjoitti:
Mutta tosiaan että menee C/C++ opiskellessa VUOSIKAUSIA
Eikä se vielä kielen opiskeluun rajoitu. Kuten mainittua, peruskoulumatematiikalla ja -fysiikalla ei vielä pitkälle pötkitä. Tarvitset rutkasti oma-aloitteisuutta ja kiinnostusta näidenkin opiskeluun.
Minusta tuntuu ettei sinua pelota mikään. Kaiken saa valmiiksi jos vaan rupeaa tekemään ja tekee kunnes se on valmis. Toki tämä kuulostaa typerälle ja itsellänikin on ties vaikka miten tekemättömiä projekteja. Asia on kiinni oma-aloitteisuudesta ja laiskuudesta. :o kyl mäkin oon iha sairaan laiska ei siinä mitään. Yhtään projektia en oo kunnolla julkasukelposeks saanu :P
Kyllähän VB:llä voi DirectX:ää käyttää joten jos taitoa riittää niin silläkin saa jotain aikaan.
Mutta kuitenkin, 3D-ohjelmoitni on muutakin kuin muutamien funkitoiden opettelua. Jotain yksinkertaisia kolmioita saatat saada ruudulle ihan opasta seuraamalla, mutta kun itse peliä alkaa tekemään tulee vastaan muutakin. Ensimmäisenä tulee mieleen matematiikka, itselläni on lukiossa pitkän matikan keskiarvo ~9,8 ja hyvä että sain yksinkertaisen törmäystarkistuksen tehtyä. Toki jos matematiikka on koulussa helppoa niin voi itseopiskella vektoreita ja matriiseja joita tarvitaan. Myöhemmin tarvitaan sitten myös fysiikkaa yli peruskoulutason.
Muutenkin 3D-peli on niin suuri projekti, että se vaatii hyvää ohjelmointitaitoa jotta koodimäärä pysyy käsissä. Ja tämän opetteluun menee kielestä riippumatta vuosia.
Mutta tietysti onhan se hienoa kun saa tehtyä yksinkertaisenkin 3D-maailman jossa voi liikkua ja siihen jopa jonkinlaisen törmäystarkistuksen ja valaistuksen (tälle tasolle oma 3D-moottorini on jumittunut)!
DarkBasic saataa olla 3D ohjelmointiin ehkä paraskin kieli, sillä voi luoda 3D objectin näin:
rem make object
Make Object Cone, 222
rem position object
Position object 222,Rnd{2000},0,{2000}Tai ladata .3ds,.x ja paljon muita objecteja näin:
load object "\man.x", 111 ' Lataa objectin
Positon object 111,Rnd{1000},0,{2000} ' Siirtää objectin kordinaatteihin
Scale object 111, 500,500,500 ' Muuttaa objectin kokoaItselläni meni 2 päivää tehdä taso missä voi liikkua.
ÄRRGH!
Nyt meni hermot. 3D objecti ja sit koodataan. Miks miks miks pitää tehdä kaikkien jollai pälli DarkBasicella pelejä ja ei tajuta itekkään mite ne edes toimii. :(
Taso, jossa voi liikkua, ei todellakaan ole temppu eikä mikään tällä mittapuulla. Minä lupaisin saada moisen aikaan ihan raa'alla C:llä tai C++:lla, WinAPI:lla ja OpenGL:llä parissa tunnissa (tietenkin mallien lataus vain omasta karsitusta tiedostoformaatista), ja alkeelliseen törmäystarkistukseen menee sitten ehkä tunti lisää. Siitä vain on aika pitkä matka kunnolliseen peliin.
Phix kirjoitti:
DarkBasic saataa olla 3D ohjelmointiin ehkä paraskin kieli...
Itse olen tästä toista mieltä. Nopea ja helppo ei aina tarkoita parasta. Toki tuolla on varmaan mukava opetella mitä se pelin rakentaminen voi olla, mutta paras kieli tuo ei silti ole 3D-pelien tekoon. Mutta jos joku nyt välttämättä haluaa DB:llä (tai VB:llä) alkaa rakentaa jotain super-3d-turbo-ultra-giga-peliä, niin kannattaa tutustua varmaan aluksi OpenGL:ään tai DX:ään ja lähtee siitä liikkeelle, että tajuaa miten alustetaan ruutu, miten kuva tulee siihen, mitä mikäkin tekee jne.
Löysin netistä aikoinaan Truevisionin härpättimen, joka taitaa käyttää DX:ää, mutta sillä oli myös todella helppo luoda pelin alku, ainaskin harjoitteluna toimi mukavasti.
Tässä pieni esimerkki simppelin formin luomisesta, alustamisesta ja tuhoamisesta:
Option Explicit
Private TV8 As TVEngine 'Tarvitaan roottoria!
Private DoLoop As Boolean '..Myös jokin, joka kertoo onko silmukka päällä, vai ei.
Private Sub cmdQuit_Click()
'painetaan cmdQuit-buttonia ja annetaan DoLoopille arvoksi false
DoLoop = False
End Sub
Private Sub Form_Load()
'Luodaan TV8-objekti
Set TV8 = New TVEngine
'Luodaan maailma joka toimii ikkunassa ja kerrotaan sille samaten mihin akkunaan viskotaan
TV8.Init3DWindowedMode Me.hWnd
'Näytetään akkuna
Form1.Show
'... ja aloitetaan looppi
DoLoop = True
Main_Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
DoLoop = False
' Kutsutaan vielä aliohjelmaa, jossa tuhotaan kaikki
Main_Quit
End Sub
Private Sub Main_Loop()
'Itse looppi, jossa pelimaailma pyörii
Do
DoEvents
'tyhjennetään vanha ruutu
TV8.Clear
'tähän tulee sitten kaikki tapahtuvat muutokset (esimerkiksi jos kamera liikkuu jne...)
'lopulta rendataan kuva, joka näkyy siinä, mihin se on määrätty, tässä tapauksessa tällä formilla.
TV8.RenderToScreen
Loop Until DoLoop = False
Main_Quit
End Sub
Private Sub Main_Quit()
'tuhotaan lopuksi
Set TV8 = Nothing
End
End SubEdit. Kävi tässä mielessäni, että miksi ihmiset haluavat luoda heti jotain isoja 3d-juttuja (enkä nyt tarkoita pelkästään threadin aloittajaa, vaan ihan yleisesti)? On se varmasti hienoa jos onnistuu, mutta tehoja vaativa peli kannattaa varmasti kirjoitella kielellä, joka olisi riittävän tehokas tähän.
Vielä sen verran, että parhaat pelit joita olen pelannut ovat niitä, joissa idea on pääasiassa, eikä toisten kopiointi huonosti toteuttena.
Luokaa pelejä joissa idea voittaa muut puutteet! Ei mulla muuta. Hyvää kesää. <333<3
nomic kirjoitti:
Phix kirjoitti:
DarkBasic saataa olla 3D ohjelmointiin ehkä paraskin kieli
Itse olen tästä toista mieltä.
Tarkoitin, että se saattaa olla ehkä, en siis ollut varma.
ps. Kerroin vain Nitro-Man:ille kielen, mikä saattaisi ehkä helpottaa hänen 3D-peli haavettaan. Jos kerta C++ käy, tai ei ole aikaa harjoitella.Muuten DarkBasic on 3D peleihin tarkoitettu ohjelmointikieli, joten ajattelin, että eikös tässä oltu tekemässä 3D peliä?
Kyllähän se C:lläkin onnistuu, vaikka matikka ei olisikaan niin hyvä, jos ottaa valmiin pelimoottorin avuksi. Pelimoottori Irrlichtillä(http://irrlicht.sourceforge.net/) saa myös törmäystarkistuksenkin mukavan helposti.
Älkää nyt toiveita sillä latistako että pelin tekeminen olisi mahdotonta, tai VB olisi liian hidas 3D-peliin.
Kannattaa tehdä erilaisia testejä nopeuden kasvattamiseksi. Webistä löytyy myös muiden tekemiä testejä, joissa siis pyritään saamaan kaikki teho irti muuttamalla koodia erilaiseksi niin, että se kuitenkin ajaa saman asian. VB:n sekaan kun ripottelee ASM:ia oikeisiin paikkoihin niin nopeus nousee kuin lentävä lehmä.
DirectX / VB tutoriaaleja löytyy riittämiin (onkohan DirectX4VB enää pystyssä?), OpenGL:stä ei ole henk. koht. kokemuksia.
Onhan se tietysti totta että VB:llä ihan uusinta namia voi olla vaikea saada tehokkaasti toimimaan, mutta kyllä sillä suht hienoa jälkeä saa aikaan jos ei haaveile noista tehosyöpöistä megacooleista tekniikoista. Tietysti homma on vähän monimutkaisempi aloittelijalle, joten kannattaakin aloittaa noita tutoriaaleja katsellessa (siis kirjoittamalla sen koodin ja ymmärtämällä jokaisen kohdan -- ei copypasteamalla ja toteamalla että jaahas, se toimii, joten nyt mä varmaan pystyn loihtimaan pelin).
Melkein kaikki on mahdollista, jos on aikaa ja innostusta kokeilla... :)
~DuClare~
Aihe on jo aika vanha, joten et voi enää vastata siihen.