Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
187 - Bullet Heaven
Вчера, 20:39
 Mefistofel
187 - ?
21.11.2024
 Dan
Galactic Showdown -…
21.10.2024
 KregHek
Новый IGDC
5.08.2024
 rimush
186 - Strategy!
15.07.2024
 VoroneTZ
WoL
3.07.2024
 Darthman
Привет выжившие
21.05.2024
 GeePee
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

Пользователей: 1,790
новичок: Durved
Обсуждение «Quad Engine vs Unit3d»
Страница 3 из 4 < 1 2 3 4 >
0nni
Avatar пользователя

Опубликовано 29.08.2015 09:55 (9 лет назад)    #
Считаю что это победа =)
раз
два
три

редакция от 0nni, 29.08.2015 10:00

Bullet Heaven:Не участвую.
KEFIR
Avatar пользователя

Опубликовано 29.08.2015 10:18 (9 лет назад)    #
JohnJ2
Я рисую в графическом редакторе :) В GIMP или в фотошопе. У меня просто минимальные потребности в этом отношении т.к. рисовать я все равно не умею. Хотя наверняка есть удобные engine-agnostic инструменты для создания красивых менюшек. Вот первое что выдает гугл например. Не знаю что это, но скриншоты симпатичные и описание достаточно вкусное :)

Onni
Даже у тебя не установлен флеш-плеер? Как же так? :)
Bullet Heaven:Не участвую.
JohnJ
Avatar пользователя

Опубликовано 29.08.2015 10:30 (9 лет назад)    #
KEFIR, Спасибо
Bullet Heaven:Не участвую.
0nni
Avatar пользователя

Опубликовано 29.08.2015 10:47 (9 лет назад)    #
KEFIR написал:
DisplayList это только часть стандартной библиотеки.

Что значит только? Отсутствие этого "только" в html пять сильно усложняет жизнь. Все библиотеки пытающиеся повторить DisplayList на html5 беднее.

KEFIR написал:
Если бы DisplayList был так прекрасен, то не появились бы супер популярные Starling, Flixel и прочие. А ведь все эти библиотеки исключают возможность использования AFP. Как же так?

С фликселем я почти не работал, бросил его когда понял какие там нужны костыли что бы попасть по объекту мышью.

Старлинг появился потому что stage3d предоставляет по сути те же механизмы что и webgl тут я спорить не буду, в 2D движков использующих 3D ускорение что flash что html5 сейчас примерно на одном уровне. Но если убрать требования к супер-производительной графике, то по всем остальным пунктами, удобство апи, богатсво инструментов, флешовый DisplayList рвет и старлинг и pixi и Kinetic и все другие.

KEFIR написал:
Писал на PIXI.js и даже немного контрибьютил :) Я не знаю о каких сильных уступках ты говоришь. Тот же DisplayList, маски, фильтры, все есть. API полностью покрывает то, что я использовал во флеше + дополнительные плюшки, динамичное развитие и возможность контрибьютить.

У меня тоже есть один коммит в пикси =) А возмодностей мне не хватало, как я уже говорил писал на пикси до знакомства с флешем, и после знакомства я увидет там все чего мне не хватало в пикси.

KEFIR написал:
К этому еще аппаратная поддержка и пользователю не нужно устанавливать плагин (да, флеш уже не входит в поставку браузеров, такие дела). Если выбор между Starling и PIXI.js то очевидный выбор это PIXI.js.

В хроме флеш стоит, а в других браузерах, его помнится и не было никогда.
Не понимаю почему очевидный? Флеш стоит почти на всех машинах, разрабатывать на нем легче, хотя бы за счет строгой типизации (если не дурить).
А если взять мой телефон (не самый новый), то air на нем работает очень шустро, а html5 выдает 1 кадр в две секунды.

KEFIR написал:
Нет, это очень субъективно :) Граф. API уже давно устаканилось. WebGL поддерживают все браузеры, в том числе мобильные. Игр на html5 делается полно. Я не понимаю что вы там называете серьезными проектами? Понятно что крузисы и GTAV на html5 не делают, но в целом игр на html5 очень много.
Да, технология молодая и она сейчас выстреливает. Флеш точно уже можно забыть.

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

редакция от 0nni, 29.08.2015 10:51

Bullet Heaven:Не участвую.
0nni
Avatar пользователя

Опубликовано 29.08.2015 10:54 (9 лет назад)    #
KEFIR написал:
Вот первое что выдает гугл например
v0.11
Я пробовал когда была версия 0.10, короче оно только на картинке вкусно, а на деле крешится без причины. Я очень жду когда они выпустят 1.0 потому что это больше всего похоже на то сможет заменить флеш.

KEFIR написал:
Даже у тебя не установлен флеш-плеер? Как же так? :)

Просто не люблю что бы флешки и скрипты сами запускались, я жадный до CPU =)
Bullet Heaven:Не участвую.
KEFIR
Avatar пользователя

Опубликовано 29.08.2015 11:08 (9 лет назад)    #
0nni написал:
Но если убрать требования к супер-производительной графике, то по всем остальным пунктами, удобство апи, богатсво инструментов, флешовый DisplayList рвет и старлинг и pixi и Kinetic и все другие.

Так в чем конкретно? Если не брать в расчет Adobe Flash Professional (который, к слову, совсем не бесплатен).
Bullet Heaven:Не участвую.
0nni
Avatar пользователя

Опубликовано 29.08.2015 12:35 (9 лет назад)    #
KEFIR написал:
Так в чем конкретно? Если не брать в расчет Adobe Flash Professional (который, к слову, совсем не бесплатен).

Устоявшееся апи, которому 18 лет, обилие библиотек мощных и устоявшихся фреймворков, тот же RoboticLegs. Обилие решений именно для энтерпрайза.
Мне как инди-разработчику не нужен AdobeFlash, но на работе, когда художник хочет нарисовать модное окошечко или персонажа с красивой анимацией, без него не обойтись. Это один из главных недостатков, нельзя просто его выкинуть и сказать "давай без него".
Еще AIR самый простой способ перенести приложение на мобилки.

Дальше чисто субъективно, я уже писал что js динамически типизированный, в отличие от флеша. Про всякие крутые редакторы мне говорить не надо, не верю что они могут избавиться от всех ошибок типизации.

Как выход вижу TypeScript или Haxe, а их использование говорит о недостатках js как языка.
Bullet Heaven:Не участвую.
KEFIR
Avatar пользователя

Опубликовано 29.08.2015 13:02 (9 лет назад)    #
0nni написал:
Устоявшееся апи, которому 18 лет

Так тут спору нет, API получилось удачное, именно поэтому все вот эти библиотеки (Starling, PIXI) полностью повторяют его. Но чем именно они то уступают именно в плане API?

0nni написал:
обилие библиотек мощных и устоявшихся фреймворков, тот же RoboticLegs.

Всего этого добра тоже полно и на JS. Тем более написанное на AS3 легко портируется.

0nni написал:
Обилие решений именно для энтерпрайза.

Это каких? Да что нам до интерпрайза, когда речь идет о небольших играх?

0nni написал:
js динамически типизированный, в отличие от флеша.


Про всякие крутые редакторы мне говорить не надо, не верю что они могут избавиться от всех ошибок типизации.

Как выход вижу TypeScript или Haxe, а их использование говорит о недостатках js как языка.

Ну строго говоря в As3 тоже динамеческая типизация. Указание типов это лишь синтаксический сахар. Ничто не мешает сделать, например, так:
var foo:int = 30;
foo = new Sprite();


И опять все сходится на этом, когда речь идет о JS :) Это уже было здесь и все пришло к этому. Я все еще не могу понять чем именно вам так не угодила динамическая типизация. Я должен знать, расскажите мне :-D Я много лет пишу на языках с динамеческой типизацие (AS2, AS3, JS, PHP...) и не понимаю что именно вас так пугает. При этом переключаясь на язык со статической типизацией (та же Java) также не испытваю каких-то проблем или наоборот облегчения. Разве что автодополнение в редакторе работает лучше.

Я абсолютно комфортно себя чувствую, когда пишу на JS, не понимаю зачем нужен TypeScript. Впрочем надо попробовать, может быть он невероятно изащен. Но подозреваю, что он нужен для тех, кто не может представить себе как программировать вне парадигмы ООП, которую диктует C++ (и которой следуют Java, C# и прочие). Цель HaXe это все же создать язык, который можно транслировать в другие языки.
Bullet Heaven:Не участвую.
0nni
Avatar пользователя

Опубликовано 29.08.2015 13:23 (9 лет назад)    #
Так энтерпрайз как раз и диктует какая технология будет жить.

У с++ ООП не сильно изящный, я скорее смотрю в сторону java. Но да мне нравится ООП парадигма а js не может мне ее предложить.

Языки с динамической типизацией перекладывают на программиста то, что мог бы заметить компилятор. Не хочу думать за компилятор.
Bullet Heaven:Не участвую.
KEFIR
Avatar пользователя

Опубликовано 30.08.2015 08:54 (9 лет назад)    #
0nni написал:
У с++ ООП не сильно изящный, я скорее смотрю в сторону java. Но да мне нравится ООП парадигма а js не может мне ее предложить.

Видимо не нравится. Собственно об этом и речь. ООП в C++, Java, C#, Delphi и прочих реализован абсолютно одинаково за исключением синтаксиса. JavaScript же это функциональный язык, это совершенно другая парадигма. Это не хорошо и не плохо, он просто другой. TypeScript же как раз и создан для того, чтобы вернуть людей, привыкших к такой парадигме в зону комфорта. Собственно это тоже не плохо, но как альтернатива можно просто понять и принять JavaScript таким, какой он есть :)

0nni написал:
Языки с динамической типизацией перекладывают на программиста то, что мог бы заметить компилятор. Не хочу думать за компилятор.

Вот почти слово в слово это мне говорили в прошлом сраче Daemon и Mefestofel. Только конкретных примеров что-то так и не привели. Может у тебя есть конкретные примеры? Просто я так и не понял о чем речь и какие такие ошибки, связанные с типами, постоянно выдают компиляторы. Когда я программирую на Java у меня такого нет. Разве что постоянно приходится использовать приведения типов, там где за меня это мог бы сделать компилятор. Например int -> float -> double.

редакция от KEFIR, 30.08.2015 08:55

Bullet Heaven:Не участвую.
0nni
Avatar пользователя

Опубликовано 30.08.2015 10:34 (9 лет назад)    #
Ну вот, например у меня был метод
class Character {
function giveCoins(amount);
}

я поменял на
class Character {
function giveCoins(amount, coinType);
}


И где-то в коде забыл поменять вызов giveCoins() и дописать второй аргумент. Где-то я вообще удалил или переименовал метод, а если ты вообще переместил или удалил весь класс? Код на js будет работать ровно до тех пор пока не произойдет вызов неправильного кода.

Что бы избежать такого, весь код нужно покрывать тестами (Ну-ка, кто-то пишет тесты для конкурсов? =)) в типизированных языках ты просто не сможешь запустить такой код. Это экономит и время и нервы, когда твой код падает, и ты начинаешь искать где именно и что ты неправильно передал.
Bullet Heaven:Не участвую.
JohnJ
Avatar пользователя

Опубликовано 30.08.2015 10:55 (9 лет назад)    #
0nni написал:
(Ну-ка, кто-то пишет тесты для конкурсов? =))

Я писал :) правда не много.
Пример хороший. В phpStorm для подобных случаев можно использовать FindUsages, хотя это, конечно, не так хорошо гарантирует от отсутствия ошибки, как прерывание компиляции.
Bullet Heaven:Не участвую.
KEFIR
Avatar пользователя

Опубликовано 30.08.2015 16:18 (9 лет назад)    #
0nni, все так. Вызов функции без аргумента не является ошибкой в js т.к. отсутствие значения это тоже значение (undefined). Это не хорошо и не плохо, опять же :) Такой вот он этот язык. Его можно за это ненавидеть (т.к. приучен к другому), а можно понимать и видеть плюсы. Такое поведение дает широкие возможности в манипуляциях с аргументами функций.
В целом это "проблема" всех интерпретируемых языков, не только js. Многие ошибки в коде вскрываются только во время выполнения. Для тех, кто не может смирится и постоянно наступает на эти грабли и не может работать эффективно и создаются костыли-компиляторы в виде TypeScript :)
Кстати надо будет попробовать его.
Bullet Heaven:Не участвую.
Wookie
Avatar пользователя

Опубликовано 30.08.2015 16:41 (9 лет назад)    #
Я последнюю игру на конкурс делал с Haxe, который может транслировать код в JS (к тому же еще в 1001 язык, в AS3, C++, C#, Python, PHP, Java, etc), при этом предоставляя AS3-подобный синтаксис. До этого еще делал игру на Pixi.js, используя тот же Haxe, там вообще один-в-один был флеш.
Bullet Heaven:Не участвую.
Daemon
Avatar пользователя

Опубликовано 31.08.2015 04:01 (9 лет назад)    #
Код на js будет работать ровно до тех пор пока не произойдет вызов неправильного кода.

Более того, он будет до последнего скрывать эту ошибку от тебя, пытаясь работать дальше. Что для некоторых бизнес-ситуаций, вроде банковских транзакций, в корне неверно.

Я повторюсь, наверное. Но JS все никак не может обзавестись вещами, критичными для 21-го века: Модульность, нормальное ООП, исключения и поддержка строго синтаксиса из коробки. Посмотрим, как пойдет ES 6.
Bullet Heaven:Не участвую.
JohnJ
Avatar пользователя

Опубликовано 31.08.2015 04:34 (9 лет назад)    #
Более того, он будет до последнего скрывать эту ошибку от тебя, пытаясь работать дальше.

Если дописать одну строчку, то нет:
if (coinType == undefined) alert('aaaaaa');

А по поводу "нормального ООП" - javascript вообще не объекто-ориентированный (хотя объекты в нём есть). Я бы сказал, он событийно-ориентированный. Хотя официально, конечно, прототипно-ориентированный. В этом есть своя изюминка и для некоторых случаев он оказывается более удобным, чем языки с ООП.
На мой взгляд, javascript не нужна строгая типизация, ведь это сценарный язык. Другое дело, что браузеры могли бы встраивать поддержку ещё какого-либо языка. ActionScript, например, либо python.

редакция от JohnJ, 31.08.2015 04:40

Bullet Heaven:Не участвую.
0nni
Avatar пользователя

Опубликовано 31.08.2015 06:47 (9 лет назад)    #
JohnJ2 написал:
Если дописать одну строчку, то нет:
if (coinType == undefined) alert('aaaaaa');

Так а какая разница, логика-то сломана? А если функции вообще нет такой? перед вызовом проверять?
if (typeof user.giveCoin == "Function")

Только грамотные тесты помогут все варианты проверить.

Еще по опыту скажу про поведение this в прототипах и функциях. Я не скажу что поведение ее нелогично, но это очень трудно держать в голове чем у тебя равно this сейчас.
Bullet Heaven:Не участвую.
JohnJ
Avatar пользователя

Опубликовано 31.08.2015 07:15 (9 лет назад)    #
Вот я состряпал в обычном блокноте пример простенький:
<html>
<head>
</head>
<body>
<script>
var x = function (a) {
alert(a);
}
x(1);
y(2);
x(3);
</script>
</body>
</html>

Открываем в хроме - видим алерт с единицей и всё. Открываем дебаггер и видим:

Так что наличие функции через код проверять не требуется :)

редакция от JohnJ, 31.08.2015 07:16

Bullet Heaven:Не участвую.
KEFIR
Avatar пользователя

Опубликовано 31.08.2015 07:18 (9 лет назад)    #
Daemon написал:
Более того, он будет до последнего скрывать эту ошибку от тебя, пытаясь работать дальше. Что для некоторых бизнес-ситуаций, вроде банковских транзакций, в корне неверно.

Он не скрывает ошибок, просто в понятиях js описанная ситуация с аргументами это вообще не ошибка. Это точно такая же особенность языка, как например отсутствие сборщика мусора в C/C++. Ее надо иметь в виде и тогда все будет нормально. Но ошибок не избежать в любом языке. Человеческий фактор.

Daemon написал:
Я повторюсь, наверное. Но JS все никак не может обзавестись вещами, критичными для 21-го века:

Модульность

Есть. Из коробки в node.js и в виде различных библиотек в браузерах. CommonJS и Require.js например. Я предпочитаю второе.
нормальное ООП

Странно ждать "нормального" ООП в функциональном ЯП. Это просто другая парадигма. Однако же с помощью прототипного наследования можно добиться вполне привычного ООП.
исключения

Есть.
поддержка строго синтаксиса

Не совсем понимаю что такое строгий синтаксис. Строгая типизация? Не думаю что это прямо критично в 21 веке. Масса серьезнейших приложений пишется на JS, PHP, Ruby, Python и прочих и ничего, все работает.

Посмотрим, как пойдет ES 6.

Судя по всему для любителей C++-подобных языков там будет только дополнительный синтаксический сахар, в остальном язык остается верен своим концепциям.
Bullet Heaven:Не участвую.
Daemon
Avatar пользователя

Опубликовано 31.08.2015 07:50 (9 лет назад)    #
Не совсем понимаю что такое строгий синтаксис.

Вызвал функцию с 1 параметром, вместо 2-х? — Fatal error
Вызвал функцию с 2 параметрами, вместо 1? — Fatal error
Используешь переменную, которую не объявил и которой нет в global scope — fatal error
И прочее.

Из минусов языка для меня
Callback hell. Ну, это конечно уже нельзя отнести к прямо языку, это скорее один из стилей написания на js кода, на том же jquery. Но с этим тесно связан "WTF in 'this'?", ну или bind hell. Столкнулся с этим, почитал доку, логики не увидел никакой, желания изучать js дальше не почувствовал.

Еще лично у меня есть бзик на сторонние библиотеки. Если чего-то нет из коробки — это плохо. Я не сторонник запилить в простой проект 20 зависимостей, а потом пытаться понять, кому из них досталась переменная $. Плюс трафик. Хотя, из этой особенности получается отличная игра для компании программистов.

Придумываете слово, добавляете к нему .js. Ищите в гугле. Если такая библиотека есть — вы выпиваете.

Но, судя по всему, для моей дальнейшей карьеры без js никуда. Поэтому рано или поздно придется его учить чуть дальше, чем "поиграться с ajax".
Bullet Heaven:Не участвую.
Страница 3 из 4 < 1 2 3 4 >
Перейти на форум:
Конкурсы
Открытые конкурсы:
Bullet Heaven

Старт: 23 ноября 2024г.
Финиш: 4 декабря 2024г.

Участники: 4
Недавние конкурсы:
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

26,205,855 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.