Обновить
2
Александр Коротаев@lekzd

Пользователь

1
Подписчики
Отправить сообщение
Пиксельарт-художник на геймдев аутсорсе один из самых дорогих. Память и ресурсы, для 2D платформера тут точно не сократить как-то существенно, циферка-то уменьшится, но толку мало.
Специально хотите кого-то задеть? В чем ваша проблема? Не пишите комментарии тогда, а я не буду писать статьи. На том и порешим.

Человек делится результатами своей работы, а вы даете личную оценку человеку, это и есть нарушение этики профессионального общения. Личная оценка человека это уже точно не конструктивная критика к этой статье

Привет, написал конвертор ресурсов, чтобы каждый мог сделать себе бандл из игровых архивов, но так как ресурсы немного отличаются от тех, что я выдирал руками, нужно доработать исходники, пока это ждет свой очереди.
Их можно найти самостоятельно, я таким образом однажды, записался на парочку зарубежных митапов в отпуске, просто чтобы потренировать английский и посмотреть что там за аудитория, проблемы были только с тем, чтобы утрясти даты и спланировать поездку так, чтобы наши пути сошлись.
На митапы (почти) никогда не стоит очередь из докладчиков, так что судя по всему организаторов вы уже знаете, пишите им, даже если митап не анонсирован
Обычно, достаточно подписаться на твиттеры сообществ, или быть в каких-то чатах, где это все анонсируется
Ваши предложения? Что можно такого сделать чтобы не так себе и кодить нужно было?
Спасибо, это было незабываемо: теплая инди конфа, приятное общение и разносторонние доклады.
Ну и спасибо всем, кто пришел на мой доклад про консольные интерфейсы, более живая версия слайдов тут: lekzd.ru/presentations/telergam_vscode_piterjs

Было мало времени, я рассчитывал сделать песочницу с доступом к стейту боя, чтобы можно было ставить условия от текущей ситуации на поле, но в итоге понял что не успеваю и сделал защищённую песочницу в браузере. Вообще архитектура расчетов на сервере для онлайн игры единственно верная, думаю, что в дальнейшем буду отталкиваться от нее, если вдруг не увижу нового отличного способа запустить код из строки в браузере)

Никак, поэтому это и не становится онлайн игрой, а остаётся в рамках контролируемого пространства игроков. Маловато времени на разработку было… впрочем удаленно повлиять на другого игрока или финальный бой нельзя, чего вполне хватило для простейшей защиты

так вы просто проверьте) В Window нельзя удалить все свойства, а в Worker — можно. После удаления всех свойств из глобального объекта там остается constructor.prototype через который можно найти все доступные конструкторы. Пользовательская песочница оборачивается в IIFE которая уже содержит контекст обычного объекта и не связана с прототипом глобальной области. Если не удалять свойства глобального объекта, они будут доступны в self даже в песочнице. Есть весь листинг кода для воркера, есть он же на гитхабе (https://github.com/lekzd/script_battle_game/blob/master/src/common/codeSandbox/CodeSandbox.ts).
Анализ только через AST так и не довел вывод типов Typescript до конца, лучше была ситуация у Flow но он кажется испытывает не лучшие времена. Все еще кажется что анализ AST это решение для ЛЮБОГО случая?
Я понимаю желание поразбирать алгоритмы парсинга деревьев (сам такой), но выходит вопрос о времени, которое уйдет на эту задачу, будет ли игра после этого?
window тут этот как пример уязвимости, а способы могут быть разными. Там выше по коду есть многовложенный вызов new Function(), который идет из прототипа цифры 4 (запрещать Number теперь?).
этот код тоже потенциально вызовет alert()
(new Function(`${getRandomString()}("Pwned!")`))()
Я бы еще прикрутил контроллер с акселерометром, чтобы закладывать сам скрипт жестами) Сам подход игра в brainfuck это круто, но оно не расширяемо, как мне кажется
хорошо, тело цикла закрыли, что насчет рекурсии вложенными фукциями?
eval() в Worker

не соглашусь, это именно запуск кода в другом потоке. eval() это же про рантайм выполнение кода, а тут все уже сгенерировано до запуска воркера.
Меня больше интересует способ определения бесконечной рекурсии, если не использовать воркеры, while(true) в коде одного из соперников просто испортит матч обоим.
Суть в том, что статическая анализация динамического ЯП обладает большим количеством проблем, нежели песочница. Вывод следующий — а что из этих двух путей тогда вообще костыль?
нет, не значит, wasm быстрый засчет более лёгкой среды исполнения. JS требует слишком много всего для исполнения, что бы его исполнить
однобуквенные переменные это особый стиль или намек на далёкие времена Basic?
if (L) { // если левый клик случился
тут меня совсем порвало)

и выучите про let и const, те, кому надо будет кроссбраузерность и так разберутся что делать
1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность