Loading AI tools
З Вікіпедії, вільної енциклопедії
Багатоплатфо́рмність[джерело?] (кросплатформність[джерело?], мультиплатформність[джерело?]) — властивість програмного забезпечення працювати більш ніж на одній програмній (в тому числі — операційній системі) або апаратній платформі; технології, що дозволяють досягти такої властивості. Кросплатформність дозволяє суттєво скоротити витрати на розробку нового або адаптацію існуючого програмного забезпечення.
Залежно від засобів реалізації поділяється на кросплатформність на рівні мов програмування (а також інструментів таких мов: компіляторів та редакторів зв'язків), середовища виконання, операційної системи та апаратної платформи.
Кросплатформність на рівні мов програмування досягається шляхом забезпечення незалежності програмного коду від платформи. Багатоплатформними є більшість сучасних високорівневих мов програмування, для яких реалізовані транслятори, що можуть виконуватись на різних платформах. Наприклад, C, С++ і Pascal — кросплатформні мови на рівні компіляції, тобто для цих мов є компілятори під різні платформи.
Кросплатформність на рівні редакторів зв'язків досягається реалізацією для різних платформ кросплатформних бібліотек, які реалізують незалежний від платформи інтерфейс, в тому числі — стандартизованих бібліотек. Зокрема, стандартизовані багато бібліотек мови Сі (див. POSIX). Існує також велика кількість нестандартних кросплатформних бібліотек: Qt, GTK+, FLTK, STL, Boost, OpenGL, SDL, OpenAL, OpenCL.
Кросплатформність на рівні середовищ виконання забезпечується реалізацією в цих середовищах можливостей, необхідних програмам незалежно від платформи. Декларований набір таких можливостей прийнято називати «контрактом» — обов'язком який покладається на середовище, щоб забезпечити виконання програми. Ці обов'язки реалізуються через інтерпретатор, файлові потоки, системні виклики, протоколи, віртуальну машину тощо.
Мови кросплатформні на рівні виконання, коли їх виконавчі файли можна запускати на різних платформах без попередньої перекомпіляції. Найбільш поширені[1] приклади: Java, C#, SQL. Інтерпретовані мови кросплатформні, коли їх інтерпретатори існують для багатьох платформ. Найбільш поширені[1] приклади: Python, JavaScript, PHP, Ruby, Perl, R, MATLAB.
Кросплатформність на апаратному рівні досягається реалізацією однакових машинних команд та форматом їх представлення, систем переривань, механізмів адресації пам'яті, регістрів тощо. Може досягатись шляхом віртуалізації відповідних ресурсів та механізмів.
Якщо програма не призначена для виконання (запуску) на певній платформі, але для цієї платформи існує емулятор платформи, базової для цієї програми, то програма може бути виконана в середовищі емулятора.
Зазвичай виконання програми в середовищі емулятора призводить до зниження продуктивності в порівнянні з аналогічними програмами, для яких платформа є базовою, тому що значна частина ресурсів системи витрачається на виконання функцій емулятора.
Велика кількість прикладних програм є кросплатформними. Особливо ця якість виражається у програм, що були спершу розроблені для UNIX-подібних операційних систем. Важливою умовою їх переносимості на інші платформи є сумісність платформ з рекомендаціями POSIX, а також існування відповідних компіляторів (наприклад, GCC) або інтерпретаторів для платформи, на яку здійснюється перенесення.
Приклади:
Сучасні операційні системи також здебільшого є багатоплатформними. Наприклад, операційні системи з відкритим вихідним кодом, наприклад, NetBSD, GNU/Linux, FreeBSD, AROS можуть працювати на різних платформах, найчастіше: x86, m68k, PowerPC, DEC Alpha, AMD64, SPARC. Microsoft Windows може працювати як на платформі Intel x86, так і на Intel Itanium. Операційна система NetBSD є найбільш здатною до перенесення, вона працює на більшості існуючих платформ.
На різних ОС — незалежно від того, як технічно досягнута робота в них — стандартні елементи інтерфейсу мають різні розміри. Тому просте жорстке позиціонування елементів інтерфейсу неможливо — під іншою ОС вони можуть налазити один на одного. Існує кілька підходів:
У будь-якому випадку, під іншими ОС потрібне хоча б мінімальне тестування, оскільки можливі помилки компонування.
Багатоплатформна відеогра, кросплатформна відеогра — відеогра, яку випускають для декількох апаратних платформ комп'ютера. Для кожної окремої платформи така гра має окрему версію, яка призначена для запуску саме на цій платформі. Залежно від особливостей гри й цільових платформ версії однієї гри для різних платформ можуть відрізнятися одна від одної в різних ступенях.
Всі платформи, на які виходять мультиплатформні ігри, умовно діляться на кілька груп:
У залежності від бажань і можливостей розробників, а також технічних відмінностях між цільовими платформами, на яких виходить мультиплатформна гра, версії мультиплатформної гри для різних платформ можуть тією чи іншою мірою відрізнятися між собою.
Деякі розробники прагнуть зробити так, щоб гра для різних платформ виглядала максимально однаково. Наприклад, розробники гри BioShock 2, яка вийшла на ПК і ігрових консолях Xbox 360 і PlayStation 3, прагнули зробити гру максимально однаковою на цих платформах. «Найголовнішою нашою метою, поставленої на початковій стадії розробки, було те, що гра повинна була виглядати практично ідентично на всіх платформах», — заявив з цього приводу головний дизайнер локацій гри Хогарт Де Ла Плант (англ. Hogarth De La Plante). Він заявив, що це робиться для того, щоб не дати користувачам гри на який-небудь одній платформі переваг перед користувачами цієї гри на інших платформах.[2] Аналогічне прагнення показали розробники з Eidos Montreal при розробці Deus Ex: Human Revolution: продюсер гри Девід Анфоссі (англ. David Anfossi) заявив, що враження від гри і геймплей будуть ідентичними на всіх цільових платформах (ПК, Xbox 360, PlayStation 3).[3]
Версії однієї гри для різних платформ можуть виходити в різний час, причому цей час може обчислюватися роками. Наприклад, гра Ballistics[en] для ПК вийшла в 2001 році[4], а для аркадних автоматів — у 2002-му[5].
Іноді версії однієї мультиплатформної гри мають більше відмінностей, ніж загальних ознак. Наприклад, гра «Tom Clancy's Ghost Recon Advanced Warfighter» була розроблена різними компаніями для різних платформ на різних ігрових рушіях, версії для яких були випущені в різний час. Ця гра вийшла для платформ Xbox 360, Xbox, PlayStation 2 і ПК (Microsoft Windows), причому ці версії виходили протягом всієї весни 2006 року. Версія для Windows розроблялася компанією GRIN на ігровому рушію Diesel. Версія для Xbox розроблялася компанією Ubisoft Shanghai, а версія для PlayStation 2 — Ubisoft Paris. Ці дві версії (для Xbox і PlayStation 2) використовували ігровий рушій Unreal Engine 2. Версія для Xbox 360 розроблялася на ігровому рушію YETI engine двома компаніями — Ubisoft Paris робила однокористувацький режим гри, а Red Storm Entertainment — розрахований на багато. Серед загальних елементів цих версій були лише концепція і загальний сюжет. Геймплей, сценарій, місії та рівні, особливості озброєння і оснащення протагоністів для кожної версії були індивідуальними. Це призвело до того, що деякі оглядачі, як, наприклад, GameTech, написали окремі рецензії для версій цієї гри під різні платформи.[6][7]
Багато агрегаторів оцінок комп'ютерних ігор поділяють оцінки для кожної платформи. Наприклад, онлайновий агрегатор GameStats для кожної із семи платформ, на яких вийшла гра James Cameron's Avatar: The Game, скомпонував окремий профіль з окремою оцінкою.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.