Bagaimana cara menerapkan "bullet time" dalam game multi-pemain?


29

Saya belum pernah melihat fitur seperti itu sebelumnya, tetapi seharusnya memberikan peluang gameplay yang menarik.

Jadi ya, dalam lingkungan multi-pemain / waktu nyata (bayangkan FPS), bagaimana saya bisa menerapkan efek waktu gerak / peluru yang lambat?

Sesuatu seperti ilusi untuk pemain yang saat ini masih hidup. Jadi semua orang melihatnya "real-time", tetapi dia melihat semuanya melambat.

Memperbarui

A sidenote: perlu diingat bahwa game FPS harus seimbang agar bisa menyenangkan. Jadi ya, fitur bullet time ini harus solid, memberikan keuntungan kecil bagi "pemain", sementara tidak mengambil dari pemain lain.

Plus, ada kemungkinan bahwa dua pemain dapat mengaktifkan waktu peluru mereka pada saat yang sama.

Selanjutnya:

Saya akan menerapkan ini di masa depan, apa pun yang diperlukan. Dan, idenya adalah untuk membangun mesin permainan yang sama sekali baru untuk semua ini. Jika itu memberikan opsi baru, saya lebih tertarik untuk mendengar ide-idenya.

Sementara itu, di sini dengan tim saya, kami juga memikirkan hal ini, ketika teori kami akan dibuat, saya akan membagikannya di sini.

Apakah ini mungkin? Jadi, pertanyaan tentang "apakah ini mungkin" telah dijawab, sekarang saatnya untuk menemukan solusi terbaik.

Saya menyimpan "jawaban" sampai sesuatu yang sangat bagus muncul, seperti teori prototipe dengan sesuatu yang dekat dengan kode pseudo yang berfungsi.

Apa yang dikatakan fisikawan dan filsuf:

Tautan tersebut sesuai minat Anda, karena topik ditutup.

https://physics.stackexchange.com/questions/17118/time-traveling-and-time-dilation-within-a-multiplayer-videogame

https://philosophy.stackexchange.com/questions/1704/seeing-everything-in-slow-motion-but-being-real-time

Kondisi yang saya pikirkan ketika menulis pertanyaan di situs fisika (disalin):

  1. Pemain di bawah pengaruh gerakan lambat memiliki keuntungan untuk membuat tindakan yang lebih tepat (menembak, gerakan, dll.), Karena melihat segala sesuatu dalam kecepatan yang jauh lebih lambat.
  2. Tindakannya harus memengaruhi pemain lain secara real-time.
  3. Para pemain melihat pemain kami yang terkena dampak, tidak melihat perbedaan, kecuali mereka dapat mengalami tindakan yang telah dilakukannya (seperti, pemain ditembak / terkena roket yang terkena dampak).
  4. Ketika pemain keluar dari efek ini, ia hanya melanjutkan dengan kecepatan yang sama seperti biasa. (Jika ini tidak mungkin, maka saya kira dia harus menderita sampai waktunya disinkronkan kembali)

Referensi tentang waktu peluru (gerakan lambat):

Sayangnya, sebagian besar implementasi hanya pemain tunggal

http://www.gamesradar.com/a-videogame-history-of-bullet-time/


3
Ini sudah berhasil dilakukan dalam MMORPG The Matrix Online. Anda mengalami waktu peluru saat berkelahi dengan lawan saat Anda masuk ke "Interlock" berkelahi dengan mereka. Ini dilakukan dengan lawan PvE dan PvP. Semua orang di luar Interlock melihat "kecepatan real-time." Mengomentari alih-alih menjawab karena saya tidak memiliki keahlian atau pengetahuan untuk menjelaskan bagaimana mereka melakukannya, saya hanya tahu apa yang terjadi dari sudut pandang pemain.
FallenAngelEyes

3
Ini juga hadir di FEAR Combat. Di multipemain, ada mode permainan yang disebut SloMoDeathmatch. Ini adalah permainan gratis jika saya ingat dengan benar, jadi jika Anda ingin mencobanya unduh dan lihat apakah masih ada beberapa server yang tersisa.
alextsc

3
Saya tidak berpikir menyatakan bahwa Anda sedang menunggu kodesemu akan membantu jawaban. Setelah desain yang Anda inginkan cukup solid kode harus jelas.
Tetrad

1
Juga, "Tidak peduli apa yang diperlukan" berbau filosofi desain yang buruk. Sepertinya Anda hanya harus melakukan itu setelah Anda membuktikan (melalui prototipe atau contoh yang berfungsi di game lain) metode yang Anda rencanakan untuk digunakan sebelum melangkah maju.
Tetrad

4
-1 untuk "Saya menyimpan 'jawaban' sampai sesuatu yang sangat bagus muncul, seperti prototipe dengan sesuatu yang dekat dengan kode pseudo yang berfungsi." Jangan menjadi brengsek.
Trevor Powell

Jawaban:


22

Sudah pernah dilakukan sebelumnya. :) Lihat spesialis , mod setengah kehidupan yang memiliki dua powerup waktu peluru yang berbeda.

Sunting untuk memasukkan info zzzzbov di bawah ini

Cara waktu peluru bekerja di "The Specialists" dari perspektif gameplay adalah bahwa pemain bisa mendapatkan powerups yang akan memberikan jumlah "waktu peluru" yang terbatas. Saat digunakan, gelembung di sekitar pemain akan memiliki fisika yang melambat.

Pemain yang jauh akan bergerak dengan kecepatan normal, tetapi apa pun yang ada di dalam gelembung (peluru, pemain, ledakan) akan melambat. Pemain yang menggunakan power-up akan bergerak sedikit lebih cepat, memungkinkan mereka untuk melarikan diri atau menggunakan aksi untuk menghindari peluru.

Siapa pun yang terperangkap dalam gelembung "waktu-peluru" masih memiliki keuntungan karena dapat melihat apa yang akan terjadi, tetapi perbedaan kecepatan relatif antara pemain yang tertangkap dan peluru tetap sama, sehingga kemampuan untuk bereaksi secara praktis tidak ada.


@ Tom IIRC, ini open source, jadi Anda harus bisa melihat bagaimana mereka melakukannya.
Spencer Rathbun

Hmm, pencarian Google tidak menghasilkan apa-apa tentang kode sumber. (ditambah banyak sekali informasi tentang The Specialists: Source juga ditampilkan). Punya tautan atau apa?
joltmode

@ Tom saya pikir itu ada di situs web mereka, yang harus ditautkan dalam artikel wikipedia. Jika tidak, mereka mungkin telah menurunkannya, karena mereka pindah ke mesin HL2 beberapa tahun yang lalu. Anda mungkin perlu mengirim email kepada devs untuk mendapatkan akses. Tentu saja, saya bisa dicuci juga.
Spencer Rathbun

Situs web mereka juga tidak berfungsi ..
joltmode

5
Saya akan menambahkan jawaban yang sama sampai saya menemukan jawaban ini. Cara waktu peluru bekerja di "The Specialists" dari perspektif gameplay adalah bahwa pemain bisa mendapatkan powerups yang akan memberikan jumlah "waktu peluru" yang terbatas. Saat digunakan, gelembung di sekitar pemain akan memiliki fisika yang melambat. Pemain yang jauh akan bergerak dengan kecepatan normal, tetapi apa pun yang ada di dalam gelembung (peluru, pemain, ledakan) akan melambat. Pemain yang menggunakan power-up akan bergerak sedikit lebih cepat, memungkinkan mereka untuk melarikan diri atau menggunakan aksi untuk menghindari peluru.
zzzzBov

12

Saya tidak bisa memikirkan permainan apa pun yang memiliki waktu peluru di pemain tunggal yang mentransisikannya dengan sukses menjadi multi pemain dengan cara apa pun yang berarti. Mungkin ada beberapa dari mereka yang menyelesaikannya dengan mempercepat pemain yang menggunakannya, tetapi hal itu mengalahkan intinya.

Waktu peluru ada karena Anda ingin membuat pemain merasa seperti seorang badass. Anda memberi pemain keuntungan yang tampaknya tidak adil melalui simulasi persepsi tingkat yang lebih tinggi. Hasil akhir dari ini adalah bahwa pemain dapat membidik sambil melakukan hal-hal keren seperti melompat keluar dari penutup dan sebagainya. Jika Anda hanya mempercepat pemain saat mereka memiliki waktu peluru diaktifkan maka Anda memberi mereka lebih sedikit waktu untuk bereaksi, yang merupakan kebalikan dari apa yang Anda inginkan.

Dalam lingkungan multi-pemain yang sinkron, sebenarnya tidak ada solusi untuk "waktu melambat" yang diaktifkan pengguna yang mensimulasikan perasaan yang datang dari menggunakannya dalam lingkungan pemain tunggal. Jika waktu itu sendiri diperlambat, maka persepsi semua orang naik. Khususnya dalam gim PC yang bertujuan membidik mouse secara instan, semua orang akan mendapat manfaat dari target yang bergerak lebih lambat.

Sekarang, jika Anda sudah mati-matian mengatur ini, saran saya adalah, alih-alih menjadikannya fitur yang diaktifkan pemain, buatlah itu semacam "keadaan" pertemuan. Berpikirlah seperti film John Woo di mana itu adalah orang baik vs orang jahat dan semuanya tampak melambat saat mereka saling menembak. Jadi ketika "pertemuan" dimulai, nyalakan slo-mo dan Anda bisa mendapatkan beberapa efek menarik. Orang-orang melompat-lompat dan barang-barang memantul dari tembakan peluru yang hilang melayang di udara, dan semua itu. Tentu saja, ini hanya akan bekerja untuk permainan 1 lawan 1. Anda tidak akan mendapatkan keuntungan sepihak dari waktu peluru seperti dalam permainan pemain tunggal, tapi itu mungkin pengalaman bermain yang menarik.


1
Itu bisa diperluas menjadi lebih dari 1 banding 1 dengan hanya memperlambat orang yang bisa melihat satu sama lain, maka segera setelah orang lain melihatnya, memperlambatnya juga. Dengan begitu semua orang adalah kecepatan normal, sampai mereka bertengkar.
George Duckett

Anda dapat mengatasi masalah tujuan instan dengan membatasi laju belokan - masalah sebenarnya adalah bahwa dalam sistem yang benar tidak ada orang lain yang akan terpengaruh oleh kerangka acuan baru; seharusnya hanya melihat pemain dalam waktu singkat sedang dipercepat.
Jonathan Dickinson

Jangan memperlambat semua orang. Bekukan pemain lain hingga waktu peluru hampir habis. Anda ingin mengatur waktu sedemikian rupa sehingga ketika waktu peluru berakhir, garis waktu disinkronkan lagi.
Martin Sojka

Sejauh ini, inilah satu-satunya jawaban yang mencakup poin yang relevan: Anda tidak mempercepat atau memperlambat waktu. Anda memperlambat kecepatan simulasi sehingga pemain memiliki lebih banyak waktu untuk bereaksi dan merencanakan gerakan yang, jika dilakukan secara waktu nyata, akan terjadi dengan cepat untuk mengontrol. Untuk membuat ini bekerja dari sudut pandang gameplay, semua pemain yang terlibat (baik menonton atau berpartisipasi dalam aksi) harus diperlambat, dan semua pemain yang tidak terkait (yang tidak dekat untuk menyaksikan perlambatan) akan melanjutkan dengan kecepatan normal. Jika Anda tidak memperlambat semua orang yang dapat melihat acara tersebut, itu akan terlihat bodoh.
MrCranky

Video game Max Payne menggunakan "bullet-time" sebagai kemampuan dalam game. Beberapa game Star Wars Jedi (Jedi Knight II pasti) juga memiliki "Force Speed", yang mempercepat Anda dengan memperlambat semua orang (kecuali pengguna Force Speed ​​lainnya).
KeithS

8

Pikiran Umum

Ini adalah masalah yang paling baik dideskripsikan menggunakan relativitas umum - ambil contoh fakta bahwa Anda dapat melihat efek waktu peluru dengan hanya melihat melalui teleskop Anda di satelit (penyebab neutrino terkenal melakukan perjalanan lebih cepat daripada masalah cahaya) - persamaan yang dipecahkan ada dalam kondisi ini; artinya itu sepenuhnya mungkin.

Gim Anda harus dapat menangani kerangka referensi yang terpisah - sejauh yang saya tahu efek bersihnya adalah ('pemain' adalah orang dengan waktu aktif peluru):

  • Orang-orang yang melihat pemain akan melihat mereka bergerak sangat cepat.
  • Pemain akan melihat orang bergerak sangat lambat.
  • Pemain akan bergerak ke masa lalu / masa depan dengan mengacu pada orang lain.

Beruntung bagi Anda ini berarti bahwa seorang pemain dalam waktu singkat memang memiliki keunggulan dibandingkan orang lain; mereka tidak mungkin membidiknya - namun itu tidak akan meyakinkan karena rata-rata orang akan berharap untuk melihat tidak ada perbedaan yang terlihat ketika mengamati pelebaran waktu.

Saya sangat menyarankan Anda memposting ini pada fisika (menunjukkan itu adalah permainan, tetapi Anda membutuhkan pengetahuan teoritis nyata) dan meminta ide bagaimana Anda akan memperkirakan efek dalam simulasi bersamaan.

Salah satu solusi yang mungkin saya akan lihat adalah memiliki dunia mengejar ketinggalan dengan pemain (karena ia telah pindah ke masa depan) dengan meminta semua orang mengalami jumlah progresif (jauh lebih sedikit daripada waktu peluru aktual) dari waktu peluru tergantung pada jauh di belakang (dalam waktu) mereka. Dengan cara ini Anda dapat memperkirakan perbedaan waktu tanpa benar-benar harus berurusan dengan menyimpan kondisi masa lalu dll. Anda perlu beberapa cara untuk menjelaskan efek ini, 'waktu pulih' atau sesuatu, karena itu secara fisik tidak benar.

Gagasan lain adalah menyalahgunakan persamaan fisika paling dasar ( s = d/t), ketika seorang pemain memasuki waktu peluru, segalanya menjadi lebih kecil - jika Anda membagi dua ukuran segala sesuatu dari sudut pandangnya, tetapi pertahankan kecepatannya sama sesuai dengan kerangka referensi aslinya, (secara efektif gandakan) persamaan akan tetap seimbang. Urutan warp drive dalam film luar angkasa menggunakan dilasi ruang ini untuk menggambarkan efek - sehingga orang terbiasa melihatnya.

Solusi Aktual

Saya telah memikirkan hal ini lebih jauh. Jika Anda melihat bagaimana sistem jaringan Steamworks bekerja ( apakah seseorang memiliki tautan? ) Server terus maju dalam waktu dengan jumlah tertentu; dan setiap klien tahu tentang kerangka 'selanjutnya' yang perlu diinterpolasi.

Katakanlah misalnya bahwa server 20ms di depan semua pemain. Ketika seorang pemain memasuki bullet time, ubah interval pembaruannya menjadi 40ms (simulasinya akan berjalan pada 40ms time-step dan server akan mengantrikan tindakannya 40ms ke masa depan) - yang pada dasarnya akan mendorong ke masa depan dengan merujuk pada pemain lain: selain itu untuk membuatnya bergerak lebih cepat dari referensi mereka dan membuat mereka bergerak lebih lambat dari miliknya. Begitu dia meninggalkan waktu peluru, berikan orang lain keuntungan 5 ms darinya sehingga mereka bisa bermain 'mengejar ketinggalan' (ini time reboundmilikmu, pemain pintar yang kebetulan akan menembakkan waktu selama periode pengejaran ini). Mungkin terlihat sedikit lebih baik jika Anda memetakan parabola ke langkah waktunya - ini akan membuat segalanya melambat, berhenti dan kemudian secara bertahap mempercepat lagi.

Penafian: Saya bukan fisikawan, tetapi saya memiliki pengetahuan relativitas yang bisa diterapkan.


4

Saya ingin menambahkan $ 0,02 saya, karena saya menerapkan mode bullet-waktu prototipe yang bekerja di game multipemain untuk Heroes Over Europe .

Dalam pemain tunggal, menekan tombol pada saat yang tepat akan memperlambat waktu, dan memperbesar target yang Anda tuju. Saya tidak ingin memperlambat waktu secara global dalam multipemain untuk mereplikasi fitur ini (karena permainan ini untuk mendukung 16 pemain simultan!), Jadi saya menggunakan metode "gelembung".

Khususnya, ketika mode waktu-peluru dipicu, sebuah bola dibuat di sekitar pesawat target. Tingkat berlalunya waktu berubah tergantung jarak ke pusat bola; waktu terdegradasi secara linear dari permukaannya ke nilai minimum di suatu tempat dekat pusat. Laju juga berubah sebagai fungsi dari berapa lama bola itu ada, dan berapa lama bola itu tersisa sebelum "menguap".

Ini disinkronkan di seluruh mesin dengan mengirimkan paket yang menentukan waktu mulai di masa mendatang untuk gelembung; ini memungkinkan efek untuk tetap sinkron terlepas dari latensi. (Demikian pula, ketika efeknya berakhir lebih awal, sebuah paket akan menyatakan waktu di mana ia akan berakhir.)

Tingkat berlalunya waktu selalu didefinisikan secara fungsional: diberikan definisi bola, waktu saat ini dan posisi, itu mungkin untuk menentukan seberapa cepat waktu mengalir.

Agar efeknya berfungsi, beberapa sistem permainan harus disesuaikan dengan definisi waktu "fungsional" ini. Pesawat terbang, peluru, misil dan efek lainnya masing-masing menggunakan individu dtyang berhasil dengan memanggil fungsi yang sesuai. Sebagian besar pekerjaan dalam membuat prototipe berfungsi dihabiskan di sini.

Hasilnya bekerja dengan cukup baik: seorang pemain yang ditargetkan oleh waktu peluru akan terasa melambat, dan memiliki kesempatan (kecil) untuk bermanuver keluar dari rambut lintas agresor mereka dan menjauh dari hujan peluru gerak lambat. Pemain terdekat bisa melihat pesawat dan peluru saling menghindar dalam gerakan lambat, tetapi sebaliknya tidak terpengaruh.

Perhatikan bahwa pemain pemicu juga melambat, tetapi tidak sepenuhnya diuntungkan olehnya: mereka memiliki pandangan yang diperbesar dari target mereka dan dapat memengaruhi satu tembakan tembakan pada mangsa mereka. Pemain lain dapat mencoba untuk membunuh Anda (atau membunuh mencuri!) Di negara ini, tetapi pesawat mereka (dan peluru mereka) akan terpengaruh ketika memasuki gelembung, memberi Anda waktu untuk melarikan diri.

Sayangnya, saat ini berfungsi, kami tidak pernah punya waktu untuk menyelesaikan dan memoles fitur untuk multi-pemain, jadi itu dibatalkan. (Pemain tunggal masih menyimpan fitur, sebagai "Ace Kill".)


2

Bukan waktu yang tepat, tetapi bisa menyenangkan:

Bagaimana dengan sesuatu yang mirip dengan cara Braid melakukan hal yang memperlambat waktu? Yaitu semakin dekat dengan orang yang mengalami waktu peluru, semakin lambat segalanya berjalan ... dan jika Anda berada di luar lingkup pengaruh, waktu mengalir secara normal.

... misalnya, jika Pemain A menggunakan waktu peluru, ia menempatkan bola bertahap "waktu lambat" di sekelilingnya sehingga ia dapat membidik dengan benar, tetapi tidak harus bergerak lebih cepat - maka Pemain B yang menembakkan peluru ke arahnya harus terlalu memprediksi di mana peluru akan mengenai, karena akan memperlambat semakin dekat dengan dia.

Meskipun, semakin saya memikirkan hal ini, semakin sedikit saya pikir itu akan berhasil, karena itu hanya bisa membuat Pemain A menjadi sasaran empuk (karena kepalanya akan melambat?) - tetapi akan menarik untuk melihatnya dalam 3D.


1
Memang menarik, tetapi jika peluru melambat semakin dekat ke pemain, ia harus bisa mengelak.
joltmode

Ya, tetapi seperti dalam Braid, pemain itu sendiri juga melambat - yaitu, pemain yang memutar kecepatan masih bisa cepat, jadi memblokir, atau perisai akan lebih mudah digunakan untuk menghindari peluru, tetapi gerakan sebenarnya terbang di udara untuk keluar cara peluru akan lebih lambat ...
Seb

2

Saya tahu ini adalah pertanyaan lama tapi saya kesulitan tidak menyebutkan masalah dengan sebagian besar jawaban yang berhubungan dengan relativitas

Diimplementasikan dengan efek seperti yang dijelaskan dalam pertanyaan, waktu peluru dalam multipemain tidak mungkin.

Alasan dengan adalah bagaimana relativitas bekerja; beberapa dari Anda di sini telah menyebutkannya dan jelas memahami relativitas, tetapi masalahnya adalah bahwa model Anda tidak diatur dengan benar.

Banyak orang telah menggunakan "referensi Player A vs Player B" dalam jawaban Anda tetapi sayangnya tidak satu pun dari hal-hal itu benar-benar ada. Ya, Anda memiliki pemain, mungkin bahkan banyak dari mereka, dan ya mereka dapat mengontrol dan berinteraksi dengan dunia mereka dan memiliki perspektif permainan sendiri, tetapi perspektif bukanlah titik acuan waktu: hanya ruang XYZ yang diproyeksikan ke XY pesawat.

Hanya ada satu titik referensi waktu dan itu adalah server (atau host). Hanya ada satu pandangan tentang keadaan fisik dunia dan karenanya hanya satu titik rujukan. Apa yang pemain lihat di layar mereka adalah tampilan grafis yang berbeda dari simulasi fisik yang sama.

Untuk memiliki satu pemain melihat simulasi berjalan pada satu kecepatan dan yang lain melihat simulasi yang sama pada kecepatan lain dan tidak memiliki desync hanya tidak mungkin. Di suatu tempat, sesuatu harus diberikan.

Upaya apa pun untuk memiliki beberapa simulasi atau menjalankan server di depan klien tidak masuk akal. Efek seperti yang dijelaskan dalam posting tidak dapat dilakukan tanpa memaksakan titik referensi tunggal atau membiarkan pemikiran menjadi tidak jelas dan memberi tahu para pemain bahwa tindakan mereka tidak benar-benar terjadi setelah fakta.

Saya pikir solusi terbaik mirip dengan yang sudah diberikan yaitu memiliki efek seperti kepang di mana kecepatan Anda diubah dalam gelembung di sekitar pemain. Yang sedang berkata, pemain tidak akan melambat dan gelembung akan selalu diposisikan dan dipindahkan bersamanya di tengah. Ini membuatnya agar pemain bergerak dengan kecepatan penuh sementara yang terdekat dengannya merasa melambat. Dia mendapatkan kekuatannya untuk mendapatkan keuntungan dan orang-orang yang jauh dari daerah itu tidak merasakan efek. Mereka yang dekat diperlambat tetapi akan jelas bahwa seseorang menggunakan power up (saya sarankan menyoroti pemain entah bagaimana yang menggunakannya sehingga pemain lawan sepenuhnya memahami apa yang terjadi dan mengapa).


1

Itu akan sangat canggung. Tanpa melihat masalah pelebaran waktu, bayangkan Anda adalah pemain yang hanya menghabiskan 4 detik dalam waktu singkat, sedangkan semua orang lain dalam permainan menghabiskan 2 detik dalam waktu nyata. Karena waktu yang sama berlalu untuk semua orang dalam kenyataan, Anda harus "mendapatkan kembali" dua detik itu dalam permainan. Jadi pada titik tertentu Anda harus "melewati" 2 detik waktu permainan, atau menghabiskan sedikit waktu berlari lebih cepat dari biasanya, atau sesuatu yang lain yang mungkin akan membuat waktu peluru jadi sia-sia.

Plus, ada sedikit tentang harus mengirim apa yang Anda lakukan pada 2 detik di waktu Anda kembali dalam waktu 1 detik kepada orang lain.


1

Lemparkan mini seperti waktu di pemain untuk menghindari peluru atau melacak musuh secara otomatis, sambil membuat gerakan pemain Anda terlihat buram atau "bertahap" ke pemain lain (sehingga mereka tidak menggaruk-garuk kepala mengapa peluru mereka tidak muncul dapat memukul). Itu sepertinya terjemahan paling sederhana dan paling praktis yang bisa Anda buat untuk multi-pemain.

Solusi lain melibatkan beberapa elemen fisik dari permainan yang diubah untuk satu atau lebih pemain yang tidak berlaku paralel untuk yang lain, saya bayangkan.


0

Hanya memperlambat orang lain mengekskripsikan waktu peluru pemain mengalami. Anda bisa melakukan ini dengan hanya mengurangi sensitivitas mouse mereka.


Dan bagaimana ini akan diterjemahkan menjadi "gameplay seimbang"? : D
joltmode

Ini seimbang, bukannya pemain mempercepat, dunia sekitarnya melambat. Pemain akan memiliki keuntungan yang sama jika dia mempercepat, tetapi cara ini lebih masuk akal.
Derek

0

Katakanlah kita memiliki pemain A dalam waktu cepat dan pemain B dalam waktu nyata. Dan mereka melakukan hal berikut dari sudut pandang pemain B:

  • Waktu 0s - Pemain Waktu peluru diaktifkan
  • Waktu 2s - Pemain A menembak pemain B
  • Waktu 3s - Pemain B menembak pemain A

Sekarang dari sudut pandang pemain A, ini akan memakan waktu dua kali lebih lama - karena dunia bergerak lebih lambat baginya:

  • Waktu 0s - Pemain Waktu peluru diaktifkan
  • Waktu 4s - Pemain A menembak pemain B
  • Waktu 6 - Pemain B menembak pemain A

Akhirnya server memiliki acara berikut yang masuk ke dalamnya:

  • Waktu 0s - Pemain A mengaktifkan waktu peluru
  • Waktu 3s - Pemain B menembak pemain A (B memulai tindakan ini sehingga mengikuti timeline-nya)
  • Waktu 4s - Pemain A menembak pemain B (A memulai aksi ini)

Jadi, kami memiliki dua masalah awal. Yang pertama adalah bahwa A sekarang 3 detik waktu permainan di belakang orang lain. Ini bisa menjadi mekanik permainan yang menarik jika Anda memiliki konsep yang berarti dia harus membayar hutang ini. Bayangkan penembak berbasis penutup di mana Anda dapat mengaktifkan waktu peluru untuk menerobos tanah terbuka, tetapi begitu Anda berada di bawah penutup dengan aman, Anda harus diam sampai seluruh dunia mengejar Anda (tiga detik waktu yang Anda lewatkan diputar ulang) )

Masalah kedua jauh lebih besar. Server perlu mengatur ulang acara secara kronologis untuk setiap pemain dan mencari tahu hasilnya. Pertama B menembak pada A - ini terjadi tiga detik ke dalam permainan, dan A melihatnya pada 6 detik - tidak ada masalah sejauh ini. Pada 4 detik pemain A menembak pada B. Di timeline B ini terjadi dua detik yang lalu. Jadi apa yang kita lakukan dengan gameplay dua detik yang telah berlalu untuknya termasuk tembakannya ke A?

Kita bisa membatalkannya - pada dasarnya mengatakan "Saya tahu pemain B berpikir dia menembak orang itu, tapi ternyata dia sudah mati jadi mari kita berpura-pura tidak pernah terjadi" Ini akan menjadi pengalaman buruk, sangat mirip dengan lag, tetapi akan menyelesaikan masalah .

Kita dapat membuat kedua garis waktu Injil - gunakan sudut pandang server sebagai keseluruhan kebenaran dan khawatir tentang setiap waktu timeline secara independen. Pada 3 detik B menembak A dan membunuhnya. Pada 4 detik A menembak pada B dan membunuhnya. Kedua pemain mati karena tembakan yang tidak mereka lihat. Kedengarannya tidak bagus, tapi mungkin ada cara yang baik untuk melakukan ini setelah memberikan semua pemain kursus singkat di dunia relativitas gila.

Kami dapat memiliki sistem pseudo-realtime - permainan berbasis giliran tempat Anda merencanakan gerakan Anda terlebih dahulu dan kemudian memicu perhitungan peristiwa secara simultan. Solusi bagus yang memperbaiki semua masalah selain itu bukan jenis permainan yang ingin Anda tulis.

Singkatnya, saya tidak berpikir ada cara yang baik untuk menerapkan waktu peluru yang memperlakukannya dalam arti klasik efeknya pada orang yang menggunakannya - mereka bergerak lebih cepat, mereka melihat dunia lebih lambat, semua orang terus seperti biasa. Jika kita membalikkannya dan semua orang dimasukkan ke dalam sudut pandang tim-peluru dan melihat diri mereka bergerak lebih lambat dan kontrol mereka menjadi lamban maka semuanya terjadi secara sinkron dan tidak ada masalah. Tapi apakah itu waktu yang tepat? Sementara itu mungkin terlihat seperti itu untuk pengamat luar (dan dalam pertandingan ulangan) tidak satu pun dari peserta akan mendapatkan efek yang mereka harapkan.


Ini telah dilakukan dan efeknya nyata dan membuat Anda merasa seperti dewa selama beberapa detik (spesialis, maks payne 3).
Katu

-1

Tidak itu tidak mungkin. Bayangkan satu pemain membalik ke gerakan lambat, apa yang akan dilihat oleh pemain lain? Anda ingin mereka melihat pemain waktu peluru bergerak secara normal tetapi memiliki refleks kilat, kan? Namun sayangnya semua orang yang bermain game akan memainkan game dalam waktu nyata yang sama. Oleh karena itu satu-satunya cara untuk melakukannya adalah memperlambat seluruh permainan, menghilangkan semua keuntungan yang ada karena semua orang akan berada dalam waktu singkat. Juga akan sangat menjengkelkan untuk memiliki permainan melambat setiap saat ketika seseorang menekan tombol itu.

Ada pekerjaan di sekitar yang akan menghasilkan pemain memiliki keuntungan yang sama (salah satunya bisa bergerak lebih cepat dll) dengan misalnya memperlambat semua orang ELSE dan membiarkan Anda bergerak secara normal (kemudian dalam replay Anda bisa mempercepat mereka ke normal dan Anda akan bereaksi cepat) tetapi saya tidak berpikir itu yang Anda inginkan.


1
Itu sudah dilakukan sebelumnya, jadi untuk mengatakan bahwa itu tidak mungkin adalah kesalahan yang mencolok.
zzzzBov

@zzzBov benar-benar mustahil untuk mengimplementasikan waktu peluru dalam permainan multi-pemain dalam bentuk aslinya. Anda harus memperlambat seluruh permainan, lalu memperlambat waktu aktual untuk semua pemain lain di dunia nyata. Pikirkan saja itu. Sebagai pekerjaan di sekitar Anda perlu menerapkan beberapa hal berhenti / mengejar ketinggalan, tetapi dalam bentuk sebenarnya itu tidak mungkin.
SirYakalot

Anda benar sedang, bentuk sebenarnya dari waktu peluru di mana salah satu berjalan pengguna pada kecepatan normal dan satu lagi di waktu peluru tidak mungkin, namun OP adalah setelah "... [menerapkan] lambat gerak / peluru waktu efek", yang telah menjadi dilakukan sebelumnya.
zzzzBov

@zzzBov "Sesuatu seperti ilusi untuk pemain yang saat ini masih berselingkuh. Jadi semua orang melihatnya" real-time ", tetapi dia melihat semuanya melambat." Dikutip dari pertanyaan awal. Dia meminta secara khusus untuk satu pengguna yang berjalan dengan kecepatan normal dan yang lain dalam waktu singkat. Itu hampir kata demi kata apa yang dia minta, sebenarnya.
Trevor Powell

Fakta bahwa ini sudah diterapkan di MP-game (Spesialis, Max payne 3 antara lain) tahun lalu, membuat jawaban ini tidak valid.
Katu

-1

TAKUT memiliki waktu peluru di multiplayer, tetapi itu berlaku untuk seluruh tim dan memperlambat semua orang di tim lain.

Waktu peluru dalam multipemain waktu nyata tanpa benar-benar memperlambat yang lain akan menyinkronkan klien, pemain gerak lambat akan bereaksi terhadap peristiwa yang dilakukan pemain lain sejak lama sementara mereka akan bereaksi terhadap kejadian saat ini.


1
Sementara itu solusi; Saya tidak suka - satu-satunya orang yang harus terpengaruh adalah pemain dalam waktu singkat - hanya karena satelit mengamati Anda sebagai bergerak lebih lambat tidak berarti Anda bergerak lebih lambat dalam kerangka referensi Anda sendiri.
Jonathan Dickinson

Maaf, hasil edit saya sebelumnya terdengar agak muda. 'Waktu peluru waktu nyata' terdengar seperti kontradiksi.
Hamster

-2

Mungkin Anda harus mengatur peralatan yang diperlukan untuk menembak pemain di PC yang memicu waktu peluru ke luar angkasa dengan kecepatan mendekati kecepatan cahaya.

Ini akan menyelesaikan semua masalah Anda tetapi dapat menghasilkan ping / latensi yang lebih tinggi.


-3

baik itu tidak akan menjadi masalah jika mereka semua bergerak lebih lambat dari biasanya tetapi tidak terlalu lambat dan orang yang mengaktifkannya bisa bergerak lebih cepat seperti merendam seluruh permainan di bawah air atau membawanya ke luar angkasa dengan yang mengaktifkan bergerak dengan damai seperti sebelumnya


1
Tidak ada yang salah dengan menjawab pertanyaan lama. Namun, seseorang harus tetap berusaha untuk membuat jawaban yang baik , dan yang ini tidak benar-benar menawarkan banyak jalan solusi yang lengkap, juga tidak benar-benar mencakup dasar yang belum tercakup oleh jawaban yang ada.
Josh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.