Собственно пишу тут по нескольким причинам: 1) Надоело постоянно терять файлы с концептами и все время переписывать. 2) Хотелось бы услышать какие либо советы, помощь или критику на худой конец.
Теперь собсно сама идея игры. Идея игры проста и сложна одновременно. Это не травиан и прочие подобные игры и даже не похожа. В первую очередь следует заметить, длительность игры будет не большой, от суток до недели. Игровой процесс будет похож на мою старенькую игру http://isgameplanet.at.ua/load/3-1-0-4 Для тех кому лень смотреть или кто не понял в ней ничего опишу в двух словах: Начинаем игру мы не большим поселением, вокруг нас густой темный туман ( ) разведываем новые территории за определенную плату и колонизируем их. Деньги получаем с налогов с наших провинций, чем больше в ней людей, тем больше доход. Население растет со временем, но страдает от войны. Добравшись до соседа можем начать войну и отобрать у него территории. Наша задача захватить все провинции.
Вот вроде все. Позже напишу больше. Щас пишу с работы, уже конец дня, пора домой ехать так что напишу наверное только завтра утром уже... Спасибо за ваши коментарии. Надеюсь я не нарушил случайно какое то правило данного форума... Мои игры
romgerman, а я играл в похожую, кажется, "rus-wars" или как-то так.
Посмотрел рус варс... Нет, это совершенно не похоже на то что должно быть...
Сейчас размышляю над реализацией... Делать буду на PHP/MySQL, возможно повтыкаю немного JS (в частности не плохо было бы все на Ajax'ах сделать )... Возникает сразу же несколько вопросов... 1) Как запихнуть карту в базу? Точнее, как ЛУЧШЕ, ее туда запихнуть? Вариантов решения я вижу несколько: а) Тупо каждую ячейку карты запихивать в отдельную запись таблицы. Тогда у этой таблицы должны быть поля координат (x,y). Недостатки этого варианта: очень большой размер таблицы (очень много записей), при большом числе одновременно проводимых игр и большом размере карт будут проблемы со скоростью работы. б) Использовать сералайз. Все просто, размер каждой отдельной записи карт будет большой, каждая игровая карта будет находится в отдельной записе.
Лично я склоняюсь ко второму варианту... Мне кажется тормозов будет поменьше... В разы... Собственно технические вопросы на этом пока заканчиваются. В реализации остального функционала особых трудностей не вижу.
Еще немного информации по поводу будущей игры: В системе будет находится несколько игр одновременно, разной продолжительности с разными правилами, называться будут они мирами. За неделю до запуска мира начинается регистрация игроков. Каждый кто зарегистрируется получит письмо, когда игра начнется. Игра продлится от одного дня до недели.
Карта имеет ограниченный размер. Вся карта поделена на провинции, квадратики. Провинции имеют такие параметры как тип местности, рельеф, природный ресурс. Все эти параметры будут на прямую влиять на скорость колонизации провинции, максимальное население, скорость роста населения, скорость роста богатства и прочее. Колонизация будет происходить автоматически, как собственно и практически все остальное. От богатства провы на прямую зависит размер налоговых сборов с нее. От размера населения скорость прироста богатства.
Под контролем игрока будет: бюджет государства, наука государства, дипломатия и шпионаж. Прямого управления колонизацией и прочими элементами игры не будет. Игрок будет опосредствованно влиять на игровой процесс. Т.е. в принципе и без игрока его гос-во не умрет. Но, будут вещи которые без игрока не решаться никак, например дипломатия.
Возникает сразу же несколько вопросов... 1) Как запихнуть карту в базу? Точнее, как ЛУЧШЕ, ее туда запихнуть? Вариантов решения я вижу несколько: а) Тупо каждую ячейку карты запихивать в отдельную запись таблицы. Тогда у этой таблицы должны быть поля координат (x,y). Недостатки этого варианта: очень большой размер таблицы (очень много записей), при большом числе одновременно проводимых игр и большом размере карт будут проблемы со скоростью работы. б) Использовать сералайз. Все просто, размер каждой отдельной записи карт будет большой, каждая игровая карта будет находится в отдельной записе.
Очень большой размер таблицы это сколько? 1 000 000 записей? 1 000 000 000 записей? Впрочем не важно, чем больше будет размер, тем хуже будет работать сериалайз, т.е. медленнее. Т.е. ты на разбор карты будешь тратить намного больше времени, чем простым запросом в таблицу. Поэтому не рекомендую использовать сериалайз. Сколько ты ожидаешь одновременно играющих: миллион, миллиард? В ближайший год тебе такого количества не собрать, поэтому рекомендую делать так, как проще. Моя игра: Браузерный Сталкер Игра в разработке: Аномалия
Сколько ты ожидаешь одновременно играющих: миллион, миллиард? В ближайший год тебе такого количества не собрать, поэтому рекомендую делать так, как проще.
Согласен!
Quote (Ivin)
Начинаем игру мы не большим поселением, вокруг нас густой темный туман ( biggrin ) разведываем новые территории за определенную плату и колонизируем их. Деньги получаем с налогов с наших провинций, чем больше в ней людей, тем больше доход. Население растет со временем, но страдает от войны. Добравшись до соседа можем начать войну и отобрать у него территории. Наша задача захватить все провинции.
Странно, в "Рус-варс" примерно также - только там деревни (те же функции - население, доход и т.д.), вместо колоний, их так же нужно захватить/колонизировать, развивать, получать доход в замок.
Очень большой размер таблицы это сколько? 1 000 000 записей? 1 000 000 000 записей? Впрочем не важно, чем больше будет размер, тем хуже будет работать сериалайз, т.е. медленнее. Т.е. ты на разбор карты будешь тратить намного больше времени, чем простым запросом в таблицу. Поэтому не рекомендую использовать сериалайз. Сколько ты ожидаешь одновременно играющих: миллион, миллиард? В ближайший год тебе такого количества не собрать, поэтому рекомендую делать так, как проще.
Нет, ты не совсем понял. Цифры привожу условно. Размер карты 100х100. Это 10000 записей в таблицу карты для каждого мира. Миров одновременно существовать может очень много. Скажем одновременное существование 10 миров с таким размером карты дает нам уже 100k записей. Из этих 100k нужно каждый раз выбирать 10k записей связанных конкретно с этим миром. Скажем по полю `worldid`. Это нагрузка на БД. Сералайз даст нагрузку на проц. Сериалайз и ансериалайз массива 100х100 займет не так уж много процессорного времени... Вопрос не столько в том что же будет работать быстрее? А в том что выгоднее использовать? Потому как если БД от обилия запросов ляжет... Будет не очень хорошо...
Сколько ты ожидаешь одновременно играющих: миллион, миллиард? В ближайший год тебе такого количества не собрать, поэтому рекомендую делать так, как проще.
Согласен!
Не в том дело сколько будет в ближайший год. Мне выполнять двойную работу. Лучше я сейчас нормальную систему продумаю и реализую с возможностью расширения от ожидаемых в первый год 10-100 человек до тех же 10000 человек... Чем потом буду думать, как же ее переделать что бы оно все работало нормально и без багов...
Quote (anton-gar)
Странно, в "Рус-варс" примерно также - только там деревни (те же функции - население, доход и т.д.), вместо колоний, их так же нужно захватить/колонизировать, развивать, получать доход в замок.
Посмотри игру пример, думаю там в общих чертах можно все понять. Абсолютно разные даже концепции игр. Мои игры
Ты как раз получишь выигрыш пока мало людей, а потом, если количество возрастёт, то поймёшь, что сериализация только мешает - вместо того, чтобы просто выбрать записи и получить готовый массив, тебе приходится преобразовывать запись то туда то обратно. Базы данных как раз и придуманы для того, чтобы легче работать с огромными массивами. Делай конечно как нравиться, но моё мнение, что сериализация тебе не поможет выиграть время, наоборот добавит неудобств. Например возникнет задача вывести список клеток где находится определённый ресурс, так бы просто запросом задача решилась, а при сериализации придётся вручную пройтись по всему массиву циклом. А чем больше кода, тем больше вероятность ошибки. Моя игра: Браузерный Сталкер Игра в разработке: Аномалия
Например возникнет задача вывести список клеток где находится определённый ресурс, так бы просто запросом задача решилась, а при сериализации придётся вручную пройтись по всему массиву циклом. А чем больше кода, тем больше вероятность ошибки.
Просто многие через это проходят, не надо повторять чужих ошибок, времена, когда на счету был каждый байт, прошли. Не бойся использовать базы данных как обычные массивы, смело добавляй поля в таблицы, если в этом есть необходимость. Посмотри как делают именитые фирмы: они пишут как удобнее, и чтобы быстрее выпустить продукт, оптимизацией занимаются в последнюю очередь. На это есть несколько причин. Одна из них - оптимизация этого кода может не понадобиться никогда. Я в своё время поддерживал сайты разных "команд" мододелов. Меня всегда поражало, как они неделями и месяцами занимались решением несущественной задачи. Например дизайном сайта. вместо того чтобы писать игру, они постоянно меняли цвет кнопок на сайте, меняли его дизайн. И через пару месяцев, команда, так и не приступив к написанию игры распадалась. А некоторые начинали заблаговременно оптимизировать код, неделями вели "холивары", переделывали один и тот же участок кода, чтобы он работал более оптимально. Закончив оптимизировать, переходили к следующей части игры, и обнаруживали, что то что они оптимизировали несколько недель им не надо, необходима совсем другая логика, и всё начиналось с начала. Мне было их искренне жаль, но они меня не слушали Надо понимать, что энтузиазм вещь не постоянная, поэтому надо двигаться вперёд, пока есть желание, потом продолжать движение легче, когда видно, что уже далеко от начала пути. Моя игра: Браузерный Сталкер Игра в разработке: Аномалия
Собственно пишу тут по нескольким причинам: 1) Надоело постоянно терять файлы с концептами и все время переписывать. smile 2) Хотелось бы услышать какие либо советы, помощь или критику на худой конец. smile
Теперь собсно сама идея игры. Идея игры проста и сложна одновременно. Это не травиан и прочие подобные игры и даже не похожа. В первую очередь следует заметить, длительность игры будет не большой, от суток до недели. Игровой процесс будет похож на мою старенькую игру http://isgameplanet.at.ua/load/3-1-0-4 Для тех кому лень смотреть или кто не понял в ней ничего опишу в двух словах: Начинаем игру мы не большим поселением, вокруг нас густой темный туман ( biggrin ) разведываем новые территории за определенную плату и колонизируем их. Деньги получаем с налогов с наших провинций, чем больше в ней людей, тем больше доход. Население растет со временем, но страдает от войны. Добравшись до соседа можем начать войну и отобрать у него территории. Наша задача захватить все провинции.
Вот вроде все. Позже напишу больше. Щас пишу с работы, уже конец дня, пора домой ехать biggrin так что напишу наверное только завтра утром уже... Спасибо за ваши коментарии. Надеюсь я не нарушил случайно какое то правило данного форума... smile
Есть такая игра - Settlers Online... Может они украли твою идею??? Помогаю чем могу и прошу взаимной помощи) DCH - сайт разработчиков игр(новый проект)
Есть такая игра - Settlers Online... Может они украли твою идею???
Игру я эту видел. И процитирую теперь себя.
Quote (Ivin)
Игровой процесс будет похож на мою старенькую игру http://isgameplanet.at.ua/load/3-1-0-4
Settlers Online ну ни капельки не похожа... Разве что тем что все таки тоже стратегия... Хотя наверное я все же погорячился... Во первых. Прямого управления строительством в игре не будет (как собственно и строительства). Во вторых. В игре мы управляем не городом (как в сетлерсах) а государством. В третьих. Посмотри все таки игру пример. Слишком уж долго перечислять все различия. Мои игры