Pull to refresh

Comments 16

Потом расскажите как вы патчами правили баланс.

Я думаю, мой подход как раз и позволит на выходе получить более сбалансированную игру: будет много версий для тестирования

Ага, я думаю это будет самое болезненное в разработке подобных игр

Я делал уже карточную игру. Механика как в Orions: Legend of the Wizards, но вместо насилия - любоф. Ссылку, ессно, не дам (Ибо там затрагивается тема, которая, одному Богу известно - почему-то является запретной, в отличии от убийств и членовредительства). Но делал на ванильном JS, запилил где-то за неделю. На ней же и вывел код стайл, который хорошо ложится на сетевое взаимодействие: через "state" и "controller". А действия - через "history". Т.е. state - содержит лишь информацию (состояние игрового поля), controller - действия с полем. Все действия записываются в history. GUI читает новые события из history и отображает их. Еще и немного механику AI проработал - minmax.

Я считаю, что реклама — это устаревший маркетинговый инструмент для продажи игр.

Тут - любо бешено соглашаюсь. Идеальный маркетинг - превентивный. Изучаем потребности ЦА - проектируем потребность - реализуем продукт. Но в вашем случае - все равно: "сначала я сделаль, потом заставиль это кушац". Т.е. желание разраба превалирует над желаниями потребителей. Это уже чисто творчество, но не бизнес. Ибо результат работы в первую очередь удовлетворяет создателя, но не публику.

Я обожаю тратить деньги на бустеры для Мотыги, но понимаю, что это нечестно.

Если это в правилах игры - то честно. Честно то, что не обман. Читерить - бесчестно. Харстон тоже "донатная помойка" - но это лучшая многопользовательская ККИ.

Блин, реализация вашей игры довольно интересно звучит. И кажется, действительно лучше подходит для сетевых игр. Я в программировании новичок и пока на таком уровне делать сложно. Делаю по принципу: "нужно, чтобы на экран вывелась эта штука, иду гуглить, как это сделать". Потом понимаю, что появляются усложнения - иду переписывать код

С "изучаем потребности ЦА" не до конца согласен. Такой подход имеет место быть. Но мне больше нравится путь "изучаю свои потребности". То есть, делаю все так, как понравилось бы мне и попутно рассказываю об этом везде, где дадут возможность. Возможно, звучит наивно. Но посмотрим, что в итоге выйдет

Соглашусь, да. Понятия "честный" и "нечестный" относительно МТГ или Хартстоуна с их донатными механиками неприменимы. Тут скорее "нравится" или "не нравится". Мне вот не нравится Харт, я хочу сделать такую игру, которая мне бы полностью нравилась

Тогда на коммерческий успех расчитывать тоже наивно. Делать для себя - значит для себя.

Про прогу - нужно разделять логику и интерфейс. Можно игровую логику написать вообще без графики, в консоли или на юнит тестах. А графическую часть - отдельно. Кароч - гуглим MVC или DDD. Хотя, это для профи уже.

Я шарп мейню, но игрушки на жс пишу - особо не требовательные к производительности. Хотя ща пришлось шарп расчехлить (думал даж плюсы или раст). Нейросетку учить надо, скорость нужна, хочу нпц на нейронке сделать.

Я прост знаком был с Юнити, а там шарп. Поэтому для меня это самым легким путем было что-то начать делать

Вот код для плавного перемещения карты в нужную позицию: c.position.x - где должно быть, c.container.position.x - где есть сейчас.

    const handCardPositionInterval = setInterval(() => {
        hand.cards.forEach(c => {
            c.container.position.x += (c.position.x - c.container.position.x) / 10
            c.container.position.y += (c.position.y - c.container.position.y) / 10
        })
        app.stage.sortChildren()
    }, fps)

И позиция: aRad - "угол карты", чтобы было "веером". Тут не оптимизированно т.к. dx и rdx можно сохранять, но я ж говорю - на оптимизацию забил)

handGraphicsInfo = {
        sx: 200,
        ex: 1200,
        sy: 850,
        ey: 900,
        fps: 1000 / 60,
        zindex: 5000,
        zoom: 1.05,
    }
const rotationDiff = Math.PI * 0.3
function updateCardPosition(i, card1, cardsCount) {
            let di = (i + 1) / cardsCount
            let dx = handGraphicsInfo.ex - handGraphicsInfo.sx
            let dy = handGraphicsInfo.ey - handGraphicsInfo.sy
            let rdx = handGraphicsInfo.sx + di * dx
            let rdy = handGraphicsInfo.sy + di * dy
            let aRad = -rotationDiff + (di * rotationDiff)
            const handposition = { x: handGraphicsInfo.sx + rdx, y: rdy }
            card1.handposition = handposition
            card1.aRad = aRad
            card1.index = i
            card1.position = {
                x: card1.handposition.x,
                y: card1.handposition.y
            }
            card1.container.rotation = aRad
            card1.container.zIndex = i + handGraphicsInfo.zindex
            return aRad
        }

Про то, как на жс по быстрому написать игру - Что такое игра? Как ее написать?

И код - абстрактный, чистая математика. Детали реализации графического UI - не существенны. Хоть юнити, хоть анрил энжин. Разве что синтаксис поменять на <язык>.

Спасибо! С углом карты попробую у себя применить

Даже в статике все чрезмерно пестрит и глаза разбегаются. И дело не в большом количестве карт на столе

Я бы не назвал Арену идеальным примером UI, однако она более чем удобна. Глаза разбегаться разве что с непривычки могут, доска считывается достаточно легко. Даже в шакальном качестве совершенно понятно, чем играют оба и какова ситуация.

сначала сделать трейлер, потом демку без мультиплеера, потом демку с мультиплеером, потом добавить все остальное в игру

Неправильно ты, Дядя Федор
Что бы делал я:

  • Прототип на бумаге, поиграть с друзьями

  • MVP с мультиплеером, без анимаций и графики

И уже потом (если играбельно и цепляет) - альфа для обкатки на незнакомых людях.

Но вот движков для карточных игр я не видел.

Tabletop Simulator - движок/симулятор для любых настолок в принципе (сам изнутри не щупал).

Я считаю, что реклама — это устаревший маркетинговый инструмент для продажи игр.
Верю, что игру можно продать большому числу людей, если игра хорошая, и ты методично про нее везде рассказываешь.

Тут у вас противоречие. Если вы кому-то рассказываете о вашем продукте для того, чтобы этот кто-то купил ваш продукт, вы его рекламируете.

Бумажный прототип уже делал, играл с друзьями. МВП с мультиплеером звучит логично. В принципе, сейчас его и делаю, только мультиплеер не сетевой, а на одном экране. Правда на графику и анимации все же отвлекаюсь

По поводу рекламы: для меня реклама - это когда я покупаю место (на доске объявлений, в поисковой выдаче, в ленте соцсети), чтобы туда вставить объявление о своем продукте. Когда я рассказываю о своем продукте - это уже контент-маркетинг

Сразу скажу несколько предупреждений - подписочная модель - значит чтобы привлечь и сохранить пользователей нужно продумать постоянные обновления контента. Советую сразу подумать над этим как будут выглядеть эти обновления, и как не упереться в "слишком много карт" - ротация а-ля харстоун\мтг, введение новых механик а-ля Legends of runeterra или что-то еще.
Также, спрашивать с пользователей регулярную плату за ноу-нейм игру в которой возможно, особенно первое время, в принципе не с кем будет играть - достаточно рискованно. Я бы предложил модель дешевая база + регулярные платные контент-паки. (Но тогда новые пользователи могут столкнуться с огромным пейволлом в лице "тебе нужно купить все уже вышедшие контент паки").

Ну и еще - ККИ ОЧЕНЬ чувствительны к тому, чтобы на каждом этапе "прокачки" ты мог поиграть против игроков того же уровня, что для маленькой игры может быть ОЧЕНЬ сложно. В кратце - первая пачка игроков заходит и прокачивается весело, потом хотят зайти новички - и по ним бульдозером катаются уже опытные игроки.

Да, пока что только морально готовлюсь ко всем этим проблемам. План такой: первый уровень сделать бесплатным и сначала вложить побольше времени в его развитие. Когда будет достаточно классно все выглядеть и наберется база игроков, запускать следующие уровни с новым контентом и их уже продавать по подписке. Чем больше будет изначальный спрос, тем выше брать цену для подписки. Уровень ограничивает тех, с кем ты можешь сражаться (только игроки твоего же уровня), и карты, которые ты можешь использовать

Удачи тебе в твоих начинаниях!

Я являюсь фанатом MTG, ну и в целом люблю ККИ. Иногда тоже задумываюсь заняться разработкой своей игры, но по ка дальше желаний дело не уходит.

В первую очередь конечно нужно создать внутреннею механику игру, которая одновременно была бы проста и открывала большие возможности для колодостроения.

Если говорить о монетизации при условии выпуска дополнительного контента, то есть причина из-за, которой PvP ККИ игры не предлагают подписку за доступ к картам. Для обычных игроков, не киберспортсменов, важно чувствовать прогрессию в игре. При подписке ты вывалишь на них куча карт и они буквально в них утонят. Постепенное пополнение коллекции обеспечивает ту самую дозу эйфории, ради которой игроки возвращаются. Есть в принципе примеры постепенного пополнения коллекции за определённый прайс. К примеру, Heartstone, где есть сюжетные компании, и там можно по порядку познакомиться со всеми новыми картами и механиками.

Сейчас есть возможности получить гранты на разработку игр в РФ. Но я так думаю, туда нужно заявляться с игрой, которая условно пропагандирует российскую культуру. К слову, вспомнил об одной идеи о мире, где пересекаются культуры из различных времён России, и чтобы была магия и наука.

В общем, если нужна будет в чём-то помощь, к примеру, в тестировании, всегда буду рад помочь.

Спасибо!

По поводу вываливания карт при подписочной модели: представлял это не совсем так. В моем понимании игроки будут получать карты все так же постепенно, просто не будут платить деньги за покупку карт. Мне не нравится МТГ тем, что покупка карт превращается в казино, где ты тратишь много денег в погоне за нужной картой.

Sign up to leave a comment.

Articles