Di festival Tech Train IT terakhir, kami bertemu dengan John Romero yang legendaris, yang memiliki andil dalam desain dan pengembangan Wolfenstein 3D, Doom and Quake yang ikonik. Kami berbicara tentang apakah pengembang game memerlukan soft skill, alat kerja apa yang perlu diperhatikan, dan salah satu pendiri Id Software memiliki mainan favoritnya. Pertanyaan diajukan oleh Nikita Tsaplin, pendiri RUVDS.
→ Teks dan video versi bahasa Inggris
di sini
Nikita Tsaplin - pendiri RUVDSDalam satu wawancara, Anda mengatakan bahwa pada tahun 2001 saya melihat kode lama yang ditulis pada tahun 1991 dan tidak menemukan penggunaan praktis untuk itu. Tetapi setelah beberapa waktu, kembali ke kode yang ditulis dalam dua ribu, Anda menyebutnya "tidak buruk." Bagaimana Anda melacak kualitas kode?
John Romero - Programmer, Desainer dan Co-Founder ID SoftwarePada tahun 1991, setidaknya setengah dari kode ditulis dalam Assembler, dan saya baru saja memulai program di C dan hanya seorang pemula. Jadi kembali ke sana setelah sepuluh tahun pemrograman C aktif sangat buruk.
Katakan, bagaimana kriteria pemilihan berubah dari waktu ke waktu? Yang tetap tidak berubah?
Lingkungan di mana kode dieksekusi telah sepenuhnya berubah. Ditulis pada tahun 1991 diluncurkan dalam DOS, dan kode dari tahun 2001 bekerja pada Windows.
Jadi ini karena upgrade platform?
Lingkungan yang benar-benar baru. Ya
Bisakah Anda berbicara tentang kriteria utama yang digunakan untuk mengevaluasi kode Anda?
Kriteria utama - apakah mudah untuk membaca kode? Ini sangat penting.
Apakah ada komentar yang ditulis? Berlebihan dengan ini tidak layak - dengan cepat menjadi membosankan. Tetapi penting bahwa bagian kompleks dan bagian dari kode dikomentari, dan strukturnya secara keseluruhan dapat dimengerti dan mudah dilengkapi.
Keterampilan apa yang harus dimiliki pengembang untuk bergabung dengan industri game?
Anda harus memiliki keinginan kuat untuk membuat game. Karena sulit untuk menyelesaikan permainan - ini adalah pekerjaan yang melelahkan. Tidak masalah bagian apa yang Anda kerjakan - itu akan memakan waktu lebih banyak daripada yang Anda bayangkan. Anda harus siap untuk konsentrasi perhatian yang panjang atas tugas tertentu.
Saya mendengar bahwa pengembang sekarang lebih dari sebelumnya perlu menguasai "Soft Skills"? Apakah itu benar
Ya Karena sekarang semua orang bekerja sama, ketika Anda bekerja bersama, Anda harus berempati satu sama lain.
Berinteraksi?
Ya
Apakah Anda memiliki banyak pengalaman dengan ini?
Anda harus terbiasa dengannya, dan programmer tidak suka berbicara. Mereka hanya ingin kode. Penting untuk memahami bagaimana membatasi waktu yang Anda ambil dari pemrograman dari orang, hanya untuk percakapan singkat. Tetapi saat ini, mengapa tidak hanya menggunakan Slack dan berkomunikasi melalui itu. Ini lebih nyaman dan lebih cepat daripada melepas headphone, bangun dan pergi untuk berbicara dengan seseorang di ujung kantor. Jadi kami lebih suka Slack.
Ya, orang menginginkan ruang dan berkomunikasi melalui pembawa pesan.
Apalagi jika Anda memakai headphone, ya.
Keterampilan lunak apa yang menurut Anda paling penting?
Saya percaya bahwa interaksi jauh lebih penting daripada keterampilan lain. Selalu begitu. Jika orang-orang di sekitar Anda tidak tahu apa yang Anda lakukan, atau Anda tidak tahu apa yang sedang terjadi, Anda dapat kehilangan banyak waktu dan uang, karena Anda sibuk dengan hal yang salah.
Jadi komunikasi adalah salah satu hal paling penting yang dapat Anda lakukan. Setiap orang harus tahu bagaimana dan apa yang harus dia lakukan. Bahkan jika Anda melakukan pekerjaan pada fragmen tertentu, bagian terpenting adalah bagaimana Anda menyajikannya. Bukan hanya, "Oke, aku akan melakukannya ..." Akan lebih tepat untuk mengatakan: “Saya akan melakukan ini dan ini dengan cara ini. Apakah kamu setuju? ”
Jadi - bagian terpenting pada setiap tahap perkembangan adalah komunikasi?
Ya

Beberapa bulan yang lalu, kami berbicara dengan Richard Gray di Moskow. Dan ia menyarankan bahwa cara terbaik bagi pengembang untuk memantapkan diri dalam industri game adalah dengan melakukan sesuatu dengan tangan mereka sendiri. Tapi, di sisi lain, Anda mengatakan bahwa menciptakan level permainan seperti Doom di Sigil adalah tugas yang sangat sulit. Alat modern terlalu rumit dan berlapis untuk membuat sketsa untuk portofolio. Bagaimana menemukan jalan tengah?
Ini benar Mesin modern akan membutuhkan banyak waktu untuk membuat level.
Semuanya jauh dari sesederhana dulu. Sekarang butuh waktu yang sangat lama. Saat ini, begitu banyak orang terlibat dalam pembangunan. Staf individu bertanggung jawab untuk penerangan di tingkat. Dan ada desainer game yang menetapkan batasan, seniman dengan konsep seni. Mereka mengerjakan gaya permainan visual. Masih perlu memeriksa karya shader.
Sepertinya saya bahwa sekarang hampir mustahil untuk membuat level hanya untuk portofolio, jika perlu.
Secara umum, ini mungkin, tetapi butuh waktu yang sangat lama. Ada contoh yang bagus di YouTube. Jika Anda menggunakan Anrial, dan Anda ingin memahami apa yang sebenarnya terdiri dari urutan membuat level sendirian - ada instruksi untuk ini. Seorang pria merekam video 30 menit, di mana ia menunjukkan penciptaan koridor selama 10 jam. Itu hanya berlangsung tiga puluh menit, tetapi bermain dengan kecepatan tinggi, cukup untuk melihat semua langkah untuk bekerja di koridor. Jam sepuluh! Game hari ini memakan waktu.
Menurut Anda, strategi apa yang harus diikuti pengembang untuk memulai karier?
Pilihan terbaik adalah mempelajari materi sebanyak mungkin di rumah. Anda tahu, Anda bisa bersekolah dan belajar di dalamnya, yang akan memberikan kelebihannya berupa ijazah dan hal-hal lainnya. Tetapi Anda belajar lebih banyak dengan melakukan di rumah. Jadi pekerjaan akan berjalan lebih cepat dan Anda akan belajar apa yang Anda inginkan.
Ada yang mengatakan bahwa programmer yang menggunakan framework off-the-shelf tidak tahu cara kerjanya secara internal. Apakah ini ada bedanya? Memahami bagaimana kerangka kerja yang digunakan bekerja?
Ya, dan bagus. Ini sangat membantu. Misalkan seorang programmer junior menggunakan frameworks. Pemrogram berpengalaman tahu bagaimana mereka bekerja. Ini berarti bahwa jika perlu, mereka dapat membangunnya, karena mereka tahu detail pekerjaan dari awal hingga akhir, bukan? Dan ini sangat berguna, karena kerangka kerja dapat digunakan dengan sangat tidak efisien, tanpa mengetahui struktur internal, menyebabkan kerugian kinerja yang signifikan.
Masalah fleksibilitas. Bagaimanapun, Anda bisa menggabungkan kerangka kerja jika Anda tahu caranya.
Tentu saja, semuanya perlu digabungkan untuk membuatnya berfungsi, tetapi ini tidak berarti optimasi akan menjadi yang terbaik. Ini tidak menjamin pengetahuan tentang perangkat lunak. Terutama ketika datang ke database. Anda dapat menuliskan informasi atau kode itu sendiri agar database berfungsi, yang akan bekerja sangat buruk. Dan Anda akan merasa semuanya beres, karena set perintah sudah benar, tetapi jika Anda tidak tahu bagaimana InnoDB menggunakannya dalam pekerjaan mereka, dan bagaimana mereka mengartikannya, maka lupakan saja. Anda perlu menyewa konsultan yang akan datang dan memperbaiki pekerjaan.
Topik menarik lainnya adalah Agile. Dalam buku dan artikel, game dev penuh dengan romansa dan ketidakpastian. Dalam konteks inilah Agile akan berguna. Agile dan mungkin pendekatan lain?
Hanya Agile, tetapi tidak dalam bentuk yang sulit dan tidak dapat diganggu gugat. Kami menggunakan "spidol" untuk periode tertentu yang Anda harus serahkan materi. Ini adalah periode waktu yang besar dan nyaman. Sekitar tiga kali lebih banyak dari yang diharapkan oleh Agile. Sekitar enam minggu, bukan dua. Ini adalah celah yang sangat nyaman dan nyaman di mana banyak masalah dapat diselesaikan. Ada juga pinjaman dari gaya Kanban ... Mungkin karena tidak semua tugas harus diselesaikan dalam enam minggu, beberapa tugas masih beroperasi dan tidak dapat diselesaikan pada batas waktu. Akibatnya, kami memeriksa hasil pekerjaan, dan tidak menunda proses yang belum selesai ke "penanda" berikutnya.
Di sini kita berbicara lebih banyak tentang kompilasi yang benar dari daftar peluang dan tugas yang harus diselesaikan daripada secara membabi buta mengikuti prinsip tenggat waktu. Jika Anda menjalankan tugas Anda - luar biasa, jika tidak - pertanyaan itu ditunda ke "penanda" berikutnya.
Selanjutnya, strategi ini berubah menjadi latihan untuk menilai kembali prioritas. Jika sesuatu membutuhkan banyak waktu - lakukanlah secara berbeda. Sederhanakan dan potong yang diperlukan untuk menyelesaikan tugas. Atau Anda hanya beralih jika banyak waktu telah berlalu.
Untuk meringkas - apakah Anda perlu memahami bagaimana proses bekerja dan menggabungkan berbagai pendekatan?
Ya
Bisakah Anda membandingkan bagaimana proses pengembangan diorganisasikan di studio game sekarang, dan, misalnya, di tahun sembilan puluhan atau dua ribu?
Itu lebih tergantung pada jumlah orang dalam tim. Maksudku, itu selalu tergantung pada ukuran staf. Bahkan sekarang, jika Anda hanya memiliki empat tim, Anda akan berkembang dengan gaya yang sama seperti yang kami lakukan di tahun 1990-an dengan komposisi yang sama. Karena tim sangat kecil sehingga orang tahu peran mereka dalam tim dan berkomunikasi secara erat satu sama lain. Sebab, kemungkinan besar mereka bekerja di ruangan yang sama.
Sebuah tim kecil juga bekerja di RUVDS perusahaan saya, dan kami tidak memerlukan komunikasi formal yang konstan.
Tepat Ini tidak perlu. Situasi yang sama terjadi pada 1990-an. Sederhananya, semua yang Anda tulis berubah karena pengembangan platform, dan metode komunikasi dan pengembangan tetap sama. Desain yang Anda kembangkan berbeda karena bahasa desain berevolusi dari tahun 80-an. Apa yang Anda desain berbeda, tetapi bagaimana Anda mengembangkan produk tetap sama.
Adakah hal yang lebih mudah atau lebih sulit untuk mengembangkan game dari waktu ke waktu? Dan mengapa?
Ada banyak alat yang berguna yang membuatnya lebih mudah untuk membuat game. Menjadi sulit untuk menulis desain yang bagus. Sulit untuk menghasilkan ide yang bagus untuk sebuah game. Anda mungkin memiliki programmer terbaik dalam gim yang akan menulis gim menjijikkan dan tidak ada yang akan memainkannya. Keterampilan programmer tidak mempengaruhi ini.
Jadi desain game yang lebih dulu?
Ini adalah hal yang paling penting. Jika Anda memiliki perancang permainan hebat di staf yang bahkan sedikit berpengalaman dalam pemrograman, Anda berisiko membuka genre baru untuk permainan. Anda akan memiliki permainan yang hebat. Jadi desain game lebih penting daripada yang lainnya.
Kembali ke TechTrain. Di mana kereta ini membawa industri game?
Saya akan mengatakan bahwa game Augmented Reality (AR) adalah segmen yang sangat inspiratif. Ini adalah ruang baru untuk berpikir dan ada banyak uang. Tidak sebanyak yang dimiliki VR ketika semua orang berinvestasi di dalamnya, tapi ...
Namun VR tidak bertahan lama.
Ya, tidak bertahan. VR lebih baik dalam aplikasi non-game. Dia punya ide bagus, tapi kendala utama kesuksesan VR adalah kelelahan. Orang terlalu cepat lelah saat bermain game. Anda tahu, orang tidak lagi melompat pada bantalan Wee mereka. Mereka hanya lelah. Dan mereka tidak ingin melakukan ini lagi. Dan VR sulit digunakan.
Sudahkah Anda mengalami augmented reality atau pengalaman pengembangan VR?
Saya belum melakukan apapun yang berhubungan dengan AR, tapi saya sangat suka fitur-fiturnya. Jika Anda melihat lebih dekat pada game-game Lego, atau Minecraft-Earth, maka AR memiliki potensi besar, semua orang mulai bereksperimen dengannya, plus pelanggan menyukainya. Pokemon Go telah membuktikan kepada semua orang bahwa ada banyak uang dalam potensi AR. Itu tidak menggantikan konsol, smartphone, itu adalah segmen dan teknologi baru.
Tampaknya semua orang tahu betapa teknologi baru itu, tetapi mereka tidak mengerti bagaimana cara menggunakannya.
Tidak juga, API telah dibuat untuknya. Apple telah mengembangkan kit AR, dan itu tidak masalah. Mereka tidak membuat paket serupa untuk VR - secara sadar. Mereka mengembangkannya untuk AR karena mereka tahu itu akan berhasil. Menggunakan AR yang dipasangkan dengan Swift 5 dapat melakukan banyak hal keren.
Apa pendapat Anda tentang game seluler?
Nah, Sigil dirilis di smartphone.
Sepertinya saya bahwa kami meluncurkan Sigil pada seluruh perangkat. Jumlah yang gila. Anda tahu, di Instagram dan Twitter, ada begitu banyak perangkat yang menjalankan Sigil. Orang-orang terus mengunggah tangkapan layar.
Tapi ... apakah mereka selesai membangunnya sendiri? Sigil diproduksi untuk smartphone?
Ya ... Itu dirilis pada platform Android. Anda dapat mengunduh mod pendukung Doom. Sigil juga bisa dimainkan di Xbox. Anda dapat menggunakan Automechs - ini adalah Doom dengan open source dan dukungan untuk modifikasi, kemudian Anda dapat menginstal Sigil di Xbox dan memainkannya dengan tenang.
Benar Pernahkah Anda berpikir untuk merilis game Battle-Royale di alam semesta Doom? Sesuatu seperti Fortnite?
Saya pikir itu akan lucu. Saya tidak akan melakukannya. Tetapi akan sangat lucu jika orang lain melakukannya. Battle Royale hanyalah kerangka kerja dengan seperangkat aturannya sendiri berdasarkan pada game apa pun. Misalnya, Fortnite yang sama. Dia bukan game Battle Royale. Tapi dia menjadi salah satu ketika dia melihat PUBG, dan meraih bagiannya.

Itu dapat didongkrak dengan alam semesta apa pun. Tetapi permainan video yang dirancang khusus untuk mode ini tetap lebih baik. Masih banyak gim serupa yang bereksperimen dengan mekanik gim. Misalnya, saat Anda bermain dan melakukan segalanya, sumber daya tambang, misalnya ... Menggali dan lingkarannya menyempit, mengerti?
Ya
Dan orang-orang menembak Anda saat Anda menggali! Dan Anda perlu menambang untuk mengumpulkan barang!
Ya! Perbandingan bagus! Genre game apa yang menurut Anda akan usang di masa depan?
Saat ini tidak satupun dari mereka. Maksudku, satu-satunya genre yang tersisa adalah pencarian teks, tetapi masih ada game petualangan. Misalnya, pencarian biasa berkembang menjadi game petualangan mistis, dan pada saat yang sama sejumlah besar game kasual. Di mana pun game dijual, terutama di ponsel, Anda dapat melihat berbagai genre. Dan orang-orang yang percaya bahwa pencarian, atau apa pun, telah pergi selamanya, kembali di tahun 90-an atau 2000-an - mereka hanya perlu pergi ke "rak disk" di sisi lain untuk melihat semua game petualangan. Permainan seperti itu dijual dengan indah kepada wanita yang lebih tua, dan mereka menyukainya. Pasar permainan sekarang tidak terbatas pada usia 18 hingga 25, atau 35 tahun. Dia ada di mana-mana.
Namun, sekarang sangat mungkin strategi itu tidak sepopuler sebelumnya. Bagiku beberapa genre akan menghilang.
Oh, mereka pasti tidak akan kalah. Sekarang mereka merilis banyak strategi. Maksud saya, kita mengembangkan strategi karena itu menarik. Misalnya, ada perusahaan seperti Paradox Interactive, yang memiliki ceruk pasar sendiri di antara para penggemar yang terdiri dari pemain-pemain hardcore yang menyukai permainan mereka karena cara mereka dibuat. Untuk mengisi permainan, betapa rumitnya mereka. Dan mereka pasti akan bertahan hidup. Orang-orang suka memainkan Age of Empires Definitive Edition, yang dirilis baru-baru ini. Dan ini adalah permainan sembilan ratus sembilan puluh ... Kedelapan? Sepertinya? Ya Dan ini adalah strategi.
Salah satu strategi favorit saya. Ya
Ya Mereka tidak akan pergi ke mana pun. RTSki, dalam arti. Peradaban yang sama. Semua game ini ada, sementara mereka terus dikembangkan.
Apa rahasia membuat game yang sukses? Apakah menggunakan masalah teknologi terbaru?
Ya, itu membantu. Teknologi canggih membantu. Tapi desain game yang sangat bagus adalah alasan orang bermain. Mereka tidak memainkannya karena mesin. Apakah Anda ingin bermain game karena dibuat di Unreal? Tidak. Anda memainkannya karena desain dan ide permainan, bagaimana tampilannya, dan apa yang dikatakannya tentang apa yang dapat Anda lakukan di dalamnya. Ini semua adalah aspek desain.
Apa alat pengembangan atau solusi favorit Anda untuk gim? Saat ini, dan untuk seluruh karier Anda?
Untuk alur kerja dan produktivitas keseluruhan - Slack sangat bagus. Untuk sistem tiket kami menggunakan Assembla, tetapi Jira juga sangat baik. Kami menggunakan Perforce untuk mengontrol lisensi karena kecepatan tinggi. Ini adalah program utama kami yang digunakan semua orang di studio kami. Untuk departemen kreatif, ini Photoshop, Maya, dan jika Anda tahu SyncScetch, itu alat hebat lainnya ... Shotgun bagus untuk alur kerja. Dari sisi pengembang, kami menggunakan Unity dan VSCode, baik untuk Mac dan PC untuk melakukan pengeditan. Dan itu saja, secara umum.
Untuk tabel desain dan perhitungan, kami sering menggunakan Tabel Google. Beberapa alat membaca informasi dari tabel Google di jaringan dan kembali ke permainan.
Sebagian besar, ini adalah perangkat lunak dari Google. Kami menggunakan presentasi untuk dokumen desain, dan tabel Google untuk sebagian besar informasi. Untuk game ... Dalam sistem rilis loot, misalnya, tetapi itu tidak masalah.
Saya pikir semua orang ingin tahu ... Jenis permainan apa yang akan direkomendasikan oleh John Romero?
Hitman 2.

Hitman? Benar?
Hitman 2.
Salah satu game favorit saya!
Luar biasa.
Dan ketika Anda berbicara tentang pemain hardcore yang ingin menantang permainan, saya memikirkan Hitman!
Ya!
Karena ia memiliki ceruk maniak sendiri, itu ...
Ya Tantangan-Tantangan Ini.
... Hancurkan poin maksimum di level yang sulit.
Pengerjaan dan tantangan gila.
Saya mengagumi mereka.
Bagus
Ya, ya Saya melewati semua bagian.
Kelas!
Ya, saya telah melewati semua bagian sebelumnya, tetapi mereka kembali merilis game pada tahun 2016 dan benar-benar menciptakan ... Hanya desain terbaik di dunia.
Ya
Saya menantikan rilis Ghost Recon: Breakpoint. Sangat. Dan benar ... Saya tidak bisa menunggu. Itu akan luar biasa. Saya suka Ghost Recon. Saya suka game aslinya, bukan penggemar GRAW, tapi saya tahu bahwa ... Saya berhasil memainkan bagian baru, dan sekarang saya tidak sabar menunggu rilisnya.
Anda tahu, game-game hebat sudah keluar sekarang, tetapi beberapa di antaranya terlalu lama untuk dipelajari setelah bekerja.
Ya
Kamu terlalu lelah untuk mengerti.
Ya, saya ingin bermain ...
Semua mekanik ini ...
Ya, ya Seperti "Apakah saya perlu mengingat semuanya lagi?" Tapi ... Dunia Warcraft yang sama juga sama. , , , , , , - — . — . , . , Firewatch .
-…
, . …
Hitman .
, ! …
, — « ». Bukan begitu?
…
.
. - Hitman, Ghost Recon … ?
-. .
.
Bagus
, , .
, … ?.. Pacman , . , , 1980- , .
1980- « », - , .

Pacman . , , , . , .
.
, . - . , . , .
. — .
, .
?
, , «!» — . , . , .
, .
, . .
! .
Kelas! TechTrain.
TechTrain RUVDS!
Hebat!
!
, !

PS Dan tip terakhir dari John Romero:
Cara untuk menjaga tingkat kesalahan pada level rendah adalah dengan menulis beberapa baris kode kerja dan kemudian mengujinya. Lihatlah detail terkecilnya. Pastikan semuanya bekerja. Kemudian tulis beberapa baris lagi melakukan sesuatu. Ulangi tes setiap kali, buat kode dalam langkah-langkah. Anda seharusnya tidak bekerja selama setengah jam, dan kemudian menguji kodenya. Itu akan penuh dengan bug. Cukup tulis beberapa baris dan lihat apakah itu berhasil. Jadi, Anda akan membuat kode yang sangat stabil.