Anteeksi OffTopic. On vaan pakko selventää vähän käsitteitä.
OFFTOPIC
Pie2 wrote:Flip wrote:Meinasitko laittaa ChB:hen sisäänrakennetun törmäyksentunnistuksen ja siihen reagoimisen (kuten coolbasicissa)? Mun mielestä se olisi tärkeä ominaisuus.
Eikös tuo sitten jo perjaatteessa vaadi objektimoottoria, että siitä olisi mitään hyötyä? Tarpeellisia komentoja olisivat ainoastaan boxoverlap ja imagescollide.
Se, että törmäys tunnistetaan tai että siihen reagoidaan, ovat kaksi ihan eri asiaa.
Törmäyksen havaitseminen, toisin sanoen, että
1. ideaalitapauksessa kahden geometrisen kappaleen rajapinnat kohtaavat
taikka
2. kaksi kappaletta ovat "virheellisesti" jo päällekäin,
on täysin puhdasta matematiikkaa, tai siis ihan oikeastaan geometriaa. Laskutoimituksina se tarkoittaa vektoreihin ja matriiseihin liittyvän matematiikan soveltamista. Käytännössä homma on "helppo" toteuttaa erilaisten primitiivien (2D: ympyrä, kolmio, suorakaide, jne; 3D: pallo, suorakulmainen särmiö, kartio, lieriö, jne) välisillä tarkasteluilla. On siis pakko idealisoida joitakin kappaleita yksinkertaisemman muotoisiksi kuin ne todellisuudessa ovat. Monimutkaisempi kokonaisuus (esim. auto, robotti, lentokone) voidaan toteuttaa luomalla primitiiveistä kokonaisuus, jossa kaikki osaset vaikuttavat kaikkiin muihin.
Törmäykseen reagoiminen edellyttää paljon laajempaa kokonaisuutta. Se vaatii kokonaista logiikka- ja fysiikkamoottoria. Ilman liikettä ja pyörimistä ei olisi törmäyksiä, joten ennen kuin törmäykset voidaan määritellä täytyy kaikki niihin vaikuttavat osatekijät määritellä. Ja määrittelyn jälkeen kaikki täytyy vielä simuloida.[/i][/size]
Tämän jälkeen sitten ihan asiaa, ChB'n liittyvää.
Se millainen ChB'sta tulee, riippuu paljolti tekijästä Dibalosta ja hänen ajatuksistaan/päämääristään, jne.
Tulikin tästä juuri mieleeni, kannattaako kielestä alkaa tekemään "uutta CBtä", jossa hyvin suuri osa perimoottorista toimii kielen sisäänrakennettujen ominaisuuksien päällä. Se on toki aloittelijaystävällinen ja helppokäyttöinen, mutta toisaalta taas matalampaan tasoon tottuneelle rajoittavaa. Lisäksi suurempi määrä koodia tarkoittaa myös enemmän bugeja. Toisinsanoen kieltä, joka sisältää paljon sisäänrakennettuja ominaisuuksia, täytyy testata paljon syvällisemmin. Myös nopeus saattaa kärsiä, mistä en tosin ole kovin hyvin perillä.
Vaihtoehto tälle olisi C++'aa ja muita oliokieliä lähemmin muistuttava ChB. Kohtuullisen yksinkertaisen pohjan päälle (perusrakenteet, olio-ominaisuudet, matematiikka, tärkeimmät rajapinnat) luotaisiin mahdollisimman selkeitä, tehokkaita, nopeita, helppokäyttöisiä ja hyvin dokumentoituja kirjastoja, kuten objektimoottori, jotka olisi liitetty itse IDE + kääntäjä + kielen dokumentaatio -pakettiin hyvinkin saumattomasti jolloin käyttäjä- ja erityisesti aloittelijaystävällisyys pysyisi vielä hyvänä.