• Как обновить значение input при keyup без двойного обновления?

    npanuhin
    @npanuhin
    Можно сделать через oninput:
    $('#input-price').on('input', function() {
      let value = $(this).val();
    
      value = modifyValue(value);
    
      $(this).val(value);
    });
    Ответ написан
    1 комментарий
  • Болезнь творца или как создать свой виртуальный мир?

    razumkov2015
    @razumkov2015
    "Программист" https://vk.com/cgs_game
    Php тут точно плох, а вот node.js. Скачиваете pm2, запускаете jsник и он 24/7 работает. Там уже можно всю логику прописывать, cron тут вообще не нужен. Сервер берите 1, но подороже.
    Ответ написан
    2 комментария
  • Болезнь творца или как создать свой виртуальный мир?

    @iki90009
    Посмотри в сторону игры Dwarf Fortless
    Это лучший пример из того что вы требуете. Прочитайте вики игры.
    Этот человек уже много лет пишет приключения дварфов.
    Ответ написан
    Комментировать
  • Как каждую секунду проверять что-либо на что-либо?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Т.е. у тебя всего 1000 жителей и ты используешь MySQL? Допустим структура житель выглядит так:
    struct Citizen {
      char name[64];
      short hunger;
      short health;
      TYPE type;
    };

    И того 69 байт на 64 битной платформе, предположим, что там ещё куча полей и увеличим размер одного жителя до 128 байт(что даже избыточно), итого 128 кБайт, это крайне мало, можно хранить в ОЗУ, если нужно сохранять между запусками, то может redis подойдёт, ну или всё таки MySQL, но кешировать данные в памяти, т.к. если запрашивать каждый раз, оно будет крайне медленным.
    А на счёт темы вопроса, гугли game loop. Проверять каждую секунду скорее всего не надо, но надо обновлять на разное значени в зависимости от того, сколько прошло времени.
    game-loop-fixed.png
    В цикле вызываешь метод модуля, отвечающего за жителей, и тот уже обновляет нужных тебе жителей. Если прошла секунда, обновляешь на 1 * k, где k - коэффициент голода, если прошло 10 секунд, то 10 * k и т.д.
    Ответ написан
    3 комментария
  • Болезнь творца или как создать свой виртуальный мир?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Так же важной частью реализации станет экономика.

    Все пять лет учёбы на экономическом факультете я представлял экономику, как аппарат с тысячей ручек, поворачивание каждой из которых изменяет положение всех остальных на некоторый мало предсказуемый угол, а суть профессии в том, чтобы добиться идеального положения всех ручек одновременно. Спустя годы работы в области автоматизации торговли и банковского дела я понял, что мои представления были слишком оптимистичны. Удачи.
    Ответ написан
    1 комментарий
  • Болезнь творца или как создать свой виртуальный мир?

    @AnotherStar
    Я бы такой проект для самого себя начал со статичной странички с канвасом, на котором каждый пиксель — единица координат (вид сверху). На JavaScipt можно написать класс для деревьев, с примерно таким набором функций: растёт, в зависимости от времени года (суток) размножается (разбрасывает семена).
    В этом случае получим бесконечно размножающаяся систему, в которой необходимо создать ограничивающий фактор: долголетие и возобновляемый ресурс (вода) и пространство для роста (солнечного света низким деревьям не хватает). Уже этих трёх факторов влияния хватит, чтобы посмотреть как работает экосистема, подобрать константы (а лучше диапазоны рандомных переменных), в которых система живёт.
    Таким образом появится некий естественный отбор, в рамках которого можно будет видеть явное преобладание больших над маленькими и так далее..
    Писать сразу большой проект, в котором попробовать учесть всё что только можно — нереально, т.к. часто вашу задумку придётся обходить хардкодом и хаками.
    Ответ написан
    Комментировать
  • Болезнь творца или как создать свой виртуальный мир?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Не нужно сразу кидаться выбирать ЯП, базу и прочее. Сначала нужно описать механику взаимодействия всего этого друг с другом вплоть до самых подробностей - сверху, от крупных модулей до самого низа, где рассчитывается вероятность того, что у пары юнитов родится мальчик или девочка :)
    Не имея такого описания, Вы постоянно будете путаться - потому что размер проекта не маленький
    Ответ написан
    Комментировать
  • Болезнь творца или как создать свой виртуальный мир?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Вот инструмент для разработки игр и десктопных программ на PHP develnext.org/ru
    Начните с написания диздока. В нем кроме всего прочего описана механика игры в мельчайших подробностях. Без него вы закопаетесь в коде по уши и никогда не закончите свой проект.
    Насчет клона игры Жизнь для разминки, тоже согласен. Чтобы понять как работает подобная симуляция.
    Сложность на мой взгляд в императивном описании поведения каждого агента и мира.
    Хотите поэкспериментировать с агентным моделированием, попробуйте NetLogo.
    Ответ написан
    Комментировать
  • Болезнь творца или как создать свой виртуальный мир?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1. Можно вообще не заморачиваться графикой, обойтись по началу текстом.

    2. Да, вполне можно разделить процессы на разные сервисы. Общение можно делать через базу данных или любой вид межпроцессорных взаимодействий, те же сокеты.
    Главное грамотно разделить.
    В идеале, чтобы остановка одного из процессов не мешала жить остальным - упал сервер обслуживающий AI, исчезли монстры. Но сам мир, трава, ресурсы - на месте, и пользователи могут бегать. Так реализовано в той же Linage от NCSoft.

    3. Если у вас будет готова и описана логика, то высоконагруженные алгоритмы можно написать на С++, java, go, любом другом языке.

    Если вы собираетесь это все монетизировать - это одно. Просто выпустите рабочий хороший вариант, доведите его до ума и пробуйте. Если взлетит - всегда можно будет нанять программистов, переписать отдельные процессы с нуля (при наличии ТЗ и хорошо описанной логики) на компилируемом языке.
    Ответ написан
    Комментировать