Багатоплатформність

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Багатоплатфо́рмність (кросплатфо́рмовість, крос-платформеність, мультиплатформність) — здатність програмного забезпечення працювати більш ніж на одній платформі або операційній системі.

Мови програмування[ред.ред. код]

Багатоплатформними можна назвати більшість сучасних високорівневих мов програмування. Наприклад, C, С++ і Pascal — кросплатформні мови на рівні компіляції, тобто для цих мов є компілятори під різні платформи.
Не менш важливі для платформ стандартизовані виконавчі бібліотеки. Зокрема, стандартом стала бібліотека мови Сі (див. POSIX). З великих кросплатформних бібліотек - Qt, GTK+, FLTK, STL, Boost, OpenGL, SDL, OpenAL, OpenCL.
Java і C# — кросплатформні мови на рівні виконання, тобто їх виконавчі файли можна запускати на різних платформах без попередньої перекомпіляції. PHP, ActionScript, Perl, Python, Tcl і Ruby — кросплатформні інтерпретовані мови, їх інтерпретатори існують для багатьох платформ.

Прикладні програми[ред.ред. код]

Велика кількість прикладних програм також є кросплатформовими. Особливо ця якість виражається у програм, що були спершу розроблені для UNIX-подібних операційних систем. Важливою умовою їх переносимості на інші платформи є сумісність платформ з рекомендаціями POSIX, а також існування компілятора GCC для платформи, на яку здійснюється перенесення.

Приклади:

Операційні системи[ред.ред. код]

Сучасні операційні системи також здебільшого є багатоплатформними. Наприклад, операційні системи з відкритим вихідним кодом, наприклад, NetBSD, GNU/Linux, FreeBSD, AROS можуть працювати на різних платформах, найчастіше: x86, m68k, PowerPC, DEC Alpha, AMD64, SPARC. Microsoft Windows може працювати як на платформі Intel x86, так і на Intel Itanium. Операційна система NetBSD є найбільш здатною до перенесення, вона працює на більшості існуючих платформ.

Багатоплатформовий користувальницький інтерфейс[ред.ред. код]

На різних ОС - незалежно від того, як технічно досягнута робота в них - стандартні елементи інтерфейсу мають різні розміри. Тому просте жорстке позиціонування елементів інтерфейсу неможливо - під іншою ОС вони можуть налазити один на одного. Існує кілька підходів.

  • Єдиний стиль, загальний для всіх ОС. Програми виглядають однаково під усіма ОС. Так працюють інтерфейсні бібліотеки Java на зразок Swing.
    • Плюс: можна жорстко розставляти елементи управління на манер Delphi; оригінальний стиль.
    • Мінус: системі доводиться мати свої екранні шрифти; стиль відрізняється від стилю ОС.
  • Самоадаптований інтерфейс, який налаштовує сітку під реальні розміри елементів управління. Типові приклади - wxWidgets, XUL.
    • Плюс: стандартний стиль ОС, дуже швидкий і «скіни» під Windows XP, Vista і 7; деяка автоматизація локалізації.
    • Мінус: щоб зібрати самоадаптовану сітку, потрібен кваліфікований програміст; утруднене щільне компонування.
  • Гібридний підхід реалізовано у GTK +.
    • Плюс: шрифти можна брати з системи, а не «тягнути» свої; деяка автоматизація локалізації.
    • Мінус: бере всі недоліки від перших двох підходів. Стиль відрізняється від стилю ОС; утруднене щільне компонування.

У будь-якому випадку, під іншими ОС потрібне хоча б мінімальне тестування, оскільки можливі помилки компонування.

Відеоігри[ред.ред. код]

Багатоплатформна відеогра, кросплатформна відеогра — відеогра, яку випускають для декількох апаратних платформ комп'ютера. Для кожної окремої платформи така гра має окрему версію, яка призначена для запуску саме на цій платформі. Залежно від особливостей гри й цільових платформ версії однієї гри для різних платформ можуть відрізнятися одна від одної в різних ступенях.

Цільові платформи[ред.ред. код]

Всі платформи, на які виходять мультиплатформні ігри, умовно діляться на кілька груп:

  • Персональні комп'ютери (ПК). Ігри для ПК називаються ПК-іграми, а версії мультиплатформових ігор для ПК — ПК-версіями ігор. У свою чергу, ПК-ігри діляться в залежності від операційних систем, на яких можуть працювати. Більшість ПК-ігор розроблено для сімейства ОС Microsoft Windows.
  • Ігрові консолі. Ігри для ігрових консолей називаються консольними іграми, а версії мультиплатформових ігор для консолей — консольними версіями ігор. Всі ігрові консолі діляться на два типи — портативні ігрові консолі (являють собою автономні пристрої, які містять в одному компактному корпусі всі необхідні для гри пристосування — засоби управління, дисплей, звукові динаміки і т. д.) і «префіксальні» консолі (які підключаються до зовнішніх дисплеїв, звуковим динаміків і іншим пристроям). Відповідно, консольні ігри поділяються для цих двох типів ігрових консолей. Ігрові консолі — спеціалізовані комп'ютери, основний акцент при розробці яких був зроблений саме на виконання комп'ютерних ігор. Однак, крім свого основного завдання, ігрові консолі, особливо починаючи з сьомого покоління, здатні відтворювати відео, музику, здійснювати доступ в Інтернет і виконувати деякі інші функції.
  • Кишенькові персональні комп'ютери (КПК). Кишенькові персональні комп'ютери (або надолонники), як і універсальні персональні комп'ютери, є ігровими платформами. Внаслідок своїх невеликих габаритів, специфічних засобів управління і виведення інформації, а також через відносно невисоку продуктивність й обсяг пам'яті ігри для КПК істотно відрізняються від ігор для інших платформ. Так, на КПК найбільше поширені казуальні ігри.
  • Мобільні телефони. Згодом вдосконалення науково-технічного прогресу дозволило мобільних телефонів виступати в ролі ігрових платформ. Однак внаслідок свого мінімального серед інших ігрових платформ рівня продуктивності серед ігор для мобільних телефонах найпоширеніші казуальні ігри, прості аркади, платформери й інші міні-ігри.
Файтінг, запущений на аркадних автоматах

Відмінності між версіями мультиплатформових ігор[ред.ред. код]

У залежності від бажань і можливостей розробників, а також технічних відмінностях між цільовими платформами, на яких виходить мультиплатформна гра, версії мультиплатформному ігри для різних платформ можуть тією чи іншою мірою відрізнятися між собою.

Деякі розробники прагнуть зробити так, щоб гра для різних платформ виглядала максимально однаково. Наприклад, розробники гри BioShock 2, яка вийшла на ПК і ігрових консолях Xbox 360 і PlayStation 3, прагнули зробити гру максимально однаковою на цих платформах. «Найголовнішою нашою метою, поставленої на початковій стадії розробки, було те, що гра повинна була виглядати практично ідентично на всіх платформах», — заявив з цього приводу головний дизайнер локацій гри Хогарт Де Ла Плант (англ. Hogarth De La Plante). Він заявив, що це робиться для того, щоб не дати користувачам гри на який-небудь одній платформі переваг перед користувачами цієї гри на інших платформах.[1] Аналогічне прагнення показали розробники з Eidos Montreal при розробці Deus Ex: Human Revolution: продюсер гри Девід Анфоссі (англ. David Anfossi) заявив, що враження від гри і геймплей будуть ідентичними на всіх цільових платформах (ПК, Xbox 360, PlayStation 3).[2]

Версії однієї гри для різних платформ можуть виходити в різний час, причому цей час може обчислюватися роками. Наприклад, гра Ballistics (англ.) для ПК вийшла в 2001 році[3], а для аркадних автоматів — у 2002-му[4].

Іноді версії однієї мультиплатформному ігри мають більше відмінностей, ніж загальних ознак. Наприклад, гра «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, написали окремі рецензії для версій цієї гри під різні платформи.[5][6]

Багато агрегаторів оцінок комп'ютерних ігор поділяють оцінки для кожної платформи. Наприклад, онлайновий агрегатор GameStats для кожної із семи платформ, на яких вийшла гра James Cameron's Avatar: The Game, скомпонував окремий профіль з окремою оцінкою.

Емуляція[ред.ред. код]

Якщо програма не призначена для виконання (запуску) на певній платформі, але для цієї платформи існує емулятор платформи, базовий для цієї програми, то програма може бути виконана в середовищі емулятора.

Зазвичай виконання програми в середовищі емулятора призводить до зниження продуктивності в порівнянні з аналогічними програмами, для яких платформа є базовою, тому що значна частина ресурсів системи витрачається на виконання функцій емулятора.

Примітки[ред.ред. код]

  1. -bin/show.pl? option = news & id = 11164 «Розробникам BioShock 2 довелося йти на компроміси». GameTech. 8 лютого 2010. Процитовано 18 травня 2010. 
  2. «Однаковий Deus Ex: Human Revolution на всіх платформах». GameTech. 13 липня 2010. Архів оригіналу за 2012-04-26. Процитовано 2010-07-26. 
  3. web/20050212232603/www.grin.se/ballistics/ballistics_retailpr.htm «Press Release: Fellow speedfreaks, it is now official!». GRIN. 2001-10-18. Процитовано 2009-09-03. 
  4. Sheila McGovern (2002-04). montreal_gazette/business_april8_2002.pdf «Off to the races» (PDF). The Gazette. Процитовано 2009-09-03. 
  5. Віталій Казунов (Lockust) (2007). cgi-bin/show.pl? fltr_pltfm = all & option = review & id = 84 «GRAW2 - навіть на своїх помилках не вчаться». GameTech. Процитовано 18 травня 2010. 
  6. Віталій Казунов (Lockust) (2007). «Огляд GRAW 2». GameTech. Архів оригіналу за 2012-04-26. Процитовано 2010-05-18. 

Джерела[ред.ред. код]