DOMANDA Programmare Videogame

El Bardo

Nuovo Utente
28
3
CPU
Intel i5-4690K
Scheda Madre
MSI Z97 Gaming 7
HDD
Samsung 850 Evo, 250 GB + 1Tb Seagate
RAM
G.Skill 2x4 GB 2133 MHz
GPU
GTX 970 GAMING 4G
Monitor
HP x2301 / Samsung 4K Quantum Dot 28” U28H750
PSU
XFX xtr 650w
Case
Zalman Z11 Plus HF1
OS
Windows 10 Pro
Salve a tutti, la mia domanda è semplice ma nello stesso tempo difficile: come posso iniziare a programmare videogiochi? Vi spiego un po' meglio, è da 2 anni che mi gira in testa l'idea di iniziare a programmare e da circa un anno ho iniziato a farmi una cultura su questo mondo che da sempre mi ha affascinato.

Non ho basi, o meglio, ho una piccola conoscenza scolastica di C++ (qualche infarinatura sui cicli) e da più di un anno creo diversi giochi con Construct 2, ma tutto questo, nel campo della programmazione, lo reputo meno di zero. Ho letto tutti i link che ho potuto reperire su TH grazie a Mursey, ma la cosa che mi manca è un confronto oggettivo con esperto/i per capire bene quale via intraprendere e per porgli qualche domanda.

La mia necessità di imparare a programmare è nata da Construct 2. Mi sono trovato molto bene a "sviluppare" con questo programma ed ho imparato molto su come funziona un videogioco, le meccaniche, i principali problemi ecc, però, dopo un anno, ti accorgi che questo ambiente inizia un pò a farsi "stretto" e quindi punti a qualcosa di più grande che ti lasci indipendente. Nel mio caso vorrei spostarmi su Unity che, a detta di molti, è un engine molto completo e versatile per molte piattaforme, e la tipologia di giochi che vorrei sviluppare è prettamente 2D. A questo punto però mi blocco perchè, al di là di tutte le guide e link che mi leggo, la mia domanda, ogni volta che arrivo alla fine, è: "E ora?"

Ecco qua alcune domande che vorrei porvi, magari per iniziare a farmi qualche idea sul cammino da percorrere prefiggendomi degli obiettivi.
1) Perchè molti sconsigliano Visual Basic in favore di C#?
2) Mi piacerebbe imparare il C# che è quello più utilizzato. Mi devo buttare su questo linguaggio subito o farmi la gavetta su qualche altro linguaggio?
3) Ho sentito che python è un linguaggio facile per inziare. Ma quanto è utile al mio scopo? Cosa posso fare se ipoteticamente diventassi bravo?

Grazie in anticipo a tutti quelli che si prenderanno la briga di rispondermi e scusatemi per la lunghezza del testo. :)
 

LelixSuper

Nuovo Utente
33
2
CPU
Intel® Core™ i5-4460
Scheda Madre
MSI H97 PC Mate
HDD
Western Digital WD10EZEX Caviar BLUE 1TB
RAM
HyperX Fury Black Series 4GB x2
GPU
Gigabyte GTX 960 IXOC 2GB
Monitor
ASUS VE247H/23.6"
PSU
XFX P1-550S-XXB9 550W
Case
CoolerMaster K380 Case Midi
OS
Ubuntu 14.04
1) Perchè molti sconsigliano Visual Basic in favore di C#?
Perchè Visual Basic è limitato, ed anche non aggiornato se non sbaglio. È buono se devi fare velocemente delle piccole applicazioni con GUI per sistemi operativi Windows.

2) Mi piacerebbe imparare il C# che è quello più utilizzato. Mi devo buttare su questo linguaggio subito o farmi la gavetta su qualche altro linguaggio?
Dalle voci che girano C# è simile a Java (ed ovviamente a C/C++) ma è migliore. Secondo me dovresti affrontare prima la programmazione ad oggetti nella teoria, ed applicarla con qualsiasi linguaggio orientato agli oggetti (come, per appunto, C#).

3) Ho sentito che python è un linguaggio facile per inziare. Ma quanto è utile al mio scopo? Cosa posso fare se ipoteticamente diventassi bravo?
Esiste pygame, una libreria utile per creare videogiochi con Python. Python è utilizzato in molti ambiti, puoi farci qualsiasi cosa.

Se proprio vuoi creare videogiochi, ti consiglio di usare raylib, una libreria scritta in C perfetta per chi sta imparando la programmazione. Ha ovviamente degli svantaggi (ovvero devi costruirti tutto da solo), ma è semplice ed immediata da utilizzare.
 

pabloski

Utente Èlite
2,868
916
1) Perchè molti sconsigliano Visual Basic in favore di C#?

perche' vb e' fuori moda e la gente vuole essere alla moda

ci sono oggettive limitazioni di vb, ma non e' impossibile usarlo per realizzare videogames

2) Mi piacerebbe imparare il C# che è quello più utilizzato. Mi devo buttare su questo linguaggio subito o farmi la gavetta su qualche altro linguaggio?

occhio che C# non e' il piu' usato in questo settore, visto che il leader incontrastato e' C++

C# e' usato come linguaggio di scripting in Unity Engine, che e' il motore piu' usato tra gli indie developers

3) Ho sentito che python è un linguaggio facile per inziare. Ma quanto è utile al mio scopo? Cosa posso fare se ipoteticamente diventassi bravo?

python e' molto espressivo, per cui consente di fare cose complesse con poco codice

esistono giochi sviluppati in python, ma non parliamo ovviamente dei tripla A, visto che collasserebbero in termini di performance

tuttavia python e' un altro dei linguaggi di scripting usati da alcuni degli engine in commercio

se vuoi iniziare a programmare ( in generale e non solo in riferimento ai videogames ) python e' una buona scelta, mentre per il tuo scopo e' conveniente perche' utilizzabile anche per sviluppare giochi mobile grazie a kivy

ma ricorda, giochi 3D complessi non sono realizzabili in python e in parte nemmeno in c#
 

El Bardo

Nuovo Utente
28
3
CPU
Intel i5-4690K
Scheda Madre
MSI Z97 Gaming 7
HDD
Samsung 850 Evo, 250 GB + 1Tb Seagate
RAM
G.Skill 2x4 GB 2133 MHz
GPU
GTX 970 GAMING 4G
Monitor
HP x2301 / Samsung 4K Quantum Dot 28” U28H750
PSU
XFX xtr 650w
Case
Zalman Z11 Plus HF1
OS
Windows 10 Pro
@pabloski
@LelixSuper

Grazie ad entrambi per le tempestive risposte! Informandomi ancora via web ho deciso di intraprendere la via con unity e quindi con C#, che anche da un punto di vista lavorativo mi sembra la migliore.

1) Domanda un po' stupida ma con programmazione ad oggetti cosa intendete? Codice unito/collegato ad un oggetto?
:look:
2) Per apprendere meglio questo linguaggio meglio partire da python o direttamente mettersi a studiare C#? Di javascript cosa ne pensate in Unity?
3) Collegata a questa sopra, secondo voi è meglio subito farsi le ossa su Unity, magari iniziando con qualcosa di semplice, o partire da dei semplici cicli "if else while"? Guardando qualche guida in inglese ho notato che quelle basi in C++ mi stanno tornando utili quindi magari potrei provare..

Grazie ancora per il vostro prezioso aiuto!
:hihi:
 

LelixSuper

Nuovo Utente
33
2
CPU
Intel® Core™ i5-4460
Scheda Madre
MSI H97 PC Mate
HDD
Western Digital WD10EZEX Caviar BLUE 1TB
RAM
HyperX Fury Black Series 4GB x2
GPU
Gigabyte GTX 960 IXOC 2GB
Monitor
ASUS VE247H/23.6"
PSU
XFX P1-550S-XXB9 550W
Case
CoolerMaster K380 Case Midi
OS
Ubuntu 14.04

1) Domanda un po' stupida ma con programmazione ad oggetti cosa intendete? Codice unito/collegato ad un oggetto?
:look:
Intendo il paradigma di programmazione. La programmazione ad oggetti è molto importante nel campo commerciale, sopratutto nei motori grafici, è quindi essenziale impararla. Ti consiglio infatti si comprare un libro o leggere le risorse che si possono trovare su Internet.


2) Per apprendere meglio questo linguaggio meglio partire da python o direttamente mettersi a studiare C#? Di javascript cosa ne pensate in Unity?
Io credo sia indifferente. Trovati un buon libro su questi linguaggi, completi anche di fondamenti di programmazione.



3) Collegata a questa sopra, secondo voi è meglio subito farsi le ossa su Unity, magari iniziando con qualcosa di semplice, o partire da dei semplici cicli "if else while"? Guardando qualche guida in inglese ho notato che quelle basi in C++ mi stanno tornando utili quindi magari potrei provare..
Quando imparo cerco sempre di capire cosa sto facendo. Ti consiglio quindi di partire con le basi (appunto potresti usare raylib, la libreria che ti ho consigliato nel messaggio precedente), poi quando avrai un po' di esperienza potrai ottenere il massimo da strumenti di livelli maggiori come Unity.
 

El Bardo

Nuovo Utente
28
3
CPU
Intel i5-4690K
Scheda Madre
MSI Z97 Gaming 7
HDD
Samsung 850 Evo, 250 GB + 1Tb Seagate
RAM
G.Skill 2x4 GB 2133 MHz
GPU
GTX 970 GAMING 4G
Monitor
HP x2301 / Samsung 4K Quantum Dot 28” U28H750
PSU
XFX xtr 650w
Case
Zalman Z11 Plus HF1
OS
Windows 10 Pro
@LelixSuper @Mursey

Grazie per le vostre risposte. Ultimi dubbi e non vi stresserò più prometto :utonto:

1) Ho elaborato questa scaletta: Python teoria -> keylib -> [So python e so metterlo in pratica] -> C# teoria -> Appena mi sento sicuro, passo a Unity. Vi sembra un metodo buono?
2) Mi sono messo a studiare python. La programmazione ad oggetti la incontrerò su questo linguaggio o dovrò aspettare di studiare C#?
3) Come IDE cosa mi consigliate? Per python penso di utlizzare PyCharm ma per C# o simili cosa utilizzate?

Grazie ancora per il vostro supporto! :hihi:
 

LelixSuper

Nuovo Utente
33
2
CPU
Intel® Core™ i5-4460
Scheda Madre
MSI H97 PC Mate
HDD
Western Digital WD10EZEX Caviar BLUE 1TB
RAM
HyperX Fury Black Series 4GB x2
GPU
Gigabyte GTX 960 IXOC 2GB
Monitor
ASUS VE247H/23.6"
PSU
XFX P1-550S-XXB9 550W
Case
CoolerMaster K380 Case Midi
OS
Ubuntu 14.04
1) Ho elaborato questa scaletta: Python teoria -> keylib -> [So python e so metterlo in pratica] -> C# teoria -> Appena mi sento sicuro, passo a Unity. Vi sembra un metodo buono?
Quando impari un paradigma di programmazione, ovvero in generale come programmare, imparare uno specifico linguaggio è molto più semplice e veloce. Potresti quindi iniziare il Python imparando allo stesso tempo i fondamenti, per poi fare il C# in maniera più rapida (salti la teoria, l'avrai già fatta). Secondo me potresti provare, ma non pensare direttamente alla creazione dei videogiochi, la strada è molto lunga!

2) Mi sono messo a studiare python. La programmazione ad oggetti la incontrerò su questo linguaggio o dovrò aspettare di studiare C#?
Python è un linguaggio multi-paradigma, ovvero supporta diversi paradigmi, compresi la programmazione orientata ad oggetti.

3) Come IDE cosa mi consigliate? Per python penso di utlizzare PyCharm ma per C# o simili cosa utilizzate?
Puoi usare PyCharm per semplificarti la vita, o usare strumenti come Vim o Emacs (richiedono più esperienza). Il mio consiglio è di non fissarsi su un IDE, quest'ultimo è uno strumento che ti aiuta, ma non può sostituirti. Per darti un esempio, io inizialmente usavo DevC++ per imparare il C/C++, poi sono passato a Codelite (che uso tutt'ora) ma sto già maneggiando Vim. Se prima usavo le impostazioni di default per Codelite, ora gli dico io cosa fare (come per i Makefile, sicuramente ne avrai sentito parlare).
Per quanto riguarda C#, non so dirti cosa usare di preciso, mi dispiace!
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili