Фичерия - featurea
| |
ShortKedr | Дата: Пятница, 29 Июля 2016, 01:39 | Сообщение # 101 |
Renword Studio
Сейчас нет на сайте
| Цитата dalikivug ( ) Я бы даже сказал что это из за введения в язык новых фич. К примеру в C# есть поля. И надобность в SetAlpha и GetAlpha отпадает при наличии И всё же deprecated появляется по той причине, которую я описал. А про C# - это уже как кому нравится =)
Сообщение отредактировал ShortKedr - Пятница, 29 Июля 2016, 01:39 |
|
| |
dimakoles | Дата: Пятница, 29 Июля 2016, 01:51 | Сообщение # 102 |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) Сейчас я вижу не совсем движок, но, возможно в будущем, когда будет реализовано множество функционала присущего движку, в том числе желательно что бы это были не просто визуальные редакторы, а ещё и на Java можно было что-то написать, унаследовать, расширить, улучшить и тд и тп - тогда это будет уже движок. это уже можно. стандартные компоненты лежат здесь. можно делать свои кастомные твой кастомный компонент будет опираться на модуль platform основные классы, на которые опирается компонент: featurea.xml.XmlResource featurea.xml.XmlNode featurea.app.Area featurea.app.Context featurea.app.Layer
Цитата ShortKedr ( ) что сейчас оно не столько подвязано на код, сколько на редактор как раз на код и подвязано подвязка XML тегов на джава код осуществляется с помощью XML схемы: пример XML схемы модуля platform
подробнее о том, как привязываться к коду я попытался рассказать здесь
Цитата ShortKedr ( ) редактор как раз тянет в низ всю универсальность это все равно что сказать, что поскольку в html нельзя писать SQL код, то поэтому он тянет универсальность веб страницы вниз. по факту оно так и есть, но это не о том редактор не тянет универсальность вниз. он дает стандарт интеграции любой Java библиотеки (jar файлика) с визуальным средством редактирования XML файла (фичерией)
Сообщение отредактировал dimakoles - Пятница, 29 Июля 2016, 02:12 |
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 08:53 | Сообщение # 103 |
постоянный участник
Сейчас нет на сайте
| Цитата это все равно что сказать, что поскольку в html нельзя писать SQL код, то поэтому он тянет универсальность веб страницы вниз бред, html специально создавался для разметки.Добавлено (29 июля 2016, 08:53) ---------------------------------------------
Цитата твой кастомный компонент будет опираться на модуль platform А почему я должен наследовать чужой компонент? Почему от platform? Где GameObject?
Разработчик игрового движка WaveGameEnvironment2D
|
|
| |
ShortKedr | Дата: Пятница, 29 Июля 2016, 09:08 | Сообщение # 104 |
Renword Studio
Сейчас нет на сайте
| bodya_WM, поддержу во всех смыслах =) Движок по сути должен иметь упрощённую родную систему классов для работы. Аналогично как GameObject в движке Unity3d. По факту, как можно сделать:... родную систему классов и систем, классы сцен, объектов, затем вывод графики под сцены для ряда различных платформ и обработка событий. Далее реализовать сериализацию сцен файлы, например в бинарном формате. А после уже лепить редактор на основе этой сериализации и обсерва класса по средством рефлексии... Простая схема, работает всегда, не нужно втыкать ненужные технологии, но это конечно уже на любителя и дальнейшие планы. Но вроде у вас изврата вообще не присутствует, поэтому куча разных технологий просто не нужны на первых стадиях, только ваши личные =)
Сообщение отредактировал ShortKedr - Пятница, 29 Июля 2016, 09:09 |
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 09:13 | Сообщение # 105 |
постоянный участник
Сейчас нет на сайте
| Цитата Аналогично как GameObject в движке Unity3d В анриле тоже есть GameObject - Actor.
Цитата затем вывод графики под сцены для ряда различных платформ OpenGL как и ява работает везде.
В яве нет делегатов. Есть только извращенские интерфейсы.
Цитата например в бинарном формате Бинарники читаются намного быстрее.
Разработчик игрового движка WaveGameEnvironment2D
|
|
| |
ShortKedr | Дата: Пятница, 29 Июля 2016, 09:33 | Сообщение # 106 |
Renword Studio
Сейчас нет на сайте
| Цитата bodya_WM ( ) В яве нет делегатов. Есть только извращенские интерфейсы. Иногда мне не хватает такого в C#, дабы сразу сказать экземпляру объекта его отличия от оригинала. Поэтому это даже полезно и хорошо. Ну а изврат или нет - зависит от того, как ты к этому относишься и пишешь ли вообще на java. Я отношусь нормально, мне это нравиться, так что... Когда-то на C#, полагаю, функциональные переменные были извратом, а сейчас ничего, даже getters и setters выкинули =) Вообще это 2 достаточно похожих языка со своими отличиями и спецификациями, но меня всё равно сильнее тянет к java, хоть последние пару недель на C# пишу в основном=)
Да, кстати я имел ввиду сделать обработчики внутри игровые, что бы оставалось только переопределить функции событий(OnStart, OnUpdate, OnDispose) и радоваться жизни =)
|
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 10:29 | Сообщение # 107 |
постоянный участник
Сейчас нет на сайте
| Шарп унаследовал всё лучшее от C++(ООП, работы с памятью в небезопасном коде) и Java(ООП, некоторые фичи)
Разработчик игрового движка WaveGameEnvironment2D
|
|
| |
dimakoles | Дата: Пятница, 29 Июля 2016, 11:41 | Сообщение # 108 |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) GameObject в фичерии GameObject переименован в Area, а Scene переименован в Application
Цитата ShortKedr ( ) родную систему классов и систем
Класс featurea.app.Context - доступ к environment, это как в libGDX поля класса com.badlogic.gdx.Gdx
Код featurea.app.Context.getAudio() Context.getInput() Context.getClassLoader() Context.getFiles() Context.getApplication() Context.getTimer() Context.getResources() Context.getLoader() Context.getRender()
Цитата bodya_WM ( ) А почему я должен наследовать чужой компонент? неправильно выразился, не наследовать компонент, а просто заимплементить интерфейс, например
Код // file: com/bodya_WM/GameObject.java package com.bodya_WM.GameObject;
import featurea.app.Area;
public class GameObject implements Area {
public List<? extends Area> listAreas(){ // todo тут твои дочерние GameObject или что угодно, что implements Area }
public void onTick(double elapsedTime){ // вызывается каждый фрейм, elapsedTime в миллисекундах }
[quote=ShortKedr;717187]вывод графики под сцены для ряда различных платформ[/quote] public void onDraw(Graphics graphics){ // рисуешь }
}
Цитата ShortKedr ( ) реализовать сериализацию сцен файлы метод Код featurea.xml.XmlUtil.save(XmlTag xmlTag, File file)
Цитата ShortKedr ( ) для ряда различных платформ кроссплатформенность присутствует, она реализуется за счет имплементации следующих компонентов под андроид, иос и десктоп.
Код featurea.app.Context.gl featurea.app.Context.al
также, конечно, лайфсайклы свои прописаны, для Android например это класс featurea.android.FeatureaActivity и featurea.android.MyRender
Цитата ShortKedr ( ) обработка событий на данный момент инпут:
Код package featurea.input;
public class InputAdapter implements InputListener {
@Override public boolean onTouchDown(double x, double y, int id) { return false; }
@Override public boolean onTouchDrag(double x, double y, int id) { return false; }
@Override public boolean onTouchMove(double x, double y, int id) { return false; }
@Override public boolean onTouchUp(double x, double y, int id) { return false; }
@Override public boolean onMouseWheel(int count, double x, double y) { return false; }
@Override public void onKeyDown(Key key) { // no op }
@Override public void onKeyUp(Key key) { // no op }
}
Так же события лайфсайкла
Код package featurea.app;
public class Screen {
public void onCreate() { // no op }
public void onResume() { // no op }
public void onPause() { // no op }
public void onResize(int width, int height) { // no op }
public void onDrawBackground() { }
public void onDraw(){ }
}
листенеры, например featurea.app.LoaderListener
Код public interface Listener { /** * @param progress 0..1 * */ void onLoad(double progress); }
Добавлено (29 июля 2016, 11:41) --------------------------------------------- Вообще, фичерия - это кодерская тема, это не конструктор. Я начал с того, что фичерия дает конструктор, поэтому произошла путаница. Фичерия претендует на то, что она как минимум не хуже любого существующего движка на Java, например libGDX или AndEngine. Весь их функционал изучался и "переносился". Другой вопрос, что структурировано и названо все по-другому.
Сообщение отредактировал dimakoles - Пятница, 29 Июля 2016, 12:10 |
|
| |
EchoIT | Дата: Пятница, 29 Июля 2016, 11:47 | Сообщение # 109 |
старожил
Сейчас нет на сайте
| Цитата ShortKedr Полилась таки желчь и бессмысленный тролинг от EchoIT. Скажу, что возраст мало что значит. А вот то, когда человек выходит из возраста ребёнка и становится серьёзным - действительно значит многое. Парню может и 14, но он в разы опережает многих на этом форуме, зовущих себя образно программерами(речь не о реальных программистах), по крайней мере у меня есть такое ощущение. Ну а на практике можно всё проверить =)
Какая желчь (задолбали вы уже с этим мерзким словом, честно говоря), какой троллинг? Я лишь сказал ему всё как есть. Нельзя гордо заявлять "я программист", если ты занимаешься этим такой короткий срок.
Цитата ShortKedr bodya_WM, запомни мой совет =) - Никогда не говори своего настоящего возраста. Вот это как раз какой-то совет как быть закомплексованным и пытаться создать у людей лучшее представление о себе, чем есть на самом деле. Если тебе 14 - тебе 14, будь ты хоть в 1000 раз умнее всех на планете. И нечего это скрывать, стыдиться, стесняться. Если люди относятся предвзято из-за возраста, это не твои проблемы. И да, я ещё раз повторю. Ничего про возраст я не имел в виду, я говорил лишь про опыт работы.
Цитата dimakoles в фичерии GameObject переименован в Area, а Scene переименова в Application Немного странные нейминги, с первого раза такие обозначения не очень понятны.
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Пятница, 29 Июля 2016, 11:57 |
|
| |
ShortKedr | Дата: Пятница, 29 Июля 2016, 11:52 | Сообщение # 110 |
Renword Studio
Сейчас нет на сайте
| Цитата EchoIT ( ) короткий срок. Точнее... Нельзя назвать человека программистом, который не шарит, как Про в этом вопросе =) Парень же достаточно хорошо шарит - такое впечатление создаётся. А про практику второй вопрос уже =)
Добавлено (29 июля 2016, 11:52) ---------------------------------------------
Цитата dimakoles ( ) заимплементить Расширить интерфейс другими словами
Сообщение отредактировал ShortKedr - Пятница, 29 Июля 2016, 12:11 |
|
| |
dimakoles | Дата: Пятница, 29 Июля 2016, 11:56 | Сообщение # 111 |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) Немного странные нейминги, с первого раза такие обозначения не очень понятны. раз зашла речь - есть место пояснить подход к неймингу: не использовать в именах классов и методов такие слова, как: game, scene, object, featurea game - потому что и так понятно, что game, фичерия - это игровой движок object - потому что и так понятно, что Object, джава это ООП scene - потому что тогда надо и Actor, а Actor - это не название движкого класса, в скриптах проекта - да, но не как стандарт для всех проектов featurea - чтобы не напоминать лишний раз имя движка (по примеру эппла - на маках значок эппла сзади)
Сообщение отредактировал dimakoles - Пятница, 29 Июля 2016, 11:58 |
|
| |
ShortKedr | Дата: Пятница, 29 Июля 2016, 12:06 | Сообщение # 112 |
Renword Studio
Сейчас нет на сайте
| Цитата EchoIT ( ) Вот это как раз какой-то совет как быть закомплексованным и пытаться создать у людей лучшее представление о себе, чем есть на самом деле. Если тебе 14 - тебе 14, будь ты хоть в 1000 раз умнее всех на земле. И нечего это скрывать, стыдиться, стесняться. Если люди относятся предвзято из-за возраста, это не твои проблемы
А вот тут вы не правы, то как относятся люди к человеку как раз заслуга этого человека. Все люди разные, и неадекватов хватает - на таких можно сразу положить. Другое дело, когда человек вроде адекватен, но потом у него что-то переклинивает из-за того же возраста собеседника и он начинает нести что-то в стилистике: "Кто взрослее, тот и круче" - бред полнейший, если честно. Например взять обычную молодёжную гопоту до 18 лет, частый случай в нашем мире. По факту они перед 14 летним мальчиком будут качать права, особенно, если они старше, обосновывая это возрастом, но в реале будут полными ничтожествами по сравнению с этим мальчиком, который соответствует совсем иному возрасту развития.
Скажем так: "Проще нести ахинею в роли профессора, чем в роли студента" =) И самое главное, если действительно нести ахинею в роли профессора, то некоторые даже в неё поверят =)
Добавлено (29 июля 2016, 12:06) --------------------------------------------- dimakoles, в общем по коду хорошо, точнее по структуре =) Это наверно то, что мы хотели увидеть изначально, потому что подавать сырой продукт как-то не ахти, а так мы увидели небольшую часть структуры движка и можем оценить это, предположить дальнейшее развитие, как возможное, так и приоритетное =)
Сообщение отредактировал ShortKedr - Пятница, 29 Июля 2016, 12:10 |
|
| |
dimakoles | Дата: Пятница, 29 Июля 2016, 12:16 | Сообщение # 113 |
почетный гость
Сейчас нет на сайте
| Цитата ShortKedr ( ) а так мы увидели небольшую часть структуры движка и можем оценить это, предположить дальнейшее развитие, как возможное, так и приоритетное мой подход к развитию движка - писать проекты.
в идеале мое видение развития фичерии таково: bodya_WM (для примера) делает на фичерии то, что не осилил (например) сделать на юнити. например, клон зумы или клон Bike Race Free - Racing Game в процессе у него возникает необходимость, для которой нет классов в движке. он задает мне вопрос - как это надо сделать чтобы по архитектуре было ок. я отвечаю, как это оформить - просто пакеты в проекте, extension, добавлю ли в движок возможность, расширить ли редактор, подойти к вопросу по другому, добавить в синтаксис маппинга XML на джаву новые keywords, и т.д.
таким образом, направление развития движка - это пользователи движка со своими проблемами, а не мои абстрактные фантазии о том, каким бы я хотел видеть движок через три года
Сообщение отредактировал dimakoles - Пятница, 29 Июля 2016, 12:22 |
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 12:28 | Сообщение # 114 |
постоянный участник
Сейчас нет на сайте
| Цитата в фичерии GameObject переименован в Area, а Scene переименован в Application
Зачем переименовывать то что вошло в стандарт? Как "зона" может ассоциироваться с "игровым объектом"?
Цитата неправильно выразился, не наследовать компонент, а просто заимплементить интерфейс, например Зачем? Наследование здесь лучше подойдёт хотя бы потому что базовый класс должен иметь заимплементиную отрисовку(которую можно отключить), управление таймером и.т.д. В интерфейсе ты не вызовешь super(). И не отменишь отрисовку если это не надо(но можно если возвращать текстуру)
libGDX намного мощнее, плюс это низкоуровневая либа, а не кривой враппер OpenGL.
А причём тут я? Мы обо мне разговариваем, или о движке?
Цитата делает на фичерии то, что не осилил (например) сделать на юнити Мне юнити и моего движка хватает с головой.
Цитата в процессе у него возникает необходимость, для которой нет классов в движке. он задает мне вопрос - как это надо сделать чтобы по архитектуре было ок. я отвечаю, как это оформить - просто пакеты в проекте, extension, добавлю ли в движок возможность, расширить ли редактор, подойти к вопросу по другому. Это надо писать в вики проекта. Такое чувство что вы пользуетесь гитхабом в первый раз.
Разработчик игрового движка WaveGameEnvironment2D
Сообщение отредактировал bodya_WM - Пятница, 29 Июля 2016, 12:29 |
|
| |
ShortKedr | Дата: Пятница, 29 Июля 2016, 12:31 | Сообщение # 115 |
Renword Studio
Сейчас нет на сайте
| dimakoles, надеюсь вы не собираетесь сделать Зуму за ваших пользователей =)
|
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 12:32 | Сообщение # 116 |
постоянный участник
Сейчас нет на сайте
| Цитата надеюсь вы не собираетесь сделать Зуму за ваших пользователей =) матриц нету, ниасилит.Добавлено (29 июля 2016, 12:32) --------------------------------------------- dimakoles, так где демка производительности с 6к спрайтов 16х16?
Разработчик игрового движка WaveGameEnvironment2D
|
|
| |
dimakoles | Дата: Пятница, 29 Июля 2016, 12:36 | Сообщение # 117 |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) базовый класс должен иметь заимплементиную отрисовку(которую можно отключить) речь про платформу. базовая отрисовка есть в соответствующих стандартных компонентах featurea.platformer.Animation.onDraw() - для платформера, org.dyn4j.dynamics.Body.onDraw() для физики
Цитата bodya_WM ( ) Зачем переименовывать то что вошло в стандарт? Как "зона" может ассоциироваться с "игровым объектом"? для того же, для чего писать новый движок, если юнити вошел в стандарт
Цитата bodya_WM ( ) Это надо писать в вики проекта. Такое чувство что вы пользуетесь гитхабом в первый раз. вместо вики на гитхабе я хотел бы использовать данный тред, если модератор не запретитДобавлено (29 июля 2016, 12:36) ---------------------------------------------
Цитата ShortKedr ( ) надеюсь вы не собираетесь сделать Зуму за ваших пользователей =) Рабочий прототип четырехлетней давности
Цитата bodya_WM ( ) dimakoles, так где демка производительности с 6к спрайтов 16х16? батчи для статичных объектов доработаю, выложу. к понедельнику хочу успеть.
|
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 12:39 | Сообщение # 118 |
постоянный участник
Сейчас нет на сайте
| Цитата речь про платформу. базовая отрисовка есть в соответствующих стандартных компонентах featurea.platformer.Animation.onDraw() - для платформера, org.dyn4j.dynamics.Body.onDraw() для физики
Я говорил о универсальном классе GameObject.
Цитата для того же, для чего писать новый движок, если юнити вошел в стандарт Речь о неймингах а не о юнити.
Цитата вместо вики на гитхабе я хотел бы использовать данный тред, если модератор не запретит Отсутствие логики зашкаливает.Добавлено (29 июля 2016, 12:38) ---------------------------------------------
Цитата батчи для статичных объектов доработаю, выложу. к понедельнику хочу успеть. так какой батчинг? Вы постоянно гоняете по шине каждую текстуру и пишете в фреймбуффер, или за один раз передаёте сгенерированный фрейм?Добавлено (29 июля 2016, 12:39) ---------------------------------------------
Цитата Sorry! This content is not available in your country yet. We're working to bring the content you love to more countries as quickly as possible. Please check back again soon. ну, ну
Разработчик игрового движка WaveGameEnvironment2D
|
|
| |
dimakoles | Дата: Пятница, 29 Июля 2016, 12:41 | Сообщение # 119 |
почетный гость
Сейчас нет на сайте
| Цитата bodya_WM ( ) Как "зона" может ассоциироваться с "игровым объектом" это движковый интерфейс. создатель стандартного компонента реализует его например классом com.myengine.GameObject, а уже пользователь стандартного компонента будет использовать GameObjectДобавлено (29 июля 2016, 12:41) ---------------------------------------------
Цитата bodya_WM ( ) Sorry! This content is not available in your country yet. We're working to bring the content you love to more countries as quickly as possible. Please check back again soon. не знал. я в минске. поправлю напишу
|
|
| |
bodya_WM | Дата: Пятница, 29 Июля 2016, 12:42 | Сообщение # 120 |
постоянный участник
Сейчас нет на сайте
| Цитата это движковый интерфейс. создатель стандартного компонента реализует его например классом com.myengine.GameObject, а уже пользователь стандартного компонента будет использовать GameObject Почему я должен реализовывать вслепую GameObject? Почему бы не сделать его сразу, полностью универсальным? Есть поддержка компонентов на игровых объектах? Behaviours?
Разработчик игрового движка WaveGameEnvironment2D
Сообщение отредактировал bodya_WM - Пятница, 29 Июля 2016, 12:43 |
|
| |
|