Vinnaren i pepparkakshustävlingen!
  • 6
  • 7
2009-11-30, 16:59
  #73
Medlem
gullgubbens avatar
Citat:
Ursprungligen postat av simplerr
En fråga till bara. DirectX och OpenGL pratar som jag förstått det direkt med maskinvaran i datorn, som tangentbordet, musen, grafikkortet etc.. Medan andra API:er som SDL, SFML, Irrlicht etc skickar data till DirectX eller OpenGL som i sin tur skickar vidare informationen till hårdvaran. Är det så det fungerar i det stora hela, eller har jag missuppfattat det?
OpenGL pratar bara 3D, så där måste man använda något annat också. Det motsvarar Direct3D, DirectX består dock av ett antal andra X:ar som kan hantera ljud och input och så om man vill. Eller ja, nu för tiden hanterar man input i DirectX med vanliga windowsfunktioner. Sen måste du verkligen inse att det är en gigantisk skillnad på SDL och SFML, som är lager ovanpå hårdvara, och Irrlicht, som är en komplett spelmotor. Vi börjar med de förstnämnda.

SDL är alltså ett lager mellan hårdvaran och du. Vad är då den här hårdvaran? Det kan vara lite vad som helst, det går i princip att porta SDL till allt som har en skärm och lite knappar, kompilera din kod som fungerade till Windows, och vips så har du ett spel till Linux, OS X, nån annan obskyr UNIX-variant på en lika obskyr dator, eller kanske Nintendo DS. I praktiken uppstår det förstås oftast lite fler komplikationer, men det sopar jag under mattan. SDL kan prata med en uppsjö av olika plattformar, DirectX, X11 och Windows API:t exempelvis. Själva poängen med SDL är att man inte ska behöva lära sig ett antal komplexa API:n, utan ett enda enkelt, som är ett effektivt lager på hårdvaran. Simple DirectMedia Layer.

SFML fungerar på samma sätt, fast som jag har förstått det använder man enbart OpenGL för grafiken. Det gör att man kan få 3D-accelererade, snabba, snygga effekter och rotationer, men man tappar SDL:s bredd.

Irrlicht är en helt annat best, det är en komplett 3D-motor, något som skulle ta gemene man år att skriva. Den kan tydligen använda både Direct3D och OpenGL, alternativt ett mjukvarualternativ. Det här alternativet är perfekt om man inte kan så mycket om 3D och vill ha springande gubbar fort, alternativt om man kan mycket men inte vill skriva en 3D-motor. Hur som haver så ligger Irrlicht på en helt annan nivå än SDL och SFML

Citat:
Ursprungligen postat av simplerr
EDIT: Slutsaten är alltså att det är bättre att lägga tid på programmering i C++ och SDL, än att spendera tid på matten som krävs för 3D programmering?
Mja, vill du programmera 3D kommer du förr eller senare vara tvungen att lära dig matten. Det går inte utan den, och det är inget man plockar upp medan man håller på. Jag vet inte hur du ligger till i livet, men om du planerar att läsa en civilingenjörsutbildning eller liknande på högskolan lär du få lära dig linjär algebra där, så det kan vara värt att satsa på programmeringsfärdigheterna och vänta med 3D:n, man kan göra många roliga saker med bara 2 dimensioner. Annars tycker jag du ska läsa din fars bok och göra lite övningar, det kommer spara oceaner med tid. Alternativet är att sitta och lägga till och ta bort minustecken i sin lätt modifierade exempelkod och inte ha någon aning om varför allt blir spegelvänt.
Citera
2009-11-30, 19:26
  #74
Medlem
Citat:
Ursprungligen postat av gullgubben
OpenGL pratar bara 3D, så där måste man använda något annat också. Det motsvarar Direct3D, DirectX består dock av ett antal andra X:ar som kan hantera ljud och input och så om man vill. Eller ja, nu för tiden hanterar man input i DirectX med vanliga windowsfunktioner. Sen måste du verkligen inse att det är en gigantisk skillnad på SDL och SFML, som är lager ovanpå hårdvara, och Irrlicht, som är en komplett spelmotor. Vi börjar med de förstnämnda.

SDL är alltså ett lager mellan hårdvaran och du. Vad är då den här hårdvaran? Det kan vara lite vad som helst, det går i princip att porta SDL till allt som har en skärm och lite knappar, kompilera din kod som fungerade till Windows, och vips så har du ett spel till Linux, OS X, nån annan obskyr UNIX-variant på en lika obskyr dator, eller kanske Nintendo DS. I praktiken uppstår det förstås oftast lite fler komplikationer, men det sopar jag under mattan. SDL kan prata med en uppsjö av olika plattformar, DirectX, X11 och Windows API:t exempelvis. Själva poängen med SDL är att man inte ska behöva lära sig ett antal komplexa API:n, utan ett enda enkelt, som är ett effektivt lager på hårdvaran. Simple DirectMedia Layer.

SFML fungerar på samma sätt, fast som jag har förstått det använder man enbart OpenGL för grafiken. Det gör att man kan få 3D-accelererade, snabba, snygga effekter och rotationer, men man tappar SDL:s bredd.

Irrlicht är en helt annat best, det är en komplett 3D-motor, något som skulle ta gemene man år att skriva. Den kan tydligen använda både Direct3D och OpenGL, alternativt ett mjukvarualternativ. Det här alternativet är perfekt om man inte kan så mycket om 3D och vill ha springande gubbar fort, alternativt om man kan mycket men inte vill skriva en 3D-motor. Hur som haver så ligger Irrlicht på en helt annan nivå än SDL och SFML.

Tackar för de där raderna. En hel del saker har klarnat upp för mig nu


Citat:
Ursprungligen postat av gullgubben
Mja, vill du programmera 3D kommer du förr eller senare vara tvungen att lära dig matten. Det går inte utan den, och det är inget man plockar upp medan man håller på. Jag vet inte hur du ligger till i livet, men om du planerar att läsa en civilingenjörsutbildning eller liknande på högskolan lär du få lära dig linjär algebra där, så det kan vara värt att satsa på programmeringsfärdigheterna och vänta med 3D:n, man kan göra många roliga saker med bara 2 dimensioner. Annars tycker jag du ska läsa din fars bok och göra lite övningar, det kommer spara oceaner med tid. Alternativet är att sitta och lägga till och ta bort minustecken i sin lätt modifierade exempelkod och inte ha någon aning om varför allt blir spegelvänt.

Kommer nog försöka med något i den stilen. Jo, jag har ett tag kvar till högskolan så det är lika bra att göra något vettigt av tiden Sen får vi se hur länge jag har intresse av att ligga och läsa linjär algebra om kvällarna, det är ju en annan sak.. men ska verkligen ge det en chans. Men det är lite kul, i plugget har vi precis börjat med områden som jag känner igen lite svagt från boken. Verkligen kul när man ser hur pass viktigt det är med matten och dess breda område. Det pushar en att jobba på ens studier
Citera
2010-03-29, 21:31
  #75
Medlem
Citat:
Ursprungligen postat av simplerr
Tackar för de där raderna. En hel del saker har klarnat upp för mig nu




Kommer nog försöka med något i den stilen. Jo, jag har ett tag kvar till högskolan så det är lika bra att göra något vettigt av tiden Sen får vi se hur länge jag har intresse av att ligga och läsa linjär algebra om kvällarna, det är ju en annan sak.. men ska verkligen ge det en chans. Men det är lite kul, i plugget har vi precis börjat med områden som jag känner igen lite svagt från boken. Verkligen kul när man ser hur pass viktigt det är med matten och dess breda område. Det pushar en att jobba på ens studier
Vill bara tipsa dig om att MIT har lagt ut en hel kurs i linjär algebra på youtube:
http://www.youtube.com/watch?v=yjBer...DDD91010BC51F8

det är alltså hela kursen i videoformat, och den tillhörande boken hittar du på gigapedia om du letar lite.

Jag har själv läst linjär algebra vid stockholms universitet, och även om det var ok så lärde jag mig mer, bättre och snabbare via MITs videor. Professor Gilbert Strang som han heter är helt fenomenal i sitt föreläsande. Om du är seriös med att lära dig detta i nuläget så rekommenderar jag dig att kolla in den.

Angående spelprogrammering så är det något jag också funnit intresse för den senaste tiden. För mig är det något av en dröm att skriva en egen motor och göra ett coolt 2d-plattformsspel i stil med Mega Man Har kollat runt bland spelmotorer som finns tillgängliga gratis och fastnat lite för Löve som verkar bra, men kanske inte hunnit så långt i sin utveckling ännu. Det är dessutom open source vilket alltid är ett stort plus.

Angående DX vs OpenGL är det inget snack om saken för min del, OpenGL äger helt enkelt DX3D för en purist som mig. Open source, plattformsoberoende samt att ID gör sina engines där är anledning nog för mig att avfärda DX. Microsofts grejer är för övrigt ofta bloatade, och open source-communityn är så mycket mysigare än ms-nuthuggers
Citera
2010-03-29, 22:28
  #76
Medlem
Citat:
Ursprungligen postat av Unbildoed
Vill bara tipsa dig om att MIT har lagt ut en hel kurs i linjär algebra på youtube:
http://www.youtube.com/watch?v=yjBer...DDD91010BC51F8

det är alltså hela kursen i videoformat, och den tillhörande boken hittar du på gigapedia om du letar lite.

Jag har själv läst linjär algebra vid stockholms universitet, och även om det var ok så lärde jag mig mer, bättre och snabbare via MITs videor. Professor Gilbert Strang som han heter är helt fenomenal i sitt föreläsande. Om du är seriös med att lära dig detta i nuläget så rekommenderar jag dig att kolla in den.

Vill också rekomendera de videorna. Strang är sanslöst bra, man förstår verkligen hela tiden. Hade på inga sätt en dålig proffessor i linjär algebra men tyckte ändå Strangs föreläsningar var mycket bättre och lättföljda. Desutom gick de igenom saker vi inte hann lägga tid på i våran kurs.
Kom bara ihåg att kolla upp de svenska namnen för uttrycken sen om du ska ha tenta, blev lite problem för mig när jag fick fråga om vad vissa saker hette på engelska på vår tenta för att veta vad som efterfrågades.
Citera
2010-04-04, 16:19
  #77
Medlem
pebs avatar
Jag tycker att SDL är ett bra första val. Det är dels jävligt portabelt (Jag har gjort spel till playstation portable i SDL och C, ingen större skillnad från att programmera på en dator) En annan anledning är att SDL/OpenGL går att kombinera. OpenGL är det naturliga valet efter att du lärt dig 2D programmering ordentligt. Sen är det ju så att kan du göra ett spel, oavsett om det är 2d eller 3d, så förutsätter det goda kunskaper inom programmeringsspråket vilket innebär att du snabbt lär dig DirectX senare ändå, om du nu skulle bli tvingad till det.

Jag är också hobbyprogrammerare men jag har flera års erfarenhet och nördande bakom mig, så jag behärskar det mesta inom programmering. Spelar ingen roll om man kommer till en ny "plattform" att jobba med som tex Playstation, programmera microchip, bygga rootkits på kernel nivå (där ett misstag innebär totalkrash av datorn, Blue Screen Of Death eller vart man nu kan tänkas hamna, har man lärt sig programmera ordentligt i C/C++ och lite assembler därtill, så är det inte ett problem att lära sig använda ett nytt bibliotek.
Idag har jag gjort ett flertal cracks till olika program som isoedit, ultraiso, winrar, mirc osv samt även ett multihack till spelet CS2D (googla pebhook, källkoden är fri att ladda ned också) med aimbot, esp, samt andra hacks. Sånt här älskar jag, det går i princip ut på att lista ut hur programmerarna har tänkt när dom jobbat - och leta efter liknande kodsnuttar fast i assembly. Googlar ni er fram till min hemsida så kan ni lära er mer om cracking och prova på att cracka dessa program själva.

Over and out
Citera
2010-04-05, 00:15
  #78
Medlem
andropas avatar
Citat:
Ursprungligen postat av acw
Vill också rekomendera de videorna. Strang är sanslöst bra, man förstår verkligen hela tiden. Hade på inga sätt en dålig proffessor i linjär algebra men tyckte ändå Strangs föreläsningar var mycket bättre och lättföljda. Desutom gick de igenom saker vi inte hann lägga tid på i våran kurs.
Kom bara ihåg att kolla upp de svenska namnen för uttrycken sen om du ska ha tenta, blev lite problem för mig när jag fick fråga om vad vissa saker hette på engelska på vår tenta för att veta vad som efterfrågades.

nice førelæsningar. vældigt længe sedan jag læste linjær algebra, men det var kul att fræscha upp minnet lite.
Citera
2010-04-06, 21:14
  #79
Moderator
Ruskigbusss avatar
Eftersom frågan är oberoende av språk, så flyttar vi den till Övriga frågor.
/Mod
Citera
  • 6
  • 7

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback