Ei ehkä sido, mutta isoissa ohjelmistotuoteyrityksissä IDE vaikuttaa monenlaisiin valintoihin. Oikeilla valinnolla vähennetään kitkaa eri työvaiheiden ja osapuolten välillä, parannetaan tuottavuutta, nostetaan työtyytyväisyyttä jne. Jos yritys käyttää Visual Studiota niin tämä vaikuttaa “tooling” kokonaisuuteen vaikka ei sinällään pakottaisi mihinkään.
Olen koodannut monella kielellä (Assembler, C++, Java, JS…) mutta päällikkötehtäviin siitymisen jälkeen vähemmän. Hieman Nodejs, React, Python…
Sijoitin QT:n ja hieman silmäilin mikä QT-käytännössä on. Tiesin toki missä sitä käytetään ja karkea ajatus oli jo sijoittaessa.
Pikaisella tutkimisella QT:n käsitin seuraavaksi:
QML on yksikertaisempi kuvauskieli jossa käyttöliittymän elementit kuvataan objecteina metodeineen (katselin lyhyitä esimerkkejä ja yksinkertaiselta näyttäisi).
QML:ssä voi käyttää myös JavaScriptiä sekä tuoda omia js-tiedostoja QML-lähdekoodiin käytettäväksi.
QML käännetään bytekoodiksi, joka käännetään ajon aikana suoritettavaksi konekieleksi JIT/AOT kääntäjällä
QT on framework/kirjasto. C++:lla voi tehdä UI-komponentteja tai muita palveluja myös QML:n käyttöön, sekä muita suoritettavia prosesseja.
C++ käännetään esikääntäjällä standardiksi C++ koodiksi ja siitä lopulta suoritettavaksi konekieleksi
Joku QT:ta osaava tietää onko näin ?
Siinäkö pelimaailmasta QT:lle kilpailijaa autopuolelle ja sulautettuihin järjestelmiin.
Referenceissä VW-Groupin valmistajia ja esim GM. Mitä tuosta nyt nopiasti luin niin devaajalisenssit ei maksa mitään. Sitten kun valmis tuotteesi on tuottanut yli 1 000 000 dollaria niin sitten pitää alkaa 5% rojalttia maksamaan sen jälkeisestä liikevaihdosta mitä tuote tuottaa. Tosin jotain poikkeuksia oli esim automotiven osalta. Sopivasti myös taipuu hirveälle liudalle platformeja mukaan lukien varmaan tärkeimmät Android, Linux ja iOS.
Ilmeisesti pelimoottorista “oheistuotteena” kehitetty, joten sillä pystynee rakentamaan helposti visuaalisesti hienoja käyttöliittymiä. Yhtenä käyttäjänä oli muuten suomalainen Siili https://auto.siili.com/
Kuinkahan tehokasta rautaa vaatii. Ehkä ei ole optimi vaikka pesukoneen näytön ohjelmointiin.
C++:lla tuotakin tehdään.
Kyllä tuo Unreal pyörii kännyköissä (Fortnite on sillä tehty noin esimerkiksi) mutta ei varmasti optimi todella hitaalle raudalle joten en usko että näkyy pölyimurin ruudulla ihan hetkeen.
Ilmeisesti Qt Design Studio vastaa osin tuohon Unreal Enginen työkaluun.
Ilmeisesti pitäisi avata sekä Qt:n että Unreal Enginen kokonaisratkaisu/arkkitehtuuri, että voisi arvioida kummankin edut ja haitat. Qt:stä pääpiirteittin on jo käsitys
Joku Qt:llä tehnyt ja Unreal Enginestä tietoinen sw-arkkitehti osaisi avata.
Pitää pohtia josko asennan Qt:n itselle
Unreal Engine on pelimoottori, pääasiassa 3D-tavaraan ja erityisesti käytössä PC- ja high end konsolipeleissä. Mutta luonnollisesti siinä on myös työkalu UI-suunnitteluun koska pelit tarvitsevat sellaisiakin. Ja eipä ole yllätys jos tätä tarjotaan myös potentiaalisesti valtavalle automotive-markkinalle.
Tuossa Unreal Enginessä (koska on pelimoottori) luulisi olevan grafiikan ja nimenomaan 3D-graafiikan käyttö optimoitua sekä käyttöliittymiä helppo 3D-objecteista rakentaa.
Qt:ssä taas on sekä työkalupuolella (Design Studio/3D Studio), että kirjastossa tuki 2D/3D grafiikalle mutta myös kirjastoja (Add-Ons) moniin ei-UI toiminnallisuuksiin (sensorit, paikannus…).
Lisäksi Qt:ssä on tuo rakenne jossa QML:llä (+js/Python) voi rakentaa UI:t ja C++:lla suoraan natiivia nopeaa “sulautetun” koodia. Eli millainen tuo koko pino on tuossa Unreal Enginessä, muut kuin 2D/3D-moottori
Minulla on 6 vuoden kokemus Unreal Enginen 4 käytöstä. Qt:tä käyttänyt viimeksi 10vuotta sitten yliopistolla ja kokemus ei ollut kyllä hyvä silloin. Varmaan täysin eri vekotin nykyään.
Pelimoottoreissa suorituskyky otetaan yleisesti erittäin tosissaan koska pelit ovat ns. Soft realtime systeemejä. Pelimoottorit ovat raskaita siksi että niillä tehdään erittäin paljon laskentaa joka ikinen freimi 30/60/120 kertaa sekunnissa. Ei siksi että ne olivat jotenkin raskaita luonnostaan. Jos haluaa saada näyttävää 3d grafiikkaa näytölle voin vannoa että UE4 on siihen parempi työkalu. Käyttöliittymiin varmasti yhtä näppärä ja input latencyn saa todella pieneksi mikä tarkoittaa parempaa käytettävyyttä. Miinuksena on että ei taivu aivan hitaimpiin rautoihin ja tarvitsee GPU:n. Eli jos valmistaja ei halua säästää raudasta viimeistä penniä niin kyllä tämä ihan oikealta kilpailijalta kuulostaa. Unreal enginen omistavalta Epiciltä löytyy myös paljon muskelia, valuaatio viimeisen rahoituskierroksen jälkeen oli noin 20miljardia juuri ennen kuin aloittivat sodan Applea vastaan.
Lisenssi automotiveen on siis täysin ilmainen.
” A platform for innovation
AUTOMOTIVE & TRANSPORTATION
From design review to digital showroom, Unreal Engine delivers the highest-fidelity real-time visualizations and immersive experiences so stakeholders can evaluate concepts and configure options with confidence. And, with a 100% royalty-free license and free source code access, you’ll always be in the driver’s seat with an open road ahead.”
Aika paljon lienee Qt:llä kohteita, joissa ei ole tehokasta rautaa puhumattakaan GPU:ta.
Ilmeisesti GPU:ta voi tarvittaessa emuloida, mutta grafiikka hidastuu ?
Voisi lähteä siitä että nykyaikaista kännykkärautaa huonompaan Unreal Engineä ei kannata laittaa. Toisaalta esim. autojen infotainment-järjestelmät ovat helposti tämän tason rautaa, joten ymmärrän kyllä miksi sinne työnnetään UE:ta.
Lääkintälaitteen tai Älyjääkaapin UI on sitten enemmän QT-sektoria.
Jokainen 90-luvun lopulla PC-pelejä pelannut on varmaan kokenut tuon ihan ensikädessä Ei ollut Quake, Turok, Half-Life, jne. ihan yhtä vaikuttava kokemus ilman 3D-kiihdytintä kuin sama peli 3Dfx Voodoon kera
Sen kanssa pelit olivat yhtä aikaa sekä Tuhat kertaa™ hienompia että myös pyörivät ihan eri framerateilla (siis parempaan suuntaan).
Unreal Engine vs Qt-vertailussa taitaa olla kyse ainakin näistä:
- kuinka laajasti “sulautettujen” UI:ssä tarvitaan hienoa UE:n 3D-grafiikkaa (myös Qt:lla voi tehdä grafiikkaa)
- soveltuuko UE lähinnä käyttöliittymään vai onko sillä tukea muiden sulautettujen toiminnallisuuksien ohjelmointiin, kuten Qt:ssä
Näin on ollut ennen mutta nykyään hitaatkin GPU:t ovan nykyisin niin tehokkaita että ei niitä voi emuloida järkevästi. GPU:t suorittavat laskentaa rinnakkain(tuhansia laskuoperaatioita samaan aikaan).
Halvalla kännykkä raudalla tuo pöyrisi. Ennustan että kalliimman hintaluokan autoihin tuota tullaan käyttämään mutta vain jos sille tehokaalle tietokoneelle on jotain muutakin käyttöä.
Luulen myös, että kokonaisuus (Qt vs UE) ratkaisee ei pelkkä tehokas grafiikka.
Autonomisissa ajoneuvoissa sekä neuroverkoissa on perinteisesti käytetty GPU:ta juurikin rinnakkaislaskennan sekä sen nopeiden matemaattisten valmiiden funktioiden vuoksi.
Tesla rakensi oman piirin, jossa mm. GPU sekä NPU:t (neuroverkoille). Eli kyllähän nuokin ajan saatossa autoihin saattavat yleistyä FSD chip
Tuolla toki mainitaan HMI eli juurikin nämä näytöt, mutta myös “digital showroom” ja yleisesti ottaen koko auton suunnittelun tuki (mahdollisuus katsella ja kokeilla suunnitelmia VR-ympäristössä yms). Eli kokonaisuutena käsittääkseni laajempi paketti kuin QT:n tarjooma. Toki jos valmistaja käyttää suunnittelussa, myynnissä ja markkinoinnissa Unreal Engineä, niin luultavasti on paljon pienempi kynnys käyttää sitä myös auton näyttöjen käyttöliittymissä. Toisaalta jos valmistaja ei halua lukittua hyvin vahvasti yhteen teknologiaan, niin tuossa voisi olla ihan luontevaa kai myös käyttää käyttöliittymissä jotain muuta kuin UE:a?
Olihan tuolla UE:n saitilla kyllä myös tämä uutinen. Malliesimerkki autosta, jossa ei raudastakaan tartte (tai edes kuulu) pihistellä:
Unity häärää ilmeisesti myös tontilla
Jatkumona tähän otan esille tämän aiemman kommentin, joka jäi mielestäni liian vähälle huomiolle, mutta oli ainakin näin alan ulkopuoliselle mielenkiintoinen. Onko QT siis työkalu, joka on käytännössä aina etunenässä matkalla “pohjille” ja lopuksi kohtalona on vain kahvinkeittimien näytöt?
Toisaalta, vaikka autonvalmistajat haluavatkin pitää auton kokonaispainon kurissa, niin eikö nykypäivänä voisi perus henkilöautoonkin jo asentaa sellaista rautaa, joka jaksaisi pyörittää raskaampiakin softia. Silti QT tuntuu sielläkin olevan tällä hetkellä hyvin suosittu. Vai onko QT:n tämän hetken mukanaolo jatkumoa vuosia sitten tehdyistä päätöksistä ja tulevaisuuden autoja kehitetään jo muilla välineillä…?
Autoissa raudan hinta ei ole ongelma, vaan virrankulutus. Korkea virrankulutus syö sähköautoissa suoraan toimintamatkaa. Lisäksi korkea virrankulutus tuo omat huolensa myös jäähdytyksessä - jos infotainment-ruudun prosessori hohkaa 45W niin se on lisää duunia ilmastoinnille joka myös vie energiaa…
Toisaalta kännykät ovat ajaneet todella vähävirtaisten SoCien kehitystä ja tämän päivän tonnin premium-kännykän teho/virrankulutussuhde on aika hyvä.
Ei kai ole mitään syytä lyödä mitään 45W prosessoria infotainment-settiin? Tosiaan ARM-pohjaisella mobiilichipillä päästään siihen 5W TDP:n eikä jotkut Intelin Ice Laketkaan vie kuin jotain 10-15W tms.