пятница, 9 мая 2014 г.

Ludum Dare 29 - Depths Beneath

26 - 28 апреля проходил очередной LudumDare в котором в этот раз я уже участвовал не один.
Все было круто, но идею в следующий раз нужно будет брать поменьше, но сделать ее более законченой за 3 дня чем в этот раз.
Post-mortem в этот раз решили написать прямо на LudumDare так что его можно найти по ссылке.
Post Mortem
Страница игры на LudumDare
Прямая ссылка на post-jam версию игры

В данный момент продолжаем работать над Depths Beneath (название какое придумали за пару часов до дедлайна=) ) , но в скором времени также продолжу параллельно еще доделывать "Admiral Hex".

пятница, 25 апреля 2014 г.

Admiral HEX (Недели 11-12)


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


Credits
Чем дальше тем больше понимаю прелести Marmalade - для Credits нужна была возможность открывать ссылки (twitter, fb), и ничего кроссплатформенного в кокосе на этот случай нет.

LudumDare
Близится LD29 и уверен на выходных не будет времени так что заканчиваю пост немного ранее. До его наступления хотел починить основные баги и заполнить основное меню - что после добавления tutorial можно считать относительным успехом - так как сами AI еще не доделаны.

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


Отображение пути
Раньше куда будут идти армии выделялось только при их отправке, и то небыло понятно как они пойдут, теперь же постоянно видно по какому пути будет идти каждая конкретная армия как игрока так и AI - за которым довольно интересно наблюдать =) Оно еще не доделано так что показать пока нечегоэ

Commit every day
Прочитав интересный пост на habrahabr тоже решил попробовать делать осмысленные комиты каждый день - пока 12 дней подряд -  прогресс и правда заметен и некоторые вещи которые откладывались я за эти дни сделал, и даже вроде по этому посту видно что получилось успеть больше.


Другое
Также переделал иконку приложения и добавил поддержку GameCenter
По двойному тапу на один хексагон теперь выделяются разу все войска.
Добавил немного hexagon shake когда встречаются достаточно большие армии. И заодно переделал и подвинул кнопку паузы/

Полезные ссылки
Полезный репозиторий с кодом для cocos2dx проектов с реализациями сразу под ios, google play, amazon: https://github.com/hovergames/avalon

воскресенье, 6 апреля 2014 г.

Admiral HEX (Недели 9-10)

Кнопки
После некоторой борьбы с кнопками в cocos2dx все-таки решил написать свою реализацию. Это позволит сделать нормальную систему приоритетов для тача. Да и в отличии то встроенных понимает что картинки для кнопки могут быть scaled. Также из за необходимости строго выставлять приоритет.

Меню
Больше поработал на меню, для которого какраз кнопки и понадобились
 

Сохранение состояния
Наконец-то добрался до места где мне будет необходимо хранение информации после перезапуска игры. Для этих нужд решил сделать простой key-value через pugixml. В процессе оказалось что cocos2dx не умеет делать путь до файла для каждой платформы - хоть они и предоставляют примеры на сайте как это можно сделать - странно что этого нет внутри самого cocos2dx. Сам же простенький класс для работы с key-value можно найти на github.


Звуки / Музыка
Добавил больше звуковых эффектов на разные действия, а также добавил рандомизированную музыку в бои.
Также появилась вкладка с настройками в которой теперь можно отдельно выключить музыки либо эффекты.


Нужно наверное также будет еще добавить возможность слушать свою музыку.

ColorPicker
Спустя столько времени наконец-то сделал чтобы оба игроки не могли выбрать одинаковый цвет. А также сохранение последнего выбранного цвета в каждой вкладке.

VsAI
Все никак не могу определиться как же должен выглядеть выбор противника - были идеи slider'a чтобы центральный элемент и был выбранным противником, либо даже просто кнопки которые и начинают игру против него, но слайдер нужно для начала еще и реализовать, а будет ли оно понятно конечно не известно.


P.S. Diablo 3 RoS is too much fun...

понедельник, 24 марта 2014 г.

Love2D + Sublime Text 3 OSX

На выходных решил попробывать написать что-то на lua и love2d, и решил сделать запуск проекта по shortcut, как это например можно сделать в Sublite Text для python просто по нажатию CMD+B

Установка
Сам love2d можно скачать тут: https://love2d.org/
либо по прямой ссылке на текущую версию 0.9.0
После чего перетаскиваем скачанный love.app в Applications

Sublime Text 3 же можно скачать тут: http://www.sublimetext.com/3

Terminal
Для работы с love2d из терминала можно добавить его в .bash_profile

Например так:
open -a TextEdit ~/.bash_profile

если его еще нет - то
touch ~/.bash_profile

и добавляем в конец файла строку
alias love="/Applications/love.app/Contents/MacOS/love"

И после перезапуска терминала, написав
love /path/to/project  // Путь должен содержать в себе файл main.lua
проект будет запущен

Sublime Text
Для того чтобы добавить запуск love2d проектов из sublime text 3 нужно добавить новый вариант сборки:
Tools->Build System->New Build System...
Заменяем то что там есть на 
{
    "shell_cmd": "/Applications/love.app/Contents/MacOS/love \"${project_path}\"",
    "selector": "source.lua"
}
и сохраняем например как love

строка "selector": "source.lua" опциональна, она позволит Sublime Text по разрешению файла определять какую билд систему использовать. В любом случае можно всегда зайти в Tools->Build System и выбрать только что сохраненный вариант сборки.

Теперь если открыть папку содержащую проект (main.lua) в Sublime Text и нажать CMD + B он запустится.

Вместо project_path можно также написать file_path тогда не нужно будет открывать папку, а можно будет собрать проект нажав CMD+B открыв любой файл находящийся в папке с main.lua

воскресенье, 9 марта 2014 г.

Admiral HEX (Недели 7-8)

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

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

Экран Победы
Экран победы пока просто переиспользуется экран паузы без возможности сделать "resume".





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



Библиотека
Вынес часто используемый код из нескольких проектов в отдельный репозиторий на github c разделением на чистый c++ и какие-то полезные вещи для cocos2dx.

Музыка

Добавил обертку для CocosDenshion, также теперь при изменении текущей музыки старый трек затихает, а новые постепенно увеличивает свою громкость. Неожиданно много это заняло времени так как я сделал эффект через наследника CCActionInterval, и не занал способа запустить Action не на спрайты сцены. Как оказалось это можно сделать напрямую через ActionManager - CCDirector::sharedDirector()->getActionManager()->addAction


Основое Меню
Начал работу над эффектом во время нажатия на кнопку в меню. Меню разделяется на 2 половины которые разъезжаются в противоположные стороны позволяя выбрать цвет игрока, противника, и тд.

понедельник, 17 февраля 2014 г.

Admiral HEX (Недели 5-6)

Автоматическое перемещение войск
Теперь можно указать точку в которую войска будут постепенно переходить
Тут получилась мудреная система отрядов которые знают свою конечную точку и постепенно переходят туда - при этом отряды могут содерать любое число войск. Если напасть на ячейку в момент того как на ней находится отряд идущий дальше - он получит по себе урон если стационарные войска сектора были побеждены. 
Также несколько армий может находится одновременно в одном секторе и продолжить свой путь в разных направлениях.

Изменил принцип выделения секторов
Теперь нельзя выделять сектора на которых нет армий что позволяет проще увидеть где же реально находятся войска
Также теперь можно выделять сами отряды - что позволяет выделить их и не потерять выделение при перемещении в следующий сектор
Сектора с генераторами же выделяются не зависимо от числа войск находящихся на них - что позволяет выделить их зарание и отправить как только там появятся войска


Улучшил алгоритм нахождения пути
Теперь предпочитаются уже захваченые територии, а также в расчете стоимости учитывается количество армии противника через которую придется пройти
Это небходимо для того чтобы не тратить войска при том что они были отправлены и идут к цели автоматически
Предпочитать уже захваченые - позволяет армиям соединяться и занимать менье пространства

ИИ
Добавил новых ИИ - больше про это напишу на след. неделе

Чистка
Раньше для захвата сектора нужно было оставлять там 1, но без этого экран выглядит намного чище и в этом небыло большого смысла так что теперь проходя через сектор - он сразу захватывается.
Это также привело в изменении логики сражений - если нападающие проиграли в ничью - то сектор остается за защищающимися, а не становится ничейным как это было раньше.
А также оставило только числа кратные 5 (столько генерируется за тик)

GUI
Начал создавать основное меню - пока как минимум для возможности выбрать vs ai или против реального игрока

воскресенье, 2 февраля 2014 г.

Week 3-4

- Теперь при передвижении войск - Hexagon увеличивается, и уменьшается обратно - что позволяет лучше видеть действия бота
- Сделал Hexagon'ы немного прозрачными и добавил случайные задние фоны


- Добавил класс для симетричного расположения нейтральных армий, чтобы оба игрока были в одинаковых условиях
- Добавил несколько паттернов нейтральных войск с вероятностями и добавлением их на игровое поле
- Сделал билд на iphone
- Улучшил AI
- Добавил специльные сектора которые увеличивают прирост армий на всех остальных контролируемых ячейках приносящих войска.
- Добавил разные типы скомплений нейтралов и вероятности (веса) их появляения.
- Игроки теперь стартуют на случайном y но также зеркально.
- Наконец-то получилось собрать билд под mac который работал на другом маке (Оказывается я сделал у себя папку ресурсов ссылкой - из за чего он конечно находил её на моем маке - но так как её небыло на любом другом - падал)
- Попробывал сделать чтобы при встрече большого числа войск сектора вокруг немного тряслись - как идея вроде неплохо но нужно больше настраивать как это выглядит.
- Добавил A* для нахождения кратчайшего пути (Возможно пока overkill, но планирую добавлять препятствия - так что пригодиться) (http://www.policyalmanac.org/games/aStarTutorial_rus.htm)
- Добавил возможность выделить сразу несколько секторов и переправлять их в конечную точку