Перевод статьи отсюда. Наткнулся на неё, ищя информацию по URL-ам загрузки assets, так как пишу свой лаунчер. Мой перевод кое-где кривоват, но как уж есть — если уж совсем невыносимо, сделайте правку.

Игра (скорее лаунчер) использует формат JSON, читайте документацию, если непонятны значения слов «пара» и «объект». Некоторые термины JSON разобраны на Википедии (раздел «Синтаксис»).

Игра

Имена (id) всех загружаемых версий в игре хранятся в этом файле:

Jar-файл данной версии хранится здесь:

Дополнительная информация, список библиотек и необходимые аргументы для версии находятся в этом json-файле:

http://s3.amazonaws.com/Minecraft.Download/versions//.json

После обновлений лаунчера форматы данных, хранящися в файле .json могут измениться. Пара minimumLauncherVersion в файле .json должна не допускать ошибочных обновлений. В значении этой пары хранится число, такое же число (увеличивающиеся с каждым релизом) имеет и официальный лаунчер. Если число в значении пары будет больше числа в лаунчере, то лаунчер не будет загружать и запускать версию во избежание возможных ошибок.

что же лучше 8х8 или 128х128

Библиотеки

Библиотеки используются всеми версиями Minecraft и закачиваются лаунчером отсюда:

Файл .json содержит названия библиотек, которые необходимы для запуска. Внутри файла есть объект-массив libraries , который содержит информацию о каждой необходимой библиотеке.

< «name»: «org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3», «natives»: < «linux»: «natives-linux», «windows»: «natives-windows», «osx»: «natives-osx» >, «extract»: < «exclude»: [ «META-INF/» ] >, «rules»: [ < «action»: «allow», «os»: < «name»: «osx», «version»: «^10\.5\.\d$» >> ] >

Значение пары name используется для получения URL для загрузки версии, а также для получения пути хранения библиотеки на компьютере. Формат значения (имени библиотеки):

Для примера выше, сборка будет » org.lwjgl.lwjgl «, название — » lwjgl-platform «, а версия — » 2.9.1-nightly-20130708-debug3 «.

Преобразованный URL для загрузки библиотеки выглядит уже так:

где папка на сервере с библиотекой ( ) является результатом замещения всех точек в слэшами /.

Библиотека будет загружена в файл по следующему пути:

libraries\\-.jar

Папка хранения также является результатом замещения замещения точек в обратными слэшами .

Лаунчер также загружает контрольную сумму в формате sha1 отсюда:

///-.jar.sha1

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

Объект natives представляет из себя строки, которые будут выбираться в зависимости от системы (и, иногда, разрядности) и вставляться между расширением .jar и версией библиотеки. Обобщенный формат:

КАК УСТАНОВИТЬ РЕСУРСПАК НА СВОЙ МАЙНКРАФТ!? УСТАНОВКА ТЕКСТУР В МАЙНКРАФТ! ГАЙД ТУТОРИАЛ 2020!

Такие преобразования делаются с именем любой библиотеки, объект которой содержит объект natives .

Объект extract («распаковка») содержит правила распаковки библиотеки — массив exclude («исключить»), содержащий строки — имена папок и файлов, которые не будут распакованы.

Объект-массив rules («правила») используется для того, чтобы загружать библиотеку только в зависимости от системы. Когда значение пары action равно allow , библиотека будет загружена, если название системы соответствует значению пары name объекта os (может быть linux, windows или osx). Когда значение пары action равно disallow , библиотека не будет загружена, если название системы соответствует значению пары name объекта os . Если объект os отсутствует, то эти правила будут применяться для всех платформ.

Например (правила не той библиотеки, что выше):

«rules»: [ < «action»: «allow» // Действие — «разрешить», нет объекта os, значит, разрешено для всех платформ >, < «action»: «disallow», // Действие — «запретить», объект os указывает, что библиотека запрещена для OS X версии 10.5 «os»: < «version»: «^10\.5\.\d$», «name»: «osx» >> ]

В итоге, библиотека будет загружена всеми системами, кроме OS X 10.5.

В качестве примера, ниже приведен полный URL загрузки библиотеки из под OS X:

Читайте также:  Сборки Майнкрафт на прохождение с другом

Все, что содержит библиотека, будет распаковано, кроме папки META-INF . Также, библиотека будет загружена, только если лаунчер запущен на OS X 10.5.

Сборки Minecraft Forge, устанавливаемые авто-установщиком, создают версии, в которых у некоторых библиотек присутствует пара url . Если пара присутствует, то лаунчер заменит стандартный адрес загрузки (https://libraries.minecraft.net/) значением пары.

Assets

Игра загружает assets (ресурсы — звуки, музыка и языки) отсюда:

Список необходимых для данной версии assets расположен здесь:

https://s3.amazonaws.com/Minecraft.Download/indexes/.json

где значение «index» равно значению пары «assets» в файле .json. Если оно отсутствует, то «index» будет равно «legacy» (для устаревших версий):

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

.minecraft/assets/objects//

И если индексом был «legacy», то копирует с переименовыванием их в папку

.minecraft/assets/virtual/legacy/

для того, чтобы ресурсы были доступны версиям, не поддерживающим новую систему (1.7.2 и ниже).

Источник: wiki-minecraft.ru

Assets

Зачем нужна эта папка?И какие-то objects в ней?У меня проверка по мд5 10 минут длится,из-за обилия файлов.Можно ли её ка-то сжать?
[merge_posts_bbcode]Добавлено: 18.04.2015 15:23:23[/merge_posts_bbcode]

Ок,это папка со звуками

hohserg

7,067 321 1,491
а нахрен проверять звуки? что за гениальные читеры будут на твоей сборке играть?
Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code

Dovakin

Да чёрт,каждый пограммист считает долгом сломать клиент и написать об ошибке

hohserg

7,067 321 1,491

Я не считаю-_- Хотя через звуки попробовал бы) А или нет, придумал, как сломать через звуки, расхотелось)

Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code

Dovakin

Блин,свали.Вопрос был таков:как сжать?Надо запихать в архив,ибо зависит проверка не от размера файлов,а от их количества,а этих файлов в 1 папке 2к

tox1cozZ

aka Agravaine

8,433 597 2,871
Обычно читы устанавливают либо в jar, либо в mods. Вот их и проверяй. Не трогай ты этот ассетс.

Dovakin

А если его удалят?Или 1 файл из него?Проверить то надо,ибо от проверки зависит перекачать или нет
[merge_posts_bbcode]Добавлено: 18.04.2015 18:24:58[/merge_posts_bbcode]

А можно поставить ресурс пак,а стандартные assets удалить?

Dovakin

Ребят,проблемы.Почему в 8 джаве isAnnotationPresentr не работает?Она почему то с новой версией перестала работать?А у вас?

hohserg

7,067 321 1,491
Ну если удалят, то наверняка не специально, отставь в лаунчере CheckBox проверять ресурсы звуков.
Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code

Источник: forum.mcmodding.ru

Что такое игровой ассет в Unity

На фото — часть набора ассетов «The Hunt — Cyberpunk Pack», обладателя премии Unity Awards 2018 в номинации «Best Artistic Content»

Чтобы разобраться с игровыми ассетами для Unity, для начала надо разобраться с ассетами в принципе. Игровой ассет (англ. Game Asset), также игровой ресурс — цифровой объект, преимущественно состоящий из однотипных данных, неделимая сущность, которая представляет часть игрового контента и обладает некими свойствами.

Каждый отдельный файл в нашем Unity-проекте — это неделимая сущность, а значит он является ассетом. Мы можем разделить ассеты юнити (и в принципе везде) на несколько типов.

Встроенные ассеты

Встроенные ассеты — это ассеты, являющиеся частью игрового движка. Они создаются и редактируются внутри самого движка. Туда входят:

  • Стандартный примитив — это встроенная модель для создания примитивной фигуры, например, сферы, куба, капсулы.
  • Анимационный клип — это файл, который хранит в себе информацию об изменениях координат объекта. Клипы применяются для создания спрайтовых анимаций или для анимирования простых объектов на уровне (например, с помощью ассета юнити можно сделать открывание двери).
  • Аудиомикшер — это файл, который содержит в себе информацию о настройках громкости и эффектов источников звука.
  • GUISkin — это файл, который хранит информацию о GUIStyles, применяемых к вашему GUI. Эти ассеты в Unity предназначены для применения стилей ко всему пользовательскому интерфейсу.
  • Материал — это файл, который хранит в себе информацию о настройке рендеринга объекта на сцене, настройку шейдера.
  • Физический материал — это файл, который позволяет настроить физические параметры объекта, чтобы контролировать его поведение (например, ассет резинового мяча или кирпича).
  • Префаб — это файл, который содержит информацию об игровом шаблоне (например, шаблон противника или оружия).
  • Сцена — это файл, хранящий в себе информацию о настройках сцены и объектах, которые она содержит.
  • Спрайт — это файл, который хранит настройки отображения спрайта (например, особенности того, как объект будет растягиваться или сколько именно спрайтов содержит в себе данная текстура).
Читайте также:  Как включить голосовой чат на сервере Майнкрафт

Некоторых из вас, возможно, заинтересует, почему я отделил текстуру от спрайта. Дело в том, что спрайт от текстуры отличается именно возможностью настройки ассета. Ведь текстура — это просто набор пикселей, а спрайт — это объект, который обладает своей геометрией, что даёт нам много возможностей для настройки. Именно поэтому за основу работы UI взят именно спрайт, а не текстура. Подробнее о настройках ассетов в юнити и вообще мы поговорим дальше.

Ассеты, которые не являются частью игрового движка

Помимо встроенных ассетов, есть и ассеты, которые не являются частью игрового движка. Они могут создаваться с помощью различных программ, включая написанные на С#.

  • Звуки — это обычные аудио файлы в формате .mp3 .ogg .wav .aiff / .aif
  • Шрифты — обычный формат шрифтов в формате .ttf, он также подходит и для photoshop или word.
  • Модели (анимации) — это файлы c расширением .fbx, .obj, .dae. Также для ассетов в Unity можно использовать исходные файлы программ 3ds Max, Blender, Modo, Cheetah3D. Однако стоит помнить, что не все расширения файлов поддерживают анимации и кости (например .obj).
  • Скрипты — обычно это файлы .cs или .shader, но также можно импортировать и библиотеки .dll. В этих файлах содержится код, который используют программисты (всегда на страже, ваш Кэп :)).
  • Текстуры — это файлы картинок с расширением .jpeg, .png, .psd, .targa и т.д., который вы можете применять к материалам в виде основных текстур или дополнительных карт. Также иногда их можно использовать в объектах интерфейса, например raw image.
  • Видеоклипы — это файлы видеоклипов, который вы можете применять для создания катсцен, заглушек камер наблюдения и много как ещё. Как правило это файлы с расширением .avi, .dv, .m4v, .mov, .mp4, .mpg, .mpeg, .ogv, .vp8, .webm, .wmv.

Настройка ассетов

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

Например, мы можем настроить текстуру в инспекторе, указав её максимальный размер для сборки нашего проекта .

Если понизить разрешение с 2048 до 1024, мы сократим конечный вес текстуры почти в 5 раз. Выгода очевидна.

Читайте также:  Команда schedule в Майнкрафт

Подобное, увы, работает не со всеми ассетами в юнити, поэтому некоторые ассеты придётся «облегчать» на этапе их создания или в сторонних программах.

Настраивая материалы и их шейдеры, мы тоже можем разгрузить нашу систему, но уже со стороны потребления ресурсов видеокарты, а не жёсткого диска. Например, для объектов, на которых не нужно отображать тени (например, экран дисплея или искра от лампы), мы можем использовать шейдер unlit, который снизит потребление ресурсов GPU.

Можно ли создать игры без ассетов?

Конечно, можно. Даже если не использовать стандартные примитивы, мы можем создавать объекты — те же примитивы — с помощью скриптов, ресурсов движка из кода, как наши «прадеды» из 80-90-х годов. Можно упростить себе жизнь и создавать уровни и персонажей из примитивов. Для создания уровней вам может пригодиться инструмент Pro Builder. Хотя с недавнего времени он встроен в движок, он всё же является ассетом для юнити :).

Где найти ассеты?

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

На самом деле мало кому понравится игра, которая была собрана из кучи 2D и даже 3D ассетов для unity. Это связано с тем, что разные ассеты имеют разный стиль, графику, общее качество, что накладывает свой отпечаток. Невероятно сложно создать атмосферную игру полностью из скачанных или купленных ассетов. Поэтому я рекомендую делать игры, которые будут нести целостную атмосферу — пусть даже и с очень простой графикой.

В Сети есть немало площадок, где можно найти ассеты, начиная от Unity Asset Store и заканчивая сторонними магазинами вроде Syntystore.com или Sketchfab.com.

Зачем же тогда нужны ассеты?

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

Island Survival — пример мобильной игры, созданной полностью на бесплатных ассетах

Как создавать свои ассеты?

Создавать свои юнити ассеты не сложно, для этого достаточно использовать программы-редакторы.

  • Для 3D ассетов — 3D Max, Maya, ZBrush, Blender, Marmoset, Substance Designer/Painter.
  • Для 2D ассетов — Photoshop, SAI, GIMP, Paint.NET.
  • Для звуков подойдёт Cubase, FL Studio, Reaper, Wave Editor.
  • Видеоклипы можно создавать в Adobe Premiere, Vegas Pro и т.д.

Здесь вам понадобятся не только навыки работы с самими программами, но и понимание всей сферы деятельности. Например, для создания моделей нужно понимать их анатомию. Для создания звуков — знать саунд-дизайн, чтобы добиваться красивых звуковых эффектов или раздражающих и нервирующих звуков.

Как обмениваться ассетами?

Обмениваться ассетами в юнити достаточно просто. Если вы создали ассет сам по себе, вам достаточно просто предоставить своему коллеге исходники работы. Но если вы хотите переместить ассет из одного юнити в другой, то лучше использовать функцию «export package», чтобы гарантированно, без потери данных и настроек объекта перенести его из одного юнити в другой.

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

Освоить лучшие практики работы с ассетами в Unity и вообще вы сможете на факультете разработки игр Geek University. Кроме того, недавно у нас открылся факультет геймдизайна! Выбирайте, что интереснее 🙂 Ждём вас!

Источник: gb.ru