informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
20 Mei - 4 Juni: Mengatasi mesin fisika 2D.
4 Juni - 13 Juni: Mengatasi "Dasar Matematika 3D".
13 Juni - 20 Juni: Mengatasi "Tutorial Grafik 3D".
21 Juni - 22 Juni: Mengatasi "Tutorial Game Raycasting".
23 Juni - 1 Juli: Mengatasi "Keterampilan Master Pemrograman Game Windows".
2 Juli - 6 Juli: Mengatasi "Pengembangan Game Kompilasi Atari 2600".
7 Juli - 11 Juli: Mengatasi "Bahasa Majelis x86/x64".
Tujuan selanjutnya: "Keterampilan Master Pemrograman Game 3D"
Kali ini pertempuran lain di planet "alien". Saya bersepeda sejauh 60 kilometer kemarin. Ini bukan 60 kilometer biasa. 20 kilometer terakhir semuanya merupakan jalan pegunungan. Saya kelelahan ketika kembali. Kondisi mental saya tidak terlalu baik hari ini. Saya dapat mengatakan bahwa saya baru saja mengertakkan gigi dan menyelesaikan tutorialnya.
Namun, ternyata aku juga menyukai perasaan ini. Tidak asing lagi dengan kompilasi Atari 2600.
Belajar perakitan benar-benar seperti permainan papan atas, di mana Anda benar-benar tidak boleh membuat kesalahan apa pun. Saya membuat lebih banyak catatan daripada yang dapat saya ingat dalam satu semester. Meski hanya beberapa kalimat, saya telah menulis catatan dengan padat. Alangkah baiknya jika saya bisa bekerja keras ketika saya masih kuliah.
Saya mempelajari dua tutorial kali ini, satu adalah X86-32 bit. Salah satunya adalah x86-64bit. Keduanya mempunyai kekuatan dan kelemahan masing-masing. Misalnya, tutorial pertama tidak mengajarkan cara memanggil fungsi sampai akhir. Dasar-dasar 64-bit dijelaskan dengan baik, tetapi aplikasi tingkat lanjut tidak tercakup sama sekali.
Setelah mempelajari kursus ini, saya memiliki kesadaran terbesar. Dulu saya berpikir bahwa perakitan adalah hal yang relatif "tingkat rendah" dan hal yang relatif "terbelakang". bahasa".
Hal ini memberikan kesan kepada saya bahwa jika bahasa pemrograman yang saya gunakan adalah senjata dan meriam, maka bahasa assembly adalah senjata yang dingin. Tidak peduli bagaimana Anda memikirkannya, itu memberi Anda kesan yang agak "terbelakang". Saya mendapat kesan yang sama ketika mempelajari perakitan Atari 2600.
Namun, setelah saya mempelajari perakitan x86, kesan ini berubah total. Perakitan hanyalah senjata "generasi berikutnya". Ini bukanlah senjata dingin, tetapi "teknologi tinggi", pedang laser.
Hanya saja "sulit digunakan", bukan "lemah". Sebaliknya, dia sangat kuat.
Saya pernah mendengar orang berbicara tentang mempelajari perakitan, dan lebih dari sekali saya melihat bahwa kompiler saat ini sangat canggih. Bahkan jika Anda mempelajari perakitan, kode yang Anda tulis tidak akan seefisien sebelumnya. Saya sekarang tahu bahwa benda ini murni kentut. Dari MMX ke AVX, Anda tidak dapat menulis kemampuan pemrosesan paralel semacam ini tidak peduli bagaimana Anda menulis kode, dan tidak ada kompiler yang dapat melakukannya.
Dan aplikasi saya adalah mesin permainan, yang paling membutuhkan pemrosesan grafis secara batch.
Ketika saya belajar perakitan sebelumnya, saya sebenarnya baru melihat di buku saya bahwa perakitan masih diperlukan di beberapa tempat yang kinerjanya penting. Ini adalah perasaan penulis yang sederhana. Saya sebenarnya tidak menyangka bahasa assembly begitu kuat.
Ini sebenarnya manfaat dari pemikiran saya saat ini tentang “less is more”. Karena dulu saya berpikir untuk membuat game, saya selalu memikirkan tentang lintas platform, membuat PC, dan membuat ponsel. Sekarang saya membuat mesin sendiri, persyaratannya tidak terlalu tinggi, dan saya tidak mau berpikir tentang lintas platform, jadi saya fokus membuat platform PC bagus. Karena itulah saya mendapat ide belajar perakitan. Jika saya selalu berpikir tentang lintas platform, saya mungkin tidak memiliki ide ini.
Ada sebuah kalimat dalam ceramah yang diberikan oleh Profesor Jin Yinan yang sangat mengesankan saya:
Jika Anda melakukan hal-hal sulit, Anda akan mendapatkan sesuatu.
Ini hampir menjadi salah satu keyakinan hidup saya. Kali ini kekuatan kalimat ini ditegaskan kembali.
Belajar perakitan telah memberi saya manfaat lebih dari yang saya bayangkan. Saya tidak sabar untuk mengubah beberapa kode saya sebelumnya. Misalnya, saya dulu punya kode campuran Alpha, karena DirectDraw DirectX tidak mendukung saluran Alpha. Jadi saya menulis alpha blending saya sendiri untuk mendukung objek tembus cahaya. Hal ini sangat lambat. Awalnya 800 frame, tapi bisa diturunkan menjadi 200 frame dalam sekejap. Namun hanya pesawat protagonis yang menggunakan algoritma ini. Jika Anda menggunakan perakitan, saya yakin itu bisa jauh lebih tinggi. Tentu saja ini hanya upaya untuk memperbaikinya, padahal yang utama tergantung pada hardwarenya. Hanya dengan Blt, frame rate saya bisa mencapai lebih dari 4000. Hal ini tidak dapat dicapai dengan metode konversi apa pun.
Namun, masih ada area yang bisa diperbaiki. Misalnya, fungsi SpritePack saya. Hal ini tidak dapat dikontrol oleh perangkat keras, semuanya diwujudkan oleh algoritma saya. Kompilasi peningkatan efisiensi ini dapat memberikan nilai yang luar biasa.
Sebenarnya saya awalnya ingin belajar Python + pembelajaran mesin lagi. Saya tidak tahu apa yang terjadi selama ini, dan saya ingin tahu segalanya. Saya merasa AI akan menjadi bagian yang sangat penting dalam pengembangan game saya. Saya sekarang menggunakan AI untuk membuat gambar dan lukisan asli, dan ini sangat mudah digunakan. Saya ingin belajar lebih banyak tentang aspek pengetahuan ini.
Tapi saya tidak membaca selama periode ini, saya hanya mempelajari tutorialnya, jadi saya tidak tahan duduk sepanjang waktu. Jika saya belajar dengan buku, saya bisa berbaring sambil membaca, jadi saya memilih untuk mempelajari "Keterampilan Master Pemrograman Game 3D". Ini mengurangi tekanan di pinggangku.
Setelah jangka waktu ini, lihat apakah Anda bisa belajar Python.
Ayo!