JordanCpp, я правильно понимаю, что графический API выбирается на этапе компиляции и нельзя сменить в рантайме? Или эта проблема уже исправлена? Btw проект интересный, добавил в копилку для копания в праздники. Надеюсь, у вас получится добиться задуманного (✿◡‿◡)
Сообщение отредактировал Abel399 - Воскресенье, 24 Декабря 2023, 02:04
TLT, ну, как говорится, "на вкус и цвет..." ) Колобки это, пожалуй, целая тема для дискуссий.. но в том, что на данном этапе картинка недостаточно "сочная", если можно так выразиться, согласен. Достаточно много темных и серых тонов. Над этим будет проведена кропотливая работа, чтобы выйти из такого положения. Благодарю за отзыв
programMain, хорошо, у вас свой опыт, у меня свой. На моем опыте у TCP огромный оверхед по траффику, проблемы с p2p из-за чрезмерной секурности -> ниже пропускная способность. Все проблемы UDP обычно решаются построением своего протокола поверх UDP, либо использование уже готового решения. Единственная проблема, которую сложно решить из-за принципа работы протокола - отладка и поиск проблем в архитектуре сети. Если вы это имели ввиду, то хорошо, ваша правда. Но задумайтесь почему же тогда так много тайтлов используют связку TCP + UDP, где второй играет вовсе не последнюю роль?) Это не просто так людям в голову ударило и есть на то вполне очевидные причины.
P.S> Вообще, необходимо понимать, что нельзя на архитектуру приложения построенную поверх TCP накрутить UDP, обратное тоже верно. При проектировании нужно учитывать особенности протокола. Можно провести аналогию с СУБД и ACID, где требуется атомарность, устойчивость, изоляция и согласованность -> получаем консистентность передаваемых данных даже с UDP. Другой момент, что на это может не хватить квалификации, но это уже тема отдельной дискуссии. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Воскресенье, 28 Октября 2018, 05:33
Ну... хочется все-таки не 5-8 лет делать в одиночку чуть ли не ААА... питаться тоже чем-то нужно.
До недавнего времени в моде были различные Tycoon'ы, в особенности на мобильных устройствах (если Crytek наконец-таки релизнутся для мобильного рынка). Можете проанализировать этот рынок, работы там немного, при качественном исполнении выжить можно. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Суббота, 27 Октября 2018, 21:19
На оригинальном форуме есть ссылка, там лежат исходники (C++). В readme описаны требования. Придется разобраться и дописать, чтобы заработало под GM8.1
P.S> На второй странице форума описано, почему библиотека не работает с 8.1 (GMAPI). Была ссылка на якобы совместимый с 8.1 GMAPI, но видимо плодов это особо не принесло. P.S.S> Кода там 1.2к строк, т.е. не слишком-то и много, неделя максимум, т.ч. переписать можно, но, ввиду неактуальности, для большинства это покажется сомнительной затеей. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Суббота, 27 Октября 2018, 21:04
1. Документация 2. Функция либо не дописана выше, либо действительно неправильно используется. 3. Нужно размещать в Step. 4. Если позиция object0 не меняется, то движение останавливается. Ninja Slayer - 2D Physics Puzzle [cancelled]
Проанализируй рынок, рассмотри жанры, которые тебе самому по душе (делать то, от чего тошнит, не самая лучшая идея, это так не работает), выпиши то, что было в тренде, что есть сейчас, как долго держался предыдущий тренд. Чистая аналитика, личные предпочтения и холодный расчет.
Когда определишься с несколькими проектами, накидай прототипы, раскидай друзьям и знакомым, собери фидбэк, самое лучшее опубликуй где-нибудь, снова фидбэк - прочувствуй рынок. От этого ты уже и будешь отталкиваться.
Также не бойся смешивать жанры и экспериментировать. Рогалик в 2048? - Отлично. Dungeon & Dragons с кавайными няшками и шуточками в стиле манчкина? - Замечательно! Думаю, основная идея понятна ;> Ninja Slayer - 2D Physics Puzzle [cancelled]
programMain, откуда такие выводы про UDP? Создается впечатление, что TCP > UDP, когда это далеко не так )0 Это я к тому, что для UDP есть замечательная ENet. Вот создать обертку над ней для удобного использования в Unity + фичи, было бы интересной идеей. Ninja Slayer - 2D Physics Puzzle [cancelled]
Название: Ninja Slayer Жанр: Casual, Action puzzle, Physics Игровой движок: GM:S (прототип), Unity Режимы игры: Однопользовательская и многопользовательская игра до 4х человек Пространство и вид: 2D с видом сбоку Платформы: PC / Android / iOS Похожие игры: Angry Birds, Ninja Shape (Flash), Black Bit Ninja (Flash) Срок разработки: 2015, август 2018 - TBD Twitter:@ninjaslayerdev Группа ВК:vk.com/ninjaslayerdev
Описание игры: Незамысловатая головоломка, заставляющая вас подстраиваться под ситуацию и думать нестандартно. Играть вам предстоит за маленького черного ниндзя, клан которого был поголовно вырезан конкурентом. Потеряв все, что у него было, главный герой решает свершить безжалостую месть и уничтожить всех до единого, кто был хоть как-то к этому причастен. Если вы готовы помочь отомстить обидчику, то для достижения данной цели от вас потребуются немного стратегического мышления и хорошая реакция. Игровой процесс состоит из вашего взаимодействия с различными механизмами и самим ниндзя, где для успешного продвижения вперед необходимо уничтожить всех противников на уровне.
Особенности игры [+ планы на будущее]: * множество уровней, бросающих вызов вашей логике, смекалке и реакции; * необычная механика игры, использующая физику для реализации ваших идей; * большое количество различных механизмов, создающих сотни уникальных комбинаций при взаимодействии; * аркадный режим с бесконечным количеством противников (TBD); * мультиплеер до 4х игроков с кооперативным (TBD) и deathmatch режимами; * развитие персонажа, изучение новых навыков, расширяющих геймплей (TBD); * редактор карт и возможность поделиться своей фантазией с другими игроками (workshop, TBD); * большой выбор скинов и персонализация вплоть до создания своего уникального персонажа (TBD);
Управление: - [Click/Tap] и [Click/Tap & Drag] по объектам окружения для взаимодействия; - [Click/Tap & Drag] по экрану для задания траектории полета; - Все ниндзя отскакивают от любых твердых объектов;
Цитата
- Эту игру я начал создавать еще в далеком 2015, когда случайно наткнулся на весьма интересную flash-игру "Black Bit Ninja". Игра настолько запала мне в душу, что я непременно захотел сделать что-то очень похожее. В оригинале, как мне казалось, не хватало многих механик, да и сама по себе игра казалась чересчур простой. Вдохновившись, я начал воплощать свои идеи, постепенно наполняя геймплей. В какой-то момент у меня накопилось столько неотложной работы в другой деятельности, что проект пришлось отложить на полочку до лучших времен. На данном форуме я уже достаточно давно, можно сказать, что он стал моей отправной точкой в IT и computer science, с ним я учился, рос и развивал свои навыки. За все время, проведенное на данном форуме, я видел множество самых разных проектов, в парочке участвовал, но так и ни разу не заявлял о своих собственных проектах... Именно поэтому, когда у меня появилось хоть немного свободного времени, я решил его занять тем, что люблю уже долгие годы - геймдев. Начать я решил с того, что уже имеется и выбрал один из своих играбельных проектов, им оказался Ninja Slayer. Исправив очевидные недоработки и подготовив прототип, отдаю его на всеобщее обозрение :>
ВАЖНО: в данный момент игра полностью переносится на Unity, поэтому данные демо-файлы несут в себе ТОЛЬКО ознакомительную информацию и передают основную механику игры.
Примечание: иногда разные платформы не могут установить соединение, в этом случае можно попробовать создать на одном устройстве сервер, а на другом при открытом меню "Сеть" (глобус) нажать на кнопку настроек и ввести IP-адрес сервера там (успех не гарантируется).
P.S.> Буду очень благодарен строгой, но конструктивной и адекватной критике, как говорится, даешь "panem et circenses"! :'D P.S.S.> Любые советы по улучшению геймплея или UX приветствуются P.S.S.S.> Графика будет претерпевать многократные изменения в ходе разработки.
Добавлено (25 Октября 2018, 17:18) --------------------------------------------- Updated: + добавлена ссылка на группу VK; + обновлен архив для скачивания - исправлено некорректное отображение игры на разрешениях экрана ниже 1080p;
Добавлено (28 Октября 2018, 10:47) --------------------------------------------- In-Progress: Постепенно переношу игру на Unity. Без багов не обходится, но результат так или иначе радует (он хотя бы есть, хехе).
1 Вариант) globals. Создаете глобальную переменную на этапе инициализации и в Create необходимого объекта проверяете if (global.isObjectDestroyed) instance_destroy(); 2 Вариант) persistent object. Делаете некоторый постоянный объект "контроллер", который будет отвечать за определенный набор объектов и при необходимости удалять их. B делаете вроде такого:
Код
isObjDeleted = noone; // not deleted isObjDeleted = rm_some_room_name; // delete Obj in that room // For Create: if (isObjDeleted == room) { instance_destroy(); }
2.5 Вариант) Не хватает на отдельный пункт, просто доработка ко 2-му. Можно завести контроллер с хэш-таблицей, в которой ключом будет id комнаты, а значением список, состоящий из object_id и instance_id. Примерно выглядит так: Controller.Create:
Код
deletedObjects = ds_map_create();
Controller.RoomStart:
Код
if (ds_map_exists(deletedObjects, room)) { var list = deletedObjects[? room] var n = ds_list_size(list); for (var i = 0; i < n; ++i) { instance_destroy(list[| i]); // если не хотите вызывать событие destroy, то вторым аргументом можно передать false } }
Controller.SomePieceOfCode:
Код
// Добавление на удаление: ds_list_add(deletedObjects[? rm_some_room], obj_some_object_id_or_intance_id); // Если нужно поддерживать операцию "снова вернуть объект" и в одной комнате может быть много удаляемых объектов, то лучше листы снова-таки заменить на х.таблицы, если их немного, то асимптотически (и "экономически") листы выгоднее var expectedObject = ...; var list = deletedObjects[? rm_some_room_name]; var n = ds_list_size(list); for (var i = 0; i < n; ++i) { if (list[i] == expectedObject) { ds_list_delete(list, i); // deletedObjects[? rm_some_room_name], если list это не ссылка (я уже не помню точно) break; } }
Можете погуглить "tween functions" / "easing". В вашем случае вроде должна подойти "easeOutQuad" или "easeInOutCube". Поиграйтесь здесь. Готовый ассет здесь.
Нативная реализация easeOutQuad может выглядеть так (синтаксические ошибки исправите сами):
drcrack, в том-то и дело, что я распарсил и отдал как респонс намек на неправильное использование терминологии, да и вообще хреновую подачу своих идей. + я имел ввиду, что современный "web-designer" уже итак знает основы верстки, а даже если и не знает, то многие используют Adobe InDesign в своей работе => их "html / css" катится к черту
dimati9, подтверждаю, на 2 курсе в рамках "Веба" на коленке каждому человеку в группе нужно было написать свою соц. сеть. Справились за неделю.
ЦитатаⒶⓟⓔⓣⓘⓣ ()
программист php и web дизайнер а html, css
Т.е. вам нужен тот, кто напишет соц. сеть за вас?) Потому что web designer как бэ... и есть то, что вы "берете на себя".
ЦитатаⒶⓟⓔⓣⓘⓣ ()
html, css and java
В веб-программировании есть фронт, есть бэк, иногда фуллстэк. Вы написали черт-те что.
Человек, хоть немного шарящий за веб, будет морально оскорблен, когда его так зазывают в стартап. Да и вообще блэт, навыки презентабельности своих идей хоть какие-то сперва нужно заиметь, а уже потом писать кричащие заголовки. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Понедельник, 04 Июня 2018, 08:02
... я очень далёк от всех этих гитхабов и плохо в этом разбираюсь, это всё так действительно критично?
Если вы именно про контроль версий, то не критично до тех пор, пока вы работаете один. Да, вы лишаетесь многих плюшек в виде diff'а, удобного rollback, но вам вполне хватает и обычного резервного копирования. А вот с появлением в команде даже одного человека все становится на порядок сложнее и здесь SVN / GIT является незаменимым инструментом (хотя ладно, до определенной степени можно все равно разделить обязанности аля художник и программист, избегая коллизий, но, имхо, немодно).
Если вы про экспорт GM:S - ну, операция "извлечь файлы из архива" вполне простая и пусть уж это сделает разработчик х) + это полезнее, т.к. тогда можно "правильнее / прозрачнее" организовать структуру проекта, а вдобавок еще и "красиво", если юзать YYC. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Пятница, 01 Июня 2018, 16:56