27.03.2014

Немного редизайна

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

Слева направо: войн, священник, маг

Собственно, что решено сделать:
  • Расы:
    • Человек
    • Гном
    • Эльф
    • Орк
  • Классы:
    • Рыцарь
    • Священник
    • Маг

26.03.2014

Спрайт игрока

Закончил наконец-то спрайты игрока. Вот они:

Спрайты игрока
В общем, с художественной частью покончено.

Что я сейчас делаю:
  •     Как прогер:
    • Организация данных в памяти
    • Класс ирока
    • Рендеринг
  • Как художник:
    • Несколько тайлов подземелья
    • Спрайты игрока
  • Как менеджер:
    • Пинаю болт
   
Что должно получиться в итоге:
    На экране подземелье и игрок, который может перемещаться по тайлам пола и не может перемещаться по тайлам стен.

Вычеркнул ещё один пункт

Нарисовал несколько мрачноватых тайлов в холодных тонах. Думаю, они являются определяющими для цветового стиля всей графики.

Тайлы. Слева каменный пол, справа -- стена

Само собой, это увеличенная версия, в реале они 32x32 пикселя.

Что я сейчас делаю:
  •     Как прогер:
    • Организация данных в памяти
    • Класс ирока
    • Рендеринг
  • Как художник:
    • Несколько тайлов подземелья
    • Спрайты игрока
  • Как менеджер:
    • Пинаю болт
   
Что должно получиться в итоге:
    На экране подземелье и игрок, который может перемещаться по тайлам пола и не может перемещаться по тайлам стен.

Некоторый прогресс

После нескольких дней раздумий распланировал следующую организацию данных:

//    Организация данных            |            Data structure

//    Enum с направлениями        |        Enum of directions
Enum Direction {
    Up,
    Right,
    Bottom,
    Down
}

//    Класс игры                                |            Game class
Class FrostGame {

    //    Все картинки тайлов хранятся здесь        |        Store tile graphics
    Class FrostTileImageSet {
        Map Class FrostTileImage {
            //    Сама картинка            |            Graphics itself
            Image img;
            //    Уникальный номер картинки в c++map'е        |        Id of graphics in c++map
            unsigned int uid;
        }
    }
       
    //    Все картинки персонажей хранятся здесь        |        Store actors graphics   
    Class FrostActorImageSet {
        Map Class FrostActorImage {
            //    Четыре направления        |        Four directions
            Image img[4];
            //    Уникальный номер картинки в c++map'е        |        Id of graphics in c++map       
            unsigned int uid;
        }
    }

    //    Карта со всем содержимым, т.е. тайлами и персонажами        |        Map with actors and tiles
    Class FrostMap {
        //    Ширина и высота        |        Width and Height
        int width, height;
        //    Массив с id картинок тайлов        |        Tile graphic ids
        int tileimageuid[width][height];
        //    Твёрдость тайла (Воздух - стена)        |        Tile solidness
        bool tilesolid[width][height];
       
        //    Список персонажей на карте.    0 -- всегда игрок        |        List of actors on map. Player is always 0
        Class FrostActorlist {
            //    Массив с актёрами        |        Array of actors
            Vector Class FrostActor {
                //    x y -- координаты актёра, imageuid -- номер спрайта, direction -- направление
                //    x y -- coord of actor, imageuid -- graphic id, direction -- self explainatory
                int x, y, imageuid, direction;
               
                //    Смещение относительно центра тайла, нужно для анимации
                //    Offset from tile center for animation purposes
                float dx, dy;
               
                //    Здоровье. Если <= 0.0f, то убирает персонажа из списка
                //    Health. If hp <= 0.0f then delete actor from list
                float hp;
            }
           
            //    Просматривает персонажей и удалят тех, у кого hp <= 0.0f
            //    Scans actorlist and delete all actors have hp <= 0.0f
            void CleanDeadActors();
        }
    }
}

19.03.2014

Ну что ж, понеслась!

Решил начать с написания рогалика, так сказать разведка боем.

Итак, концепция:
Погибающая от холода планета, постепенно удаляющаяся от солнца. Главный герой направляется к центру земли, борясь за своё выживание с гигантскими монстрами, в поисках артефакта, способного вернуть планету на прежнюю орбиту и спасти всё живое. Кельтско-Готический сеттинг, смешанный с Викингами.
Рогалик с элементами визуальной новеллы (Во время диалогов).

Что планируется:
- Многоуровневые рандомные лабиринты
- Магическая система, основанная на зачаровании предметов
- Адские монстры, населяющие подземелья
- Доска рекордов
- Города няшных бородатых гномов, в которых можно пополнить запасы в обмен на сокровища
- Пещеры драконов, наполненные драгоценностями и охраняемые кавайными гигантскими огнедышащими драконами
- Заброшенные города, наполненные разной живностью, не очень радующейся гостям
- Лаборатории безумных алхимиков, хранящие страшные злодейские зелья, и библиотеки, хранящие книги с магией
- Адские кузницы, в которых игрок может создать своё собственное оружие или доспех из материалов, разбросанных по подземельям
- Тайловая графика

И сразу план на ближайшее время.

Что я сейчас делаю:
- Как прогер:
- Организация данных в памяти
- Класс ирока
- Рендеринг
- Как художник:
- Несколько тайлов подземелья
- Спрайты игрока
- Как менеджер:
- Пинаю болт

Что должно получиться в итоге:
На экране подземелье и игрок, который может перемещаться по тайлам пола и не может перемещаться по тайлам стен. Голый скелет (если точнее, тазовая кость).