Fishlake-scripts.ru

Образование и уроки
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Тайлсеты для платформера

RLGClub :: Форум

Форум Клуба любителей roguelike-игр

Графика для рогаликов — тайлсеты

Графика для рогаликов — тайлсеты

Сообщение altmax » 23 янв 2017, 18:33

Этот находящийся в Нидерландах сайт предлагает разработчикам замечательную графику. Присутствуют материалы, признанные Общественным достоянием. А это значит, что вы можете использовать их где угодно, не беспокоясь об авторских правах. Так же есть поиск графики по категориям, что значительно ускоряет процесс.
Кроме того, на сайте представлены подборки бесплатной музыки.

Наверное, один из лучших сайтов в своём классе. OpenGameArt.org огромный сайт, предлагающий все виды графики, необходимые для разработки игр. Так же на сайте имеется бесплатная музыка (звуки). Основными плюсами данного ресурса являются наличие оживленного и весьма полезного форума, а так же постоянное обновление материалов за счет пополнения самими пользователями и рейтинговой системы оценивания. Так что вы всегда сможете быстро выбрать самое лучше и свежее.

Отличный ресурс для тех, кто задумывает или уже создает свою RPG.
При переходе по ссылке справа вы увидите колонку ресурсов. Персонажи, предметы, локации и тому подобное, при нажатии на которых все-все объекты появятся на одной странице, что упрощает и ускоряет выбор. При клике на понравившегося персонажа, открывается ссылка на .png файл, со всеми 3d-проекциями и движениями, что идеально подходит для создания собственных спрайтов.

Отличительная особенность данной коллекции — 8-битная графика городов. Вся библиотека совершенно бесплатна, и всё, о чём просит автор — упомянуть о нём в своей игре (credits).
Цветовая гамма данной библиотеки является её отличительной особенностью, и при использовании в исходном виде вполне может определить дизайн всего проекта.
Внимание, сайт притормаживает, надо подождать загрузки.

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

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

Создатели проекта Glitch, закрытого в 2012 году решили сделать всю её графическую часть Достоянием общественности (никакие авторские права для использование не требуются). К Вашим услугам более 10,000 изображений восхитительного качества собранные воедино и доступные по одному нажатию.

Идеально для сайдскроллеров и платформеров
Множество графики от дизайнера-фрилансера Брента Андерсона. Всё бесплатно при условии упоминания в приложении (Credits).

Бесплатная графика от разработчика игр разработчикам игр. Помимо библиотек на сайте есть неплохие туториалы.

Сам сайт — форум про Гугл и всё, что с ним связанно, но в 2006 году его участник Philip Lenssen выложил на нем около 700 спрайтов, которые теперь распространяются под Creative Commons License. В основном аватарки героев.

Безумное количество фонов и текстур для Ваших игр и приложений. Всё как и прежде бесплатно — только не забудьте поблагодарить автора.

Обширное сообщество с огромными объемами графики. Всё, что сможете найти на этом сайте, совершенно бесплатно. Правда вот поискать придется как следует.

Reiner’s Tilesets

Free Game Graphics, Freeware Games

Bforartists 2 Beta 0.9.1

Bforartists 2 is now in development for one and a half year. And we reached the beta status now. So time to spread the word here too.

Blender 2.82a is out. And so there is also a new version from us. Bforartists 2 Beta 0.9.1.

The binary downloads can as usual be found in the download section of the official webpage. www.bforartists.de/download/
The source for this version is located at Github: github.com/Bforartists/Bforartists/releases
And the release note is here: www.bforartists.de/release-notes/

This release comes with the latest changes from Blender 2.82a, wich is a small point upgrade to fix some showstoppers. The changes in Bforartists are just minimal therefore. A few new icons, a few checkboxes aligned left again, and some other small changes. And we enter officially the Beta status now. The software is feature complete, the initial development goals are mostly fulfilled. Now comes the polishing. And we work towards a stable version now that can be used in production. The development focus shifts now to the documentation for a while.

A big thanks goes as usual to the team. Have fun with the new version – Reiner

Bforartists 1.0.0

This is it. Version 1.0.0 is gold. This development cylce is finished. Many thanks for all the help and support. Thanks to the team members. Enjoy Bforartists

The download can as usual be found in the download section. www.bforartists.de/content/download

We have also as usual first the Windows binaries ready. The Mac version will most probably follow this weekend. We have unfortunately still no good news for Linux. No maintainer anymore. But you can always build it by yourself. The source code is at Github. And the advice how to compile Blender works for Bforartists in the same way.
The release notes are located here: www.bforartists.de/wiki/bforartistsreleasenotev100

The changes between RC1 and the full version aren’t really worth mentioning it. We just catched two last minute things.

I have still to point at Cuda in the 32 bit Windows version. GPU rendering may or may not work for you. Cuda 9 doesn’t support the outdated 32 bit architecture anymore. I have compiled the 32 Bit version with Cuda 8 now. But it throws still an error with my Nvidia 1060. So expect GPU rendering not to work in the 32 Bit version. Please upgrade to a 64 Bit Windows in this case. It is more than time!

Bforartists is a complete 3D suite to create 3D content. It offers you the full 3D art pipeline to create game graphics, prerendered movies and stills. From modeling, sculpting, texturing, rigging, animation, rendering, up to post processing. Have a look at the features page to find out more.

Bforartists stands for Be For Artists. A reminder to develop for the user, not the programmer.

Bforartists is a fork of the popluar open source 3d software Blender. With the goal to improve the UI and usability. Bforartists 1.0.0 is based at Blender version 2.79b.

Bforartists 1.0.0 RC1

We have a new version of the Blender fork Bforartists ready. This version of the 3D software is a release candidate for the upcoming version 1.0.0. It marks the end of the initial development cycle. Nearly three years of work comes to an end. And most of the initial goal s are fulfilled.

The download can as usual be found in the download section. We have as usual first the Windows binaries ready. Please be patient. www.bforartists.de/content/download
The release notes are located here: www.bforartists.de/wiki/bforartistsreleasenotev100rc1

There aren’t this much changes in this release. Just around 40, and most of them small ones. The Bforartists 1.0.0 RC1 release is mainly cleanup work and last fixes to prepare the final version. We have catched a few bugs, extended the material library vx by more materials, added some last icons, and did some last changes. There were for example still two “are you really want to delete” dialogs around.

A note to Cuda in the 32 bit Windows version. GPU rendering may or may not work for you. Cuda 9 doesn’t support the outdated 32 bit architecture anymore. I have compiled the 32 Bit version with Cuda 8 now. But it throws still an error with my Nvidia 1060. So expect GPU rendering not to work in the 32 Bit version. Please upgrade to a 64 Bit Windows in this case. It is more than time!

The further road map is to wait until the Blender 2.8 development at the UI is finished. Makes no sense to change something that is under a permanent change anyways. A first incarnation of Blender 2.8 should arrive at the next Siggraph. And then we can have a look at it, and will continue the development. But we don’t run out of work. We need a new homepage since Drupal 7 is now EOL. And at the documentation front there is years of work waiting.

As usual, a big thanks to the team!

Bforartists 0.9.7 released

Bforartists 0.9.7 is ready. The binaries can as usual found here: www.bforartists.de/content/download

The Bforartists 0.9.7 release brings mainly small tweaks and improvements. All in all we have 100 changes in this release. We have added some missing icons, made some panels more compact, and so on . And it comes with the changes from Blender 2.79b. We have added two new addons. One for the VSE. And one to create a primitive with adjustable subdivisions. See create tab in the tool shelf. Most tools are now in the tool shelf too. And not longer in header menus. The biggest change is the new Full keymap. Now you can have the navigation from Bforartists with most hotkeys from Blender. Big thanks for creating this keymap goes to Draise here.

As you may have noticed, we have moved to the Github tracker. As a consequence the release note now not longer contains links to the issues. The listed titles in the release note are the commits.

It’s also a milestone release. We getting close to version 1.0. Most of the initial development goals are reached. What is now missing is some last changes and fine tuning. And this means this version should be functional enough for production. As a consequence this release is also not longer marked as Pre Production. There are surely still some problems around. But there aren’t this much big changes ahead anymore. At least not in this development cycle, Blender 2.8 is a completely different beast then.

Читать еще:  Telegram бот книги

Many thanks to the team! And have fun with the software

Bforartists 0.9.6 released

It took a while. But now Bforartists 0.9.6 is here. The Windows versions are already up and running. You can find it in the downloads section. Mac and Linux versions will hopelfully follow soon.

The Bforartists 0.9.6 release brings the changes from Blender 2.79a. Which are around 200 fixed bugs. Bforartists adds around 260 resolved tasks on top of it.

The biggest change is that it brings around 450 new Icons. Now nearly every menu item has icons. It brings also updates to the addons. We have removed quite a few double menu entries again. And quite a few properties have moved from the header menus into tool shelf and properties sidebars.

We have again some changes at the keymap. We mapped Y, X , C for mesh select mode to X, C, V instead because of the american layout issue where Z and Y are flipped compared to the european keyboard layout. Lasso select works with LMB now everywhere. The hotkey to view selected is assigned to D now. This one was formerly Numpad 0, and is now much better to handle. The caveat is that we ran into another hotkey conflict that way, which we still have to fix. Holding D is also grease pencil draw.

Another big redesign ist the whole nodes toolshelf. It comes now with icon buttons. We have reduced the tabs from 13 in Blender to three tabs in Bforartists. And the categories have become panels. This is now much better organized, and you can easier find what you are looking for.

And finally we have fixed a few bugs.

Another change is that we switched to Inno Setup to build the installer. We loose the ability to connect the *.blend file association with Bforartists while the update process. But we win with a much simpler update process.

At this point as usual a big thanks to the whole Bforartists crew, which made this release possible. Many thanks folks.

There is also a short youtube video about the new things

Work at the page finished

I have now finished the work at the page. I may return to recolor the menu a bit better. But the page is fully functional again.

WordPress trouble

Once again we have fun with the WordPress installation. Images have lost their size, users reports about shot down layouts, and the FLV videos have quit working. I have no idea how long this one is around. The page displayed fine at my main pc.

I have temporarily switched to another theme now. And hope this will fix the issue with the shot down layout for some users. It has already fixed the issue with the images. I will fix the FLV issue as fast as possible. And i will have a look for a better fitting theme. Sorry for the inconvenience.

Bforartists 0.9.5 released

Merging the 2.79 features into Bforartists didn’t work as flawless as expected. We had fixed a showstopper regression with 0.9.4 already. Now we stumbled across even more. Which made a quick version 0.9.5 necessary. Some important Cycles settings were missing. We hope that this was it in terms of merge regressions. Sorry for the inconvenience.

The release note is again rather small with its 10 fixes. It can be found here: www.bforartists.de/wiki/bforartistsreleasenotev095

The download is as usual located in the downloads section: www.bforartists.de/content/download

Bforartists 0.9.4

We had a showstopper bug. The bake panels were gone. And so we quickly made this emergency relase 0.9.4.

Windows installer and zipfiles are up and running. Mac and Linux versions still needs a bit more time.

Bforartists Version 0.9.3 released

Bforartists 0.9.3 is released. The windows binarires can now be found in the download section. I cannot say though when the Linux and Mac versions will follow.

The new version brings all the goodies from Blender 2.79. Like Denoiser, PBR Shader, Shadow Catcher, Flimic Color Management, etc. . Please have a look at the Blender 2.79 release note at the Blender page for the new features. Important is the compatibility note. Blender 2.79 is not fully backwards compatible to earlier version anymore. And this affects of course Bforartists 0.9.3 too.

The changes in Bforartists itself sums up to over 100 changes again, but are each rather small. The last weeks and months were in big parts spent at documentation and tutorials. Unbelievable how time consuming this chapter is. That’s why Bforartists 0.9.3 brings mainly fixes and some small changes and cleanup operations. And we had some inconsistencies in the hotkeys again. F2 to call the console is removed since it conflicts with Linux build. The Properties sidebars now all opens with Ctrl T, not longer with N. And we have readded the hotkey to Loopcut and Slide, since it is a fundamental modeling tool, and often used.

Bforartists 0.9.3 is the merge of Blender 2.79 into Bforartists. And it’s a big one. Such merges brings always the danger of regressions. Some features can quit working, or some Blender features doesn’ t work in Bforartists then. We did our best, and i hope we have not too many of them. When you find something, then please report in the tracker. www.bforartists.de/project/issues/bforartists_bugtracker

The updated manual chapters will shortly follow.

Splatter tiles: как без особой возни создавать тайлы для игр

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

Можно ли всё это как-то ускорить?!

В этой статье я расскажу о том, как мы разрабатываем тайлы 2D-окружений для таких игр, как Levelhead и Crashlands, и покажу методику, позволяющую нам сэкономить немного времени и повысить универсальность графических ресурсов окружений. Этот метод также упрощает создание органически выглядящих типов рельефа, хорошо сочетающихся друг с другом. Я не предлагаю при создании тайлсетов окружений пользоваться только этим способом, но он станет хорошим пополнением набора инструментов для любого художника.

Этот способ называется SPLATTER TILE!

Проблема традиционного тайлинга

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

Углубившись в создание таких тайловых окружений, я выяснил, что наилучшим способом создания более живых и органичных тайлсетов не изменение техники, а увеличение количества рисуемых тайлов. Я быстро перешёл от простых 9-slice ко всё более и более широким тайлсетам, передававшим все повороты и изгибы рельефа. Чтобы на примере увидеть, сколько тайлов требуется для создания ощущения живости и гибкости, посмотрите на этот пример с craftpix.net:

Теперь при создании уровня дизайнер может выбирать из 57 отдельных тайлов. С точки зрения создания графики, если удалить все дубликаты и отзеркаленные тайлы, то получится примерно 17 уникальных тайлов.

Поработав в таком стиле, я обнаружил, что мне нужно внести изменение в один из этих тайлсетов и начал рвать на себе волосы, потому что пришлось менять все эти 17 тайлов. Это заставило меня задуматься!

Как создавать тайлы, выглядящие в мире естественно и не похожие на сетку? И есть ли какой-то способ сделать это без монотонного процесса преобразования этих тайлов в бесшовные со всеми разрезанными на части вариациями?

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

В основе этой методики лежит разница между фактической границей тайла и самой графикой, и именно это является фундаментом Splatter Tiles. Давайте рассмотрим их изнутри.

Анатомия Splatter Tile

Краткий пример

Можно заметить, что splatter tiles позволяют очень быстро и без особого труда получить ощущение органического хаоса. Хотя сетчатость окружения всё равно заметна, слияние фигур благодаря их размытой природе делает её намного живее.

Более подробный пример

Если сделать ещё один шаг вперёд, то набор splatter tiles, как и в случае с традиционным тайлсетом, можно использовать для создания разнообразных органических форм, которые ещё меньше напоминают сетку. В нашей последней игре Levelhead, которая пока находится в раннем доступе в Steam, мы используем набор splatter tiles для каждого биома и для каждого эстетического тайлсета, который могут применять игроки. Например, вот splatter tiles джунглей:

А вот как они выглядят в игре:

А вот грибной биом Asteroids и соответствующие ему splatter tiles:

А вот пример из нашей RPG с крафтингом в открытом мире Crashlands:

Советы по эффективному созданию splatter tiles

  • Создавайте дикие базовые формы для тайлов. Именно так можно уйти от ощущения «сетки».
  • Используйте все цвета рядом с границами тайла. Затенение в разных точках границы должно быть высоким и низким, чтобы когда граница соединяется с другим splatter tile, они могли в отдельных точках смешиваться бесшовно.
  • Тестируйте! Разберитесь, как быстро замечать изменения, вносимые в правильном контексте. Можно использовать клоны, горячую перезагрузку или какую-нибудь систему шаблонов — этот этап, вне зависимости от методологии, всегда самый важный при работе с окружениями.
  • Выбирайте цвета заранее. Splatter tiles будут накладываться друг на друга, поэтому нужно сделать так, чтобы цвета гармонично сочетались и не раздражали глаз.
  • Задайте глубину тайла. Например, земля всегда находится под травой. Камень находится между ними. Это позволяет создавать интересные паттерны, в которых разные тайлы накладываются друг на друга.
Читать еще:  Создаем бота для telegram

Splatter tiles обычно лучше всего подходят для игр с видом сверху, где от точного края тайла не зависит жизнь или смерть игрока. Однако если вы освоитесь с ними, то можете адаптировать их под широкий диапазон различных жанров, в том числе и под такой активный платформер, как Levelhead!

«Но Сэм! Разве тебе не приходится всё равно рисовать кучу тайлов?»

И здесь мы снова сталкиваемся с жестокой реальностью: для создания интересного и динамичного 2D-окружения требуется приличный объём графики. Предложенная мной методика просто быстрее позволяет добиться органического ощущения, поэтому её стоит исследовать наряду с разработкой традиционных тайлов.

Тайлсеты

Тайлсеты — это изображения, которые игра использует для отображения графики; каждый квадратик изображения означает определенную букву или объект. Пользователи создают собственные тайлсеты ради повышенной удобности или лучшей графики. Существует два типа тайлсетов: «наборы букв» (или, собственно, тайлсеты) и «графические тайлсеты«.

Содержание

Что это такое?

Наборы символов

Набор символов — это изображение в формате BMP, содержащее 256 символов, в соответствии с IBM Code Page 437 (которую иногда называют Extended ASCII), используемых для отображения основной графики. Здесь можно найти список наборов символов, созданных пользователями. Чтобы установить любой из этих наборов символов, выполните следующие действия:

  1. Закачайте набор символов, щелкнув на нем правой кнопкой мыши и выбрав в появившемся меню пункт «Сохранить как. «. Набор символов — это просто картинка, поэтому для нее нет ссылки на скачивание. (Список наборов символов находится здесь)
  2. Преобразуйте его в 24-битный BMP файл. Простой смены расширения на .bmp НЕ достаточно; воспользуйтесь, например, программой MS Paint и сохраните изображение как .bmp.
  3. Переместите его в папку data/art вашей установленной Dwarf Fortress.
  4. Откройте файл data/init/init.txt
  5. Если вы хотите использовать этот набор символов в полноэкранном режиме, найдите и измените строки настроек [FULLSCREENX:800], [FULLSCREENY:600], и [FULLFONT:curses_800x600.bmp], чтобы назначить соответствия списку наборов символов. Инструкция FULLFONT указывает имя файла загруженного вами набора символов. Если же вы хотите использовать набор символов в оконном режиме, в таком случае найдите строки [WINDOWEDX:640], [WINDOWEDY:300], и [FONT:curses_640x300.bmp] и исправьте их на правильные значения.
  6. Также рекомендуется изменить [BLACK_SPACE:NO] на [BLACK_SPACE:YES], чтобы избежать растяжения графики.
  7. Сохраните файл, теперь вы готовы играть!

Графические сеты

Набор символов изменяют только конкретные графические изображения, в то время как прочие — пропускаются. Разнообразные графические сеты обычно меняют внешний вид существ в игре, таких как дварфы и единороги. Обычно они (сеты) предназначены для работы с определенными наборами символов. Графический сет Dystopian Rhetoric идет в комплекте с собственным инсталлятором DF; чтобы уставить что-нибудь другое (или установить его же вручную), вам предстоит подобный вышеописанному процесс:

  1. Скачайте графический сет. (Список находится здесь: Graphics sets.)
  2. Сконвертируйте его в 24-битный BMP-файл используя вашу любимую программу редактирования изображений.
  3. Переместите его в папку raw/graphics/example вашей установленной Dwarf Fortress, таким образом он перезапишет существующий файл.
  4. Откройте файл /raw/graphics/example_text.txt
  5. Замените содержимое на соответствующий текст для скачанного вами графического сета. Сохраните файл.
  6. Откройте файл data/init/init.txt
  7. Найдите строку [GRAPHICS:NO] и замените её на [GRAPHICS:YES].
  8. Измените директории разрешения и шрифта как указано выше, только на этот раз — для строк, начинающихся с GRAPHICS. Таким образом, если вы хотите использовать полноэкранный режим, измените [GRAPHICS_FULLSCREENX:800], [GRAPHICS_FULLSCREENY:600] и [GRAPHICS_FULLFONT:curses_800x600.bmp], чтобы привести стандартный тайлсет к тому, что вы хотите использовать. Для оконного режима измените строки [GRAPHICS_WINDOWEDX:640], [GRAPHICS_WINDOWEDY:300] и [GRAPHICS_FONT:curses_640x300.bmp].
  9. Убедитесь, что [GRAPHICS_BLACK_SPACE] настроен так же, как и [BLACK_SPACE].
  10. Сохраните файл, теперь вы готовы быть изувеченным превосходно выглядящим слоном!

Как растянуть тайлсет для большего монитора

Просто измените [GRAPHICS_BLACK_SPACE:?] и [BLACK_SPACE:?] на NO в файле init/init.txt, в зависимости от того, используете ли вы графический режим или нет. Это растянет окно до размера, указанного вами в [WINDOWEDX:?] и [WINDOWEDY:?] или FULLSCREENX:?] и [FULLSCREENY:?], или [GRAPHICS_WINDOWEDX:?] и [GRAPHICS_WINDOWEDY:?], или [GRAPHICS_FULLSCREENX:?] и [GRAPHICS_FULLSCREENY:?], в зависимости от того, в каком режиме вы запускаете DF. (NORMAL|GRAPHICS + WINDOWED|FULLSCREEN)

  • Если операционная система на вашем компьютере — MacOS, вам лучше использовать такие программы, как GraphicConverter или Photoshop чтобы сохранять тайлсеты как точечные рисунки.
  • Рекомендуется до версии 39f запускать игру в оконном режиме, чтобы было легче сохранить соотношение длины и ширины тайлов. Начиная с версии 39f и выше можно выбирать соотношение сторон сетки на пропорциональное разрешению вашего монитора (например для разрешения 1600×1280, установите размер сетки 80:64)
  • Не забывайте, что нужно правильно устанавливать размеры окна.
    • В версиях предшествующих 39f, высота вашего окна в 3.2 (то есть 80/25) раза меньше ширины окна.

    Пример: Если вы значению ширины присваиваете число 1600, т.e. [GRAPHICS_WINDOWEDX:1600] в файле init/init.txt, тогда высота должна быть 1600/3.2, что равно 500, т.e. [GRAPHICS_WINDOWEDY:500] в init/init.txt. Это автоматически растянет ваши символьные и графические тайлы соответственно.

    • C версии 39f и позже, где вы можете изменить размеры сетки, вам нужно вычислять размеры сетки с (ширины сетки)/(высоты сетки).

    Пример: Если у вас сетка размером 80 на 64, соотношение будет 1.25 (ибо 80/64). Если вы установили ширину экрана на 1600, значит высота будет 1600/1.25 = 1280.

  • Также следует помнить, что изменение размера тайлов может привести к появлению графических артефактов (не тех, которые крафтятся в игре!) т.e. незначительных дефектов изображения, но это также даст вам возможность видеть маленькие тайлы на больших экранах. Исключением есть случай, когда вы используете кратное увеличение, например растягивание 16×16 тайлов до 32×32, что приводит как минимум к появлению «артефактов».
  • Не рекомендуется уменьшать тайлы несмотря на то, что методы похожи (за исключением определения меньшего размера окна, тоже учитываются значения размеров тайлов и сетки).

Собственные сеты

Установленный по умолчанию (и минимальный) размер отображаемого игрового поля 80 символов в ширину и 25 символов в высоту. Таким образом, разрешение набора тайлов будет TILE_X_LENGTH * 80 на TILE_Y_LENGTH * 25. Так как набор тайлов привязан к сетке 16 на 16 (всего 256 тайлов), размер одного изображения тайла будет TILE_X_LENGTH * 16 на TILE_Y_LENGTH * 16. Ниже приводятся несколько распространенных размеров тайлов:

  • Набор тайлов с тайлами 10х12 будет размером 160х192 пикселя и разрешением 800х300.
  • Набор тайлов с тайлами 16х16 будет размером 256х256 пикселей и разрешением 1280х400.

При создании собственного набора тайлов проще всего начать с уже существующего набора и редактировать его на свой вкус. Наборы тайлов обычно подразделяются на три категории: прямоугольные наборы, квадратные наборы и наборы с квадратами 16х16. В прямоугольных наборах высота тайлов больше их ширины. Текст в таких наборах обычно лучше читается, но карта выглядит сжатой по горизонтали. Квадратный наборы тайлов обычно имеет более привлекательную графику, но менее удобные для чтения шрифты. Наборы тайлов 16х16 это подвид квадратных наборов, сгруппированных по признаку того, что большинство объектов используют тайлы 16х16. Таким образом, графика в Dwarf Fortress может сильно различаться и ее можно улучшить, используя различные наборы тайлов.

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

The default (and minimum) gameplay viewport is 80 characters wide, and 25 characters tall. Therefore, a tileset’s target resolution will be TILE_X_LENGTH * 80 by TILE_Y_LENGTH * 25. Since the tileset is arranged into a 16×16 grid of tiles (256 tiles total), the tileset image size will be TILE_X_LENGTH * 16 by TILE_Y_LENGTH * 16. Here are some common tile sizes:

  • A tileset with 10×12 tiles will be 160×192 pixels large, and the target resolution will be 800×300.
  • A tileset with 16×16 tiles will be 256×256 pixels large, and the target resolution will be 1280×400.

When creating a custom tileset, it’s often easiest to start with an existing one, and edit it to your liking. Tilesets generally fall into three categories: rectangular tilesets, square tilesets, and 16×16 square tilesets. Rectangular tilesets have tiles that are taller than they are wide. The text in these tilesets is generally easier to read, but the map appears squished horizontally. Square tilesets usually provide more attractive graphics, but are slightly less readable. The 16×16 square tilesets are just a sub-set, which are grouped together because most Object Tilesets use 16×16 tiles. The graphics in Dwarf Fortress can be somewhat diversified and enhanced through the use of graphics sets.

Many tiles are used by the game in multiple ways, and this makes customizing the graphics difficult. The same icon is used for chairs and the north end of one-tile-wide vertical bridges. Ashes and broken arrows look the same, and many game entities (such as levers, floodgates, bags, and bins) share characters that are also used in Dwarven names or other bits of text in the interface.

Как использовать цвета, отличные от белого и пурпурного (magenta)

Когда игровой движок рисует тайл, для него выбираются цвета переднего и заднего планов, а сам тайл выбирается в зависимости от предмета, который нужно нарисовать. Цвет заднего плана будет использован вместо пурпурного (16-ричный код #FF00FF или RGB 255 0 255). Все остальные цвета будут трактоваться как маска для цвета переднего плана. Чистый белый (#FFFFFF) будет всегда показан как цвет переднего плана, в то время, как светло-серый (#CCCCCC) будет слегка затемненной его версией, а темно-серый (#888888) — очень темной версией того же цвета. Черный (#000000) всегда будет черным. Аналогичным образом использовать оттенки цвета заднего плана невозможно.

В общем, запомните эти правила:

  • Пурпурный (#FF00FF) — это фон (задний план).
  • Белый (#FFFFFF) — передний план.
  • Тёмные оттенки серого и белого (а у белого есть тёмный оттенок? О_о) (#C0C0C0, #808080, и т.д.) будут отображены как тёмный оттенок переднего цвета. Можно использовать любые оттенки серого цвета, в том числе #333333 и #C2C2C2.
  • Чёрный (#000000) в любом случае чёрный. Априори.
  • It’s probably best to avoid color in normal tilesets.

Например, игра отрисует бирюзовый кластер ярко синим цветом (#0000FF). While loading the tile image, it encounters the color light grey (#CCCCCC). Цветами, используемыми на его месте будут:

Тайлсеты для платформера

Карты тайлов

libGDX предоставляет общий API для карт. Все классы для работы с картами можно найти в com.badlogic.gdx.maps (исходный код) пакете. В корне пакета содержатся базовые классы, дочерние пакеты содержат специализированные реализации для карт тайлов и других форм карт.

Базовые классы

Набор базовых классов предназначен быть общим, чтобы мы имели поддержку не только карт тайлов, но любых форматов 2D карт.

Карта представляет собой набор слоев. Каждый слой содержит набор объектов. Карты, слои, и объекты имеют свойства, зависящие от формата, из которого они были загружены. Для некоторых форматов существуют специальные реализации карт, слоев и объектов, но об этом чуть позже. Иерархия базовых классов выглядит следующим образом:

Свойства

Свойства карт, слоев и объектов представлены классом MapProperties (исходный код). Данный класс является по существу хэш-картой со строковыми ключами и произвольными значениями.

Доступность пар ключ/значение для карты, слоя или объекта зависит от формата, из которого они были загружены. Для доступа к свойствам, вы можете просто сделать следующее:

Многие из поддерживаемых редакторов позволяют определить свойства для карт, слоев и объектов. Конкретный тип свойств определяется форматом. Если вы сомневаетесь, загрузите в libGDX приложение вашу карту с помощью загрузчиков карт и проверьте свойства интересующих вас объектов.

Слои карты

Слои в карте упорядочены и проиндексированы, начальный индекс равен нулю. Вы можете получить доступ к слоям карты используя индекс:

Также вы можете получить слой по его имени:

Данные методы будут всегда возвращать MapLayer . Некоторые слои могут быть специализированные для большей функциональности, в этом случае можно использовать приведение типа:

Слой имеет несколько атрибутов для каждого поддерживаемого формата:

Экземпляр MapObjects (исходный код) позволяет извлекать объекты по названию, индексу или типу. Вы также можете вставлять и удалять объекты во время выполнения libGDX приложения.

Объекты карт

libGDX API уже предоставляет несколько специализированных объектов карт, например CircleMapObject (исходный код), PolygonMapObject (исходный код) и так далее.

Загрузчик формата карты будет анализировать данные объекты, и размещать их в соответствующих MapLayer (исходный код) слоях.

Для всех поддерживаемых форматов и для каждого объекта можно извлечь атрибуты:

Специальные объекты карт, такие как PolygonMapObject , могут иметь дополнительные атрибуты:

Изменение любого из этих атрибутов может повлиять на визуализацию объекта.

Как в случае с картами и слоями, можно получить доступ к более общим свойствам, как описано выше.

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

Тайлы принадлежащие карте хранятся не как объекты. Существуют специальные реализации, которые хранят объекты такого типа более эффективно, смотрите ниже.

Визуализация карты

Интерфейс MapRenderer (исходный код) описывает методы позволяющие визуализировать слои и объекты карты.

Перед началом визуализации вы должны установить вид просмотра карты. Думайте о виде просмотра как об окне, через которое вы смотрите на мир игры. Самый простой способ установки вида просмотра, для визуализатора карты, является использование OrthographicCamera :

Кроме того, можно указать вручную матрицу проекции и границы вида просмотра:

Границы вида просмотра представляются в X/Y плоскости, где ось Y направлена вверх. Используемые единицы измерения определяются картой и форматом, из которого она была загружена.

Для визуализации всех слоев карты вызовите метод render() :

Если нужно больше контроля при определении, какие именно слои должны быть визуализированные, то можно указать индексы слоев, которые нужно визуализировать. Предположим у нас есть три слоя, из них два задних слоя и один передний слой. Если вы хотите отобразить ваш спрайт между передним и задним слоем, то можете сделать следующее:

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

Карты тайлов

Карты, которые содержат слои и тайлы обрабатываются классами, находящимися в com.badlogic.gdx.maps.tiled пакете. Пакет содержит загрузчики для разных форматов.

Карты тайлов загружаются в экземпляры TiledMap (исходный код) класса. TiledMap является подклассом общего Map класса с дополнительными атрибутами и методами.

Слои карты тайлов

Слои с тайлами хранятся в экземплярах TiledMapTileLayer (исходный код) класса. Чтобы получить доступ к тайлам, вам придется приводить тип:

Класс TiledMapTileLayer имеет все те же атрибуты, что и общий MapLayer класс, свойства, объекты и так далее.

В дополнение к этому, TiledMapTileLayer имеет двумерный массив из TiledMapTileLayer.Cell (исходный код) экземпляров.

Чтобы получить доступ к клетке, используйте getCell() метод слоя тайлов:

Индексы строки и столбца указывают местоположение клетки. Тайлы должны быть в системе координат, где ось Y направлена вверх. Таким образом, нижний левый тайл карты будет расположен в точке (0,0), а верхний правый тайл в точке (tileLayer.getWidth()-1, tileLayer.getHeight()-1).

Если тайла в данной позиции не существует или индексы строки/столбца выходят за границы, то метод вернет null.

Вы можете запросить количество тайлов в слое по горизонтали и вертикали:

Тайлы и наборы тайлов

TiledMap содержит один или более экземпляров TiledMapTileSet (исходный код) класса. Набор тайлов содержит число экземпляров TiledMapTile (исходный код) класса. Существует множество реализаций тайлов, например, статические тайлы, анимационные тайлы и так далее. Вы также можете создать собственную реализацию для специальных целей.

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

Визуализация карт тайлов

Для визуализации TiledMap и слоев вам нужна будет одна из специальных MapRenderer реализаций. Для ортогональных карт используйте OrthogonalTiledMapRenderer (исходный код), а для изометрических карт используйте IsometricTiledMapRenderer (исходный код). Другие визуализаторы являются экспериментальными, и на данный момент их не рекомендуется использовать.

Создание визуализации выглядит следующим образом:

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

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

Единица масштабирования является способом связи системы координат визуализации и логической или мировой системы координат.

Небольшой пример: предположим, у нас есть карта тайлов, где тайлы размером 32×32 пикселей. В вашем логическом представлении мира, мы хотим сопоставить это с квадратами в 1×1 единиц. Мы указали бы единицу масштабирования как 1/32f . Теперь мы можем настроить камеру так, чтобы работать в таких же единицах масштабирования. Допустим, мы хотим видеть на экране 30×20 тайлов карты, тогда мы можем создать следующею камеру:

Работа с изометрической картой аналогична, просто создайте экземпляр IsometricTiledMapRenderer класса:

Опять же, вы должны указать карту (которая должна быть изометрической картой тайлов) и единицу масштабирования.

Изометрический визуализатор на мобильных устройствах

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

Загрузка TMX/Tiled карт

Tiled – это редактор карт для Windows, Linux и Mac OS X, которые позволяет создавать слои тайлов и слои объектов, содержащие произвольные фигуры для триггеров в областях и других целей. libGDX предоставляет загрузчик для чтения файлов, созданных с помощью Tiled редактора.

У вас есть для варианта загрузки Tiled карты: загрузить карту напрямую или через AssetManager. Первый вариант работает следующим образом:

Данных фрагмент кода загрузит файл с именем level1.tmx из внутреннего хранилища файлов (assets директория). Если вы хотите загрузить файл, используя другой тип файла, вы должны передать FileHandleResolver в конструктор TmxMapLoader .

Мы выбрали этот механизм, так как TmxMapLoader может быть использован вместе с AssetManager классом, где многим управляет FileHandleResolvers . Чтобы загрузить TMX карту с помощью AssetManager , вы можете сделать следующее:

После загрузки вы можете обращаться к карте, так же как и к TiledMap .

Высвобождение ресурсов TMX карты

Если вы загружаете TMX карту непосредственно, то вы становитесь ответственными за вызов TiledMap#dispose() метода, когда она вам больше не нужна. Данный вызов метода высвободит текстуры, загруженные для карты.

TMX карты и GWT

Если вы хотите использовать TMX карты с GWT бекэндом, то вы должны убедиться, что карта храниться в чистой base64 кодировке. Сжатые TMX форматы не будут работать в связи с ограничениями в GWT.

Загрузка Tide карт

Tide является редактором, в основном нацеленным для работы с картой тайлов, доступен только для Windows платформы. libGDX предоставляет загрузчик карт для формата Tide.

Как для TMX файлов, вы можете загрузить Tide карту непосредственно или через assetManager .

Высвобождение ресурсов Tide карты

Если вы загружаете Tide карту непосредственно, то вы несете ответственность за вызов TiledMap#dispose() метода, когда она вам больше не нужна. Данный вызов метода высвободит текстуры, загруженные для карты.

Производительность

Существует несколько вещей, которые вы можете учитывать для повышения производительности.

  • Используйте тайлы в слои только из одного набора тайлов. Это позволит уменьшить количество текстурных привязок.
  • Помечайте тайлы, которые не нуждаются в смешивании из-за непрозрачности. На данный момент вы можете сделать это только программно, мы в будущем предоставим способы сделать это в редакторе или автоматически.
  • Не переусердствуйте с количеством слоев.
Ссылка на основную публикацию
Adblock
detector