Teknik Motor Samhälle Spel Popkultur Fritid Tjock Tester Dagens fråga Tipsa! Skaffa Feber+ Mitt konto
Hetaste
Senaste
Spelutvecklare ser ändring i industrin om några år C++ istället för DirectX Spelutvecklare ser ändring i industrin om några år Tim Sweeney, CEO av Epic Games, sade i en intervju att han förväntar sig att 3D-kort som används för att driva våra spel idag såväl som stora applications programming interfaces, eller API, kommer att försvinna inom några år. Enligt Sweeney kommer istället mjukvarurendering att komma tillbaks på arenan men det kommer att omforma hela datorgrafiksindutrin.Han säger att i nästa generation kommer man att skriva all renderingskod i riktiga programmeringsspråk som C++ istället för DirectX eller OpenGL. Det skulle göra det möjligt att köra koden på all hårdvara som kan köra general-purpose kod. Att just Sweeney säger en sådan sak kan bero på att han varit med länge och det skulle ge honom fördelar över andra konkurrenter genom att gå över till mjukvarurendering igen.Han ser idealet som ett mjukvarulager som enbart består av en vektoriserande C++ kompilerare för varje arkitektur, Nvidia, Intel, AMD, osv. och sedan skriver man allt i samma kod. Han hävdar också att den enda skillnaden mellan processorer, om det nu är CPU eller GPU, kommer då att vara hur de klarar av verkliga applikationer, vilket skulle underlätta för spelutvecklaren.Han håller dock med om att ifall utvecklingskostnaden för nya metoder blir för hög kommer de aldrig att bli populära. Han säger att vad som behövs är enkla, billiga programmeringsmodeller för att skala upp till flera trådar och kärnor. xbitlabs.com PC, Hårdvara, Mjukvarurendering,
37.0° 0 Samuel Paulsson Samuel Paulsson
mån. 22 sep 2008, 18:57
16 kommentarer till artikeln
Netzach
"Han säger att i nästa generation kommer man att skriva all renderingskod i riktiga programmeringsspråk som C++"

Nog för att C++ fortfarande är välanvänt bland speltillverkare, men det är och förblir ett fulhack som bara nästan är objektorienterat :-P
av Netzach, måndag 22 september 2008 kl 20:59
Aibo
Bekymmet med OpenGL och DirectX är att hårdvaran springer ifrån dem. Både DX och GL var ju ifrån början byggda för att hantera en tillståndsmaskin. Sedan kom shaders vilket tvingade GL och DX att lägga in stöd för vissa generella metoder. Nästa generations GPUer kommer stödja än mer generaliserad funktioner sk GPGPU (där det första GP står för General Purpose). T.ex. Intels Larrabee. Nvidia har ju redan sitt CUDA. ATI har sitt STREAM.

Man har ju redan förslagit OpenCL. Som kommer vara mer inriktat på generella uppgifter på många kärnor.

Men i verkligheten så kommer användarna sitta med en dator med ett antal kärnor, där vissa är väldigt specialiserad. Så helt fel så tror jag inte Tim Sweeney har.
av Aibo, måndag 22 september 2008 kl 22:10
konard
Netzach Vad tycker du är fulhack med C++?

Jag tycker C++ är ett enormt kraftfullt språk där amatörer ofta anser att det är ett fulhack för att de själva inte kan skilja på vad som är C eller C++.
Kika på Trolltechs QT Ramverk, det är enorm skillnad mot MFC.


av konard, tisdag 23 september 2008 kl 07:58
Beatnutz
Vad hände med Assembler?
av Beatnutz, tisdag 23 september 2008 kl 09:40
aheydeck
Vad hände med Pascal?
av aheydeck, tisdag 23 september 2008 kl 09:56
Bert Karlssons Semla
Vem var det som kasta?
av Bert Karlssons Semla, tisdag 23 september 2008 kl 10:01
Beatnutz
How can she slap?
av Beatnutz, tisdag 23 september 2008 kl 11:06
panci
I have sex leg
av panci, tisdag 23 september 2008 kl 11:26
flygarn
10 PRINT "Basic is the shit"
av flygarn, tisdag 23 september 2008 kl 11:29
Press play on tape
C++ är fulhack på många sätt och det är därför C# kom som en modernisering (den tar även godbitarna ur Java). Det borde inte vara nödvändigt att skriva hela spelen i samma språk utan använda det som passar bäst. C# passar för stora projekt med många filer och klasser, vilket jag antar att spelen är idag, bortsett från grafikmotorerna som har speciella behov. Kanske utveckla en CLR för spel som har omarbetad garbage collect och kompilerad kod?
av Press play on tape, tisdag 23 september 2008 kl 12:32
Julle
Press play on tape:

Du kan väl inte på allvar anse att C# är en uppföljare på C++? De har ju noll och fimpar med varandra att göra. C++ kompileras till Maskinkod och C# till CLI som sedan körs av en Virtuell Maskin.
av Julle, tisdag 23 september 2008 kl 13:25
Press play on tape
Julle, nu blandar du ihop språket C# och plattformen .Net? Jag tog redan upp att det borde komma en plattform för C# som är anpassad för realtidsapplikationer som spel. Men prestandaförlusten för .Net är vad jag minns (det var väl en debatt här för ett år sedan?) ungefär 10% mot att du vinner i bättre minneshantering och plattformsoberoende (tänk inte bara BCL här...), och slipper alla sjuka typosäkra parameteranrop som olika bibliotek till C++ har. Plattformsoberoende är ju något som spelutvecklare vill ha?

Syntaxförbättringarna kan du läsa om enl. länk. Jag citerar ur den: "Theoretically, a C# compiler could generate machine code like traditional compilers of C++ or FORTRAN; in practice, all existing C# implementations target CIL"
av Press play on tape, tisdag 23 september 2008 kl 14:58
konard
Press play on tape Plattformsoberoende ger mindre rum för prestandaoptimeringar och ökar risken för spaghettikod. Jag tror även få utvecklare skulle vilja låta en Garbagecollector köras för att deallokera minne. Många skriver även sina egna New/delete operatorer för att ta bort overhead. För minnesallokeringen på heapen är också låååångsam.
Visst kanske ser vi något interpreterade språk i framtidens datorer (min gissning GPUn) men du kommer troligtvis har betydligt mer makt över GCn då än idag.

>>Kanske utveckla en CLR för spel som har omarbetad garbage collect och kompilerad kod?
Varför inte bara använda C/C++ då? Har du kollat något på TR1 från Boost? (C++ 09 är väl snart här)
av konard, tisdag 23 september 2008 kl 18:16
Netzach
"Jag tycker C++ är ett enormt kraftfullt språk där amatörer ofta anser att det är ett fulhack för att de själva inte kan skilja på vad som är C eller C++."

C är renare än de nya fula ad hoc-lösningarna som finns i C++, även om det är än mer utdaterat, av förklarliga skäl. Problemet med C++ är att det är rörigt, och bara delvis objektorienterat, inte vad man kan göra med det. Assembler är också kraftfullt. ;-)

C# kan jag inte uttala mig om, har bara provat det som hastigast och minns typ bara att syntaxen nästan är identisk med Java. På enklare nivåer iaf. .NET är ett bra ramverk enligt vad jag hört av folk som jobbat med det, men har en dokumentation av en annan värld som gör det hela oanvändbart för andra än redan invigda.

Objective-C är rätt så hemskt med sitt meddelandesystem, rörigare syntax får man leta efter. Kolla bara in länken, det börjar enkelt med går snabbt åt helvete. ;-)

RubyCocoa är underbart att arbeta med (Ruby över huvud taget), men iom att det inte kompileras till maskinkod så passar det av naturliga anledningar inte till tunga tillämpningar.



Jag reserverar mig för eventuella överdrifter av stilistiska skäl. ;-)
av Netzach, tisdag 23 september 2008 kl 19:14
Press play on tape
konard
Plattformsoberoende och plattformsoptimerad är väl olika saker? Jag utgår från att när spelutvecklaren skriver något för en grafikmotor på tre plattformar så är det ett rätt oberoende gränssnitt som har väldigt individuellt optimerad kod i vardera. Som också OpenGL är? Det är väl också det här Sweeney pratar om med vektoriserad kompilering?

"Varför inte bara använda C/C++ då?"
Visst, det går att i alla sammanhang uppgradera och hålla saker bakåtkompatibelt men C# är en nystart.
av Press play on tape, tisdag 23 september 2008 kl 19:43
mattias800
När han säger att renderingen kommer programmeras i C++ så menar han nog inte att det helt plötsligt måste vara objektorienterat, manuell minneshantering, etc, etc.

Han menar helt enkelt att man kommer använda samma programmeringsparadigmer, samma syntax och semantik för att programmera renderingen som man gjorde förr i tiden. Det behöver inte nödvändigtvis vara C++ eftersom C++ har konstruktioner som inte behövs eller kanske inte ens går att implementera.

Anledningen till att han säger C++ var nog för att journalisterna (eller vem han nu pratar med) ska förstå vad han säger :)
av mattias800, fredag 26 september 2008 kl 12:43
Kommentera artikeln







+ Per månad 39 kr Betala löpande per månad. Ingen bindningstid. Starta prenumeration Per år 299 kr Enklast och billigast, bara 25 kronor i månaden. Betala löpande per år. Ingen bindningstid. Prova 14 dagar gratis innan du bestämmer dig. Starta gratis provperiod Engångsköp 349 kr Slipp återkommande betalningar, betala ett år i taget. Betala med kort eller Swish. Köp utan prenumeration