Чи слід сценарії розширення запускати в пісочниці?


11

Зокрема, мова йде про розширення гри, написані на lua (luajit-2.0). Я задумувався над тим, чи варто обмежувати те, що можуть робити ці сценарії, і дійшов висновку, що я, мабуть, не повинен:

  • Важко правильно поправитись. Звучить нерозумно, але, швидше за все, моя пісочниця все-таки закінчиться непрохідною.

  • Єдина користь, про яку я міг би придумати, - це надати користувачам певне почуття безпеки під час роботи сторонніх сценаріїв.

  • Недоліками було б те, що це просто неймовірно дратівливо для письменників-подовжувачів. Тобто поки що я сам (контент гри буде переважно сценарієм).

Причина, про яку я прошу це зараз, перш ніж у мене насправді з’явиться щось презентабельне, - це те, що додавати пісочницю на ранніх етапах легко, але я б також наклав сказані набридливі обмеження і на себе. Однак якщо я спершу продовжую це, а потім вирішу, що мені все-таки потрібна пісочниця, я зіткнуся з проблемами (мені доведеться або переписати сценарії, які вже є, або запровадити певну форму системи управління довірою що здається більшим клопотом, ніж варто).


Для якої гри? Для того, щоб продукт, який продається поза продажем, продали 100 000 клієнтів, і кожен, хто любить, може написати сценарії до нього? Або для товару, проданого в 50 разів, і ви єдиний, хто надає додаткові сценарії?
Док Браун

Відповіді:


2

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

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

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

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

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


1
Я думаю, ви використовуєте "пісочницю" в ігровому сенсі, але ОП використовував це в сенсі безпеки. Вони здаються двома досить непов'язаними поняттями.
bdsl

2

Важко правильно поправитись

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

але ймовірність, що моя пісочниця все-таки закінчиться герметичною

Я думаю, що було б достатньо почати забезпечувати основну безпеку: обмеження доступу до файлів поза деякими спеціальними каталогами. Все одно немає такої речі, як 100% захищені програми. Подумайте, що може статися, якщо хтось напише якесь злісне розширення: користувачі, ймовірно, звинуватить вас як розробника. Якщо ви плануєте дати комусь можливість написати продовження, вам, зрештою, знадобиться певна безпека. Якщо це тільки ти - все гаразд, як є.

Єдина користь, про яку я міг би придумати, - це надати користувачам певне почуття безпеки під час роботи сторонніх сценаріїв.

Це саме причина, чому ви повинні робити пісочницю, і це не є вагомим аргументом проти пісочниць.

Недоліками було б те, що це просто неймовірно дратівливо для письменників-розширень

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

Це може допомогти, якщо ви розглядаєте движок LOVE як хороший приклад (якщо ви ще цього не зробили), особливо підручник щодо файлового API .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.