По поводу покупки майкрософтом компании Mojang, выпустившей Minecraft:
[6:28:39] Павел Михайлов: "Yes, the deal is real. Mojang is being bought by Microsoft."
[6:28:58] Павел Михайлов: https://mojang.com/2014/09/yes-were-being-bought-by-microsoft
[6:30:38] Павел Михайлов: "The founders: Notch, Carl, and Jakob are leaving. We don’t know what they’re planning. It won’t be Minecraft-related but it will probably be cool."
[6:30:41] Павел Михайлов: хехе
[12:09:30] MIFUSo0: майн таки перепишут для консолек и криво портируют на пк? )
[12:10:11] MIFUSo0: ну, если судить по хало )
[12:10:48] MIFUSo0: правда хало не переписывали, а изначально делали для консолек, но от мелкософта всего можно ждать
[16:21:01] Глеб Тихонов: Майн как бы есть на консольку
[16:22:11] Павел Михайлов: финальная покупка вконтакта майлом как-то меркнет на этом фоне ))
[16:22:35] Глеб Тихонов: Куда двинем из майна?
[17:23:05] MIFUSo0: в "spacesoldiers game"
[17:23:29] MIFUSo0: только не факт, что она будет к тому моменту уже готова, но куда деваться )
Будет все как в сталкере буду взяты все модели оружий, монстров, сталкеров из всех частей сталкер тч, чн, зп. И будет мультиплеер вы появляетесь у Сидоровича берете первое задание и идете его выполнять. Локации возможно будут все вместе в одной карте если все карты не содержат вместе не более 60 т вершин. Но точно будут вместе Локации подземные типо Локации НИИ Агропром и подземелье НИИ Агропром.
... more
После десятка перелопаченых кодеков, сравнения качества и размера. Оказались наиболее интересными из открытых Theora (Vorbis) и VP8/VP9 (Google).
После первого же сравнения стало ясно Theora по сжатию где то ... в общем отстает при смотрибельном качестве.
Но добавлять не стал, ни тот ни другой кодек. Подумал посмотрел и решил, пока это рано у нас и без того есть уйма дел. Но для себя оставил приятное впечатление от VP8. Как вернемся к этому вопросу уже будем знать, что нам подходит.
... more
Маленькое справочное руководство (классы и наследование):
... more
Рассвет Планеты Обезьян, Dawn of the Planet of the Apes (22 мая 2014)
Грань Будущего, Edge of Tomorrow (29 мая 2014)
И которые еще не успели выйти но выйдут, тоже нужно будет скачать )))
Судная Ночь: Анархия, The Purge: Anarchy (20 июня 2014)
Трансформеры 4, Transformers 4 (26 июня 2014)
Хоббит: Туда и Обратно, The Hobbit: There and Back Again (8 июля 2014)
Люди Икс: Дни Минувшего Будущего, X-Men: Days of Future Past (17 июля 2014)
Стражи Галактики, Guardians of the Galaxy (1 августа 2014)
Голодные Игры: Сойка-пересмешница. Часть 1, The Hunger Games: Mockingjay, Part 1 (21 ноября 2014)
Голодные Игры: Сойка-пересмешница. Часть 2, The Hunger Games: Mockingjay, Part 2 (20 ноября 2015)
Человек-Муравей, Ant-Man (6 ноября 2015)
Detected 794 memory leaks (21955837 bytes).
Казалось бы какие то 21 мег потерялись ))) но это 21 при том что я просто запустил дождался меню и нажал выход. Даже и не ожидал, что в наследство получим такой бонус невидимых проблем, когда казалось бы память должна выделяться, а мне говорят - извини кончилась ))) 32 гига кончилось :) Это сразу стал повод на проверку утечек. Какой был ужас в моих глазах :) Ведь началась великая битва за память :) Отчет скоро будет. Но основные терятели памяти: CubeScript и UI. Второй легче выкинуть, чем править утечки ввиду весьма неэффективности и корявой реализации.Вот так вот невидимый враг любит мешать делать полезное!
А теперь приступим. В игре, хочется, и планеты, и корабли, и физику, и спец эффекты, и кучу всего интересного, о да, и чтобы на каждом сервере были свои условия, квесты и многое, многое, многое веселое и полезное.
Что нам требуется от языка, идеальные параметры:
- легкость интеграции
- легкий синтаксис
- функционал
- скорость (желательно наличие JIT)
- возможность генерации байткода, для транспортировки по сети
Собственно самый последний пункт и стал решающим.
Много раз глядя на чудо под названием QuakeC (особенно те кто знает что это и его производные которые есть и в HL/CS и других играх), который позволяет менять игру и особенно сетевую часть + хранить все это в бинарном виде.
А теперь представим если наш скриптовой язык не умеет генерировать бинарный код. Значит придется передавать по сети сотни файлов, искать зависимости, указывать точные пути и надеяться, что у человека не окажется каких либо граблей, что уже по определению звучит страшно.
Когда передав 1 бинарный файл который даже сохранять не придется (например gameplay.dat) у клиента появится другой геймплей другие возможности, разные квесты и многие прелести, которые присущи только его серверу или модификации. Или ситуация вы подлетели к планете, а у нее есть файл с дополнительными свойствами на сервере. Так же плюс бинарного файла, он всего один и при компиляции был проверен на наличие всех нужных функций движка. Так же в нем хранится список функций которые должны быть в движке. Если например все обновились, а у сервера старая версия или наоборот у клиента.
В общем это краткая справка зачем нужна такая возможность, а она нужна и должна быть.
Но казалось бы все легко и просто, вставил готовый велосипед и поехал.
Тем более есть встроенный CubeScript.
Начну с него, синтаксис из мира фантастики, простой пример
мы хотим сложить два числа 2 + 2, что может быть проще )))
sum = + 2 2
а теперь хотим тоже самое но от этого отнять 3
sum = (- (+ 2 2) 3)
от одного вида этого синтаксиса волосы дыбом встают ))) Да к нему можно привыкнуть и даже делать нужное, но ладно мне привыкнуть понимая его полное устройство, а тем кто пришел новенький в проект.
Итоги:
Скорость - весьма посредственная
Легкость - куча граблей и даже если их заменить на новые их число не меняется
JIT - из мира фантастики
платформонезависимый байткод есть
Идем дальше LUA. LUA ты могуч ты гоняешь стаи туч. Да, язых хороший, шустрый легко встраивается, синтаксис более добрый, есть JIT. Ну и на этом наверное все. В общем у нас он встроен и даже многие вещи на нем были протестированы. Но опять же что-то с ним не то когда дело дошло до сетевой части. А в чем беда? да очень просто байткод оказался разный ))) на 32 битной машине нельзя запустить 64 битный, и наоборот 64 на 32х. Ужас.
Тестируем QuakeC ( FTEQCC ), но в игру не встраиваем. (Почему не встраиваем? он GPL)
Байткод платформонезависим.
Попробуем монстра гугла V8 это высокооптимизированый JavaScript монстр.
Чтобы его собрать пришлость проклятия слать на гугл команду которая все делает в виде ребусов.
возможности сохранения платформонезависимого байткода нет ... ну еханый бабай ... собственно он им и не нужен, зато компиляция на лету (JIT) красиво работает, мои тесты с 5 млн. записей прям как печеньки скушал.
В результате ведутся работы в двух направлениях.
Первое свой велосипед (синтаксис аналог JS).
Работы ведутся уже более месяца. Свой велосипед работает медленнее луа именно это сейчас основная проблема про LUAJIT вообще молчу с тем даже глупо соревноваться.
Второе велосипед к LUA, но тут огромная проблема - сегодня я добавлю велосипед, а вдруг утром проснусь а версия уже 6.0 )) велосипед может и вовсе стать негодным ))) По этому второе решение пока под вопросом, может у кого готовое есть и он поделится.