Среда, 13 Ноября 2024, 15:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 6 из 8
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
Фичерия - 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

libGDX намного мощнее, плюс это низкоуровневая либа, а не кривой враппер OpenGL.
Цитата
bodya_WM

А причём тут я? Мы обо мне разговариваем, или о движке?
Цитата
делает на фичерии то, что не осилил (например) сделать на юнити

Мне юнити и моего движка хватает с головой.
Цитата
в процессе у него возникает необходимость, для которой нет классов в движке. он задает мне вопрос - как это надо сделать чтобы по архитектуре было ок. я отвечаю, как это оформить - просто пакеты в проекте, 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
  • Страница 6 из 8
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг