De Linux-kernel is geschreven in C met een portie assembler. De manier waarop de Linux-kernel geschreven is, lijkt me niet aan te raden voor beginners. GTK+ en Glib gebruikt C, Qt gebruikt C++. Veel programma's in Ubuntu zijn ook in python geschreven.
Ik ben persoonlijk begonnen met Basic, in een C64-emulator. Dit is een zeer eenvoudige taal, en ik wilde niet direct "echte" programma's gaan schrijven. Daarna heb ik java geleerd, dat heeft me veel geholpen met het leren van OO-programmeren. Nu ben ik aan C++ bezig.
Spelletjes maken, vooral voor beginners, en zeker als je 3d-spelletjes wilt maken, raad ik aan om in Java te doen. Hier wat informatie over engines (indien er geen URL gegeven is, Google's your friend
)
• jME (
http://www.jmonkeyengine.com): een zeer complete engine, je kan een spel letterlijk met een paar lijntes code programmeren. Wiskundige berekingen, zoals afstand tussen 2 punten, collision, verplaatsing/rotatie/schalen zijn al allemaal in jME ingebouwd. Bevat ook een groot assortiment aan "loaders", waarmee je 3D-objecten van verschillende 3D-modelleerprogramma's (helaas nog niet blender) kan inladen. Het kan uitgebreid worden met jME Physics, een physics-simulator die als backend ofwel ODE (open-source), ofwel het bekende PhysX kan gebruiken. Geluid met openAL is ook ingebouwd trouwens. Verder kan je netwerkspellen maken m.b.v. JGN (Java Game Networking) en een interface met FengGUI. Volledig open-source trouwens (BSD)
• Java3D is een andere engine, helaas leent die zich iets minder voor direct aan de game zelf te beginnen en is zonder goede basis wiskunde en informatica het nog moeilijker om als beginner er iets mee te doen. Deze is echter wel zeer snel. Voor zover ik weet, zijn er niet veel uitbreidingsmogelijkheden, omdat deze engine eigenlijk niet specifiek voor games is, maar voor 3d in het algemeen. (BSD, dacht ik)
• Xith3D is nog een engine, deze heb ik echter niet gebruikt.
• LWJGL (Lightweight Java Game Library) is een game library die volgens mij wel wat te vergelijken valt met SDL, in het feit dat je zelf nog veel rekenwerk erbij moet doen. Feitelijk is het een implementatie van OpenGL en OpenAL in Java, met wat extra toevoegingen voor games. Als je jME neemt, heb je trouwens al direct LWJGL, voormits jME hierop gebaseerd is.
• JOGL is een andere Java-gebaseerde renderer
- SeySayux