cool20141 cool20141

<a href= http://mosros.flybb.ru/viewtopic.php?f=2&t=635>Процесс получения диплома стоматолога: реально ли это сделать быстро?</a>

danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Наследник Грома Взертос

Синтаксис Int-Mod-а

Синтаксис Int-Mod-а

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

В рамках скриптов и переменных называется эта штука Int-Mod от Interface Modification.

История

На самом деле, первые рабочие прототипы писал я на Си++ несколько лет назад. Они не были предназначены для редактирования пользователем (только лишь в каких-то конкретных проектах). Хотя никакой "защиты" или "шифрования" не было, а значит в теории, если пользователь знал что к чему, то он смог бы отредактировать интерфейс так, как ему удобно.

В своей оригинальной пост-конкурсной задумке Взертос должен был подключать *DLL* от части "движка" и загружать те самые интерфейсы, которые придуманы были какое-то время назад. И скажу я лишь то, что файл интерфейса больше походил на мутанта-CSS.

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

Как работает сейчас

От сложного к простому. Не стал я нести за собой CSS-like синтаксис и ограничился ключевым словом-именем и строкой параметров с неопределённой длинной (но с минимально необходимой).

Таким образом описание элемента состоит из двух обязательных строк, вот пример:

#medita-bar
CENTER BOTTOM 34 -24 -1 -1 0 "vz1/medita-bar.png" null 0 0 BAR MAX_RIGHT

Синтаксис и описание

Этот ресурс-статья (это статья? не помню как делать статью на самом деле) предназначен для того, чтобы открыть людям хоть часть синитаксиса этого "очень крутого" скрипта-файла.
Возможно, что эта фича кроме меня никому и не нужна, но думаю её наличие как минимум делает игру реально с фичей. Я не могу припомнить игры, которые это бы позволяли без явных модов. Вполне возможно, что игры на idTech (а следовательно на goldSource и может быть Source) могут такое.

И так. Описание одного элемента является таким:

<ключевое имя>
<выравнивание по X> <выравнивание по Y> <смещение по X> <смещение по Y> <размер по X> <размер по Y> <угол поворота> <путь к файлу> <текст> <точка пивота X> <точка пивота Y> <класс> <параметр класса>
  • ключевое имя - его значение очень важно для игры и обязательно должен начинаться с символа "#"
  • выравнивание по X - без учёта ширины элемента т.е. по сути устанавливает где будет точка отсчёта по Х, может иметь значение LEFT, CENTER или RIGHT.
  • выравнивание по Y - без учёта высоты элемента, аналогично как и выше, но имеет значение TOP, CENTER или BOTTOM.
  • смещение по X\Y - тут всё просто, по сути offset относительно выравнивания. (Не финальная позиция на экране!)
  • Размер по X\Y - определяет размер в пикселях, если задано изображение, то оно будет растянуто. Может иметь значение -1 и тогда размер будет подогнан под размер указанного изображения.
  • угол поворота - это думаю понятно. Стоит отметить, что на данный момент нельзя повернуть текст и некоторые другие элементы, но изображения 100% поворачиваются.
  • путь к файлу - это есть путь к файлу изображения относительно текущего файла описания. Может быть либо null, либо обязательно в кавычках содержать путь к изображению, которое будет присвоено этому элементу. Так же после пути (но всё ещё в кавычках) можно указать кол-во кадров анимации (какие-то элементы это могут требовать) через спец символ "?", после которого будет число кадров.
  • текст - очевидно. Может быть null, если он не нужен. Или же пустая строка. Тоже обязательно быть в кавычках. Важно отметить, что для определённых элементов текст хоть и меняется "процедурно", но важно его содержание на этапе "компиляции", например, для показателей жизни, кол-ва бутылок с ХП или других аналогичных параметров наличие в тексте символа "/" даёт текст вида "кол-во текущее / кол-во максимальное".
  • точка пивота X\Y - в первую очередь нужна для вращения. Т.е. устанавливается некоторая точка (offset относительно 0 элемента) сдвига, на данный момент имеет мало смысла.
  • класс - определение класса, а следовательно и поведения элемента. На данный момент работают: BAR, ICON, SKILLPOOL+GROWSEL, SKILLPOOL+FIXSEL, SURFACE, TIPROUND.
  • параметры класса - значения необходимые для конкретного класса, таким пока является лишь BAR.

Обязательными являются параметры до текста включительно, начиная с пивот-пойнта не обязательны.

Пример:

#backpack-button
CENTER BOTTOM -248 -60 -1 -1 0 "vz1/backpack-button.png?3" null 0 0

#health-potion-count
CENTER BOTTOM -61 -60 11 10 0 null "X"

#medita-potion-count
CENTER BOTTOM 49 -60 11 10 0 null "X/MX"

#weapon-ammo
CENTER BOTTOM -213 -18 -1 -1 0 "vz1/stamina-bar.png" "X/MX" 0 0 BAR MIN_CENTER_X

Организация файлов

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

Синтаксис Int-Mod-а — Наследник Грома Взертос — DevTribe: инди-игры, разработка, сообщество

Вот новый вид интерфейса.

В данном интерфейсе практически каждый элемент хранится отдельно (изображение в смысле), что позволит легко делать "форки". Конечно можно сделать "монолитный" интерфейс т.е. сохранить свой "задний фона интерфейса" отдельным изображением и как следствие отдельным единственным элементом, накидав лишь интерактивные вроде полоски здоровья, кол-ва патронов и т.п.

Структура или организация файлов для интерфейса очень простая:
Возле ехе с игрой есть папка interfaces внутри которой либо будут файлы типа ZIP с именами интерфейса, либо просто папки, которые опять же будут обозначать имя интерфейса. Все файлы изображений и обязательный главный файл интерфейса interface.ilf будет хранится именно там.
Таким образом "расшаривание" интерфейсов должно быть очень простым и удобным - скачали ZIP и положили в ту самую папку.

Что дальше?

Так же в будущем, при работе над новыми интерфейсами функции добавятся, а то и изменяться.
А пока я Вас прошу дождаться (если ждёте) новую демку (которая уже будет чуть ли не 2.5! А не 2.3! Столько там нового в техническом плане, да и контента больше! Чуть ли не полноценная релизная версия 3.0).
И не забывайте, что с приходом этой демки мне нужны будут ваши души ... ну вы понимаете, да? :)

Смотрите также:


Комментарии



Новый интерфейс огонь, прям Diablo Like, одобрямс. Хотя формат не очень привлекательный, потому что при расширении его могут возникнуть проблемы с обратной совместимостью. Поэтому то и было бы удобнее выбирать что-то на подобии Json или Xml за основу
Просто я сам уже неоднократно сталкивался с такой проблемой расширяемости.

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

Может быть я что-то не понял.

alexprey:

Новый интерфейс огонь, прям Diablo Like, одобрямс.

Спасибо :)
Да, формат не очень торт. В принципе можно было бы наверно на json как-то это дело перевести *потом*. JSON из коробки в ГеймМейкере есть, а так бы я свой старый css-like перетащил.
Вот json кажется более удобным, скорее всего. Да и более того - можно будет просто прописывать какой-то особый флаг типа "#json-code" и парсить тот же файл как json, допустим.

Doc:

Никак не расширяется, кастомный синтаксис, который нужно учить и запоминать.

Да, синтаксис на определённую последовательность команд это ведь вам не простецкий Си, ага :D
Ну за менее, чем неделю разработок (на самом деле дня 2-3 может, просто я растянул это дело) хотите ещё заодно и набор тулзов? Не исключаю, что в релизе таки может быть что-то подобное и тогда "ой много учить!" не надо будет - записал в бинарик\текстовик по образу и подобию и радуешься :)

Doc:

Классы прописываются в коде, т.е. все жестко забито.

А вот теперь я что-то не понял. Есть другие способы? Нет, я реально не понял.

Ну если это модульная/расширяемая штука видимо стоит к ней прикрутить какой-нибудь простецкий скриптовый язык?

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

Я бы даже пошел дальше и просто взял что-то вроде http://www.awesomium.com/, хотя связку html/css я всей душой презираю.

Doc, а теперь всё это привяжите к GameMaker Studio так, чтобы можно было потом перетащить на свой кастомный двыжок :)
Если бы я мог двумя строчками "сделать круто", то я бы так и сделал.

И про скриптовый язык аналогично - это ой как не просто будет.

Но основную мысль я понял короче. Никому это не надо кроме меня, в чём собственно я не сомневался, но требовал доказательств :)

Справка