In cazul programelor e de regula mai simplu, pentru ca sunt create in mare parte doar cu ajutorul a 2 tipuri de programe:
un mediu de programare si un pachet de design pentru creat elementele interfetei grafice (sau poti folosi elemente create de altii, pe care le gasesti in diverse pachete/ colectii de elemente).
Insa depinde despre ce e vorba, uneori sunt implementate baze de date, sunet, etc.
Cea mai folosita platforma de programare este Visual Studio de la Microsoft, si are o varianta gratuita (Community), asa ca nu e greu sa ghicesti ce foloseste majoritatea.
In el poti programa in C, C++, C#, Python, Visual Basic.
Iar din cate stiu eu, de departe cel mai folosit mediu de programare este C++.
Exista si platforma CodeBlocks, tot gratuita, si multe altele, insa nu ofera toate functiile de care dispui in Visual Studio, asa ca atunci cand vine vorba de creat jocuri, Visual Studio e de departe cea mai utilizata (nu e ca si cum ma apuc eu sa creez un programel, si intru in CodeBlocks, fiindca pe acesta am lucrat la scoala).
Cam la fel si pentru jocuri, cu diferenta ca acolo exista si platforme de asamblare, care te ajuta sa creezi relatia dintre elementele tale
(modelele 2D sau 3D, restul elementelor secundare din joc, hartile, NPC, muzica si efectele audio, efectele grafice gen explozii, ploaie, filmuletele dintre nivele sau din cadrul jocului (cinematics), etc
Din nou, exista 2 platforme larg raspandite/utilizate, ambele gratuite: Unity si Unreal.
Numai ca folosind astfel de platforme, esti putin limitat, nu poti folosi chiar orice limbaj de programare.
Pentru Unity trebuie sa cunosti C# sau JavaScript (pentru jocuri in browser) si pentru Unreal, ai nevoie de C++ sau Python.
Daca esti masochist si doresti ca jocul tau sa aiba eficienta unui melc obosit, incerci sa creezi tu ca producator o astfel de platforma
(cred ca "Blender Tools" a celor de la SCS Software,
bazat pe softul de animatie si rigging Blender, ar fi un exemplu potrivit de ineficienta/stagnare).
Pentru grafica 3D si pentru efecte dar si pentru animatie si rigging, se foloseste foarte mult Blender la jocurile mici (numite generic jocuri "indie").
De ce? Pentru ca stie sa faca toate aceste lucruri, si le face foarte bine.
Si e 100% gratuit pe deasupra. Cum am spus mai sus, suporta si pluginuri, chiar si unele create de la 0 de tine.
Foarte rar o sa vezi producator de jocuri mici, ce foloseste 3DStudio Max, Maya, Cinema4D sau alte unelte contra cost.
Pentru grafica 2D ma indoiesc ca se merge chiar pe GIMP (desi e posibil uneori sa fi fost folosit si acesta), insa ai pachetul Corel (Photo Paint, Corel Painter, Paint Shop Pro), sau Affinity Photo si Designer, la pret foarte bun.
Sau scoti din buzunar 25 de coco lunar pentru Photoshop, ca il poti anula cu putin noroc cand doresti (desi in practica nu e chiar asa, sunt foarte hoti si nesimtiti).
Pentru muzica, iau si ei din pachetele Royalty Free ce gasesc, si unde trebuie create de la 0 efecte si muzica, poti face asta cu aproape orice DAW. Foarte multe dintre ele au variante gratuite: Ableton Live Lite, Cubase LE, Studio One Prime, Pro Tools First.
Sau REAPER, care vine cu un trial foarte lung, si sa il cumperi costa doar 60 dolari.
Stiam si un site unde puteai genera foarte usor suierat de vant, zgomot de ploaie, tunet, susur de apa, zgomot de pasi, usi care se inchid, ferestre care scartaie, etc
In concluzie, exista atatea variabile, incat nu poti sa iti dai seama cum exact a fost creat un joc, atata vreme cat nu gasesti vreun interviu de-al producatorului in care da/arata detalii.
Sau se mai mentioneaza uneori prin review-urile de specialitate: jocul a fost creat in Unity, etc