È possibile fare giochi in python?
È così che ho iniziato la mia carriera nei giochi.
Ho scaricato Pygame e l'ho usato per scrivere il mio motore. Per circa un anno non sono andato molto lontano! Secondo i miei calcoli mi ci sarebbero voluti circa 5 anni a tempo pieno solo per finire la parte del motore del mio gioco. Poi avrei dovuto creare il gioco.
Poi ho trovato Unity, avevano appena lanciato la versione 3. Sono stato venduto proprio lì, nel 2010. Ho iniziato con Boo, poi sono passato a JS e ora sono completamente C#. Perché era l'unica cosa che avesse senso.
Sì, è possibile.
Ha senso?
NO.
È una cosa per quei fanatici irriducibili che devono mostrare a tutti gli altri che non hanno bisogno di usare l'ascensore per arrivare al 100° piano. Il resto di noi li saluta una volta arrivati lì, ma la festa è già finita e noi riprendiamo l'ascensore e li invitiamo con noi sull'ascensore.
Perché non ha senso?
1) Ci vuole un sacco di tempo perché devi creare il tuo motore.
2) Poiché ci vuole così tanto tempo il tuo gioco finisce per costare un sacco di soldi. Il tuo tempo costa denaro, è denaro che potresti guadagnare in un altro lavoro e denaro che devi spendere in affitto, cibo, vestiti, ecc. per rimanere vivo e funzionante.
Immagina che ci vogliano solo 3 anni per scrivere un motore decente con Python. Supponendo che si possa sopravvivere con 20.000 dollari all'anno, solo il motore costerà al vostro progetto di gioco 60.000 dollari, solo per iniziare davvero. Questo è comunque 60k$ in più che il gioco deve fare solo per andare in pareggio.
Oh e Unity può essere usato per rilasciare giochi senza mai pagare un solo centesimo.
3) Il tuo motore è molto, molto improbabile che sia grande come le alternative gratuite perché sono fatte da grandi team di veterani e hanno già anni di vantaggio.
4) Sarete limitati dal punto di vista della piattaforma, a differenza di quei motori gratuiti dove potete semplicemente pagare una piccola somma per ottenere più piattaforme.
5) Avrete bisogno di una quantità folle di disciplina per andare avanti anno dopo anno. E se cambiate qualcosa nel design del vostro gioco durante il tempo in cui state facendo il motore, questo potrebbe creare la necessità di cambiare il design del motore stesso e farvi tornare indietro di mesi o anni.
Tutto questo contrasta in modo schiacciante qualsiasi presunto beneficio di ottenere una migliore comprensione del funzionamento interno di un motore. A meno che non vogliate fare giochi in primo luogo, ma motori.
Vuoi effettivamente finire quel tuo gioco?
Prova uno dei motori gratuiti. Se volete davvero prendere la strada di Python, chiedetevi se sono i giochi che volete davvero fare in primo luogo e se avete altre motivazioni, come l'intenzione di fare qualcosa di incredibilmente difficile che quasi nessun altro ha fatto:
EDIT:
Ho ricevuto molti commenti sulla mia risposta. Ci sono molti giochi molto famosi e premiati scritti interamente in python. Il miglior esempio che conosco è Eve Online. Consente uno dei mondi continui più massicci che si conoscano in questo momento. Stackless Python 2.7 - EVE Community
E eccone un altro:
John Boyd
Panda3D - Motore di gioco Python e C++.
Onestamente non sapevo di queste due cose e mi scuso per questo.
Anche se mantengo la posizione che un team di sviluppo di giochi agli inizi è meglio che non cerchi di creare il proprio motore - è un sacco di lavoro. Se Python è un must, è meglio scegliere un motore che lo supporti.
Ma alla fine è meglio scegliere un motore che abbia una grande varietà in modo da poter continuare ad usare gli stessi strumenti da un progetto all'altro anche in futuro.
EDIT2:
Tim L. DC
In realtà, Godot Engine ha la licenza MIT e il loro linguaggio di scripting interno è basato su Python. Hanno avuto problemi ad integrare direttamente Python a causa della velocità e di altri problemi con il modo in cui Python è stato costruito. Tuttavia, con solo alcune parole chiave cambiate, GDscript funziona quasi esattamente come Python per la maggior parte delle cose. Inoltre, la loro integrazione con il loro linguaggio è abbastanza completa e lo rende davvero veloce. Io uso Godot per queste ragioni e lo preferisco a Unity che ha licenze confuse. Unity presumibilmente ha più caratteristiche, ma Godot è un progetto open source attivo, il che significa che se si desidera una caratteristica che attualmente non ha, si potrebbe aiutare a ottenere quella caratteristica inclusa se si vuole. Se Python è quello a cui siete abituati, allora Godot Engine e GDscript valgono sicuramente un'occhiata.
Grande punto. Proverò Godot quando ne avrò il tempo, ma ci vorrà molto tempo con un tempo limitato a disposizione prima di poter fare un confronto equo. Dopo tutto, al momento in cui scrivo ho 5,5 anni di esperienza a tempo pieno con Unity3D - il che significa che uno non può semplicemente installarlo, premere un paio di pulsanti e poi pretendere di dargli una valutazione equa. Uno ha bisogno almeno di imparare veramente il sistema e le sue capacità e raccogliere qualche esperienza reale.
Un altro grande punto di Tim è che Godot ha una licenza molto più semplice - MIT License mentre Unity per esempio ha un testo di licenza relativamente lungo e strani casi speciali che l'utente medio non può assolutamente capire e Unreal engine ha ancora la clausola delle royalties.
Ma senza averlo provato veramente posso dire che sembra che ci sia un vero concorrente nel business dei motori per quelli che preferiscono Python. Non so se si adatta ai motori AAA come Unreal o CryEngine, ma la quantità di lavoro artistico che questi richiedono è ben al di fuori della portata della maggior parte dei piccoli team.
Articoli simili
- È consigliabile imparare Tkinter in Python per avanzare la propria carriera o per ottenere una migliore offerta di lavoro come sviluppatore Python?
- Come eseguire uno script Python senza installare Python
- È possibile installare Android su un Blackberry, e se è possibile, che tipo di conoscenze dovrei avere per renderlo possibile?
- È possibile convertire solo un array di dimensioni 1 in uno scalare Python?