Visualizzazione Stampabile
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
Toty_
Però forse avevano gia esperienza con la grafica 3D. Magari avevano gia studiato in passato le Directx o Opengl, quindi passare ad XNA è stato un gioco da ragazzi. Non credo che in poco tempo si riesca a produrre un progetto 3D senza avere delle basi. Magari mi sbaglio... ;)
A proposito, vorrei cominciare a studiare le Directx (credo sia meglio di XNA per quanto riguarda l'efficienza e le nozioni che ti può dare) e, di conseguenza, il linguaggio C++.
Posso studiare il C++ su internet o è meglio acquistare un libro? Ho studiato il C# ma credo che sia proprio ora di cominciare il C++ (anche per mettermi avanti in vista dell'università e per studiare le Directx).
No no non avevano basi di OpenGL nè di DirectX, hanno sfruttato qualche esempio online e la documentazione delle XNA. Si tratta solo di intraprendenza (adesso devono mettere le texture :bua: )
Comunque, io ti consiglierei libro per C++, però puoi prima provare a vedere qua http://www.cplusplus.com/doc/tutorial/
:sisi:
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
J.J. Lazlo
No no non avevano basi di OpenGL nè di DirectX, hanno sfruttato qualche esempio online e la documentazione delle XNA. Si tratta solo di intraprendenza (adesso devono mettere le texture :bua: )
Comunque, io ti consiglierei libro per C++, però puoi prima provare a vedere qua
http://www.cplusplus.com/doc/tutorial/
:sisi:
Personalmente io ho imparato il C++ per iniziare, ma ormai sono passati 10 anni. Non so se sia il caso, perché potrebbe essere che imparare il C++ oggi sia come imparare l'asm 10 anni fa: un esercizio potenzialmente inutile. Lo stesso dicasi per le DX...Meglio imparare bene C# e XNA perché questo é il futuro.
A un certo punto peró bisogna smettere di frequentare il forum e iniziare a studiare: non c'é strada migliore che aprire il proprio IDE :shrug:
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
giuseppemag
A un certo punto peró bisogna smettere di frequentare il forum e iniziare a studiare: non c'é strada migliore che aprire il proprio IDE :shrug:
Lo sto gia facendo (ho cominciato XNA da un anno, dopo aver studiato C# per molti mesi).
E chissà quanti anni di studio occorreranno (mi riferisco soprattutto alla grafica 3D: mi sembra un argomento senza fine)...
Però non credo che il C# sia la prima scelta per creare videogiochi professionali: mi sembra poco efficiente (anche per quella storia della gestione automatica della memoria) rispetto al C++.
Sarebbe bello (e difficilissimo, credo) programmarli in assembly: sarebbe l'unico modo per avere una visione più chiara di quello che si programma. Magari ho detto una sciocchezza...
-
Riferimento: Università per informatica
Assembly è linguaggio a basso livello, la vedo dura farci un vg al giorno d'oggi :chebotta:, si faceva 20 anni fa e passa.
Quando comincerai l'università ti renderai conto di coso sono veramente i linguaggi a basso ed alto livello :sisi:.
Se vuoi iniziare con il C++ posso consigliarti di usare una libreria grafica 2d semplice da usare, in modo da imparare i meccanismi che fanno girare il gioco. Io sono partito da lì da auto didatta facendo giochini 2d, il problema non è tanto il fatto di disegnare lo sprite e muoverlo, è creare l'engine vero e proprio. Devi imparare a gestire gli stati del programma, come incastrare le varie cose insieme, giuseppemag credo abbia capito cosa intendo e saprà spiegartelo con parole più chiare.
La libreria in questione è Allegro http://www.allegro.cc/ , è facile da usare per i primi passi.
-
Riferimento: Università per informatica
non mi ricordo se l'ho già scritto o meno, comunque lo riscrivo
"tutto può essere fatto in c. Se una cosa non può essere fatta in c, può essere fatta in assembly; se quella cosa non può essere fatta ne in c ne in assembly allora non può essere fatta".
:asd:
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
ZioYuri78
Assembly è linguaggio a basso livello, la vedo dura farci un vg al giorno d'oggi :chebotta:, si faceva 20 anni fa e passa.
Quando comincerai l'università ti renderai conto di coso sono veramente i linguaggi a basso ed alto livello :sisi:.
Se vuoi iniziare con il C++ posso consigliarti di usare una libreria grafica 2d semplice da usare, in modo da imparare i meccanismi che fanno girare il gioco. Io sono partito da lì da auto didatta facendo giochini 2d, il problema non è tanto il fatto di disegnare lo sprite e muoverlo, è creare l'engine vero e proprio. Devi imparare a gestire gli stati del programma, come incastrare le varie cose insieme, giuseppemag credo abbia capito cosa intendo e saprà spiegartelo con parole più chiare.
La libreria in questione è Allegro
http://www.allegro.cc/ , è facile da usare per i primi passi.
Si infatti (è gia difficile con XNA :asd:...).
Grazie per il link. Dato che programmare a basso livello è molto complicato, imparare a creare giochi con linguaggi al massimo come C++ (ancora ad alto livello, se non sbaglio) è gia un grande traguardo?
Però avevo sentito che alla NaughtyDog usavano anche l'assembly (in Uncharted)...
-
Riferimento: Università per informatica
Sò che l'assembly si usa per sfruttare specificatamente l'hardware, nel caso di Naughtydog per sfruttare al meglio la ps3. Su pc diventa una cosa da sconsiderati sapendo che esistono migliaia di schede video e processori diversi. Poi non saprei, io lo evito come la peste, sicuramente giuseppemag ne sa più di me come si usa l'assembly nei vg.
-
Riferimento: Università per informatica
Pensare di usare assembly per un videogioco mi provoca un leggero prurito anale :bua:
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
Toty_
non credo che il C# sia la prima scelta per creare videogiochi professionali: mi sembra poco efficiente (anche per quella storia della gestione automatica della memoria) rispetto al C++.
Sarebbe bello (e difficilissimo, credo) programmarli in assembly
Citazione:
Originariamente Scritto da
Toty_
magari ho detto una sciocchezza...
Due, a dire il vero. Il garbage collector del .Net non é necessario. É possibile usare i value types (struct) del C# per definire puntatori, references, un proprio heap e le proprie politiche di allocazione/deallocazione. Poi ricorda che un linguaggio ti dá un vantaggio al piú pari ad una costante moltiplicativa >1; la complessitá algoritmica é importante. Per vedere cosa si puó fare in XNA cerca "Racing Game" e "The Harvest" giusto per dirne un paio, e il "Torque Engine" che ha una release per XNA.
Per quanto riguarda l'assembly, perché non in linguaggio macchina? Perché non farsi il proprio hardware? "Capire quello che succede" non é una questione di linguaggio scelto...
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
ZioYuri78
Assembly è linguaggio a basso livello, la vedo dura farci un vg al giorno d'oggi :chebotta:, si faceva 20 anni fa e passa.
Quando comincerai l'università ti renderai conto di coso sono veramente i linguaggi a basso ed alto livello :sisi:.
Se vuoi iniziare con il C++ posso consigliarti di usare una libreria grafica 2d semplice da usare, in modo da imparare i meccanismi che fanno girare il gioco. Io sono partito da lì da auto didatta facendo giochini 2d, il problema non è tanto il fatto di disegnare lo sprite e muoverlo, è creare l'engine vero e proprio. Devi imparare a gestire gli stati del programma, come incastrare le varie cose insieme, giuseppemag credo abbia capito cosa intendo e saprà spiegartelo con parole più chiare.
La libreria in questione è Allegro
http://www.allegro.cc/ , è facile da usare per i primi passi.
Si, ma infatti é inutile parlare di linguaggi e librerie. É molto difficile esprimere una logica lineare (if/for) che rappresenta la tua logica di gioco all'interno di un loop in cui ad ogni fotogramma puoi svolgere solo l'equivalente di 1/60 di secondo dell'esecuzione della tua logica di gioco.
Alla fine scrivere videogiochi ha due parti grosse (all'inizio, poi crescono :D) :
1) grafica 3d
2) parcellizzare la logica di gioco; é uno scheduler, e per logiche grosse e generali é esattamente equivalente a costruire un interprete...
Imparare a farlo in ASM é pura follia, ma lo stesso dicasi per C, C++ e C#. Purtroppo un linguaggio in cui queste cose molto complesse siano ragionevoli da fare non é stato inventato; qualche aspetto di F# (i computational workflows) potrebbe forse entro dieci anni :) semplificare il tutto, ma fino ad allora sceglierei il linguaggio piú di alto livello cosí invece che imparare una cosa difficile + gestione della memoria, aritmetica dei puntatori, safe/unsafe cast uno impara in un contesto che tende ad essere safe per costruzione...
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
Toty_
imparare a creare giochi con [...] C++ [...] è gia un grande traguardo?
No, se na monada (trad. no, é una cosa da scemi)
Citazione:
Originariamente Scritto da
Toty_
Però avevo sentito che alla NaughtyDog usavano anche l'assembly (in Uncharted)...
L'assembly nei videogiochi ormai si usa prevalentemente negli shader, ad esempio con linguaggi tipo HLSL che non hanno compilatori abbastanza ottimizzati oppure in parti estremamente tight del main loop. I compilatori come l'Intel Optimizer Compiler sono piú bravi degli esseri umani a scrivere asm veloce, e ormai i vantaggi dell'asm sono completamente esauriti tranne per hardware con compilatori immaturi (embedded/schede video).
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
giuseppemag
Due, a dire il vero. Il garbage collector del .Net non é necessario. É possibile usare i value types (struct) del C# per definire puntatori, references, un proprio heap e le proprie politiche di allocazione/deallocazione.
Quindi è possibile disattivare il garbage collector? Avevo letto che era possibile usare i putatori ma non sapevo che si potesse addirittura farsi carico della gestione della memoria (come con C++).
Comunque chiedo scusa se dico delle fesserie, è da poco che studio la programmazione. ;)
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
Toty_
Quindi è possibile disattivare il garbage collector? Avevo letto che era possibile usare i putatori ma non sapevo che si potesse addirittura farsi carico della gestione della memoria (come con C++).
Comunque chiedo scusa se dico delle fesserie, è da poco che studio la programmazione. ;)
Il GC parte ogni tot MB di allocazione (questa é una sovra-semplificazione ma rende l'idea). Se pre-allochi "pagine" di memoria (ad es un array di value types, anche custom) sulle quali definisci un tuo dato reference, e su queste "pagine" custom fai tutte e sole le tue allocazioni, beh, congratulazioni: hai definito uno heap e il GC non partirá mai durante l'esecuzione dell'applicazione. Se definisci le tue references come indice della pagina x offset nella pagina, allora puoi fare banalmente aritmetica dei puntatori; é molto economico dal punto di vista della performance.
I puntatori e il codice unsafe sono una cosa diversa, che non c'entra nulla col GC.
-
Riferimento: Università per informatica
Alla fine ho scelto l'Università di Modena. Mi hanno detto che è meglio perchè Bologna è troppo caotica (troppi iscritti e quindi troppo casino, hanno detto che si impara meno). Cosa ne pensate? Vi sembra altrettanto valida?
-
Riferimento: Università per informatica
ho visto il piano di studi di informatica e sembra un buon corso di laurea.
in più ho notato che non differisce poi molto dal corrispettivo in ingegneria.
in pratica ti potresti permettere la magistrale nell'altra facoltà, con pochi debiti formativi (due o tre esami).
in più c'è questa classifica, riportata in questo articolo incentrato su milano.
l'università di modena e reggio emilia risulta ottima.
http://host.uniroma3.it/uffici/stamp...pedb=4&video=0
-
Riferimento: Università per informatica
OT
Mi intrufolo qua visto che presumo ci saranno dozziliardi di studenti di informativa.
Per motivi che non sto qui a spiegare nella tesi devo trattare alcuni basilari concetti di informatica, essenzialmente dovrei dare la definizione di alcuni termini.
Per dare un'idea...
Citazione:
un bit è l'unità di misura dell'informazione (dall'inglese "binary unit"), definita come la quantità minima di informazione che serve a discernere tra due possibili alternative equiprobabili.
siamo a questi livelli
Solo vorrei una fonte più autorevole di wikipedia...
Mi date il titolo di qualche testo?
-
Riferimento: Università per informatica
# Structured Computer Organization
# Computer Networks
# Operating Systems: Design and Implementation
di Andrew Tanenbaum, ma non sono propriamente "semplici" :bua:
-
Riferimento: Università per informatica
the minix book :rullezza: :asd:
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
J.J. Lazlo
di Andrew Tanenbaum, ma non sono propriamente "semplici" :bua:
E di semplice? :asd:
-
Riferimento: Università per informatica
cavolo è difficile.
Non hai un amico nerd per qualche consulenza?
Intanto cerco qualcosa di scritto :sisi:
-
Riferimento: Università per informatica
le fonti di wikipedia di solito a fondo pagina mettono i riferimenti... puoi prendere quelli :sisi:
-
Riferimento: Università per informatica
Ci fossero (nelle pagine che mi interessano).... :asd:
Comunque grazie!
-
Riferimento: Università per informatica
Citazione:
Originariamente Scritto da
knamir
the minix book :rullezza: :asd:
Scusate l'OT ma minix book :rullezza: pagato 88euro ma li valeva tutti, uno dei pochi libri che ho avuto piacere di studiare.
-
Riferimento: Università per informatica
Ormai questo thread è diventato storico? :asd: E dire che ha anche rischiato un paio di volte la chiusura in pagine addietro :tsk:
-
Riferimento: Università per informatica
Per ale_12: ai tempi dell'università avevo come libro di testo un titolo McGraw-Hill che fa proprio al caso tuo, c'era proprio l'abc dell'informatica a partire dai bit fino ad arrivare a temi non così scontati. Il titolo non me lo ricordo, ma credo tu possa reperire quantomeno la reference dal sito della casa editrice.