Bagaimana kita membangun pencarian dalam kenyataan
Tidak perlu menjelaskan sekali lagi apa pencarian dalam kenyataan dan apa yang mereka makan. Selain itu, topik ini telah dibahas lebih dari sekali tentang Habré (dan Gimetimes) [1] [2] [3] . Saya akan memberi tahu Anda bagaimana kami membangun "Space Odyssey" - yang paling rumit secara teknis dan mungkin anggaran tertinggi dari pencarian Claustrophobia.
Menurut legenda, tim pemain (dari 2 hingga 4 orang) adalah turis luar angkasa yang terbang ke galaksi tetangga untuk mempelajari peradaban luar angkasa. Tetapi ada sesuatu yang salah, dan sekarang pemain harus keluar dari situasi ini dalam satu jam dengan menyelesaikan berbagai teka-teki dengan listrik, udara terkompresi, panel kontrol komputer, kamera video dan augmented reality.Untuk melakukannya tanpa spoiler, saya tidak akan mengungkapkan prinsip-prinsip teka-teki, tetapi akan ada banyak detail teknis tentang cara kerja semuanya dari dalam. Atau, terkait dengan para pemain, di luar.Kami mencoba melepaskan diri dari konsep "setiap puzzle adalah perangkat yang independen." Struktur elektronik pencarian sangat mirip dengan rumah pintar: banyak modul dikelompokkan berdasarkan fungsi (dan bukan oleh logika game), jaringan data, dan server. Server gim secara terpusat mengontrol semua perangkat pencarian.Sebagai contoh, ini adalah bagaimana situasi terlihat dari sudut pandang pemain:- pemain menekan tombol
- lampu menyala
Dan itu benar-benar terjadi:- pemain menekan tombol
- unit input membaca status tombol
- blok masukan polling server
- server memilih tindakan yang diinginkan sesuai dengan skrip permainan
- server mengirim perintah ke blok output
- unit output memasok daya ke perlengkapan
Pendekatan ini memungkinkan Anda mengubah logika permainan, melacak statusnya, dan, jika perlu, mengintervensi operator untuk mengontrolnya secara manual.Diagram struktural dari pencarian (peningkatan klik-tayang): Diagram terlihat agak berat dan membingungkan, tetapi kemudian kita akan melihat setiap subsistem secara bergantian. Saya pikir layak menyimpan cerita dalam urutan kronologis, karena pencarian dibangun.
Mulailah
Pekerjaan pencarian dimulai dengan sketsa skrip, ruang kosong, dan antusiasme pencipta yang tiada habisnya. Perlahan-lahan, naskahnya dipenuhi dengan detail, desainer - dengan ide dan tata letak, insinyur - dengan diagram dan gambar, dan dinding kamar - dengan tanda ( "akan ada lubang palka", "puzzle", "dari sana - akan ada debu dan debu" ). Ketika semua orang menyetujui apa yang akan mereka bangun (setidaknya secara umum), pekerjaan dimulai.Dinding
Aluminium komposit dipilih sebagai bahan untuk dinding. Ini adalah bahan yang agak menarik: lapisan plastik (4 mm), dilapisi di kedua sisi dengan lapisan tipis aluminium. Sisi depan dilapisi, warnanya dapat bervariasi: dari putih ke hitam-antrasit. Komposit jika disentuh, sedingin logam, tidak menciptakan kesan "plastik murahan". Tapi, tidak seperti logam, itu tidak membuat suara booming saat tumbukan. Singkatnya, tugas "mengambil materi yang belum dijumpai kebanyakan orang dalam kehidupan sehari-hari" telah selesai.Lembaran lentur komposit tidak ditekan dengan tangan, jadi di bawahnya ada dinding kering pada kerangka baja (di tempat-tempat dengan geometri kompleks - bingkai kayu). Komposit mudah diproses: dapat dipotong, digergaji, digiling. Setelah menorehkan lapisan dalam, lembaran dapat ditekuk dengan lembut. Ini memungkinkan Anda membangun dekorasi yang rumit tanpa jahitan dan pengencang yang terlihat. Kami biasanya mencoba menghindari perangkat keras yang terlihat jika memungkinkan. Dinding dengan deretan baut dan paku keling cocok untuk suasana steampunk, tetapi tidak untuk kapal luar angkasa dari masa depan yang jauh.Dalam foto-foto itu, pemasangan dinding dan dekorasi dalam ayunan penuh. Sisi depan komposit ditutupi dengan film pelindung, yang akan dihapus hanya sebelum start. Di tempat-tempat di mana akan ada teka-teki dan elemen interaktif, ceruk dipotong terlebih dahulu dan kabel dibuat.


Langit-langit
Apa yang pemain lihat di atas kepala mereka adalah langit-langit palsu yang terbuat dari lembaran baja hitam berlubang. Solusi ini sangat nyaman karena semua komunikasi dapat disembunyikan di balik langit-langit. Anda dapat dengan mudah mengatur AC dan ventilasi, tanpa khawatir tentang fakta bahwa kisi-kisi akan menonjol di tempat-tempat yang paling tidak pantas. Di belakang langit-langit terdapat speaker dan mikrofon. Akhirnya, langit-langit menyembunyikan beberapa mekanisme teka-teki. Agar tidak ada yang bersinar melalui langit-langit palsu, semua permukaan di atasnya dicat dengan cat hitam matte. Berikut adalah pemasangan kabel untuk langit-langit:

Lantai
Lantai adalah "sandwich" dari beberapa lapisan. Bawah ke atas: screed beton, substrat, laminasi, linoleum gelap dan akhirnya lembar berlubang hitam, sama seperti di langit-langit. Linoleum mengurangi gemuruh dari langkah-langkah pada logam. Di lapisan laminasi, alur dibuat di mana lampu latar berada: profil aluminium dengan strip LED. Profil ditutupi oleh diffuser (belum dipasang di foto), permukaan atas yang rata dengan sisa lantai. Tidak ada slot di lembaran logam, cahaya terlihat melalui perforasi.
Penerangan lantai, seperti yang lainnya, memiliki dua kelompok, putih dan merah, yang berganti alur. Penerangan lantai memainkan peran dekoratif, kekuatannya beberapa kali lebih rendah dari kekuatan pencahayaan dinding dan langit-langit.Otomatisasi
Finishing dalam ayunan penuh, semua komunikasi diletakkan, saatnya untuk melakukan perangkat keras. Beginilah tampilan jalinan kabel yang berasal dari pencarian:
Semua perangkat game dapat dibagi menjadi empat kategori: komputer, aktuator, pencahayaan, dan puzzle.Komputer
Apa pesawat ruang angkasa tanpa banyak layar dan terminal kontrol? Dalam pencarian, total 7 komputer dengan 9 monitor diinstal. Jika logika tugas sesuai dengan skema "satu aplikasi - satu monitor", komputer nettop digunakan: ringkas, senyap, sedikit pemanasan. Di mana seharusnya menghasilkan gambar ke beberapa monitor sekaligus, ada insinyur sistem biasa dengan kartu video multi-kepala.Monitor - kerangka terbuka, dirancang untuk ATM dan terminal pembayaran, dibangun ke dalam pemandangan. Beberapa monitor sensitif sentuhan, dilengkapi dengan panel sentuh, sisanya hanya kacamata anti-perusak. Dua panel antarmuka dibuat berdasarkan tablet yang terpasang di dinding.Komputer disatukan dalam jaringan area lokal tempat semua aplikasi game berkomunikasi dengan server. Semua mesin dikonfigurasikan dengan akses jarak jauh, sehingga Anda dapat memperbarui atau memperbaiki sesuatu dalam perangkat lunak setidaknya selama permainan. Tablet ethernet tidak dapat dihubungkan ke tablet, sehingga mereka mengakses jaringan melalui Wi-Fi. Tidak mudah untuk menempatkan titik akses sedemikian rupa untuk memastikan koneksi normal. Kamar ini memiliki dinding tebal, dan bahkan kelongsong logam berfungsi seperti sangkar Faraday: wifi ditangkap hanya dalam garis pandang.Mekanisme eksekutif
Kategori pencarian berikutnya adalah perangkat keras - aktuator yang harus dikontrol dalam mode on-off. Ini adalah penggerak pintu, kunci elektromagnetik, katup pneumatik - total satu setengah lusin saluran. Beberapa beban beroperasi dari 220 V, beberapa dari 12 V. Modul otomasi industri digunakan untuk mengendalikan semua mekanisme ini.
Kotak ini adalah modul keluaran terpisah. Ia menerima perintah melalui antarmuka RS-485 dan memiliki delapan output relai independen. Dua modul ini melayani semua aktuator. Beban yang kuat, seperti motor, terhubung melalui relai antara. Semua modul terhubung ke satu jaringan dan dikendalikan oleh server melalui konverter USB / RS-485 menggunakan protokol MODBUS.Petir
Total sekitar 50 meter strip LED menerangi kapal. Semua pencahayaan dibagi menjadi utama (putih) dan darurat (merah), kelompok-kelompok ini dihidupkan pada waktu yang berbeda sesuai dengan alur pencarian. Untuk mengontrol cahaya, modul industri yang sama digunakan untuk aktuator, tetapi tidak dengan relay, tetapi dengan output analog.Modul ini memiliki 6 output, yang masing-masing dapat memberikan tegangan dari 0 hingga 10 V dalam kenaikan 0,1%. Sinyal-sinyal ini mengontrol dimmer multi-channel melalui mana pencahayaan diumpankan. Dengan demikian, kami mendapat kesempatan untuk dengan lancar dan mandiri mengubah kecerahan dari setiap kelompok lampu latar atas perintah server.
Seperti inilah kabinet otomasi yang terpasang penuh:
1. blok untuk aktuator;2. blok untuk penerangan;3. modul output diskrit;4. catu daya untuk elektronik kontrol (24 V);5. RS-485 / USB converter;6. modul keluaran analog;7. dimmer;8. catu daya strip LED (12 V, terletak di belakang dimmer).Teka-teki
Banyak teka-teki memiliki otak mikrokontroler sendiri. Lebih tepatnya, bahkan otak kecil, karena hanya mentransmisikan statusnya ke server, dan menerima perintah darinya. Modul teka-teki terhubung ke bus MODBUS yang sama dengan yang ditawarkan.Mereka menganggapnya sebagai platform untuk teka-teki ... Siapa bilang Arduino? Tidak, ini sedikit lebih dingin. Kami telah mengembangkan papan terpadu khusus untuk pencarian. Ini termasuk inti (pengontrol ATmega32), konverter RS-485 / UART, sumber daya (input hingga 36 V, output 5 V), beberapa transistor daya untuk mengontrol berbagai beban, dan beberapa bola lampu - kedip untuk kecantikan debugging. Inilah mereka, dalam kelompok yang rapi menunggu pemurnian bagian-bagian:
Inilah papan yang sudah disusun:
Dan inilah tampilannya di habitat aslinya (salah satu teka-teki dari sisi yang salah):
Papan tersambung ke jaringan menggunakan kabel twisted pair biasa, data (RS-485) dan catu daya (24 V) menggunakan kabel yang sama. Secara total, 8 papan digunakan dalam pencarian. Saya ulangi bahwa semuanya sama, teka-teki hanya berbeda dalam skema koneksi dan firmware. Papan sangat sukses sehingga pencarian kami berikutnya (Recording Studio) juga dibangun di atasnya.Udara
Salah satu teka-teki membutuhkan udara terkompresi, dan ini menyebabkan kesulitan yang tidak terduga. Kompresor biasa terlalu keras, bahkan dapat didengar dari kamar sebelah. Solusinya ditemukan dalam bentuk kompresor gigi, yang pada orang normal memberi makan bor dengan udara. Bukan berarti sangat tenang (biasanya tenggelam oleh suara bor itu sendiri dan tangisan pasien ), tetapi jauh lebih tenang daripada yang konstruksi. Jika kompresor tersembunyi di perut kapal dan juga kedap suara, maka hampir tidak terdengar.
Kompresor dihidupkan terlebih dahulu untuk menambah tekanan pada penerima pada saat pemain mencapai puzzle udara.Kabin tim
Jantung kapal adalah kabin tim, tersedia untuk pemain dari paruh kedua pertandingan. Sebuah remote control dengan monitor dan sekelompok indikator bercahaya membentang di seluruh lebar kabin. Pada tahap konstruksi, semuanya terlihat jauh lebih sederhana:
Ada dua layar proyeksi di atas konsol, menunjukkan langit berbintang selama pertandingan (dan juga █████████ ). Layar terbuat dari kaca akrilik dengan film tembus khusus yang dilekatkan padanya. Proyektor terletak di belakang layar, yang menyebabkan beberapa kesulitan, karena sangat sedikit ruang. Untungnya, ada proyektor lemparan ultra-pendek yang dapat digantung hampir di dekat layar. Karena layar terletak pada sudut, dudukan proyeksi standar harus dimodifikasi tanpa ampun oleh penggiling dan digantung dari langit-langit dengan stiletto, dalam posisi miring.
Dinding di belakang layar dicat hitam matte untuk menghindari pantulan. Ketika proyektor mati, tidak ada yang terlihat melalui layar:
Tombol sentuh
Agar kendali jarak jauh tidak tampak seperti selembar plastik yang tak bernyawa, mereka memutuskan untuk memakainya dengan tombol dan bohlam yang lebih berbeda yang tidak berguna, tetapi membuat rombongan. Kami memiliki kapal dari masa depan yang jauh, sehingga Anda tidak dapat merusak desain minimalis dengan sakelar sakelar dan sakelar pisau. Tombol memutuskan untuk melakukan sentuhan.Setiap sensor adalah papan kecil terpisah tempat mikrokontroler (ATtiny13) dan LED RGB dipasang. Remote control terbuat dari selembar plastik putih, dan sensor dipasang di bagian bawah lembar ini. Plastiknya tembus cahaya, sehingga LED bersinar, sementara tidak ada yang menonjol dari luar. Sirkuit merespons menyentuh panel dengan mengubah kapasitansi antena. Antena adalah sepotong kawat yang menyatu ke panel dari dalam. Seperti inilah tampilan modul sensor dan antena kosong:
Setiap modul terpaku pada tempatnya, terhubung ke antena dan daya. Sebuah lubang telah dipotong untuk setiap tombol, di mana ia diletakkan ketika panel diletakkan di tempatnya:
Ada sekitar 100 modul seperti itu secara total. Karena produksi massal, mereka ternyata lebih murah daripada tombol mekanis yang sudah jadi dengan backlight (belum lagi sentuhan).Pemantauan video
Operator terus memantau kemajuan permainan, siap untuk campur tangan jika terjadi kesalahan. Di tempat pencarian terpasang kamera IP pengintai kubah. Aliran video ditransmisikan ke komputer operator dan secara bersamaan direkam dalam arsip.Kamera memiliki mikrofon built-in sendiri, suara dari mana juga pergi ke arsip. Namun, untuk pemantauan real-time, ada mikrofon "desis" yang terpisah. Sinyal dari mereka tidak didigitalkan, tetapi dikeluarkan melalui mixer ke ruang operator. Ini menghindari penundaan, yang sangat tidak menyenangkan ketika operator berkomunikasi dengan para pemain.Siaran audio
Quest ini memiliki dua sistem penyiaran audio independen: satu untuk suara game dan musik latar, yang kedua untuk pesan operator. Kami menggunakan speaker aktif biasa (sekitar 20 watt per kamar), yang tersembunyi di balik langit-langit palsu. Seperti yang ditunjukkan oleh pengalaman, ini bukan pilihan terbaik. Pembicara suka menangkap semua jenis gangguan dan gangguan (terutama dari ponsel). Lebih baik menempatkan speaker plafon pasif dan amplifier eksternal.Tombol bantuan
Pemain dapat meminta petunjuk kapan saja dengan mengklik tombol khusus. Dalam hal ini, operator membunyikan sinyal. Dalam pencarian lain, mereka sering menggunakan panggilan nirkabel untuk ini - murah dan ceria. Opsi ini tidak cocok untuk kita. Pertama, tombol panggil tidak cocok dengan interior pesawat ruang angkasa. Kedua, seperti yang telah disebutkan, penutup dinding dengan sempurna melemahkan semua sinyal radio. Saya harus memasang tombol dengan lampu latar di dinding dan menjalankan kabel terpisah dari itu ke ruang kamera.
Inilah yang terlihat seperti tempat kerja operator:
Gambar dari kamera pengintai ditampilkan pada satu monitor, yang kedua berfungsi untuk mengontrol permainan dan mengelola. Server memiliki antarmuka web, yang menunjukkan kemajuan permainan, status semua aplikasi dan perangkat, serta tombol untuk kontrol manual.Tanya jawab
Hampir satu tahun telah berlalu sejak pembukaan Space Odyssey, dan beberapa kesimpulan menengah dapat ditarik pada karya pencarian. Satu atau dua bulan pertama setelah peluncuran ada periode kesalahan penangkapan. Tanpa mereka, tidak ada tempat, terutama dalam sistem perangkat keras-perangkat lunak yang sedemikian kompleks. Sebagian besar bug diidentifikasi pada tahap uji permainan, sebelum pembukaan resmi, tetapi beberapa kesalahan yang paling berbahaya dengan sabar menunggu dalam penyergapan.Selama beberapa bulan berikutnya, pencarian lulus "tes kekuatan." Ini adalah satu hal untuk mengalami semuanya sendiri, dan benar-benar lain - ke tangan para pemain tanpa ampun. Jadi kami terkejut mengetahui bahwa salah satu teka-teki tidak memiliki dua solusi, tetapi empat. Tetapi lebih sering penemuan itu tidak begitu menyenangkan. Satu per satu, berbagai elemen gagal. Sebagian karena pengembangan sumber daya, sebagian karena fakta bahwa pemain tidak hanya pintar, tetapi juga kuat.Secara bertahap, kami mengganti bagian-bagian dengan yang lebih tahan lama, mengerjakan ulang beberapa elemen. Beberapa teka-teki telah sepenuhnya dibangun kembali, termasuk mekanik desain dan permainan. Misalnya, dalam salah satu tugas itu perlu, menggunakan endoskop, untuk menemukan petunjuk tersembunyi. Kemudian tiba-tiba ternyata ada tugas yang sangat mirip dalam pencarian lain. Sekarang kita tidak memiliki endoskop, dan bukannya itu - perangkat yang sama sekali berbeda.Terakhir, saya akan memberi tahu Anda beberapa case paling mencolok dari game kami.Kontrol manual sepenuhnya
Dalam pencarian semua pintu otomatis. Dalam cara yang baik, itu perlu untuk menempatkan pintu geser pneumatik (seperti di kereta bawah tanah), tetapi tidak ada ruang yang cukup untuk mereka (dan pengalaman dengan pneumatik). Alhasil, mereka memasang roller shutters bermotor. Pada satu titik, relai yang mengontrol salah satu pintu terbakar. Apa yang harus dilakukan di sini dapat dipahami: untuk menempatkan relai keadaan yang lebih kuat, dan lebih baik. Tapi itu butuh waktu, dan permainan berjalan, pertunjukan harus berlanjut. Akibatnya, operator diberikan lompatan khusus dan instruksi: pada waktu yang tepat, tutup kontak ini dan itu di perisai. Akhir pekan dimainkan dengan kontrol manual.Peringatan! Pintu ditutup
Tidak semua baik-baik saja dengan pintu-pintu ini. Seperti yang saya katakan, pemain terkadang kuat. Dan di sini adalah salah satu pemain ini rolling shutter poddelyaet dan kenaikan brengsek. Kanvas membungkuk dengan huruf S di suatu tempat di dalam pemandangan dan naik. Setelah pertandingan, operator mencoba untuk membawa pencarian ke keadaan semula, memberikan perintah untuk menutup pintu - pintu tidak menutup. Lalu dia mengambil kanvas dan menariknya kembali. Dengkur! Daun pintu jatuh ke tempatnya dan putus di suatu tempat di atas, di drive itu sendiri.Inti dari situasi ini adalah Anda hanya dapat mencapai drive dari dalam, dari ruangan di mana pintu masuk ditutup oleh kanvas yang sobek. Pada akhirnya, ia berhasil mengangkat 30 sentimeter dari lantai dan naik ke sana, lalu menempelkan tangga dan alat.Aturan jahat
Pada titik tertentu dalam cerita, sebuah palka tersembunyi terbuka, setelah itu pemain menemukan item berguna lainnya. Penggerak sunroof adalah listrik, sunroof dilengkapi dengan sakelar batas "sepenuhnya terbuka" dan "sepenuhnya tertutup", yang mematikan motor. Begitu posisi trailer tertutup menolak. Motor berhenti, sedikit menekuk palka dan memutar salah satu bagian drive, yang menghalangi saklar batas posisi terbuka. Berlayar Anda dapat mencapai drive hanya melalui palka, ditutup. Tetapi Anda tidak dapat membukanya, karena sistem percaya bahwa palka sudah terbuka penuh (trailernya dijepit), dan tidak memasok daya ke mesin.Luke akhirnya berhasil membuka, sedikit merusak kulit di sekitarnya. Sistem sakelar batas telah sepenuhnya diperbaiki sehingga ini tidak terjadi lagi. Dan jika terjadi kebakaran, sakelar sakelar dibuat, yang memasok daya ke motor dengan melewati sakelar batas. Sayangnya, saya tidak bisa mengeluarkannya dari pencarian tanpa membongkar setengah kapal. Jadi sakelar sakelar diputar ke sudut langit-langit terjauh dan paling gelap, dengan harapan tidak ada yang akan menemukannya.Sia-sia mereka berharap. Dalam waktu kurang dari dua minggu, satu pemain yang agak tinggi menemukan toggle switch ini - dan menekan, terlebih lagi, untuk menutup palka. Motor menarik, drive terlepas di tempat yang dibuat khusus dan palka terbuka dengan tabrakan. Untungnya, tidak ada yang terluka, para pemain lolos dengan sedikit terkejut. Sakelar sakelar itu sekarang dikacaukan dengan colokan khusus, tetapi Anda masih tidak bisa bersantai - tidak ada yang membatalkan hukum Murphy. Source: https://habr.com/ru/post/id385799/
All Articles