Результаты поиска
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 17:05 | Сообщение # 21 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) Кстати, а почему используется awt? Почему бы для граф. интерфейса не юзать javafx? Это хорошая идея. Я не прорабатывал каждую мелкую мышцу пока. Мне важна база. Чтобы все стояло твердо на ногах и не шаталось со всех точек зрения.Добавлено (26 июля 2016, 17:05) ---------------------------------------------
Цитата bodya_WM ( ) Используйте JNA. Тогда можно добится всех фич луа а не говноврапперов под jre1.6 обязательно обращу внимание
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 17:04 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 16:59 | Сообщение # 22 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) Я не совсем про то. Я именно к привязке к Lua. lua проще java, и он абстрагирован от явы и вообще какой либо стандартной библиотеки. Я никогда не думал в технических деталях, как может выглядеть интеграция фичерии с lua. Я поработаю над этим вопросом пару дней, чтобы дать первоначальное видение о возможности, сложности решения этого таска и вообще о резонности этого направления. Сейчас текущие задачи.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 17:02 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 16:51 | Сообщение # 23 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) Может, сделать привязку гейм обжектов к lua? К примеру, мне удобнее реализовать игровой объект в отдельных скриптах, а не копатся в сырках двига. Можно сделать простое API, как в моём WGE2D. он и реализуется в отдельном скрипте (то есть в файле класса). Привязка к движку - это только для того, чтобы визуально был редактируем твой объект в визуальном редакторе. и не более того. никакой функционал касательно геометрии, логики и т.д. на либы движка не опирается. это все описывается с нуля ручками по факту.
хотя есть конечно так называемые стандартные компоненты (физика и платформер), которые именно и дают уже готовую "объектную модель", которую надо расширять.
стандартные компоненты - это языком Юнити - префабы
если со стандартными компонентами нет интереса разбираться - пиши с нуля свой.
движок - это как бы платформа для префабов. сам по себе движок не задает формат данных и алгоритмы твоего кода, а только дает доступ к енвайроменту (аудио, графика) а также синтаксические штучки (общение между properties, xml и java файликами).
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 16:55 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 16:25 | Сообщение # 24 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Как сделать плагин под фичерию?
По факту сделать плагин - значит интегрировать существующий джава код с level editor'ом. Это как написать плагин к Unity Editor. У меня level editor называется Featurea (Фиче́рия) Итак, каковы шаги по интеграции существующей рабочей библиотеки на Java, например, Dyn4j http://www.dyn4j.org с фичерией? 1) скачиваем исходный код dynj4 с гитхаба https://github.com/wnbittle/dyn4j 2) кладем скачанное в папочку "engines" внутри движка https://github.com/dmitryk....4j 3) ручками делаем xml схему, которая в концептуальном поле фичерии - это properties файлик xmlSchema.properties https://github.com/dmitryk....perties В это файлике указывается маппинг xml тегов на java классы. Например
Формат таков: 'имя тега'='имя класса тега':'имя суперкласса тега' 'имя тега'.'имя атрибута'='имя класса атрибута':'имя суперкласса атрибута' // 1 вариант 'имя тега'.'имя атрибута'='имя класса атрибута' // 2 вариант - если enum или примитивный тип (int, double, char, ...)
4) файлик project.xml https://github.com/dmitryk....ect.xml используется для того, чтобы указать фичерии, откуда она должна подтянуть xmlSchema.properties
Файлик xmlSchema.properties фичерия ищет по пути ${currentDir}/config/${значение атрибута package - org.dyn4j}, то есть "config/org/dyn4j/xmlSchema.properties"
5) кроме того, в файлике project.properties указываются dependency. То есть если в IDEA модуле (Eclipse проекте) есть ссылка на другой IDEA модуль, то есть (Eclipse проект), в котором есть своя xml схема, то "верхний" модуль подтянет не только свою схему но и схему, которая идет с dependency. В моем случае модуль "dyn4j" подтянет свою схему "engines/dyn4j/config/org/dyn4j/xmlSchema.properties" и схему из платформы "platform/config/platform/xmlSchema.properties"
6) запускаем фичерию - два раза кликаем на executable джарку
7) открываем пустой XML файлик на жестком диске (в текущей версии фичерии есть только редактирование файла, а создания нового нет, загадка почему так)
8) Открыли. Теги я добавляю в этот файлик путем нажатия комбинации CTRL+N - выпадает список доступных тегов. Откуда он берется? Есть для этого свой конфиг areaSuggestion.properties https://github.com/dmitryk....perties
В этом файлике ручками в столбик указываю имя тега и через равно желаемую иконочку для него
/*Заметка на полях*/ вообще в фичерии есть такая концепция новая Config. Это значит что properties файлик "engines/dyn4j/config/org/dyn4j/xmlSchema.properties" имеет парентом такой же файлик из dependency, то есть "platform/config/platform/xmlSchema.properties". Средствами API я могу сделать объект Config Config config = new Config(project, "xmlSchema.properties"); и данный объект будет содержать все проперти из обоих файлов "engines/dyn4j/config/org/dyn4j/xmlSchema.properties" и "platform/config/platform/xmlSchema.properties". Причем пропетя из "дочернего" перетрет пропетю с тем же ключом из "парента" /*Заметка на полях*/
9) Теперь я могу смело нажимать комбинацию CTRL+N - фичерия знает как ей представить SuggestionView.
10) Тег выбираю двойным кликом мышки и ли клавишей ENTER
11) Выбираю в дереве парент, в который хочу добавить children
12) Кликаю мышкой по канвасу - тег добавлен в выбранный парент с атрибутом position равным точке клика (если атрибут position есть в XML схеме)
Теперь как фичерия делает рефлексией новый иснстанс объекта
1) Каждый класс, который хочет, чтобы его инстансы фичерия могла редактировать с помощи мышки, дерева тегов и таблицы атрибутов должен заимплементить интерфейс featurea.xml.XmlNode https://github.com/dmitryk....de.java
2) Пример имплементации интерфейса featurea.xml.XmlNode классом featurea.platformer.Animation
Что я делаю - я заполняю пустой Selection актуальными значениями: rectangle (прямоугольник вокруг объекта), color (желаемый цвет прямоугольника), isSelected = true - объект считается "выбранным" по нажатию мышкой по позиции position (второй параметр метода), position - текущая позиция объекта (значения атрибута position на XML стороне - это тонкий нюанс, который нужен, чтобы магия работала)
/*Самое вкусное - это свои xml primitives*/ Фичерия вводит новое понятие, которое называется xml primitive (xml примитив). По нажатию на строчку в табличек с атрибутами, происходит очень интересная вещь. Внутри движка активируется тот или иной xml примитив. То есть позиция объекта редактируется только если нажать по строчке с ключом position. Как именам атрибутов ставится в соответствие xml притивы? С помощью конфига xmlPrimitives.properties https://github.com/dmitryk....perties
Здесь строчка Animation.position=featurea.util.xmlPrimitives.TransformPrimitive делает магию.
Смотрим, что у нас в featurea.util.xmlPrimitives.TransformPrimitive https://github.com/dmitryk....ve.java Примитив слушает мышку в коллбеках onTouchDown, onTouchDrag, onTouchUp Здесь самое интересное - это что этот самый xml primitive отвечает за редактирование xml файлика на основе того, что он там от мышки услышал
xmlTag.setAttribute(ANGLE, value + ""); // данная строчка кода редактирует файл на жестком диске
Как рисуется объект? С помощью метода onDraw(Graphics graphics) класса featurea.app.Area https://github.com/dmitryk....ava#L13
То есть по факту, чтобы из джава класса, который вообще ничего не знает про фичерию, сделать джава класс, который для фичерии как родной, надо заимплементить три интерфейса, в которых в сумме содержится пять методов: 1) featurea.app.Area https://github.com/dmitryk....ea.java 3 метода: listAreas, onTick, onDraw 2) featurea.xml.XmlNode https://github.com/dmitryk....de.java 1 метод: getSelection 3) featurea.xml.XmlResource https://github.com/dmitryk....ce.java (это тончайшая магия, так надо, чтобы все работало) 1 метод build
Посмотрите, пожалуйста, сами, как класс featurea.platformer.Animation реализует эти пять методов трех интерфейсов, чтобы быть интегрированным с фичерией listAreas: https://github.com/dmitryk....ava#L85 onTick: https://github.com/dmitryk....va#L284 onDraw: https://github.com/dmitryk....va#L292 getSelection: https://github.com/dmitryk....va#L418 build: https://github.com/dmitryk....va#L158
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 16:45 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 16:00 | Сообщение # 25 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата dalikivug ( ) dimakoles, ИМХО последнее время на gcup (возможно раньше не замечал) очень много неконструктивного разливания желчи по сему сюда лучше скидывать что то либо с красивой картинкой (т.к. программистов, которые в чем то разбираются здесь оочень мало) либо чтоб собрать общий шквал негатива и поправить что то, на что он больше всего был направлен люди разные. я скорее увидеть срез мнений. кто, на что пальцем покажет. и каким пальцем ) свежий взгляд свежий, даже если дурной ведь по факту все-таки можно сказать что один из двух нормальных форумов по геймдеву (второй - gamedev.ru) это срезДобавлено (26 июля 2016, 16:00) ---------------------------------------------
Цитата bodya_WM ( ) Я кодер с 11 лет. В том смысле что у меня опыт уже 3 года. Сейчас мне 14. В 11 лет я только по сути начал учить Delphi. Потом стал писать на C#. в два раза меня младше пацан, а как хорошо шел)
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 15:56 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 11:50 | Сообщение # 26 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) вот и запили рогалик. А не только словами бросайся Я не бросаюсь словами, я презентую движок максимально доступным языком с помощью ссылок на исходный код, видео на youtube и ответы на вопросы со скриншотами. Все будет сделано в свое время.
Добавлено (26 июля 2016, 11:50) ---------------------------------------------
Цитата bodya_WM ( ) А о векторах ты похоже никогда не слышал. Vector
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 11:50 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 11:40 | Сообщение # 27 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) На нём ничего кроме этого марио нет. Нет, потому что не сделал, а не потому что невозможно сделать. Все эти теги, которые появляются во всплывающем окошке - конфигурятся ручками
То есть заточить данный инструмент для визуального редактирования иксов и игриков можно под любой жанр.
Добавлено (26 июля 2016, 11:40) ---------------------------------------------
Цитата FlyOfFly ( ) Такое чувство, что 5тысяч строк это гигантское количества, в моих двух сторонах, за пол года уже 5352 строк кода полгода и имеются в виду
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 11:44 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 11:34 | Сообщение # 28 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) Собственно не говори гоп пока не перепрыгнешь. Движка тут и близко нет. Игровой движок - это инструмент на котором можно написать игрушку. В сэмплах к движку приведен пример игрушки mario, поэтому я считаю расшаренный мной код на гитхабе движком. Который в ближайшие три года, конечно, разовьется во что-то большее, чем просто стабильный костяк функционала с двумя стандартными компонентами - физика и платформер.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 11:37 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 11:26 | Сообщение # 29 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата Tymonr ( ) Никуда это не презентуется, потому что ни для чего, кроме как личного использования на этом этапе не годится — как минимум по причине существования тучи отличных(Или как минимум неплохих) openSource(MIT в т.ч.) альтернатив Точно тоже можно сказать об отдельно взятом туле из этой тучи. А значит и про всю тучу, если перебрать все тулы в ней. Идея - сделать лучший инструмент, а не конкурента существующим. Как, например, фотошоп является лучшим для растровой графики.Добавлено (26 июля 2016, 11:26) ---------------------------------------------
Цитата ShortKedr ( ) Стоит наверно сказать о том, что не значительные фичи или особенности особой роли не играют в разработке, может быть что-то такое комплексное да, но по отдельности нет. Комплексное. Это надо ощутить на проекте тысяч в пять строчек кода.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 11:23 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 05:27 | Сообщение # 30 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) редактор XML шаблона наверное имелось в виду "редактор XML лейаута", а не шаблона.
Цитата ShortKedr ( ) Мини инструмент для упрощения разработки, путём визуализации, есть то, как оно называется, но никак не конструктор или ещё что-то По факту да. Но есть очень весомый нюанс. XML лейаут в андроид студии открывается из проекта. Я не могу двойным кликом по XML-ке лейаута открыть ее в отдельном окошке и редактировать, не поднимая на уши весь проект. А мой движок позволяет так сделать. То есть можно открыть XML файлик просто двойным кликом как, например, PSD файлик в фотошопе. Поэтому я этот "Мини инструмент для упрощения разработки, путём визуализации" и называю "конструктор". Потому что внешне этот мини инструмент ведет себя как конструктор.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 05:33 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 05:21 | Сообщение # 31 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) Если думать о том, что бы ваш движок действительно пользовался успехом на PC таргетинговые платформы - андроид и iOS
Добавлено (26 июля 2016, 05:19) ---------------------------------------------
Цитата ShortKedr ( ) то есть вроде редакторов xml шаблонов в Intelij IDEA редактор XML шаблона - это редактор шаблона XML файла, а не самого XML файла.
Добавлено (26 июля 2016, 05:21) ---------------------------------------------
Цитата ShortKedr ( ) Тут даже странно называть это конструктором и говорить про какое-то исправление недостатков всех конструкторов, потому как это просто ваши инструменты для упрощения работы с кодом а какая разница, что было в начале? я себе работу с кодом упростил с помошью тула визуального. или визуальному тулу добавил Java бекенд. от перестановки слагаемых
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 05:22 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 05:11 | Сообщение # 32 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) Я так понял что вы делаете конструктор и хотите его просто расширять при помощи доп. расширений. не коструктор, а движок конструктор - это синоним Level Editor который идет к либам. движок - это либы. их можно подключить к проекту и погнал использовать классы.
чтобы было понятнее, скажу, что мой движок - это джарка, которую подключаешь к своему проекту в Эклипсе (или к модулю в IDEA) "конструктор" - это просто ласковое название для одного из тулов, который дает визуальные средства чтобы редактировать иксы и игрики
Есть еще и другие тулы помимо "конструктора" - редактор шрифтов, ...
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 05:15 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 04:55 | Сообщение # 33 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| ShortKedr,
Я написал кроссплатформенный движок. с компонентной архитектурой. из готовых компонентов пока имеются только физика и Platformer. Есть: коллизии, просчёт пути, анимация, манипуляции с изображением, псевдо физика, система событий. Когда я написал
Цитата dimakoles ( ) По факту, что я делаю - беру у Scirra Construct простоту визуальных средств и добавляю к ней мощь Java бекенда.
я имел в виду, что я концептуально отталкиваюсь от простоты конструктора, но при этом компенсирую главный недостаток любого конструктора - то есть то, что его нельзя расширить - Java бекендом.
Мой движок написан не на Scirra Construct, а на Java.
Мой движок простовато смотрится, потому что это движок для 2d игрушек, а не космический корабль. Также к нему не притрагивалась рука дизайнера. Мой движок не имеет привязки к какому либо жанру, например платформер. То, что ты увидел на видео, это не заточенный под платформер конструктор, а универсальное средство для того, чтобы редактировать иксы и игрики мышкой, а не текстом. А где эти иксы и игрики "бегают", внутри платформера или проекта с уклоном в физику, в графику - это не имеет значения.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 05:05 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 04:47 | Сообщение # 34 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
|
ты в суть вопроса вникни, комментатор
|
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 04:37 | Сообщение # 35 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) Квалифицированные опытные программисты умеют сделать движок-шедевр тратя меньше человека-часов и в дальнейшем упростив себе задачу разработки новых проектов на их творении, в то время как программисты или не программисты вообще, клепают конструкторы, говоря что им так проще, в итоге тратя в несколько а то и сотню раз больше времени Могу я спросить, откуда такая осведомленность о возможностях профессионалов?
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 04:37 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 03:39 | Сообщение # 36 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата dalikivug ( ) Обычно понимают огромную навороченную штуку которая умеет делать всё и вся
тот же "конструктор" скорее более узко специализирован
Да, я никогда не понимал, как можно разрабатывать движок для рынка, а не для продукта. Узкая специализация конструктора это не столько следствие низкой квалификации его разработчиков, сколько свидетельство, что его дизайн - под проектные задачи, а не под эффектную рекламу.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 03:41 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 02:41 | Сообщение # 37 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата dalikivug ( ) ИМХО сделай что то вроде конструктора, не беги за словом "движек" получится не плохо так у меня основа - Level Editor. Все с ним интегрируется тесно. XML код мапится на Java классы. По факту, что я делаю - беру у Scirra Construct простоту визуальных средств и добавляю к ней мощь Java бекенда.
Добавлено (26 июля 2016, 02:41) ---------------------------------------------
Цитата dimakoles ( ) не беги за словом "движек" что понимают под словом "движок" те, которые за ним бегут? Чтобы было посложнее и понепонятнее?
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 02:59 |
|
| |
dimakoles | Дата: Вторник, 26 Июля 2016, 00:58 | Сообщение # 38 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Видео Видео о том, как инсталлить движок
Downloads Скачать исходный код движка с github IntelliJ IDEA GIT JDK
Пожалуйста, напишите, если возникли проблемы.
Сообщение отредактировал dimakoles - Вторник, 26 Июля 2016, 02:18 |
|
| |
dimakoles | Дата: Понедельник, 25 Июля 2016, 22:05 | Сообщение # 39 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) в любом случае, использовать deprecated не есть хорошо. сидеть за компьютером много нехорошо )
Я посмотрел геймплей roguelike - ничего непонятно Придумаю с физикой что нибудь, где будет body из нескольких fixtureДобавлено (25 июля 2016, 22:05) --------------------------------------------- Так я отрисовываю текстуру.
glEnable(GL_LINE_SMOOTH); glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); glEnable(GL_POINT_SMOOTH); glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture.getId()); glTexParameterf(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// GL_REPEAT glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glPushMatrix(); glVertexPointer(VERTEX_POINTER_COUNT, GL_FLOAT, 0, vertexPointer); glColorPointer(COLOR_POINTER_COUNT, GL_FLOAT, 0, colorPointer); glTexCoordPointer(TEXTURE_COORD_POINTER_COUNT, GL_FLOAT, 0, texCoordPointer); glDrawArrays(GL_TRIANGLES, 0, 6); glPopMatrix();
glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, NULL_ID); glDisable(GL_TEXTURE_2D); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisable(GL_BLEND);
Этот код быстро станет deprecated?
Сообщение отредактировал dimakoles - Понедельник, 25 Июля 2016, 21:45 |
|
| |
dimakoles | Дата: Понедельник, 25 Июля 2016, 21:39 | Сообщение # 40 | Тема: Фичерия - featurea |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) Когда выпилят FFP окончательно, будет уже не usable.
ключевое слово "будет" )
|
|
| |
|