Pendahuluan
Baru-baru ini, cerita tentang permainan klasik mendapat sambutan yang baik di GDC, tetapi ada sangat sedikit cerita tentang alat untuk pengembangan mereka. Dalam seri artikel ini, kami akan berupaya mengisi celah ini dengan mewawancarai orang-orang yang telah memainkan peran penting dalam sejarah alat pengembangan game.
Dalam dua bagian pertama dari seri, kami berbicara dengan
John Romero (tentang TEd Editor) dan
Tim Sweeney (tentang Unreal Editor) .
Ketika menulis artikel ketiga, saya merasa terhormat untuk berbicara dengan
Chris Norden tentang
alat yang dikembangkannya untuk hibrida FPS / RPG yang disebut Deus Ex . Saya mengobrol dengan Chris di San Francisco di GDC 2018.
Sebelum Ion Storm: Origin and Looking Glass
David Lightbone: Bagaimana Anda memulai Deus Ex di Ion Storm?Chris Norden: Pada tahun 1994, saya bekerja sebagai programmer Origin di Austin. Proyek bayaran pertama saya adalah
Jane's Combat Simulations AD-64D Longbow oleh Jane's Combat Simulations. Awalnya game arcade yang disebut Chopper Assault. Bersama dengan Andy Hollis, saya mengerjakannya selama dua tahun.
Setelah perilisan game, hal terakhir yang ingin saya lakukan adalah melakukan simulator militer lain, karena saya benar-benar tidak suka semuanya militer. Dari waktu ke waktu, saya berbicara dengan Warren Spector, yang juga bekerja di Origin. Dia sangat menyukai alur permainan peran. Saya berpikir dalam hati: "Saya juga suka game-game ini, saya ingin mengerjakan sesuatu seperti itu!"
Pada tahun 1996, Warren mengundurkan diri dari Origin dan menjadi kepala Looking Glass Studios di Austin, yang keberadaannya belum diketahui oleh siapa pun. Studio ini membuat port untuk permainan Mac, seperti
Links 386 Pro . Dia juga sedang dalam proses mengembangkan permainan golf sendiri yang disebut British Open Championship Golf.
Asal masih mengembangkan Ultima Online. Dia dijuluki Multima, dan tampaknya telah menggunakan mesin Ultima VII. Saya bereksperimen dengannya sedikit sampai saya keluar dari Origin dan bergabung dengan Warren di Looking Glass.
[Catatan penulis: Studio utama Looking Glass berada di Cambridge, Massachusetts, dekat Boston]Warren menulis dokumen desain, dan untuk beberapa waktu kami mengerjakan permainan role-playing dengan singkatan AIR (dari Austin Internet Role-Playing), yang seharusnya merupakan proyek online. Kami ingin melakukan sesuatu dalam 3D, karena sementara akselerator 3D baru mulai muncul. Kami mendapat prototipe Voodoo 1 dan menulis mesin kecil di GLide.
Kami bermitra dengan kantor Looking Glass's Cambridge. Setelah merilis British Open, saya membantu Mark LeBlanc dan Gereja Doug dengan mesin Pencuri yang disebut
Dark Engine .
Untuk alasan keuangan dan lainnya, Looking Glass tidak merasa baik pada saat itu. Perusahaan memiliki permainan yang luar biasa, tetapi mereka menjual dengan buruk. Karena itu, setelah sekitar satu tahun, diputuskan untuk menutup kantor di Austin.
[Catatan penulis: Chris benar tentang permainan - Ultima Underworld, System Shock dan Terra Nova diterima dengan sangat baik oleh para kritikus, mereka adalah beberapa game terbaik tahun 1990-an]Pada saat kantor ditutup, ada beberapa dari kami: Warren, saya, Al Yarusso, Harvey Smith, Steve Powers. Kami semua masih ingin mengerjakan permainan peran-peran ini. Setelah kantor ditutup, kami berpelukan selama sekitar enam bulan, berharap kami dapat mendirikan perusahaan baru dan melakukan sesuatu. Kami memiliki dokumen desain yang sangat bagus, kami mulai "menjual" ke penerbit dan berkomunikasi dengan orang yang berbeda. Saya bahkan tidak ingat semua penerbit yang kami hubungi. Salah satu dari orang-orang ini adalah John Romero dan Tom Hall, yang, bersama dengan Eidos, bekerja untuk membuat studio baru di Dallas bernama Ion Storm.
Saya mengenal John dari tahun-tahun awal Id. Pada tahun 1991, di Dallas, MTV mengadakan pesta kapal besar yang didedikasikan untuk Wolfenstein 3D. Ada dua mesin
VR Virtuality Arcade Machine . Pada waktu itu saya masih kecil dan berpikir, "Ya Tuhan, ini hal paling keren di dunia!" Saya bertemu John di masa ketika dia hidup dengan gaya "Saya terlalu kaya untuk khawatir tentang apa pun."
John adalah orang yang luar biasa, saya bekerja dengannya di Monkeystone Games, membantu mengembangkan game untuk Gameboy Advance, tapi itu cerita lain.
[Catatan penulis: permainan ini disebut Hyperspace Delivery Boy. Untuk Gameboy Advance, seharusnya diterbitkan oleh Majesco , tetapi pada saat terakhir perusahaan menolak untuk merilisnya.]Kami berbicara dengan Romero dan Tom Hall, dan mereka adalah: "Warren, kau keren, mari kita buat game ini!". Dan Warren menjawab: “Ada hambatan. Kami tidak akan pindah ke Dallas. Kami tidak akan pindah ke California. Kami tidak akan bergerak ke mana pun. Kami akan menyimpan studio di Austin. Jadi kita akan tetap sepenuhnya otonom. Anda akan memberi saya kendali penuh atas segalanya. Anda akan memberi saya uang, dan semuanya akan baik-baik saja. " Mereka menjawab: “Oke, itu cocok untuk kita. Dipecahkan. "
[Catatan penulis: jelas, ini adalah versi negosiasi yang terlalu disederhanakan, tetapi memberikan gagasan tentang apa yang terjadi]Warren memiliki dokumen desain yang hebat untuk permainan Troubleshooter pada saat itu, yang secara bertahap berubah menjadi dokumen desain Deus Ex.
Jadi, kami berenam mendirikan Ion Storm Austin. Saat itu saya adalah direktur teknis, kepala departemen TI, "Homo Arom", dinas keamanan dan insinyur terkemuka. Kami tidak memiliki cukup orang untuk melakukan semua hal ini. Karena itu, perlu segera melakukan wawancara dan merekrut staf.
Tim itu kecil. Kami memiliki tiga insinyur: saya sendiri, Scott Martin dan Al Yarusso. Sheldon Pacotti dipekerjakan sebagai penulis skenario. Kami memiliki dua tim desain yang masing-masing terdiri dari tiga orang. Satu dipimpin oleh Robert White, yang kedua oleh Harvey. Tampaknya ada enam seniman lagi yang dipimpin oleh Jay Lee.
Oh, dan saya juga menyewa Alex Brandon karena saya penggemar berat musiknya untuk Unreal. Sekarang kita adalah teman baik. Saya memperkenalkannya kepada calon istrinya, karena kami teman di sekolah menengah. Dia pria yang hebat: musisi yang hebat dan fasih dalam detail teknis.
Lalu kami menyewa seorang administrator, dan hanya itu. Dan kemudian kami dihadapkan dengan pekerjaan neraka selama dua setengah tahun! [tertawa]
Memilih antara mesin Unreal dan Quake
JL: Jadi, sementara Ion Storm lainnya bekerja dengan mesin Quake, Anda memilih Unreal. Bisakah Anda menjelaskan bagaimana Anda sampai pada keputusan ini?KN: Tidak peduli betapa saya menghormati mesin Gempa, saya tahu bahwa pada saat itu kami tidak akan mendapat dukungan. Kami menciptakan game yang sangat spesifik di mana kami ingin dapat melakukan apa saja. Gempa adalah penembak, dan tidak lebih. Jika kami mencoba melakukan sesuatu selain FPS, itu akan membutuhkan banyak pekerjaan, dan kami tidak akan menerima dukungan dari Id. Mereka hanya membakar CD dengan kodenya, memberikannya kepada pengembang, dan membiarkannya sendiri.
JL: Dalam wawancara saya dengan Tim Sweeney, dia menyebut model lisensi mesin Quake waktu itu "operasi xcopy seperempat juta dolar."KN: Ya, benar sekali! Saya setuju, mesinnya luar biasa. Pada saat itu, dia membuat revolusi, tetapi kami tahu bahwa tim yang terdiri dari tiga insinyur tidak akan dapat menulis ulang mesin dan tidak dapat menulis sendiri. Kami tidak akan punya cukup waktu.
Pada suatu waktu saya adalah penggemar berat Amiga, C64 dan PC demo scene. Saya mulai menonton video game bernama Unreal dan berpikir, “Ya Tuhan, ya ada pencahayaan RGB dan 3D penuh. Mesinnya menggunakan MMX, SSE dan 3DNow. Dia terlihat sangat keren! " Tetapi kami tidak dapat menemukan informasi terperinci tentang dia, jadi kami merencanakan perjalanan ke Digital Extremes di London (Kanada). Kami bertemu dengan Tim dan timnya, mereka menunjukkan kepada kami semua fitur mesin. Saya juga bertemu dengan
Carlo Vogelsang , yang sekarang saya bekerja dengan Sony - dia ada di departemen Playstation. Dia menulis Galaxy Audio Engine: hampir semuanya dalam assembler, seorang pria super-hardcore. Mesin itu memiliki sistem partikel yang disebut Api. Semua ini ada di dalam mesin. Saya berpikir, “Teman-teman, saya suka pendekatan Anda.”
Pada saat itu, mereka fokus untuk menciptakan alat yang sangat nyaman yang belum pernah dilakukan sebelumnya. Alat-alat gempa itu bagus, tetapi bagi pengguna non-teknis mereka tampak tidak ramah. Kami memiliki desainer yang tidak memiliki keterampilan teknik, dan mereka harus mencari cara untuk menggunakan program ini.
Jadi kami memutuskan: “Orang-orang ini memiliki alat yang bagus, semua orang banyak membantu kami, ada banyak orang jadul yang menulis hal-hal hardcore di tahun 80an. Bagaimana pengaturan perizinan? ” Mereka menjawab: "Kami belum pernah melakukan ini sebelumnya, bagi kami itu adalah sesuatu yang baru." Saya pikir pada waktu itu mereka tidak mengerti cara membuat model lisensi. Kami berkata: "Kami memiliki Warren Spector, dan dia ingin membuat game di mesin Anda." Ketika mereka mendengar ini, menjadi jelas bahwa mereka benar-benar ingin bekerja bersama kami.
Jujur, saya tidak ingat detail perjanjian lisensi kami. Tim mungkin ingat. Saya tidak ingat berapa banyak kami membayar, tetapi saya tidak terlalu banyak berpikir. "
JL: Mungkin sebanding dengan berapa banyak Id yang meminta Quake pada waktu itu?KN: Saya kurang berpikir! Dan itu merupakan nilai tambah lainnya. Mesin mereka relatif baru, tetapi kami bukan pemegang lisensi pertama. Salah satu yang pertama adalah Wheel of Time dan Klingon Honor Guard.
[Catatan penulis: Anda dapat membaca lebih lanjut tentang sejarah lisensi Mesin Unreal dalam wawancara saya dengan Tim Sweeney tentang Editor Unreal ]Karena itu, kami memutuskan untuk memilihnya. Pengembang memberi kami kode sumber dan berkata: "Kami akan mendukung Anda sesegera mungkin." Kami selalu berbicara tatap muka. Jika kami memiliki pertanyaan, kami mengirim email: tidak ada sistem dukungan teknis.
Kami memiliki banyak masalah karena mereka belum pernah melakukan ini sebelumnya. Kami mengirimi mereka banyak kode dan pertanyaan, memiliki korespondensi yang panjang dan menerima pembaruan. Tetapi saya percaya bahwa itu adalah keputusan yang tepat. Saya pikir jika kita memilih Quake, maka game akan jauh lebih sulit untuk dibuat.
Selain itu, saya menjadi anggota Kelompok Penasihat Teknologi Nyata. Kami datang dengan ide pertemuan teknis pertama, di mana para kepala semua perusahaan yang menjadi pemegang lisensi (ada empat pada saat itu) berkumpul bersama, membahas cara-cara untuk meningkatkan mesin, memarahi Tim untuk aspek-aspek yang tidak nyaman, disortir dengan alkohol dan makanan, yah, semuanya seperti biasanya. Saya masih berhubungan dengan semua orang ini.
JL: Sudahkah Anda berbagi sesuatu dengan anggota Kelompok Penasihat Teknologi Unreal lainnya?KN: Saya pikir kami terutama berbagi peningkatan pada Editor Unreal. Mesinnya sangat bagus, tetapi dia masih harus menempuh jalan panjang. Kemudian, ketika kami mampu merekrut lebih banyak desainer dan artis, mereka juga mulai membuat saran untuk meningkatkan proses kerja. Kami menerapkannya sendiri, atau mengirimnya ke tim Unreal, atau bertanya kepada tim Unreal apakah mereka bisa melakukannya lebih cepat daripada kami.
Kami membuat banyak perubahan pada editor utama, tetapi kebanyakan hanya terkait dengan permainan kami. Kami berbagi beberapa peningkatan, tetapi sebagian besar pengembang lain terlibat dalam permainan yang sama sekali berbeda.
Saya harus menulis banyak sistem yang saya pikir adalah yang pertama dari jenisnya. Setidaknya saya belum pernah melihat mereka. Misalnya, sistem pencampuran animasi; pada dasarnya inilah yang disebut target morph atau bentuk campuran hari ini. Saya tidak ingat ada orang yang melakukan ini di game pada waktu itu. Mungkin sudah diterapkan di suatu tempat, tetapi sebelum meluasnya penggunaan Internet, berbagi informasi sangat sulit.
JL: Bisakah Anda berbicara tentang perubahan yang Anda buat pada Editor Unreal?KN: Salah satu sistem, yang karena beberapa alasan tidak ada dalam editor pada waktu itu, adalah visualisasi splines kamera.
Di versi pertama UnrealEd, Anda harus menyeret kamera dan mengatur titik lintasannya. Dalam hal ini, dimungkinkan untuk melihat titik-titiknya, tetapi bukan koneksi di antara mereka, yang menentukan jalur kamera.
JL: Ini seperti permainan point-to-point, tetapi tanpa angka!KN: Tepat! Spline memiliki breakpoints dan desainer tidak selalu bisa mengetahui seperti apa jalan itu nantinya. Mereka ingin tahu persis bagaimana kamera akan bergerak di sepanjang jalan. Jadi saya menambahkan sistem ini, dan mereka menyukainya.
Itu sangat sederhana. Maksud saya kesederhanaan kode: menggambar sumbu koordinat pada setiap titik kontrol utama, dan kemudian menggambar titik kontrol untuk benar-benar melihat ke mana ia pergi. Itu sangat membantu perancang, dan membuat sistem seperti itu sangat sederhana. Saya tidak tahu mengapa kami harus menambahkannya. Saya kira Tim tidak berpikir bahwa dia akan benar-benar dibutuhkan.
DL: Ini lucu karena jika Anda mengingat demo pertama Unreal kepada publik, hal pertama yang dilihat orang adalah kamera terbang di sekitar kastil, yaitu, Epic sepertinya tidak membuat jalur kamera apa pun.KN: Saya pikir alasannya adalah karena banyak dari desainer level mereka adalah teknisi super dan mereka terbiasa mensimulasikan hal-hal seperti itu di kepala mereka. Namun industri video game secara bertahap matang, jadi itu perlu untuk membuat alat untuk orang-orang dengan berbagai tingkat pengalaman. Tidak semua desainer adalah insinyur, dan hari ini lebih dari itu! Ini adalah pengecualian daripada aturan. Oleh karena itu, alat tersebut seharusnya menjadi nyaman dan sederhana.
Ngomong-ngomong, saya masih tidak tahu mengapa Pion dilambangkan oleh kepala dinosaurus.
JL: [tertawa] Ya, Tim dan saya membahas ini dalam sebuah wawancara! Omong-omong, apakah Anda menyesali keputusan teknologi yang Anda buat?KN: Kami terlalu banyak menggunakan UnrealScript. Ini adalah salah satu kesalahannya. UnrealScript sangat fleksibel, tetapi terlalu lambat. Kami perlu menulis lebih banyak dalam bahasa C asli daripada di UnrealScript.
Gangguan utara dan palsu sejati
[Catatan penulis: pada tahap wawancara ini, saya membuka Deus Ex Editor (versi untuk UnrealEd), serta dokumentasi Deus Ex SDK]JL: Pemasang Deus Ex SDK memiliki folder Documents dengan beberapa file dokumentasi yang Anda, Robert White, Sheldon Pacotti, Al Yarusso, dan Scott Martin tampaknya mensponsori. Bisakah Anda tahu siapa orang-orang ini dan apa yang mereka kerjakan?KN: Al terlibat dalam editor dialog. Scott bekerja di AI. Saya melakukan ...
semuanya . [tertawa] Antara lain, saya adalah asisten direktur dan pemimpin programer. Tapi kami melakukan sedikit dari segalanya, karena di seluruh proyek dari awal hingga selesai hanya ada tiga insinyur.
Chris Norden (kiri bawah), El Yarusso (kanan dan atas Chris, dengan jam di tangannya), Robert White (baris tengah, sedikit ke kanan tengah, mengenakan kacamata hitam), Sheldon Pacotti (kanan bawah) dan Scott Martin (di urutan kedua) baris, paling kanan, juga dalam kacamata hitam)DL: Ada bagian dalam dokumentasi untuk editor yang mengatakan "Unreal tidak memiliki dukungan asli untuk tangga vertikal, tetapi mereka ditambahkan ke Deus Ex." Bisakah Anda memberi tahu kami lebih lanjut tentang ini?KN: Tangga adalah cerita yang menarik, karena kami harus bergerak di sekitar level, dan pada penembak orang pertama pada waktu itu, tangga miring dan kenaikan yang halus secara tradisional digunakan untuk ini.
Salah satu keputusan Warren (karena desain adalah hukum!) Mengatakan bahwa seorang pemain harus dapat menyelesaikan misi apa pun dengan cara apa pun. Gagasan utama dari permainan ini adalah bahwa jika Anda menginginkannya, Anda dapat melewatinya secara keseluruhan, tidak pernah menembak. Faktanya, kami tidak cukup berhasil - ada beberapa zona di mana Anda perlu memotret beberapa kali, tetapi kami sangat dekat.
DL: Saya pikir para pengembang berhasil dalam sekuelnya.KN: Ya, mungkin.
Jadi, pemain seharusnya bisa melewati seluruh pertandingan tanpa melepaskan tembakan. Selain itu, ia bisa menjalani seluruh pertandingan tanpa melakukan apa pun selain menembak. Pemain bisa melewati seluruh permainan sehingga tidak pernah terdeteksi oleh musuh. Itu mungkin untuk melewatinya dengan cara yang sangat berbeda.
JL: Apakah kurangnya tangga vertikal adalah salah satu topik yang Anda diskusikan dengan Tim di pertemuan Unreal Tech Advisory Group?KN: Untuk menjawab, saya perlu mencari dan melihat dalam kode skrip apakah tertulis "Persetan, Tim!" [tertawa], karena itulah yang kami lakukan ketika kami marah - kami menulis komentar untuk mengingatnya nanti.
Ketika kami mulai berpikir tentang cara menambahkan dukungan untuk tangga vertikal, pertama-tama kami beralasan "mari kita buat geometri, dan kemudian mungkin kita bisa melakukan trik fisik yang rumit sehingga pemain dapat meraih bar dengan animasi yang disinkronkan". Tetapi setelah kami memutuskan - yah, ini semua ke neraka, terlalu rumit.
JL: [tertawa]KN: Kami harus melakukan ini dengan sangat cepat, karena para desainer menuntut untuk membuat mekanik ini.
Karena itu, sebagai hasilnya, saya harus pergi ke peretasan neraka. Mesinnya memiliki konsep "kelompok tekstur". Pada dasarnya, ini adalah label string yang ditugaskan untuk jenis tekstur tertentu untuk membuatnya lebih mudah disortir. Kami dapat meminta mereka dalam kode. Jadi kami berpikir: "mengapa seniman tidak hanya membuat beberapa tekstur sehingga mereka bisa naik?" Setelah itu, kami cukup menambahkannya ke grup tekstur, melakukan raycast untuk mengenali mereka, dan kemudian hanya dengan beberapa batasan menempel pemain ke arah gerakan mereka. Ini bekerja dengan baik, tetapi tidak selalu sempurna, karena ketika pemain naik ke atas tekstur, sinar tidak lagi terpancar ke dalamnya, dan kami perlu mendorong pemain ke atas dan ke platform. Artinya, solusinya tidak sempurna, tetapi hasilnya berhasil. Itu adalah hack yang murah dan mudah.
Pembaca hari ini mungkin berpikir: mengapa tidak ada tangga di mesin, apakah itu bahkan logis? Tetapi pada masa itu tidak ada apa-apa. Ini hanya fragmen BSP, kami tidak memiliki jerat statis, tidak ada yang seperti itu.
JL: UnrealEd punya generator tangga spiral yang sangat keren [tertawa], tetapi tidak ada tangga vertikal.KN: Ya, benar ... Sepertinya kami memarahi desainer karena menggunakannya, karena menciptakan lubang di BSP. Tangga itu tampak indah jika tidak ada yang dekat. Tetapi begitu Anda mulai membuat irisan sudut di BSP, Anda bisa mendapatkan lubang kecil di BSP yang bisa Anda lewati, tetapi lubang itu sendiri tidak terlihat. Fungsi ini menyebabkan banyak rasa sakit dan kami melarang penggunaannya. Dia terlihat bagus, tetapi patah ...
JL: Dokumentasi ini juga menjelaskan kelas yang disebut DeusExLevelInfo yang berisi informasi tentang peta (misalnya, multi-pengguna), nama penulis peta, tempat misi diselesaikan, nomor misi, dan sebagainya. Tetapi saya ingin bertanya tentang TrueNorth.KN: [tertawa] Itu adalah tipe BAM dari Unreal: Binary Angle Measurement engine!JL: Berapa angka gila ini ?!KN: Saat itu, operasi floating point sangat mahal. Setrika lemah, tetapi tidak cukup memori. 360 derajat dijelaskan bukan dengan angka 8-bit, yang akan memberikan 255 unit akurasi, yaitu sekitar 1,4 derajat per unit, yang tidak akan cukup. Tim menggunakan angka 16-bit untuk orientasi, yang memberikan akurasi lebih besar.Untuk seorang programmer, semua angka ini cukup sederhana. Ini hanya kekuatan dua, tidak ada masalah, Anda dapat menghitung semuanya di kepala Anda. Tetapi desainer dan artis mengalami kesulitan. Oleh karena itu, kami membuat penyederhanaan kecil untuk membantu pengembang mengingatnya.[Sementara kami bekerja dengan editor, Chris pergi ke kelas Dekorasi]KN: Dekorasi juga kelas besar. Semua jerat yang dapat berinteraksi dengan Anda adalah hiasan. Artinya, hampir semua yang ada di game!JL: Di bagian Dekorasi dari dokumentasi itu tertulis, "Kami memperingatkan Anda bahwa jika Anda mengubah beberapa bidang yang tidak tercantum di bawah, editor mungkin macet." Tidak ingat mengapa ini terjadi?KN: [tertawa] Jujur, saya tidak ingat. Saya pikir karena Dekorasi adalah kelas yang begitu besar, dan memiliki banyak fungsi Epic yang berinteraksi dengan mesin dengan cara yang aneh, sehingga alih-alih menjelaskan kepada desainer yang tidak memahami seluk-beluk teknis mengapa bidang tertentu dapat menyebabkan perilaku yang tidak terduga, kami hanya mereka berkata "jangan gunakan itu, kalau tidak editornya crash."JL: [tertawa]KN: Sesuatu seperti taktik menakut-nakuti. Pada pertemuan pemrogram, kami bertanya-tanya: bagaimana menjelaskan kepada pengguna bahwa ini akan menyebabkan kerusakan pada rantai BSP, dan Anda perlu melakukan ini dan itu? Katakan saja kepada mereka bahwa editor akan crash.Saya harus mempelajari kode lagi, tetapi tampaknya kita bahkan bersalah karena menyembunyikan kegagalan yang disengaja di beberapa tempat untuk menakut-nakuti pengguna yang terlalu mendalam scammed.JL: Ayo maju. Bagian ParticleGenerator mengatakan, "Salah satu fungsi utama adalah dapat dinyalakan dan dimatikan menggunakan trigger dan unTriggers." Yaitu, dalam versi mesin Unreal yang Anda gunakan, tidak mungkin untuk menghidupkan dan mematikan partikel?KN: Saat itu, tidak. Jika Anda memasukkan sistem partikel, maka itu ada terus-menerus dan tidak pernah dimatikan. Bagiku ini kelihatan aneh.Kalau tidak, sistem partikel Unreal mengagumkan. Sebagian besar ditulis dalam assembler. Itu prosedural, dan ditulis dengan sangat baik dibandingkan dengan yang lainnya. Desainer menyukainya. Bahkan terlalu banyak. Itu mungkin untuk membunuh seluruh frame rate, dan mereka menjadi gila, menambahkan lebih banyak dan lebih transparan layer.Pada saat itu, kami masih harus mendukung rendering perangkat lunak, sementara rendering perangkat keras belum meluas. Tim memiliki keterampilan pemrograman yang luar biasa dan menulis penyaji perangkat lunak yang hebat, dia hebat.[Melihat objek yang berbeda dalam game, saya melihat kategori dengan nama yang tidak biasa di panel Properties]DL: Apa properti Smell ini?KN: Hewan-hewan membutuhkan aroma untuk melacak. Faktanya, anjing bisa melacak titik bau. Jika saya ingat dengan benar, kemudian bergerak melalui level, pemain dapat meninggalkan node bau yang telah aktif selama waktu tertentu. Karena itu, kami membuatnya agar anjing bisa mencium baunya.DL: Yaitu, jika Anda bersembunyi di balik kotak, maka orang tidak akan menemukan Anda, tetapi anjing bisa ...KN: Justru karena inilah yang terjadi dalam kenyataan, dan kami pikir itu akan menjadi aspek gameplay yang menarik. Namun, nampaknya pada akhirnya ia dikucilkan. Karena tidak ada umpan balik grafis, konsep ini sulit untuk dijelaskan kepada pemain.[ Intro, — , . ]: . . ...KN: Tidak, cermin itu asli! Mereka sangat lambat, jadi kami meminta desainer untuk jarang menggunakannya, namun, ini adalah cermin asli.Bahkan, ketika saya menulis kode laser ... [tertawa]DL: [tertawa] Saya melihat apa yang Andamaksudkan ... KN: ... Saya benar-benar harus memeriksa cermin. Saya memiliki level pengujian di mana saya menguji kode untuk semua perangkat. Ketika saya menulis kode pointer laser, saya membuat bola disko cermin reflektif, dan kemudian membangun sebuah ruangan dengan cermin di kedua ujungnya. Saya mengambil laser pointer, mengarahkannya ke bola disko, dan itu berhasil!Tentu saja, frame rate jatuh di bawah tempat, karena saya harus melacak semua garis ...Lihat Gelombang Cahaya: Alat Baris Perintah LWO23D
[ : LWO Lightwave Object. 3D- Lightwave 3D Newtek , , Deus Ex ]Cuplikan layar dari Tack's Deus Ex LabJL: Mengapa tim Anda memutuskan untuk menggunakan Lightwave?KN: Artis kami mengenalnya dengan baik. Karena itu, kami harus beradaptasi.
JL: Ceritakan lebih lanjut tentang mengapa Anda menulis eksportir sebagai alat baris perintah.KN: Pada waktu itu, dan bahkan sekarang saya sering menulis alat baris perintah kecil untuk mengotomatisasi tugas. Saya seorang programmer sekolah tua dan tidak suka komplikasi yang tidak perlu. Saya kebanyakan tidak suka C ++. Saya tidak suka pola. Saya tidak suka semua yang membutuhkan waktu.
Ketika saya menulis alat-alat baris perintah, saya membuat file batch Win32, menyingkirkan semuanya bawaan, mulai dengan file kosong, dengan
int main()
, dan teruskan saja. Ini adalah solusi cepat dan portabel yang tidak menimbulkan masalah.
DL: Saya pikir bahwa mengekspor jerat statis adalah proses yang cukup standar. Tapi beri tahu kami bagaimana Anda mengekspor animasi.Cuplikan layar dari Tack's Deus Ex LabKN: Tidak ada animasi skeletal dalam game. Saya tidak tahu mesin tunggal dari era di mana ia diterapkan. Karena itu, semuanya dilakukan dengan mencampur simpul. Menguliti sangat mahal saat itu. Tidak ada GPU, semuanya harus dihitung pada CPU dan dengan cara apa pun menghindari perhitungan floating point.
Di dalam Lightwave, desainer menciptakan animasi kerangka, dan kemudian menampilkan keyframe-nya. Itu perlu untuk membuat pose-T, karena untuk mencampur animasi perlu dimulai dari dasar yang sama. Yaitu, untuk campuran yang tepat, animasi pada dasarnya offset dari pose-T. Pencampuran dilakukan di sisi mesin.
JL: Jadi, di Unreal, semuanya melakukan hal yang sama?KN: Mungkin ya. Saya tidak berpikir Tim menambahkan animasi kerangka ke versi berikutnya.
Talking Heads: ConvEdit dan Lipsink
[Sekarang kita buka folder ConvEdit]JL: Ceritakan tentang ConvEditKN: Itu adalah gagasan Al, dia menulisnya di Visual Basic.
JL: Seperti UnrealEd pada waktu itu.Ya, pada masa itu tidak banyak peluang untuk implementasi antarmuka yang sederhana. Ada Delphi dan beberapa kerangka kerja UI lainnya. Jika Anda tidak menggunakannya, maka Anda harus menulis semuanya secara asli, misalnya, di Win32 API, GDI, dan semua itu. Itu masalah besar.
Yaitu, Visual Basic, yang saat ini tampaknya agak primitif, pada waktu itu sangat bagus - kerangka kerja visual sederhana dengan bahasa pemrogramannya sendiri yang mirip dengan Basic, pendahulu C #. Dia mengizinkan kami untuk membuat prototipe fungsi dan menulis alat dengan sangat cepat.
[Catatan: Jika Anda tertarik dengan bagaimana Visual Basic digunakan dalam alat pengembangan game pada zaman itu, maka bacalah wawancara saya dengan Tim Sweeney tentang Editor Nyata ]Itu terutama digunakan oleh Sheldon. Dia membutuhkan alat untuk mengendalikan kamera, alat untuk mengontrol suara. Dia ingin menggunakan banyak alat sinematik yang belum pernah digunakan sebelumnya. Saya pertama kali mengetahui apa yang dimaksud zoom rostrum, mengerjakan game ini dengan Sheldon.
Saya pikir bahkan hari ini alat ini masih digunakan.
Ngomong-ngomong, Sheldon menderita sindrom pergelangan tangan terowongan (RSI, Repetitive Strain Injury), sehingga segel menjadi siksaan baginya. Dia hampir sepenuhnya bekerja pada Deus Ex menggunakan transkripsi suara di Dragon Dictate, yang pada saat itu jauh lebih buruk daripada hari ini. Sheldon bahkan harus memakai orthosis, karena sindrom itu sangat kuat.
JL: Wow! Saya tidak tahu. Gim ini memiliki banyak dialog dan banyak cabang ...KN: Sejumlah besar data, bahkan untuk satu misi.
Sheldon ingin memiliki kontrol yang kuat atas permainan dan banyak dialog interaktif. Dia ingin pemain membuat pilihan yang bermakna. Dia dan Warren benci harus mengklik dialog tanpa pilihan. Mereka ingin pemain berinteraksi dengan karakter dan memilih hal-hal penting, sehingga permainan meletakkan bendera dan mengingat bagaimana dia berinteraksi dengan karakter dan berperilaku selama bagian itu.
JL: Dari penelusuran Deus Ex pertama, saya ingat briefing Anna Navarre di kantornya. Seperti biasa dalam permainan video apa pun, saya mulai berlari di sekitar kantor melakukan segala macam omong kosong sampai NPC menyelesaikan dialog mereka. Tiba-tiba dia menghentikan dialognya, menoleh padaku dan bertanya, "Apa yang kamu lakukan?"KN: [tertawa]
DL: Sejenak saya membeku, dan bertanya pada diri sendiri: "Apakah ini yang sebenarnya terjadi?" Itu adalah peristiwa yang sangat penting bagi saya dalam hal pencelupan dalam permainan. Tidak ada satu pun permainan sebelum ini yang pernah bertemu. Saya menduga ini sebagian disebabkan oleh Editor Percakapan.KN: Salah satu perintah Warren adalah: "Jika seorang pemain berada di kantor seseorang, berperilaku seperti binatang dan merusak barang-barang, maka karakter itu harus mengatakan sesuatu!" Dia tidak boleh mengabaikan pemain, karena itu tidak realistis. "
JL: Apakah ada aspek terkait cutscene yang ternyata sangat sulit untuk dibuat alat?KN: Kami memiliki banyak dialog, dan semuanya disuarakan. Kami menghabiskan berminggu-minggu di studio rekaman dialog dialog dengan aktor. Ini berarti bahwa kita perlu berpikir tentang sinkronisasi gerakan bibir (lipsyne). Saya berpikir: "Bagaimana cara membuat lipSink untuk begitu banyak dialog?" Bagaimanapun, kami tidak hanya memiliki banyak frasa, tetapi juga beberapa bahasa.
Pada saat itu, tidak ada banyak alat untuk membantu dalam plesteran. Sebagian besar pengembang melakukan pra-pemrosesan: mereka menjalankan dialog di alat, menampilkan file data, dan kemudian memutarnya. Tetapi saya memutuskan: "Kami tidak akan punya waktu untuk ini, dan jika Anda harus merekam ulang suara, maka Anda perlu memproses ulang semuanya lagi."
Jadi saya mulai berpikir bahwa harus ada cara untuk melakukan ini secara real time menggunakan analisis suara dinamis. Di perguruan tinggi, saya belajar teknik listrik, dan memutuskan untuk mencari tahu sendiri, tanpa memberi tahu siapa pun.
JL: [tertawa]KN: Saya berpikir: "Mari kita lihat apakah saya bisa melakukan ini dan mengejutkan semua orang." Sekali lagi, saya tidak berpikir ada orang yang melakukan hal seperti ini sebelumnya, tetapi hari ini teknik ini ada di mana-mana.
Pada saat itu, dari semua yang saya lihat, yang paling dekat dengan sistem seperti itu adalah Half-Life. Para pengembang menggunakan teknik Envelope following, yang secara harfiah adalah ini: buka dan tutup mulut Anda tergantung pada volume suara. Sistem bekerja, tetapi tidak terlihat sangat realistis.
JL: Sebenarnya, itu adalah "kedutan rahang."KN: Ya, persis, persis.
Saya ingat saya pernah berdiskusi dengan Gabe Newell bagaimana mereka menyelesaikan tugas ini, dan dia berkata: "Oh, cukup gunakan
Envelope following , dan itu sudah cukup. Yang lainnya akan terlalu rumit. ”
Kemudian saya kembali ke rumah dan mulai memperkirakan perhitungan matematis, dan kemudian saya menulis sebuah sistem yang melakukan FFT (
fast Fourier transform ). Saya ulangi, sementara perhitungan floating point sangat mahal, dan saya mungkin menulis perkiraan bilangan bulat mensimulasikan mereka.
Dia menganalisis seketika rekaman audio pendek dan mengekstraksi komponen frekuensi utama, dan kemudian mengikatnya menjadi enam hingga tujuh fonem yang berbeda.
Diam-diam, saya meminta salah satu seniman untuk mensimulasikan beberapa bentuk pencampuran (bentuk campuran): Saya membutuhkan "o", "a", bibir tertutup dan sejenisnya. Dia bertanya mengapa, dan saya menjawab bahwa dia hanya melakukan ini dan memberi saya data.
Fast Fourier Transform (Gambar Wikipedia) dan Preston Blair Phonemes SeriesJL: [tertawa] Ini sepertinya pasangan yang tepat untuk campuran animasi yang Anda gunakan di Deus Ex.KN: Ya, persis, sempurna.
Jadi, dia memberi saya data, saya menulis perhitungan matematika dan karena saya bisa, secara manual, melampirkan formulir. Saya tidak melakukan penelitian serius, dan sistemnya cukup mahal dalam hal kinerja.
Saya membuat level tes dengan kepala besar di tengah, dan memberinya beberapa baris. Saya memeriksa frasa dalam Bahasa Jerman, Bahasa Inggris, Bahasa Prancis, dan semuanya tersinkronisasi dengan sempurna. Saya berpikir, “Sialan, ini luar biasa! Benar-benar berhasil! ”
Saya menemukan Warren dan mengatakan kepadanya, "Saya ingin menunjukkan kepada Anda sesuatu yang keren." Sepertinya dia tertegun. [Tertawa] Dia bertanya kepada saya: “Apa-apaan, bisakah kita memasukkan ini ke dalam permainan? Luar biasa! ”
Sebagai hasilnya, kami merilis game dengan sistem ini, tetapi demi kinerja, saya harus mengurangi banyak, karena kualitas visualnya menurun. Tapi tingkat tes pertamaku hebat. Saya masih percaya bahwa ini adalah sistem lip sync real-time pertama. Saya tidak ingat ada yang melakukan ini sebelumnya.
Mungkin layak dipatenkan. Tapi saya tidak percaya pada paten perangkat lunak karena saya pikir ini adalah praktik yang keji ...
Saya juga mendapat pertengkaran besar dengan salah satu direktur seni di Dallas, yang ingin menggunakan sistem ini di Anacronox. Dia seharusnya keluar sebelum pertandingan kami. Saya berkata: "Saya tidak akan keberatan berbagi, tetapi saya ingin Deus Ex menjadi game pertama yang muncul." Dia berkata: "Tidak, Anda harus memberikannya kepada kami!" Dia praktis berteriak pada kami di aula. Saya menjawab, "Tidak, saya tidak boleh," dan Warren mendukung saya. Kebetulan kami merilis game pertama, jadi ini tidak penting juga. Bahkan, saya berpikir bahwa sebagai hasilnya, mereka secara mandiri mengimplementasikan versi sistem mereka sendiri, karena kami tidak ingin memberikannya. Itu mungkin egois, tapi saya ingin kami lulus dulu sehingga kami bisa menunjukkan fitur ini.
Segala sesuatu yang diproduksi oleh Ion Storm dikembangkan di Dallas:
Dominion: Storm Over Gift 3 ,
Daikatana ,
Anacronox - semuanya dilakukan di Dallas. Hanya Deus Ex yang dibuat di Austin, dan hanya ada tim kami, tidak ada yang lain. Kami berada dalam gelembung, cukup terisolasi dari kantor di Dallas, dan ini dilakukan dengan sengaja. Kami tidak ingin mengacaukan banyak ... Saya akan jujur, dengan banyak sampah mereka. Pemisahan ini sepenuhnya disengaja dan sangat penting bagi kami. Tim kami dan tim mereka tidak bertukar teknologi, tidak ada kontak nyata.
Kesimpulan
DL: Jadi, untuk meringkas, saya ingin bertanya: jika Anda bisa memberikan saran kepada pengembang alat yang membaca artikel ini, apa yang akan Anda katakan?KN: Dengarkan pelanggan Anda. Jangan pernah menulis alat dalam ruang hampa. Sebagai seorang insinyur, Anda mungkin berpikir: "Saya bisa menggunakan alat ini dengan cara ini, dan metode ini paling efektif, jadi saya akan menulisnya seperti itu."
Tapi hampir selalu Anda salah. Anda harus mendengarkan desainer dan artis karena alur kerjanya sangat berbeda. Mereka bekerja sangat berbeda dari yang lain. Alat tidak akan digunakan oleh Anda, paling sering itu untuk mereka.
DL: Apakah Anda pernah bertemu dengan mentalitas seperti itu dalam tim yang bekerja dengan Anda? Dan bagaimana Anda menangani ini?KN: Anda hanya perlu memberi tahu programmer: "Mengapa menurut Anda pengguna memiliki masalah ini? Apakah Anda pikir masalahnya ada dalam kode? Atau mungkin masalahnya adalah struktur layar? Apakah fontnya terlalu kecil? Warna tombol salah? Mungkin Anda melakukan sesuatu yang tidak standar? "
Karena jika Anda melihat sebagian besar alat dengan desain profesional, maka biasanya mereka cukup konsisten. Ada panduan desain tentang cara kerja barang.
Tim kreatif harus dapat menggunakan alat ini. Seharusnya mereka tidak harus membaca dokumentasinya. Di dunia yang ideal, semuanya harus jelas.
Hari ini ada desainer UX / UI, tetapi pada saat itu tidak ada, jadi kami harus membuat desain antarmuka sendiri, tetapi dengan umpan balik dari pengguna.
Jadi, duduk di sebelah pengguna dan lihat bagaimana mereka menggunakan alat ini. Kami menyaksikan bagaimana mereka bekerja di Lightwave. Ketika kami menulis versi pertama alat, kami duduk di dekatnya, tidak mendorong apa yang harus dilakukan, dan memandang mereka, membuat catatan, seperti "ada kesulitan dengan ini" atau "mereka terus-menerus harus naik ke menu untuk menemukan itu," atau "mungkin layak menjadikannya hotkey. " Lihat saja mereka, belajar dan beradaptasi.
Artinya, Anda harus benar-benar memikirkan alur kerja para desainer. Hal ini diperlukan untuk meminimalkan gerakan yang tidak perlu, meminimalkan perayapan pada menu, mencoba menambahkan tombol pintas. Kami secara aktif mempromosikan pintasan keyboard untuk semua fungsi karena mempercepat alur kerja. Dalam proses mempelajari alat, Anda sangat mempercepat pekerjaan dengan bantuan tombol pintas, dan Anda tidak perlu memanjat menu.
Tidak perlu jatuh ke dalam perangkap klasik untuk insinyur: "Saya lebih tahu, saya menulis instrumen, saya tahu cara kerjanya. Jika Anda tidak dapat menggunakannya, maka Anda hanya idiot. " Ini adalah hal terburuk yang bisa terjadi ketika mengembangkan alat.
JL: Nasihat yang bagus. Terima kasih banyak, Chris!