Помидор вдохновил меня. Этож голова примерного гоблина.
--- Набросал более подробный список монстров (ранжыр / название)..
Начался третий круг обновления-добавления главных тем.
Старый набросок графического интэрфэйса (рюкзак)..
// ---
И новый набросок рюкзака (убрана кнопка Арсенал, появился отдел Свитков)..
Детали окна рюкзака..
= тёмный титул (рюкзак) = шкирка, за которую можно таскать окно.
= кнопка Свитки = заглунуть в отдел рюкзака, где храним "строко-свитки".
= кнопка-модификатор Split = зажигаем её, и кликаем по стаку предметов, чтобы разделить его.
= кнопка размера Рюкзака = растягивает окно на 10 предметов в высоту, и обратно к 5 этажам.
= кнопка Герой = открыть-закрыть окно Зеркало героя, где видна экипировка героя и его свойства.
= кнопка закрытия Рюкзака.
// --- правка
22 марта 2015 = закончился третий круг обновления главных тем фантазии.
Осталось поправить остальные темы, и можно отдохнуть от этого проекта.
http://opengameart.org/content/cc0-assets
Большая подборка бесплатных моделей.
Возможно, нарою там статику (природу, домики) для прототипа.
// Да, там есть кое-что. хе-хе
Ландшафт - "уникальный арт" во многих проектах.
Попробую генерить полигоны ландшафта из карты высот в текстовой формат DAE.
Вроде-бы это самое трудное место DAE, если сохранять "минимальную статику".. <vcount>3 3 </vcount> // блок polylist (квадратик из двух триугов) <p>1 0 1 0 0 0 2 0 2 // первая тройка-полигон V N T V N T V N T 3 1 3 1 1 1 2 1 2</p> // вторая тройка Вариант, где масив нормалей из двух векторов. Печатать числа индексов одного масива через два чужих элемента и пробел, который каждый третий раз, как новая строка. // Либо можно заюзать Вертикальный подряд.. <p> v1 0 t1 v0 0 t0 v2 0 t2 v3 1 t3 v1 1 t1 v2 1 t2 </p>
>Извини за облом.
>Вспомнил про Mass Effect 3 ... игроки были недовольны концовкой игры :)
Нормальная концовка там
>Попробую генерить полигоны ландшафта из карты высот в текстовой формат
Так тебе нужна просто монохромная картинка которую загружает класс террейн он стоит сетку для прорисовки и из какого-нибудь мелкого мипа строит коллижн сетку для буллет-физики. Он же может сохранять и загружать уже готовые свои сетки *.terrain-файлах. зачем эти текстовые тексты?)
codingmonkey
Мне уже удалось сделать процы конверта серой картинки TGA в несколько файлов DAE.
(HMap 64 х 64 --> 4 куска, где сетка 32 на 32 ячейки)
(HMap 256 х 256 --> 64 файла DAE, хотя можно и 16 файлов, если сетка куска земли 64х64)
Лоды моему ландшафту не нужны - основной кусок и будет колижн-сеткой.
Я пытаюсь обойтись без особых класов для отрисовки.
Валуны, деревья, домики, стены, куски земли - всё это простые ноды, как "статик модель".
Тоесть, хочу уйти от особеностей в пользу простого строения сцены.
А текстовые файлы DAE, как промежуточное состояние полигонов для конвертирования
http://assimp.sourceforge.net/main_features_formats.html
Возможно, я попытаюсь сделать парочку прототипов "клиент-проги" на разных движках.
// Юнити у меня нет. Анрила нет.
Символика фракций (картинка)..
1= Академия биологии
2= Корпус бравых охотников
3= Царский приказ
4= Академия великой обороны
5= Академия развития
6= фракция "грибовиков"
7= Мастера Юго-плава
8= Гильдия охотников
9= Гильдия столичных торговцев
10= фракция "дымовиков"
Это в теме "Сказочный мир и сюжет" ...
http://slatazan.livejournal.com/27881.html
жду-недождусь демки, где можно будет побегать наконец-то. И попытаться понять.
soflot
Ждать не нужно :)
Этож фантазия - делать не обязательно.
// попытаться понять
Я пытаюсь придумывать "класическую гриндилку" со своей версией правил.
Если прототип сделаю, то он будет похож на все мои пре-идущие ...
Например, на этот
http://www.gamedev.ru/projects/forum/?id=170892
Хотя не исключаю, что качество будет на каплю повыше.
Сделал набросок темы про праздники.
http://slatazan.livejournal.com/31480.html
Двух не хватило :)
Возможно, у кого-то есть линки на форумы, где игроки напечатали
забавные придумки для праздников в онлайн-играх.
// ---
(картинка 1000 на 700)
http://i.imgur.com/1ji4qDY.jpg
Серая игровая картинка и белая фигурка героя - это чужие картинки с OpenGameArt,
но примерно так я представляю финальную картинку своей игры.
Дву-мерные элементы собраны в 6 груп. На большом экране, пикселя значков
сохраняют свой размер, а их невидимые подложки прижымаюца по краям экрана.
// на 4кило, пикселя удваиваюца.
// ---
(картинка окна Зеркало героя)
http://i.imgur.com/5tW1sxj.png
200 Гения (опыт-ап) и 125 Удачи (трофей-ап)
Кнопка Арсенал = открыть сложное окно способностей и пасивок героя.
Слева, собраны свойства, близкие к Атаке. А справа - оборонительные свойства.
// ---
(картинка наброска карты столицы)
http://i.imgur.com/XpeDbWJ.jpg
Внизу, речка, каменый мост, порт с двумя кранами.
Чуть выше, красные стены старой крепости.
Справа, тёмный мусорный ров.
Слева, большой круг-бульвар с парой фонтанов и с каким-то памятником.
Сверху, академия биологии.
С этого дня (31 марта), здесь начинается стадия прототип-1.
Прикидываю, что он будет унылым, но главное, чтобы не заглохнуть.
Надеюсь, что мне поможет эта тема (автор придумывает книгу)
http://www.gamedev.ru/flame/forum/?id=197248
Моя первая задача - обзор финального продукта - архив проекта.
Ниже, исполнение задачи, с лиричным отступлением про "нормальный вариант"..
// --- лирика..
Нормальный инстал онлайн-игры..
1. Игрок скачивает с офиц-сайта малую прогу setup.exe и запускает её.
// В браузер-варианте, может быть скачивание какого-то плагина.
2. Сетап просит указать папку установки, и если указывают старую, то пытается
стартовать прогу-чинилку клиент-архива., либо де-архивируем встроеный минимальный
клиент-архив в указаную папку, делаем ярлык на прогу-стартёр, и запускаем стартёр.
// В браузер-версии, всё это делается в техническую папку, хотя точно не знаю.
3. Стартёр пытается подключиться к серверу обновлений. Если нет интэрнэта, то
печатаем, мол игра требует постояного подключения к интэрнэту. Если сервер молчит,
то пытаемся запустить прогу-игру. Если такого файла нет, то напечатать, мол требуется
скачать важное обновление, но это не получается - активируй ярлык игры позже.
Если game.exe есть, то запускаем его, но если обнаружим расхождение версий, то
напечатаем про это, и закроем прогу-игры (и прогу-стартёр тоже).
Если обновление скачивается, то в первую очередь, можно заменить саму прогу-стартёр
на новую версию, и само-пере-запуститься. А потом, скачиваем "основные ресурсы".
При этом, изначальный само-архив setup.exe мог содержать "стартовые локации",
и старт "игры без кабинета" мог начаться почти сразу, как в браузерном варианте.
// --- решение..
Тестовый инстал псевдо-онлайн-игры..
Скачиваем архив, в котором есть готовые папки с ресурсами..
gamer1[] // папка клиент-архива Игры (декор-файлы). { res[] // звуки, текстуры game1.exe konfig.txt остальные файлы // например, Render.DLL } gamer2[] // пустая папка под "второе окно на одном компе". { } server[] // папка рутины Сервера (реальные файлы). { real[] kserv.txt // конфиг сервера (какой сегодня день, и подобное) mainserv.exe // едино-личный запуск subserv.exe // мульти-запуск из mainserv.exe остальные файлы // например, An.DLL } read.txt // пояснялка использования.
Изначальные конфиг-файлы настроены на локальный адрес (внутри компа).
Нужно встроить в game1.exe мутэкс, который блокирует повторный запуск этой проги.
Копируй содержимое папки gamer1 внутрь gamer2 (или на другой компутер).
Редактируя строчку в конфиге сервера, можно "продвигать дни", чтобы за один день,
заценить опции праздников со всего года. А также выставить глоб-умножитель опыта.
// И можно вручную сделать ярлыки, которые несут поправку "сервер-месяца".
// Дублирования рил-файлов нет. Возможно, это одна из задач "базы даных".
// Изначальный тэст-сервер, наверно, будет без библиотеки работы с базой даных.
Запуск програм..
Сначала server/mainserv.exe, а потом, gamer1/game1.exe и остальные его копии.
Допустим, что game1 всегда в окне, и учитываем фокус окна, чтобы принимать управ.
Возможно, будет галочка, чтобы отключить учитывание фокуса, мол игрок сам настроит
разные кнопки управления, редактируя строки конфиг-файла.
// ---
Далее, следует придумать наполнение папок res[] и real[]
(возможно, res, как часть real).
А также, надо прояснить модули и операции внутри програм
(game1.exe, mainserv.exe, subserv.exe).
Вероятно, понадобятся доп-програмы, чтобы создавать и конвертить ресурсы
(локации, игровые предметы).
Получится подробная предметная планировка (что-где-как должно работать).
Наконец, надо определить инструменты, чтобы исполнить спланированое.
Первую пробу делаю без графики, и без боёвки.
Создал кое-какие папки - надеюсь, что они будут наглядным структурным деревом.
После первой пробы, можно пере-заполнять папки новыми файлами и форматами.
Ради стабильности, называю файлы инглиш-буквами.
general_include[] { any2.h any2.cpp send_recv.h send_recv.cpp // остальные обше-код-файлы } proj_root[] // корневая папка { gamer1[] // файлы клиент-проги { res[] // пусто src_game1[] { debug[] game_k1.cbp // код-блокс-прожэкт main.cpp } game_k1_d.exe } server[] // файлы серверных частей { real[] // истоковые ресурсы, которые дубль-конвертим в gamer1/res { items[] // весь спектр предметов, которые делают игру. { abils[] // абилки quests[] // задания gears[] // одежда, орудия stuff[] // расходники talents[]// таланты trash[] // хлам } players[] // набор кабинетов-акаунтов { adm[] // псевдо-имя перво-юзера { hero1[] // слот для героя-1, и владения героя-1 { in_bag[] // храним предметы в рюкзаке героя showcase[] // зажаты предметы, которые выставлены на витрину x[] } store[] // обше-склад кабинета } } statistik[] { gold.txt // сколько выпало // сколько потратили } worldmap[] // корень игровых регионов и локаций { region_test[] { loc_room1[] // v1.txt loc_room2[] loc_room3[] } } } src_mainserv[] // исходный код центрального сервера { debug[] main.cpp mainserv1.cbp // ../mainserv_d.exe } src_subserv[] { debug[] main.cpp subserv1.cbp // ../subserv1_d.exe } mainserv_d.exe subserv1_d.exe } ярлык_на_фантазию }
Файл пробной локации
region_test/loc_room1/v1.txt
32 16 ################################ #.......#.......#.......#......# #.p.....#...s...#...s...#..g..## #.......#.......#.......#....### #.......#.......#.......#...#### #.......#.......#.......#..##### #..............................# #########.......#.......######## #####1..........#..........2#### // здесь два перехода в соседнии комнаты. #########...#####.......######## #..............................# #..............................# #..g...####.....s.......###....# #..............................# #...###.............#####......# ################################ 1 30 2 region_test/loc_room2/v1.txt 2 3 15 region_test/loc_room3/v1.txt end // в конце файла, любые пояснялки и детальки p = особое появление игрока (респаун) s = спаунеры монстров g = разбиваемые горшки
Строки перед "end" можно разбить на 4 строки..
1 номер телепорт-линка,
30 гориз-позиция-куда(2-31),
2 вертикаль-позиция-куда,
имя файла или none.
Никаких коментариев в конце строки - если последнии 4 знака "none",
то телепорт в эту-же комнату.
Позицию указывать, считая с единицы
1 27 9 none
2 7 9 none
Тема в архиве.