У нас это называлось защита курсовых и "основы проектной деятельности" )0 А еще иногда это называется "хакатон", если опустить другие детали.
Уточните, что именно вы имеете ввиду под идеей, потому что: 1) Если идея здесь - это решение некоторой проблемы общества, то составить некоторые критерии оценивания можно. 2) Если множество идей - это просто несвязанные друг с другом сферы / жанры / темы (кроме как геймдев), решающие разные задачи и удовлетворяющие разные потребности общества, то объективная оценка практически невозможна.
Если это 1 пункт, то вы предлагаете итак то, что уже есть, но в другой трактовке и с потенциалом отсутствия результата. Хотя опять же - те, кто не реализовал свои "идеи" / задумки, не отправили игры на оценку -> прошли некое подобие премодерации / отбора.
Единственное, чего сейчас нет, но вы видимо предлагаете - подобие "защиты" своего проекта: 1) Составляется дизайнерский документ 2) Клепается презентация 3) Параллельно идет реализация проекта 4) Презентация куда-то потерялась и пилится с нуля в последний день 5) Это все добро отправляется жюри на премодерацию 6) ЗАЩИТА. Упс... А как это, через скуп что ли?.. )0 Крч этот пункт самый проблемный, потому что любой проект защищается словами в формате доклада и последующего диалога в вопросно-ответной форме. Если этот пункт убрать - ваше предложение ничем не отличается от текущего состояния. Нет определенности в том, как это провести и если это будет жюри, то где их найти (повторюсь - не каждому в кайф слушать десятки докладов). 7) Оценка проекта жюри / слушателями / всем сообществом / "впишите свое" по объективным заранее регламентированным критериям (это когда балл за категорию берется не с потолка, а на основе четкого списка требований, ага). 8) Подведение итогов, распределение мест. 9) Сбор фидбека и т.д. Ninja Slayer - 2D Physics Puzzle [cancelled]
Потянет ли это 5-7 сайтов с посещаемостью 30+/-10 чел. в сутки на каждом сайте??
Это зависит от того, на какой технологии разработаны ваши сайты, как сконфигурирован php.ini если это PHP, какой фреймворк используется и какие настройки выставлены на веб-сервере (скорее всего там apache). Если все стоят на каком-нибудь одном фрейворке / веб-сервере и деление происходит на его уровне, то посетителей в сутки у вас 100-280, с таким заявленная конфигурация должна справиться без проблем. С базой данных, если таковая используется, в рамках PaaS теоретически проблем возникнуть не должно, поэтому ее не учитываем.
Цитатаandarky ()
Количество процессов 60
Теоретически это может служить показателем того, сколько одновременных подключений может держать веб-сервер.
Цитатаandarky ()
Максимальная загрузка процессора 35%
Это значит, что ваша нода с виртуальным контейнером может потреблять максимум 35% процессорной мощности машины, на которой она запущена.
Цитатаandarky ()
(до 2x2700 Мгц)
А вот это очень странная магия, но можно предположить, что это тупые маркетологи высчитали: 4x3800 * 35% = 5320 = 2x2660 ~ 2x2700. Это лишь предположение.
Цитатаandarky ()
Оперативная память 512 Мб
Расчеты очень грубые и приблизительные, но навскидку можно посчитать так: 1 запущенный процесс интерпретатора динамического ЯП требует минимум 8 Мб оперативной памяти. Вам дозволено запустить 60 процессов. Значит, 8 * 60 = 480 Мб -> По приближению к максимальной нагрузке память будет заполнена полностью, а значит каждый ресурсоемкий процесс очень сильно влияет на общее количество одновременных соединений (ну, хз, вдруг вы захотели зачем-то загрузить из БД миллион каких-то записей посредством ORM. Или этого захотели не вы, но ддосер понял, как этого добиться (но это уже в другую степь и ошибка далеко не в кол-ве памяти сервера) ).
Цитатаandarky ()
Лучше платить деньги чем терпеть такое свинство.
Скоро вы пойдете дальше и поймете, что на постоянной основе надо брать VDS / VPS и уходить с хостингов )0 (хотя ладно, для landing'ов можно хоть конструкторы юзать)
Добавлено (30 Мая 2018, 11:08) ---------------------------------------------
ЦитатаAbel399 ()
сколько одновременных подключений может держать веб-сервер
TL;DR Мне часто помогает смена обстановки, небольшой перерыв (аля выходные) + самовнушаемые дедлайны (а иногда и реальные). Порой сильное влияние на весь процесс может оказывать музыка, окружение, погода, фаза Луны - тут все индивидуально. Еще сильнее могут вдохновлять успехи других разработчиков. Поэтому я часто если нахожу интересный проект, то подписываюсь и иногда слежу за ним. Ну, и часто бывает так, что вы просто перегорели и нужно взять брейк, доведя проект до некоторой логической точки.
Чтобы точно что-то доделать / реализовать помогает довольно избитый метод "поедания слона" - разбиваешь проект на мелкие задачи, потом их тоже можешь как-то расчленить и потихоньку каждую выполняешь. Видя, как много уже сделано, получаешь новый запас сил и стремление дойти до финишной прямой. Очень хорошо себя показали в моей практике проектные доски (в моем случае это Trello) - начиная новый проект, я накидываю несколько этапов: Backlog, TODO, In-Progress, Testing, Done. В первый закидываю любые даже самые бредовые идеи, план по работе, какие-то продуманные задачи. После вспоминаю про "слона", членю задачу, нормально формулирую чего хочу, ставлю дедлайн (за невыполнение я себя штрафую, это важно) и отправляю в следующий этап. Когда видишь прогресс в проекте, то появляется больше уверенности в своих силах, возникают странные эмоции некоего восторга (а иногда и разочарования, да, бывает). Вообще существует огромное множество методологий, которые незаметно все-таки скрывают в себе идею "сохранения запала" и доведения проекта до определенной степени завершенности: scrum, kanban, agile и пр.
Можно сюда еще добавить пару слов про MVP и как правильнее его понимать. Допустим, вы знаете, что это такое, поэтому вспомним только суть - потратить минимум усилий/времени и получить продукт, который имеет самый основной функционал, выражающий суть проекта. Окей, но как мы это применим к разработке? Ну, очень просто - все мы знаем про базовую механику игр, жанры и т.п. Платформер. Что это значит? Ну, мы можем бегать, прыгать, есть поверхности, которые не дают упасть вниз, играем некоторым объектом - допустим, куб. Сделали? Отлично, уже что-то готово. Хотим ну теперь еще стрелять - окей, сделали. А теперь чтобы это было прям игрой нужна графика - окей, нарисовали / придумали ровно столько, сколько нужно (хотя часто скетчи возникают еще до начала разработки и попадают в backlog). После еще пары итераций с парой уровней, механикой победы и т.п. мы получаем MVP. Ну, а дальше будем уже пилить полноценный продукт... Нет! Дальше по аналогии вырабатываем следующую минимально рабочую версию, которая в любой момент разработки может быть запущена и в нее можно поиграть! В некотором роде это как OpеnSource проект, в котором каждый пул реквест расширяет возможности приложения, либо что-то в нем исправляет, но (в "правильном проекте") любой желающий в любой момент может получить работающую версию приложения из стабильной ветки (да, т.е. промежуточные этапы наших "MVP" не обязаны быть играбельны). И вот задача состоит в том, чтобы те промежуточные этапы были минимальны, а количество стабильных итераций / версий было как можно больше, привнося новые возможности и т.п. И к чему это все в тему мотивации и завершения проекта? 1) Хотя бы к тому, что ваш проект будет всегда завершен с определенной степенью, всегда будет некоторая его стабильная версия, которая полностью соответствует вложенным в проект усилиям. 2) Вы видите проект уже работающим, вам проще придумывать фичи и легче их вносить. А от этого становится интереснее эти нововведения придумывать и реализовывать. 3) Очень легко приостановить разработку, отвлечься (вы перегорели), а потом спустя месяц после просмотра какого-то стрима разработчиков в смежном жанре вернуться и не вспоминать что там нужно было сделать, а сразу начать с "чекпоинта" делать (прекращать лучше именно так, иначе придется какую-то работу откатить, ибо сложно порой вспомнить промежуточные этапы). Понадобится минимум времени, чтобы снова влиться в процесс.
Расписал много, даже сам такого не ожидал. Спасибо, если дочитали )
falcoware, БОЖЕ, СПАСИБО! Я ооочень долго искал и не мог найти по обрывкам из воспоминаний это произведение искусства. Спасибо!
Block_men, товарищ, здесь принято сперва изложить свою идею, показать наработки, а уже потом призывать людей "сделать что-то крутое". И если люди увидят, что вы сами чего-то стоите и сотрудничество с вами не превратится в пустую трату времени, то они заинтересуются вашим проектом / идеей и откликнутся. В общем, добро пожаловать сперва в Блокнот / Word / GoogleDocs / PowerPoint / Trello / Dia / любой графический редактор / где вам еще будет проще изложить свои идеи и сверстать "диздок" / "концепт-презентацию" и после уже с этим всем в раздел "Идеи для реализации". И да, оформить тему тоже желательно как подобает. Вот тогда уже с вами можно будет иметь диалог. Успехов! Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Суббота, 26 Мая 2018, 18:44
MyDreamForever, Наконец нашел время и поиграл пару часов, но полностью игру не прошел (по большей части из-за того, что параллельно писал этот пост). В целом за исключением некоторых моментов мне понравилось, правда вот, с реиграбельностью у игры точно есть проблемы.
// Постарался расписать все по пунктам:
0. Ликбез:
Поищите и используйте сторонние библиотеки вместо решений от YoYo для вашей игры, начиная от открытия ссылок и вплоть до интеграции со Steam. Как пример - библиотека для работы со SteamWorks (по большей части работа с сетью) от YellowAfterLife.
1. Запуск игры:
YoYo удивили прям на старте игры )0
Писать что-то в автозапуск при первом запуске для игр весьма плохая затея. Предполагаю, что это из-за встроенного экспорта в Steam. Значение в автозапуске:
Вообще весьма странная затея сжимать все в бинарник, а потом из Temp'a доставать упакованные ресурсы и писать в реестр... Для чего? Для сохранности? Да нифига, обычным архиватором все можно достать:
Если игровые ресурсы и сжимают, то точно не таким образом. Не понимаю я YoYo Games. P.S> В других играх на гамаке в стиме такого не видел и если это все-таки ваша затея, а не YoYo, то тогда я не понимаю вас )
2. Меню:
2.1. Ошибка при клике на ссылку стима. Вообще в идеале в релизе нужно перенаправлять исключения в лог-файл и, как один из вариантов, встроить в приложение "отправку логов разработчику".
2.2. Иконки ВК и Твиттера выделяются на фоне иконки Steam (ИМХО). А иконка ВК вовсе "не отцентрована" (боль перфекциониста).
2.3. Настройки:
2.3.1. Для настроек все-таки предпочтительнее отдельный layout, да и разнообразие в настройке не помешало бы.
2.3.2. Жутко не хватает настроек управления. Мало того, что это скрытый мини-гайд по игре, так еще и в несколько раз улучшает восприятие игры, т.к. каждый привык играть по-своему.
3. Игра / Механика / Мелочи / Придирки:
3.0. Прокачка это интересно, но вот только после уровня... - ну, такое, даже не знаю... )
3.1. Хоть и не критично, но юзер-фака / мини-тутора не хватило (а одна подсказка спустя уже 5 уровней это ну такое.. ))0 ). Да, геймплей незамысловатый, но пара надписей по механике и управлению не помешают. Да и вообще на старте не сразу догадаешься, что это за красные и синие круги (да-да, невелика проблема, но решается элементарно - 3 секунды оверлея с текстом над всеми элементами и играть уже сразу приятнее. А если говорить про погружение - хм, тогда наличие HUD вообще спорная штука... )))0 ).
3.2. Местами нарушается порядок отрисовки.
3.3. Нет скольжения при диагональном движении, да и вообще с маской персонажа есть проблемы (а в таких играх это должна быть окружность) - порой нельзя пройти в очевидных местах. Временами это раздражает. UPD: Проблема серьезнее - при диагональном передвижениии персонаж "застревает в стенах". Во время боя сильно мешает.
3.4. А вот рубить кустики и пшеницу было достаточно весело )0
3.5. Не понимаю можно или нет, но диалоги-уведомления не получается быстро скрыть == грусть (снова канитель про "юзерфрендли" и "надпись-гайд", если такая возможность есть)
3.6. Порой предметы "застревают" в стенах. UPD: забыл скрином зацепить свое хп, но утверждаю, что оно было наполовину пустым )0
3.7. Неправильно реализован курсор - тянется за видом. Он у вас видимо перемещается в Step, а не в Draw.
3.9. Неправильное диагональное перемещение. Не то, чтобы это именно ваша проблема, потому что когда-то это баг, а когда-то фича, но на скорости х4 очень сильно портит всю малину.
3.10. Отсутствие намека на сюжет не является недочетом слешера, но с ним было бы немного приятнее.
3.11. Боевка достаточно утомительная и однообразная. Отсюда все выливается в "ээээ... слишком просто, можно что посерьезнее?".
4. Музыка:
Звуковое сопровождение просто шикарнейшее, невозможно это передать словами, подобрано идеально. Из-за той штуки с реестром не удержался и утянул музыку в плейлист
5. Графика:
5.1. В общих чертах - достаточно приятная пиксельная графика. Вырвиглазность не появилась и это замечательно.
5.2. Маленький недочет с тайлами. Я очень долго пытался понять как именно эти стены были расположены и все равно не пришел к определенности. Если это обрыв, то он выглядит весьма-весьма странно. Если это стена, то почему она такая тонкая в другом ракурсе?.. Придираюсь, да :>
5.3. Портал, ИМХО, сильно выбивается из общей гаммы (как минимум он кажется более детализированным, чем сам игровой персонаж).
5.4. Местами есть странные и непонятные сочетания тайлов и других объектов. Игра точно использует одну единую палитру?
5.5. Честно, окошки-диалоги-уведомления не очень. Прям от слова совсем.
Общую оценку ставить не буду, потому что верю, что выйдет патч, выйдет солнце и все станет лучше ;>
afq, честно сказать, здесь трудно что-то посоветовать, потому что у нас обычно все эти обозначения вводились постепенно во время лекций, не было необходимости в специализированной литературе для этого. Но как вариант можете попробовать поискать неизвестный символ в документации TeX'a, а уже по найденным ключевым словам найдете остальную теорию. Еще можно поискать будет в данном пособии по набору формул в LaTeX.
P.S> TeX - мощная система верстки документов. Чаще всего используемая в академических и научных целях из-за большой гибкости в работе с мат. формулами и разметкой документа. Ninja Slayer - 2D Physics Puzzle [cancelled]
Делаете так - создаете в Create default_fix и couch_fix, не удаляете их. В Step сперва удаляете предыдущую маску, потом биндите новую. Должно работать.
P.S> Под удалением я имел ввиду "unbind / remove" P.S> Не знаю как реализована операция "отлинковать маску", насколько это дешевая операция, но как альтернатива есть еще physics_fixture_set_sensor. Добавляете сразу обе маски, но одну из них делаете сенсором (события коллизии есть, физики нет). После этого просто переключаете необходимые маски на объекте. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Четверг, 17 Мая 2018, 21:52
Блин, прям реально ностальгия по первому курсу взяла! Это же сишник, вим и SDL, прям как родные... Честно сказать, смотрел в x1.5 и пропускал многое, было бы неплохо говорить немного четче и быстрее. Но в целом неплохой пример, думаю у вас еще все впереди ;-) А вообще вам скорее понадобится аналитическая геометрия и численные методы, нежели линейная алгебра в целом ) Но если решите заняться последним по-серьезнее, то прям советую попробовать прочитать А.Г.Куроша и порешать задачки из И.В.Проскурякова, для развития математического мышления, думаю, будет полезно.
tohaad, офкоз на английском. К сожалению, в русском сегменте довольно сложно найти литературу по данной тематике. А то, что имеется, либо устаревшее и отстает от реальности, либо очень поверхностно охватывает тему. Как вариант могу порекомендовать курс лекций от одного из участников форума - Андрей Коротков aka DRON_progger (на момент публикации сообщения видео-материал все еще имеется на его канале). Еще можно почитать о паттернах проектирования (любого ПО). Нагуглить их достаточно легко, запомнить несложно, а польза будет огромна. Бонус: Перевод небольшой статьи от Intel (но опять же - информация поверхностная).
roma3fon, IPv6 был только одним из пунктов ) Да, в России плохо, но все-таки не два с половиной )))0 Тенденция к распространению есть, о будущем тоже не стоит забывать. Про p2p сеть - ну, я ведь не спроста намекнул на DHT и сказал про пиринговую сеть (что, кстати, синоним p2p сети).
Также будет желательно изучить документацию Vulkan, там очень много информации касательно рендеринга на низком уровне, часто будет наводить на правильные мысли по реализации той или иной фичи / компоненты движка.
Физический/Звуковой/Сетевой (и т.д.) движок лучше (и правильнее) взять готовый, заранее позаботившись о безболезненном подключении компонент к движку. Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Среда, 09 Мая 2018, 07:21
Вам нужно изучить тему запекания карт нормалей и систему LOD. Существует два подхода: 1) Вы создаете низкополигональную модель, а потом начинаете ее усложнять и дополнять деталями, при необходимости запекаете карты и применяете к низкополигональным. 2) Вы строите сразу высокополигональную модель со всеми возможными деталями (в пределах разумного, ведь не стоит забывать про декомпозицию). После вы создаете на основе данной модели уже низкополигональную (как правило с нуля), запекаете на ней карты нормалей и иногда переходите к 1 пункту, чтобы получить гибрид. Художники и творческие люди обычно предпочитают использовать ZBrush, Blender Sculpting, Cinema4D и др на этапе детализации / создания высокополигональной модели.
У каждого подхода свои преимущества и недостатки, разные решаемые задачи. Я чаще всего использую гибридную систему, когда на высоких LOD используется достаточно детализированная low-poly и карта нормали, а на низких - базовая low-poly и как правило даже без карт нормалей. Ninja Slayer - 2D Physics Puzzle [cancelled]
drcrack, игра слов, ога )0 Имелось ввиду, что он необязателен для клиентов, а при использовании pwnat он не нужен вовсе. Так же под отсутствием "автоматического установления соединения" понимается "подключаемся к какому-то свободному STUN, проверяем тип NAT, не закрывая соединение говорим другому клиенту наши IP:PORT если наты совместимы, благодарим великого Ктулху за коннект". + он нужен именно когда нет UPnP (да, ситуация, что IP на роутере белый, есть UPnP, но нет возможности настроить Bridge, существует)
P.S> Исправил для большей точности
Добавлено (08 Мая 2018, 19:54) --------------------------------------------- Стоит добавить, что использовать Photon Server / Photon Cloud все-таки выгоднее, т.к. затраты на свой велосипед часто не окупаются. У них хорошее API, бесплатный пакет достаточный для небольших тестов или "игры разработчика с друзьями". Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Вторник, 08 Мая 2018, 19:57
Как добавку-приправу вставлю пару слов: 1) Белый айпи желателен, но далеко не обязателен. Вот почему: * в зависимости от источника (провайдер или сам роутер юзера) "серости" можно попытать удачу с UPnP (на заметку - так постоянно делает torrent) * есть NAT Punch-through (легче всего делается UDP Hole Punching) - Он плохо работает(вплоть до не работает вовсе) с symmetric и port-restricted nat, для них необходимы TURN / Relay серверы. - Функционал полностью реализован в RakNet, некоторые крутые идеи можно подсмотреть в pwnat. - Без использования ICMP(pwnat) понадобится сервер с белым ip (если не нужно автоматически устанавливать соединение, то сервер необязательно должен быть ваш == free STUN), через который можно будет узнать внешние IP и порт + нужен контроль над сокетами, т.к. использовать придется один и тот же. 2) MasterServer / STUN используются для определения внешнего IP и других характеристик клиента (например, тип NAT, приблизительное местоположение) 3) Когда не удается пробить NAT, брандмауэр (хотя здесь это глупо, т.к. проще попросить юзера разрешить соединение), firewall и использовать UPnP, то остается только: * Proxy / TURN - прямая переадресация трафика. Используете либо VDS, либо proxy с открытым API, либо узлы пиринговых сетей (Tor, I2P и др.). Последнее имеет достаточно высокий порог входа. * Relay Server - более модное слово, но по факту тоже, что и выше. По дефолту uNet поддерживает свои собственные relay-серверы, но стоят они довольно-таки прилично. * Использование VPN - по факту это синоним использованию Hamachi / Tunngle. Можно поднять свой, но не всегда это рентабельно. 4) Существует IPv6: * Приложения при первой возможности для таких целей должны использовать их. * Сейчас они хоть и не в каждом доме, но их число верно продолжает расти (english article, статистика Google)
Все вышесказанное в большинстве случаев потребует от вас: 1) Базовые знания об устройстве компьютерных сетей (сетевые протоколы, туннелирование, маршрутизация, NAT, IP, ноды и другое) 2) Знание о том, как работать с сокетами напрямую (TCP, UDP, raw) 3) Все-таки наличие STUN/TURN / VPS / VDS / Dedicated с белым IP для bootstrap'a общения пиров (pwnat не потребует, но технология ненадежна и небезопасна) 4) Умение подключать shared-library в Unity + скорее всего умение их написания (а отсюда как правило - знание си/плюсов )))0 )
Если вы все еще полны решимости сломать свой мозг - почитайте про ENet (с ним будет попроще, если не захотите в RakNet), имплементацию WebRTC (хорошо описан принцип перехода между технологиями, да и сами технологии), MiniUPnP, DHT (ага, в итоге все такие идеи превращаются в создание своей пиринговой сети c: )
Если подробнее, то так: 1) Использовать ds_list (документация) 2) Создать / использовать уже существующий persistent объект 3) В его Create написать что-то вроде:
Код
room_id = 0; list_rooms = ds_list_create(); ds_list_add(list_rooms, r_1, r_2, r_3, r_4, r_5, r_6, r_7, r_8, r_9, r_10); // Не более 15 за раз ds_list_shuffle(list_rooms);
4) Создаем User Defined Event 1 (можно так же использовать Alarm):
Код
room_id = 0; ds_list_shuffle(list_rooms);
5) Создаем User Defined Event 2 (можно так же использовать Alarm):
Код
if (ds_list_size(list_rooms) >= room_id + 1) exit; // Либо любая другая логика аля "выход в меню" room_goto(list_rooms[| ++room_id]);
Теперь если нужно заново перемешать - вызываем event_user(1) у объекта. Если перейти к следующей комнате - event_user(2).
Ну, окей, убивалка времени получилась, можете расширять геймплей. Сейчас смысла в ограничении времени совершенно никакого нет, это чистый рандом, посылка и какое-либо логическое уравнение для решения отсутствуют.
По поводу гамака - делайте лучше на студии, т.к. игры такого жанра могут сыскать спрос только на мобилках или в вебе (HTML5)
Вопросы, которые можно себе задать: 1) Почему игрок будет убивать свое время именно в этой игре? Что его заинтересует? 2) Нужно ли игроку думать перед своим ходом? 3) Как заставить игрока начать новую игру после проигрыша, какая у него может быть на это мотивация - какой вызов игра ему бросает? 4) Должен ли игрок бояться проиграть? Для чего ему нужно победить и желательно не проиграть? Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Понедельник, 30 Апреля 2018, 21:45