A.I.M. Jagged Alliance2

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
28.03.2024 в 14:04:52

Главная Главная Помощь Помощь Поиск Поиск Участники Участники Вход Вход Регистрация Регистрация
A.I.M. « Исходники Ja2 »
   A.I.M.
   Обсуждаем игры
   Гробокопатели
(Модераторы: ThunderBird, Терапевт)
   Исходники Ja2
« Предыдущая Тема | Следующая Тема »
  Тема:  Исходники Ja2             Страниц: 1 2 3 4 5 6 Прочитано 29939 раз
jz
[жыз:)]


Я люблю этот Форум!




Пол:
Репутация: +318
Re: Исходники Ja2
« Ответ #250 от 30.01.2014 в 10:04:07 »

2Lion:  
http://en.wikipedia.org/wiki/Image_scaling
 
smw2_yoshi_01_nearest_16x.png
smw2_yoshi_01_ours_16x.png
 
Quote:
Super 2xSaI

(Description by Kreed, the original author) " Images rendered by most emulators are lo-res, and when put on a hi-res monitor, the image is either really small, or really blocky when stretched. Today's computers are fast, so why not use some of that horsepower to make a beautiful, big, scaled image from the small one??? 2xSaI tries to do just that. Kreed wasn't quite satisfied with Eagle (another good engine with similar goals), so he started with his own engine, 2xSaI. 2xSaI is a one-pass engine which scales bitmap images by a factor of 2, while trying to keep the orginal smoothness and brightness of the original bitmap (in other words: reducing blockiness and bluriness to a minimum). 2xSaI borrows some ideas from Dirk Stevens' Eagle Engine, but is (fundamentally) a lot different. It was originally created for (and is currently used in the dos port of) Snes9x."
 
I have updated Kreed's Super2xSaI and SuperEagle engines to be portable and work with the new Allegro WIPs. I also added a 32bpp rendering mode, added makefiles, fixed a few bugs, wrote some docs and converted the whole thing to C.
Currently, Kreed's original code is still faster, but that is likely to change :-P

http://bob.allegronetwork.com/2xsai/2xsai.zip
« Изменён в : 30.01.2014 в 10:07:14 пользователем: jz » Зарегистрирован

Lion
[Lion. King Lion.]


Welcome to Metavira!




Пол:
Репутация: +362
Re: Исходники Ja2
« Ответ #251 от 30.01.2014 в 10:18:25 »

2jz: Спасибо, это, надеюсь, полезная вещь.
Но это не совсем ответ на вопрос.
 
Интересней, как это приделать к JA2.  :D
 
Надо попробовать.  :) Вдруг получится.
Зарегистрирован

Green Eyes
[Добрый волшебник]
Прирожденный Джаец

Иногда мне дико не хватает мозгов.


WWW Ё-мэйл

Пол:
Репутация: +675
Re: Исходники Ja2
« Ответ #252 от 30.01.2014 в 10:30:32 »

30.01.2014 в 10:18:25, Lion писал(a):
Вдруг получится.
- если не получится, то можно сделать обратное - максимально увеличить изображения, а потом подгонять под разрешения. Хотя выход сомнительный - слишком много веса.
Зарегистрирован

Lion
[Lion. King Lion.]


Welcome to Metavira!




Пол:
Репутация: +362
Re: Исходники Ja2
« Ответ #253 от 30.01.2014 в 10:55:46 »

2Green Eyes: Дело не в увеличить/уменьшить, а в том, как этот алгоритм приделать к JA2.  :( Графика JA2 - темнейший лес, (если я прав) замысловатым образом использующий свои собственные форматы и творящий с ними какую-то тёмную магию. : nervous :
 
Основная задача сводится к тому, чтобы хорошо понять, что же на самом деле творит движок, и что это имеет общего с тем, что делает выданный jz код.  : rolleyes :
Зарегистрирован

Anthrax
[Сибирская Язва]
Прирожденный Джаец

Лимонадный Джо


WWW Ё-мэйл

Пол:
Репутация: +20
Re: Исходники Ja2
« Ответ #254 от 30.01.2014 в 11:24:46 »

30.01.2014 в 10:55:46, Lion писал(a):
Графика JA2 - темнейший лес, (если я прав) замысловатым образом использующий свои собственные форматы и творящий с ними какую-то тёмную магию.  

А еще я здесь читал, что и AI обсчитывается как-то по левому, из-за чего с его усложнением бои в НО удлинняются, т.е. обсчет анимации и обсчет AI не разделены.
 
Я почему в одной из тем и писал на счет другого двигла (OTTD) в том числе, чтобы может на нем всех этих детских гиморов не будет, когда даже самые минимальные изменения требуют сумашедших танцев с бубнами.
Зарегистрирован

Будте реалистами - требуйте невозможного!
Lion
[Lion. King Lion.]


Welcome to Metavira!




Пол:
Репутация: +362
Re: Исходники Ja2
« Ответ #255 от 31.01.2014 в 06:43:03 »

2Anthrax: Ага, бесспорно, проще всё написать с нуля.  :)
 
2Программисты: Господа, ни у кого случайно не завалялось каких-нибудь деталей от редактирования STIшек? Нужны нормальные функции превращения ETRLE в 8/16 битные пикселы и обратно.
 
Я посмотрел, по идее, можно лазать в структуры типа HVOBJECT между их созданием и до их вывода. Как я понял, картинки (по крайней мере некоторые) оказываются в поле
Code:
PTR pPixData;
, а параметры этой прелести в  
Code:
ETRLEObject *pETRLEObject;
, но как я уже написал, pPixData - это указатель на картинку в ETRLE, её масштабировать в таком виде очевидно нельзя. А вот если её превратить в реальный набор пикселей, где каждый пиксель занимает целое число байт, то, наверное, можно увеличить.
 
Можно ткнуть меня носом в нужное место исходников. В одну сторону можно многократным использованием функции  
Code:
BOOLEAN GetETRLEPixelValue( UINT8 * pDest, HVOBJECT hVObject, UINT16 usETRLEIndex, UINT16 usX, UINT16 usY )
Но это будет совсем не вариант с точки зрения алгоритма.  
 
ЗЫ Желательно, чтобы это ещё хорошо стыковалось к имеющемуся коду JA2.
« Изменён в : 31.01.2014 в 07:48:49 пользователем: Lion » Зарегистрирован

Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Исходники Ja2
« Ответ #256 от 31.01.2014 в 20:42:05 »

30.01.2014 в 09:22:34, Lion писал(a):
Пробовал ли кто-нибудь програмно растягивать лоадскрины, элементы меню, лэптоп и прочее при разрешении экрана более 640x480?

В НО и Метавире таким образом растягивается панель хода на тактическом экране. Сделано это средствами движка, а точнее DirectDraw.
Лоадскрины я тоже пробовал растягивать, но получается не очень, так как исходник маленький, а алгоритм растяжения простоват.
Обои стратегического экрана в Метавире и НО тоже масштабируются, но уже в обе стороны. Для них в качестве разрешения исходников выбрано 1024х768. Так меньше страдает качество.
Теоретически под масштабирование можно переписать весь движок, но на голом энтузиазме я бы за это не взялся - слишком рутинно и трудоёмко.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Lion
[Lion. King Lion.]


Welcome to Metavira!




Пол:
Репутация: +362
Re: Исходники Ja2
« Ответ #257 от 31.01.2014 в 23:17:19 »

2Терапевт: Спасибо, посмотрю, как это у Вас сделано.
 31.01.2014 в 20:42:05, Терапевт писал(a):
Теоретически под масштабирование можно переписать весь движок, но на голом энтузиазме я бы за это не взялся - слишком рутинно и трудоёмко.
По идее, весь движок не надо. Тактику можно оставить, как есть, а вот стретегию/лэптоп/менюшки можно попробовать потихоньку отмасштабировать, хотя работы это очень много.
« Изменён в : 31.01.2014 в 23:17:44 пользователем: Lion » Зарегистрирован

Green Eyes
[Добрый волшебник]
Прирожденный Джаец

Иногда мне дико не хватает мозгов.


WWW Ё-мэйл

Пол:
Репутация: +675
Re: Исходники Ja2
« Ответ #258 от 11.02.2014 в 03:31:09 »

Я тут случайно наткнулся на тему в медведях: http://www.bears-pit.com/board/ubbthreads.php/topics/324097/Re_Jagged_Al...
 
Правильно я понял - им удалось привязать игре возможность "понимать" 3d меши и анимацию?
Зарегистрирован

kavlad
[KeyboardЫЧ]
Прирожденный Джаец

Чума-ништяк :)))


Ё-мэйл

Пол:
Репутация: +65
Re: Исходники Ja2
« Ответ #259 от 07.11.2014 в 07:54:05 »

2Green Eyes:  
Вроде правильно понял, да.
Только за год никаких новостей по этому делу не появилось :)
Зарегистрирован

Green Eyes
[Добрый волшебник]
Прирожденный Джаец

Иногда мне дико не хватает мозгов.


WWW Ё-мэйл

Пол:
Репутация: +675
Re: Исходники Ja2
« Ответ #260 от 08.11.2014 в 04:04:30 »

07.11.2014 в 07:54:05, kavlad писал(a):
Только за год никаких новостей по этому делу не появилось
- ну, дык модельки-то никто не клепает.  
 
Я бы взялся, но в одиночку - объем большой, а мне "семью" кормить надо, времени нет. Да и уже начатое надо закончить.
Зарегистрирован

kavlad
[KeyboardЫЧ]
Прирожденный Джаец

Чума-ништяк :)))


Ё-мэйл

Пол:
Репутация: +65
Re: Исходники Ja2
« Ответ #261 от 08.11.2014 в 06:56:17 »

2Green Eyes:  
Взялся бы за модельки?
Или взялся бы закодить работу с модельками в движке Ja2?
 
Мне вот интересно, как освещение моделек делать?
« Изменён в : 08.11.2014 в 06:56:36 пользователем: kavlad » Зарегистрирован

Green Eyes
[Добрый волшебник]
Прирожденный Джаец

Иногда мне дико не хватает мозгов.


WWW Ё-мэйл

Пол:
Репутация: +675
Re: Исходники Ja2
« Ответ #262 от 08.11.2014 в 18:38:18 »

08.11.2014 в 06:56:17, kavlad писал(a):
Взялся бы за модельки?
- да.
 
 08.11.2014 в 06:56:17, kavlad писал(a):
Или взялся бы закодить работу с модельками в движке Ja2?
- нет.
 
 08.11.2014 в 06:56:17, kavlad писал(a):
Мне вот интересно, как освещение моделек делать?
- хз. : rolleyes :
Зарегистрирован

pc_hero
Гас Тарболс

Я люблю этот Форум!




Пол:
Репутация: +1
Re: Исходники Ja2
« Ответ #263 от 11.11.2014 в 23:58:29 »

Вопрос к джайцам-сишникам: за десять лет не появилось ли какого "путеводителя" или "справочника" по исходникам? Почему-то чтение именно си кода (чужого) вызывает у мну почти физическую боль.
Зарегистрирован

Lion
[Lion. King Lion.]


Welcome to Metavira!




Пол:
Репутация: +362
Re: Исходники Ja2
« Ответ #264 от 12.11.2014 в 07:52:31 »

2pc_hero: Никто из работающих с ними не испытывал такой необходимости.
Т.е. в тот момент, когда ты уже способен написать путеводитель, он тебе уже совершенно не нужен. А тратить время на этот путеводитель, вместо того, чтобы заниматься делом - глупо.
 
К тому же зачастую разные люди работают с разными частями кода и ориентируются только в том, что им нужно. Исходники слишком большие, чтобы описать всё, что там есть. Краткое описание - бесполезно. Я, конечно, могу написать, что в проекте Laptop, находится код игрового лэптопа, но это же и так понятно.
 
Единственный работающий путь - научиться понимать устройство произвольного участка имеющегося кода. С учётом правил наименования переменных и понятных названий переменных и функций - это вполне реально.
 
В JA2 код вполне приличный, т.е. после некоторой тренировки научиться с ним работать можно. Бывают вещи гораздо хуже. И на си, и на других языках.
Зарегистрирован

pipetz
[пипец всему!]
Прирожденный Джаец

Я очень люблю этот Форум!


Ё-мэйл

Пол:
Репутация: +303
Re: Исходники Ja2
« Ответ #265 от 28.03.2015 в 16:40:10 »

Хорошее дело зачал jarni:
"Как собрать исходники JA2 Gold 1.12 с помощью MS Visual Studio 2005".
Offtop:

Попробую продолжить.
Мануал
"Как собрать исходники JA2 Gold 1.12 с помощью MS Visual Studio 2013 Express (под Windows 8.1)."
 
1. Распаковываем в корень С:\ папки ja2 и Standard Gaming Platform. В результате должно получится так: С:\ja2 и С:\Standard Gaming Platform.
 
2. Открываем студией файл C:\ja2\Build\JA2.dsw. Соглашаемся на одностороннюю конвертацию.
 
3. Добавляем в препроцессор каждого проекта (Properties -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Defenition) следующие дерективы
_CRT_NON_CONFORMING_SWPRINTFS
_CRT_SECURE_NO_WARNINGS
Вторая необязательна, но сокращает количество предупреждений компиляции с примерно 1900 до 25, что ускоряет компиляцию.
 
4. В файле c:\standard gaming platform\JA2 SGP ALL.H (Standard Gaming Platform -> Header -> JA2 SGP ALL.h) комментируем 39 строку (//#include <iostream.h>)
 
5. В строке 26 файла c:\ja2\Build\Utils\Quantize.h дописываем BOOL перед  ProcessImage - BOOL ProcessImage (BYTE*pData, int iWidth, int iHeight );
 
6. Строка 132 файла c:\ja2\Build\Utils\Quantize.cpp должна начинаться так int i = 0;  for (i = nColorBits - 1; ... вместо for (int i = nColorBits - 1; ...
 
Файлов Quantize.h и Quantize.cpp в проекте Utils нет. Поэтому их надо туда сначала добавить или открыть щёлкнув по соответствующему сообщению об ошибке компиляции.
 
До сих пор действия практически повторяли шаги необходимые для компиляции в VS 2005. Далее начинаются разночтения.
 
7. В Include Directories проекта ja2 (Properties -> Configuration Properties -> VC++ Directories -> Include Directories) добавить путь C:\ja2\Build
В Library Directories проекта ja2 (Properties -> Configuration Properties -> VC++ Directories -> Library Directories) добавить путь C:\Standard Gaming Platform
 
8. В файле C:\ja2\Build\Res\ja2.rc заменить 10 строку #include "afxres.h" на #include "windows.h". Файл можно открыть блокнотом или в студии, щёлкнув по соответствующему сообщению об ошибке компиляции.
 
9. В свойствах проекта ja2 установить параметр Configuration Properties -> Linker -> Advansed -> Image Has Safe Exception Handlers в NO.
 
Приятных компиляций. )
 
PS. Получившийся ja2.exe стоит искать в папке C:\ja2, а не в  C:\ja2\Build\Release. Потом его можно скопировать в папку с английской версией Ja2 1.12 и можно запускать.
« Изменён в : 28.03.2015 в 16:44:16 пользователем: pipetz » Зарегистрирован

- Джаец?
- Джаиц, джаиц.
- Ну, джаец, ну погоди!
https://github.com/egorovav/Ja2Project/releases

Itoka
Мистер ЭЧ

Я люблю этот Форум!




Пол:
Репутация: +5
Re: Исходники Ja2
« Ответ #266 от 29.03.2015 в 02:31:36 »

Вот бы еще написали как делать русскую версию
Зарегистрирован

pipetz
[пипец всему!]
Прирожденный Джаец

Я очень люблю этот Форум!


Ё-мэйл

Пол:
Репутация: +303
Re: Исходники Ja2
« Ответ #267 от 30.03.2015 в 05:47:08 »

29.03.2015 в 02:31:36, Itoka писал(a):
Вот бы еще написали как делать русскую версию  

В архиве с исходниками есть папка Russify.
Файл _EnglishText.c из этой папки надо скопировать в C:\ja2\Build\Utils.
Файл Font.c из этой папки скопировать в C:\Standard Gaming Platform.
В папке Data (с русскими ресурсами игры) создать папку Fonts и скопировать туда все STI-файлы из папки Russify.
Зарегистрирован

- Джаец?
- Джаиц, джаиц.
- Ну, джаец, ну погоди!
https://github.com/egorovav/Ja2Project/releases

Страниц: 1 2 3 4 5 6  Послать Тему Послать Тему Печатать Печатать

« Предыдущая Тема | Следующая Тема »

Статистика. Размер данных: 65610 GZip: off
A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.