le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
20 maggio - 4 giugno: supera il motore fisico 2D.
4 giugno - 13 giugno: Superamento dei "Fondamenti di Matematica 3D".
13 giugno - 20 giugno: supera il "Tutorial di grafica 3D".
21 giugno - 22 giugno: supera il "Tutorial del gioco Raycasting".
23 giugno - 1 luglio: supera le "capacità di padroneggiare la programmazione di giochi Windows".
2 luglio - 6 luglio: supera "Atari 2600 Compilation Game Development".
7 luglio - 11 luglio: superamento del "linguaggio assembly x86/x64".
Prossimo obiettivo: "Competenze da maestro nella programmazione di giochi 3D"
Questa volta si tratta di un'altra battaglia su un pianeta "alieno". Ieri ho fatto 60 chilometri in bicicletta. Non erano 60 chilometri normali. Gli ultimi 20 chilometri erano tutti strade di montagna. Quando sono tornato ero esausto. Il mio stato mentale non è molto buono oggi posso dire che ho appena stretto i denti e ho finito il tutorial.
Tuttavia, ho scoperto che mi piace anche questa sensazione. Non così insolito come la compilation Atari 2600.
L'apprendimento dell'assemblaggio è davvero come quel tipo di gioco di punta, in cui non puoi davvero commettere errori. Ho preso più appunti di quanti potessi ricordare in un semestre. Anche se si tratta solo di poche frasi, ho scritto fittamente appunti. Sarebbe stato bello se avessi potuto lavorare così duramente quando ero al college.
Questa volta ho imparato due tutorial, uno è X86-32 bit. Uno è x86-64 bit. Entrambi hanno i propri punti di forza e di debolezza. Ad esempio, il primo tutorial non ha insegnato come chiamare le funzioni fino alla fine. Le basi della tecnologia a 64 bit sono ben spiegate, ma le applicazioni avanzate non sono affatto trattate.
Dopo aver studiato questo corso, ho avuto la più grande consapevolezza. Pensavo che l'assembly fosse una cosa relativamente "di basso livello" e relativamente "arretrata". Dopo tutto, i linguaggi di oggi sono etichettati come "di alto livello". le lingue".
Questo mi dà l'impressione che se il linguaggio di programmazione che utilizzo è pistole e cannoni, allora il linguaggio assembly è un'arma fredda. Non importa come la pensi, ti dà un'impressione piuttosto "arretrata". Ho avuto la stessa impressione mentre stavo imparando l'assemblaggio dell'Atari 2600.
Tuttavia, dopo aver imparato l'assemblaggio x86, questa impressione è completamente cambiata. L'assemblaggio è semplicemente un'arma di "prossima generazione". Non è un'arma fredda, ma una "alta tecnologia", una spada laser.
È semplicemente "difficile da usare", non "debole". Al contrario, è ridicolmente forte.
Sentivo persone parlare di apprendimento dell'assembly e più di una volta ho visto che i compilatori di oggi sono molto avanzati. Anche se impari l'assembly, il codice che scrivi non sarà efficiente come prima. Ora so che questa cosa è pura scoreggia. Da MMX ad AVX, non è possibile scrivere questo tipo di funzionalità di elaborazione parallela, indipendentemente da come si scrive il codice, e nessun compilatore può farlo. È necessario utilizzare l'assembly per utilizzare questa potente funzione.
E la mia applicazione è un motore di gioco, che è il luogo in cui è maggiormente necessaria l'elaborazione batch della grafica.
Quando ho imparato l'assemblaggio in precedenza, in realtà ho appena visto nel mio libro che l'assemblaggio è ancora necessario in alcuni luoghi in cui la performance è importante. È un sentimento dell’autore così semplice. In realtà non mi aspettavo che il linguaggio assembly fosse così potente.
Ciò in realtà trae vantaggio dal mio pensiero attuale di “less is more”. Poiché prima pensavo a creare giochi, ho sempre pensato al multipiattaforma, a realizzare PC e telefoni cellulari. Ora che creo il mio motore, i requisiti non possono essere così elevati e non voglio pensarci riguardo alla multipiattaforma, quindi mi concentro sul rendere buona la piattaforma PC. Ecco perché mi è venuta l'idea dell'assemblea didattica. Se penso sempre al multipiattaforma, potrei non avere questa idea.
C'era una frase in una conferenza tenuta dal professor Jin Yinan che mi colpì profondamente:
Se fai cose difficili, otterrai qualcosa.
Questo è quasi diventato uno dei miei credo di vita. Anche questa volta la forza di questa frase viene confermata.
L’assemblaggio dell’apprendimento mi ha dato più benefici di quanto immaginassi. Non vedo l'ora di modificare parte del mio codice precedente. Ad esempio, avevo un codice di fusione Alpha perché DirectDraw di DirectX non supporta il canale Alpha. Quindi ho scritto la mia fusione alfa per supportare gli oggetti traslucidi. Questa cosa è estremamente lenta Originariamente era di 800 fotogrammi, ma può essere ridotto a 200 fotogrammi in un istante. Ma solo l’aereo del protagonista utilizza questo algoritmo. Se usi l'assembly, credo che possa essere molto più alto. Naturalmente, questo è solo un tentativo di migliorarlo, in effetti, la cosa principale dipende dall'hardware. Con solo Blt il mio frame rate può arrivare a oltre 4000. Ciò non può essere ottenuto con alcun metodo di conversione.
Tuttavia, ci sono ancora aree che possono essere migliorate. Ad esempio, la mia funzionalità SpritePack. Questa cosa non può essere controllata dall'hardware, è tutto realizzato dal mio algoritmo. Questa raccolta di miglioramenti in termini di efficienza può fornire un valore enorme.
In effetti, inizialmente volevo imparare di nuovo Python + machine learning. Non so cosa sta succedendo in questo periodo e voglio sapere tutto. Sento che l'intelligenza artificiale sarà un pezzo molto importante del puzzle nello sviluppo del mio gioco. Ora utilizzo l'intelligenza artificiale per creare immagini e dipinti originali ed è molto facile da usare. Vorrei approfondire questo aspetto della conoscenza.
Ma in questo periodo non ho letto, ho solo studiato i tutorial, quindi non potevo sopportare di stare seduta tutto il tempo. Se stessi imparando con un libro, potrei sdraiarmi mentre leggo, quindi ho scelto di apprendere "Abilità da maestro nella programmazione di giochi 3D". Questo allevia la pressione sulla mia vita.
Dopo questo periodo di tempo, vedi se riesci a imparare Python.
Dai!