Un motor software este un program de calculator sau o parte a unui program de calculator, care servește ca bază de bază pentru o bucată mai mare de software. Acest termen este adesea folosit în dezvoltarea jocurilor, în care se referă de obicei fie la un motor grafic, fie la un motor de joc în jurul căruia este dezvoltat restul unui joc video. În timp ce termenul poate fi folosit și în alte domenii ale dezvoltării software, semnificația sa particulară poate fi mai nebuloasă în acele cazuri. Un motor software poate fi dezvoltat de o companie care îl folosește sau poate fi dezvoltat de o altă companie și apoi licențiat altor dezvoltatori.
Când este utilizat în contextul general al dezvoltării de software pentru computer, un motor software se referă de obicei la elementele de bază ale unui anumit program. De obicei, aceasta nu include funcții precum interfața cu utilizatorul (UI) și numeroasele elemente de artă adăugate motorului de bază în sine. Pentru un sistem de operare (OS), de exemplu, motorul software poate fi codul sursă care stabilește ierarhia fișierelor, metodele de intrare și ieșire și modul în care sistemul de operare comunică cu alt software și hardware. Cu toate acestea, conținutul exact al unui astfel de motor poate varia de la program la program.
În dezvoltarea jocurilor pentru computer și console, un motor software se referă de obicei fie la motorul grafic al unui joc, fie la motorul de joc în ansamblu. Motorul grafic pentru un joc este de obicei software-ul folosit pentru a reda corect grafica văzută de jucători. Acesta utilizează adesea elemente de artă create în alte programe, care sunt apoi portate în motorul grafic pentru a fi utilizate în timpul jocului. Utilizarea unui motor software pentru grafica unui joc poate face redarea mult mai ușoară și, de asemenea, poate simplifica procesul de asigurare a compatibilității software și hardware.
Un motor software în proiectarea jocului se poate referi și la un motor de joc, care este un program mare care constituie nucleul unui joc. Acest motor se ocupă adesea de modul în care este gestionată inteligența artificială (AI) pentru personajele jocului, de fizica din lumea jocului și chiar oferă instrumente pentru introducerea activelor de artă și crearea unei interfețe de utilizare pentru un joc. Folosind un motor de joc, creatorii pot face dezvoltarea viitoare mult mai ușoară, în special pentru sequelele. Acest tip de motor software este adesea creat ca prima parte a dezvoltării jocului și poate fi licențiat altor companii pentru a le permite să dezvolte mai rapid și mai ușor jocuri noi folosind motorul de bază.