При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > Xash3D Engine
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.05.2015, 00:34  #1
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию Портирование Xash3D на android

Я тут заметил, что у ребят нету отдельной темы по портированию, а искать где мы общались неудобно. Давайте по портированию в этой теме обсуждать. Я тут зашёл, чтобы скачать последний релиз, а его нет на сервере.
Дядя Миша вне форума Ответить с цитированием
Старый 09.05.2015, 12:11  #2
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 408


По умолчанию

У 4PDA такая шиза есть -- не дает скачать, если не залогинился.

После твоего сообщения, подумал, что надо бы апк зарелизить в каких-нибудь FDroid, а когда будет стейбл продвинуться в гугл плей.

P.S. Тебе скидывать исправленные потенциальнын баги самого движка, которые не касаются SDL и андроид порта? На глаз нахожу много разного.
a1batross вне форума Ответить с цитированием
Старый 09.05.2015, 12:36  #3
Raid
Raid
Регистрация: 28.03.2037
Адрес: CSM-чат
Возраст: 26
Сообщения: 7,789


По умолчанию

Ведроид очень любит шерстить за копирастию. Итс маст би дэнжероус.
Raid сейчас на форуме Ответить с цитированием
Старый 09.05.2015, 13:54  #4
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию

[ Цитата ] У 4PDA такая шиза есть -- не дает скачать, если не залогинился.
ну сделайте какую-нибудь простенькую проверку на сервере, что-то типа:
Код:
if( user == anonimous && user.getNickNameFrom( "http://cs-mapping.com.ua/forum" ) == "Дядя Миша" )
{
Download( "XashAndroid.apk" );
}
else
{
Msg( "File not found\n" );
}
[ Цитата ] Тебе скидывать исправленные потенциальнын баги самого движка
Навряд ли я уже вернусь ко всему этому. Делайте форк и там исправляйте. Ну можете сюда кидать спорные места, чтобы обсудить их.
Дядя Миша вне форума Ответить с цитированием
Старый 09.05.2015, 15:31  #5
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 408


По умолчанию

Так дело не в этом, сервер-то не наш, а 4PDA. Они уже вправе делать то, что захотят. =(
[ Цитата ] Навряд ли я уже вернусь ко всему этому. Делайте форк и там исправляйте. Ну можете сюда кидать спорные места, чтобы обсудить их.

Твоё право. Но некоторые места всё же не совсем ясны. Вот я тут со сменой игры, например. Да, движок перезапускается, начинается инициализация. С этого момента происходят странные вещи: в памяти остаётся всё от предыдущей игры, отчего конечно при первом разыменовании любого указателя получаем сегфолт. Каким образом смена игры вообще предполагалась? Может я при портировании какие-то вещи упустил.
[ Цитата ] Ведроид очень любит шерстить за копирастию. Итс маст би дэнжероус.

Да, с этим нужно будет аккуратно. С другой стороны, портированные движки iD в плеймаркете лежат. Без единой игровой инфорации, конечно.

a1batross, подумав, добавил 09.05.2015 в 16:08
https://github.com/SDLash3D/xash3d-...roject/releases.

Нынче тут будут все релизы порта. Без регистрации, конечно.

Последний раз редактировалось a1batross, 09.05.2015 в 16:08.
a1batross вне форума Ответить с цитированием
Старый 09.05.2015, 23:57  #6
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию

[ Цитата ] Каким образом смена игры вообще предполагалась?
Ну очевидно через микро-экзешник и полную выгрузку xash.dll
Если мы выгрузили какую-то библиотеку, то вместе с ней соответственно дропнулась вся память, выделенная этой библиотекой. Другого способа нет.

Дядя Миша, подумав, добавил 10.05.2015 в 00:04
Вообще говоря это момент со сменой игры, он откровенно стремный.
Компилятор должен прохавать, что мы уже никогда не вернемся в ту функцию, откуда была вызвана Sys_ChangeGame. Можешь ему дать подсказку, типо
_declspec( noreturn ) или что-то в этом роде.

Последний раз редактировалось Дядя Миша, 10.05.2015 в 00:04.
Дядя Миша вне форума Ответить с цитированием
Старый 10.05.2015, 02:44  #7
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: Ну очевидно через микро-экзешник и полную выгрузку xash.dll
Если мы выгрузили какую-то библиотеку, то вместе с ней соответственно дропнулась вся память, выделенная этой библиотекой. Другого способа нет.

Вообще говоря это момент со сменой игры, он откровенно стремный.
Компилятор должен прохавать, что мы уже никогда не вернемся в ту функцию, откуда была вызвана Sys_ChangeGame. Можешь ему дать подсказку, типо
_declspec( noreturn ) или что-то в этом роде.
А для чего выгружать всю либу движка?
Нельзя, разве, описать в движке дополнительную функцию Restart, которая автоматом перезагрузит нужные игровые библиотеки, и если нужно, очистит память от, ненужных более, данных?
Извини, если ты уже где-нибудь отвечал, а я тут спрашиваю.

declspec работает, вроде, только для компиляторов MSVC
gfdjr5 вне форума Ответить с цитированием
Старый 10.05.2015, 02:59  #8
KiQ
KiQ
Старший сержант
Регистрация: 12.07.2010
Сообщения: 367


По умолчанию

2 gfdjr5:
при выгрузке как раз и выполняется освобождение многих ресурсов, насколько я видел в коде
KiQ вне форума Ответить с цитированием
Старый 10.05.2015, 03:16  #9
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию

[ Цитата ] Сообщение от KiQ: 2 gfdjr5:
при выгрузке как раз и выполняется освобождение многих ресурсов, насколько я видел в коде
То-есть, проще выгрузить всю библиотеку и загрузить обратно, чем проделывать те же операции в отдельной функции?
gfdjr5 вне форума Ответить с цитированием
Старый 10.05.2015, 09:09  #10
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 408


По умолчанию

В стеке эти функции всё ещё висят. Попробую дать noreturn.
a1batross вне форума Ответить с цитированием
Старый 10.05.2015, 13:46  #11
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию

[ Цитата ] Нельзя, разве, описать в движке дополнительную функцию Restart, которая автоматом перезагрузит нужные игровые библиотеки, и если нужно, очистит память от, ненужных более, данных?
А как ты к примеру vgui успокоишь?
[ Цитата ] В стеке эти функции всё ещё висят. Попробую дать noreturn.
Ну вот яж говорю, не каждый компилятор такой смышленный. Я когда этот механизм делал - очень боялся, что MSVC тоже не догадается. но всё обошлось.
Дядя Миша вне форума Ответить с цитированием
Старый 10.05.2015, 16:57  #12
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: А как ты к примеру vgui успокоишь?
Смотря, что, конкретно. Посмотрю, что там с ним.
gfdjr5 вне форума Ответить с цитированием
Старый 10.05.2015, 17:14  #13
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию

2 gfdjr5: он статически прилинкован. Даже сам голдсорс предпочитает выгружать ядро по любому чиху, например при смене разрешения экрана.
Ксаш хотя бы так не делает.
Дядя Миша вне форума Ответить с цитированием
Старый 10.05.2015, 17:28  #14
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: 2 gfdjr5: он статически прилинкован. Даже сам голдсорс предпочитает выгружать ядро по любому чиху, например при смене разрешения экрана.
Ксаш хотя бы так не делает.
В новых билдах, в тех, что с SDL2, отучили выгружаться при смене разрешения, оно меняется "на горячую".
gfdjr5 вне форума Ответить с цитированием
Старый 10.05.2015, 17:31  #15
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию

2 gfdjr5: и требует FBO для правильной работы %)
А ксаш пересоздает контекст безо всякого фбо.
Дядя Миша вне форума Ответить с цитированием
Старый 10.05.2015, 17:49  #16
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: 2 gfdjr5: и требует FBO для правильной работы %)
А ксаш пересоздает контекст безо всякого фбо.
Разве FBO так плох? У него достаточно много плюсов.
gfdjr5 вне форума Ответить с цитированием
Старый 10.05.2015, 18:50  #17
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,101


По умолчанию

Я и не говорю, что FBO плох, я его сам активно пользую и в параное и в ксаш-моде.
Но только вот, если железо его не держит, то всё будет работать и без него.
А обновленный голдсорс на железе без поддержки FBO покажет дулю.
Дядя Миша вне форума Ответить с цитированием
Старый 10.05.2015, 18:54  #18
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 408


По умолчанию

А где его может не оказаться?
a1batross вне форума Ответить с цитированием
Старый 10.05.2015, 19:00  #19
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: А обновленный голдсорс на железе без поддержки FBO покажет дулю.
Да, вроде даже не сам двиг, а, конкретно, SDL.
gfdjr5 вне форума Ответить с цитированием
Старый 10.05.2015, 20:19  #20
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 408


По умолчанию

Вообще, давно я намереваюсь систему смены разрешений переделать. Не нравится, что многие режимы захардкодены.

Движок-то сам по себе может принимать любые разрешения. Это порт на андроид уже показал. Плюс mittorn сделал в mainui изменение, после которого внутри ничего не будет растягиваться, а сохранять изначальные пропорции. Ну вот фриман не растянут, да. Только анимация все еще идет криво и многие элементы наоборот ужались. (Меню выбора карты в мультиплеере, например). Что меня удивило, так это и в п2 осталось.

a1batross, подумав, добавил 10.05.2015 в 20:28
[ Цитата ] Сообщение от gfdjr5: Да, вроде даже не сам двиг, а, конкретно, SDL.

SDL (по крайней мере 1.2, про 2 не знаю) хорошо адаптирован для работы на всевозможных конфигурациях. Не думаю, что у него нет на этот счет какого-то "выхода".

Тем не менее, android-специфичные баги уже встречались. Пришлось прямо в SDL править код. Некоторые ошибки прямо в самом андроиде и были они несколько лет, вплоть до Lollipop.

Последний раз редактировалось a1batross, 10.05.2015 в 20:28.
a1batross вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:33.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2017 by CS-Mapping.com.ua Community