arctic-engineers-club

Open full view…

Scrum и arctic engine

Huldra
Thu, 23 Nov 2017 14:25:50 GMT

Как можно понять по waffle (https://waffle.io/FrostyMorning/arctic), я хочу разрабатывать arctic engine по scrum, насколько это возможно. Прямо сейчас у меня полчается какой-то неправильный scrum, поэтому я хочу начать новый sprint продолжительностью в 7 дней, то есть планирование спринтов будет теперь происходить по пятницам.

bladez-fate
Wed, 10 Jan 2018 10:57:48 GMT

А можно запланировать следующую фичу? Я хочу иметь возможность запускать бинарник игры с опциями командной строки и интерпретировать их как мне вздумается. Ну и еще в добавок нужно иметь возможность не запускать все что запускает arctic engine, а просто выйти

Huldra
Wed, 10 Jan 2018 11:35:14 GMT

Можно. Только не понятно, что значит "не запускать все что запускает arctic engine". Специальную функцию для корректного выхода из любой точки сделаю. Параметры командной строки в виде словаря std::string->std::string разобранные из строки вида --- --optionA valueA --option_b multiword value b --optionC --- будут выглядеть как пары ключ: значение --- "optionA": "valueA" "option_b": "multiword value b" "optionC": "" --- так подойдет? или надо что-то другое?

bladez-fate
Wed, 10 Jan 2018 11:44:26 GMT

хочется консольное приложение запустить просто, чтобы окно не создавалось

Huldra
Wed, 10 Jan 2018 12:00:21 GMT

Попробую придумать как это можно включать. Но ведь при таких условиях не будет работать ни ввод с клавиатуры ни вывод на экран. Тебе действительно чем-то мешает окно? Может быть пусть себе создается, это ведь очень легкая операция.

bladez-fate
Wed, 10 Jan 2018 12:15:44 GMT

Просто это как минимум странно для запуска в "консольном режиме". И еще мне кажется подход что arctic engine - это просто библиотека и из нее можно использовать ровно то, что тебе нужно выгодно отличает его от других движков. Хочу спрайты - использую, не хочу - не использую. Это не привязывает меня к конкретной реализации компонента, все получается очень модульно. Но вот запуск тут противоречит этому подходу. По мне было бы логично позвать какую-то библиотечную функцию из моего main() если я хочу запускать окно, а не предоставлять реализацию EasyMain(). Так я смогу использовать любую библиотеку для парсинга командной строки. Подчеркну, что EasyMain сейчас очень удобный и его не надо закапывать, просто хочется иметь возможность самому контролировать его вызов.

Huldra
Wed, 10 Jan 2018 12:35:19 GMT

Изначально задумано было так: у движка есть 2 режима использования, easy api и полное api. В easy варианте запускается сразу EasyMain и можно сходу писать игровой код. В полном варианте запускается NormalMain и можно самостоятельно вызвать создание окна, если окно нужно, запускать и останавливать звуковой микшер и так далее. Вообще надолго задерживаться на easy api плана не было, но оказалось, что очень многие игры можно спокойно делать ограничившись именно им и поэтому сейчас грань между easy api и полным несколько размытая и реализация многих вещей в easy api не использует полное api, как это задумывалось, а просто делает что-то напрямую. А с созданием окна руками из NormalMain будут проблемы на iOS и в web-клиенте.

Huldra
Wed, 10 Jan 2018 12:51:22 GMT

Дело в том, что при сборке оконных приложений для разных ОС часто простого main нет в принципе. Под windows запускается сразу WinMain а аргументы командной строки можно получить через win32 api, под IOS и OSX запускается приложение на ObjectiveC и код на С++ вызывается уже из него. Поэтому мне не сложно сделать NormalMain, который будет вызываться по возможности до создания окна (или после, если без окна на платформе никак), и позволять создать окно если его еще нет и запустить все остальные подсистемы ручками, если есть такое желание. Ну и если такого желания нет, можно будет вызвать StartEasyMain() и получить ровно то что есть сейчас.

bladez-fate
Wed, 10 Jan 2018 12:57:24 GMT

> Изначально задумано было так: у движка есть 2 режима использования, easy api и полное api. В easy варианте запускается сразу EasyMain и можно сходу писать игровой код. О, это отлично, раз EasyMain не финальный и единственно возможный вариант. > Поэтому мне не сложно сделать NormalMain, который будет вызываться по возможности до создания окна (или после, если без окна на платформе никак), и позволять создать окно если его еще нет и запустить все остальные подсистемы ручками, если есть такое желание. Ну и если такого желания нет, можно будет вызвать StartEasyMain() и получить ровно то что есть сейчас. Да, то что надо, когда ждать?

Huldra
Wed, 10 Jan 2018 15:36:59 GMT

Если нет срочной необходимости, то на выходных сделаю. Если срочно, то скажи.

bladez-fate
Wed, 10 Jan 2018 17:57:34 GMT

Срочности нет

Huldra
Thu, 11 Jan 2018 23:26:08 GMT

прошло 2 дня и 5 сторипоинтов до пятницы попробую успеть еще 2 сторипоинта про пропускание прозрачных частей спрайта

Huldra
Sat, 03 Feb 2018 15:18:40 GMT

В какой-то момент в репозиторий попала пара больших звуковых файлов и он стал невыносимо огромен. Пришлось переписать историю, чтобы убрать все следы присутствия этих файлов. Вот как тут написано: http://blog.jessitron.com/2013/08/finding-and-removing-large-files-in-git.html Если у кого-то есть клон репозитория, вам придется его перезабрать, потому что история переписана

Huldra
Sat, 03 Feb 2018 15:22:49 GMT

Теперь весь репозиторий на диске занимает 30 мегабайт, а по сети вообще всего 6 мегабайт передается при клонировании. Надо будет подумать, на что заменить музыку в пирамидах, чтобы еще меньше стало.

f1af
Sun, 04 Feb 2018 08:44:58 GMT

посмотри как у меня тут мызка сделана. https://github.com/f1af/KosmoNedotepa трек на 3 минуты занимает 100 килобайт. кстати, из гита можно удалять историю на файлы, тем самым облегчая репозиторий.

Huldra
Sun, 04 Feb 2018 10:54:08 GMT

Читай внимательнее, я именно это и сделала с гитом.

Huldra
Sun, 18 Feb 2018 22:57:36 GMT

Что-то пошло не так в спринте. И спринт затянулся. Перепланировала заново. Теперь по плану несколько простых и понятных задачек.

andrusha
Wed, 21 Feb 2018 16:26:06 GMT

Где можно скачать движок? Что уже есть из инструментария?

Huldra
Wed, 21 Feb 2018 16:44:42 GMT

https://github.com/FrostyMorning/arctic лучше забирать по кнопке Clone or download (зеленая такая) Из инструментария готово все что запланировано, то есть только project wizard. Дальше он будет развиваться, конечно. Возможно, в будущем еще появится визуальный редактор для GUI.

andrusha
Wed, 21 Feb 2018 16:51:01 GMT

А примеры кода или готовые проекты есть?

Huldra
Wed, 21 Feb 2018 16:54:28 GMT

там же в репозитории - есть проект тетрис в папке fjortris и проект пирамиды антарктиды в папке antarctica_pyramids и есть open-source код игр bladez-fate в его репозитории https://github.com/bladez-fate (2d quake и pilecode)

next
last page