1

Тема: Z Expansion XP v1.7 beta 3

Z Expansion XP v1.7 beta 3

Список исправлений
1. Исправлена остановка музыки в игре, в случайные промежутки времени
2. Возможность отключения заставок (ранее, при активированной опции "отключить заставки" начальные всё равно показывались)
3. Пересмотрены и переписаны почти все прошлые исправления
4. Полностью переписан цикл сообщений, значительно улучшен отклик игры (быстрое сворачивание, закрытие и т.д.)
5. Снижена нагрузка на процессор на ~26% во время игры
6. Исправлена мышь при игре в оконном режиме
7. Убраны сильные задержки при подключении к серверу
8. Полноценно работает чат в сетевой игре
9. Улучшена стабильность игры
10. Доработан и включен AMEC (automatic mode error correction). Эта функция включалась год назад в одну из тест версий и впоследствии была отключена из-за неудовлетворительной работы. Вкратце, суть этой функции состоит в автоматической обработке возможных ошибок и исправлений на лету. В случае невозможности исправить ошибку генерируется отчёт о возникшей проблеме
11. Тотальная переработка алгоритма патча
12. Возможность писать свои собственные "hot-patch" (для разбирающихся в ассемблере). Описание будет дано позже.

Ключи командной строки
/w3d - остался неизменным, включает оконный режим
/dos - новый режим эмуляции оригинальной игры, больше никаких дополнительных файлов не требуется
/vga - активирует игру в vga разрешении (как в DOS версии)
/dbg - вывод отладочных сообщений (рекомендуется использовать только в случаях выявления ошибки)

Внимание!
Версия 1.7 не совместима с предыдущими версиями. Поиграть по сети вы сможете только если у всех будет стоять версия 1.7. Аналогично при включенном режиме "/dos", поиграть по сети, можно будет только с человеком, у которого так-же активирован этот режим.



Просьба оставлять здесь ваши предложения и сообщения об ошибках.


Z Expansion XP v1.7 beta 3 - поместить в директорию с игрой

* Для оконного режима используется модифицированная библиотека из утилиты D3DWindower версии 1.88. Спасибо её автору и VEG-у, что надоумил меня на модификацию. Так-же в патче использована разработка Максима Пятковского - BugTrap, для отлова ошибок и генерации "креш-дампа".



+-------------------------------------------------------------------------------------------------------
|                                           Порядок действий для сообщения об ошибке
+-------------------------------------------------------------------------------------------------------
1. Убедиться что у вас установлен DirectX и в нём включена аппаратная поддержка DirectDraw. Проверить это можно так: нажмите WIN+R и в появившемся окне введите "dxdiag" (без кавычек), перейдите на вкладку "Экран" и убедитесь что "Ускорение DirectDraw: Включено". В этом же окне, на других вкладках, вы можете проверить, всё ли у вас работает правильно.
   Если обнаружены какие то проблемы, рекомендую вам обновить драйверы соответствующих устройств.

2. Убедитесь что ваши антивирусы или "брандмауэры" (firewalls) не блокируют работу патча. Не устанавливайте режим совместимости на файл winz.exe, это может стать причиной неправильной работы. Если всё работает правильно, но ошибка всё равно появляется, необходимо наиболее полно описать как возникает ошибка и отослать отчёт. Он генерируется каждый раз автоматически при возникновении ошибки.

3. Если запуск производился на ноутбуке, то некоторые модели могут не поддерживать стандартных разрешений (640х480), в следствии чего может появится сообщение  об ошибке "DirectDraw failed". В этом случае рекомендую вам запускать игру через параметр "/w3d", то есть в окне.

ЛС переполнен, не надо писать туда.

2

Re: Z Expansion XP v1.7 beta 3

Брат, невозможно выразить словами, как круто то, что ты делаешь.
Может быть ты все же разберешься, в чем там проблема с Вистой?
Если принципиально невозможно сделать оконную версию, может можно сделать так, чтобы оно запускалось как любая другая игра под directx -- то есть у меня есть опция without scaling, и многие игры запускаются в родном разрешении, а по краям черная рамка. С Z такого не происходит: постоянно игра fullscreen, что на моем 24-дюймовом мониторе практически не играбельно.
Сейчас игра запускается в окне, но при этом мышь не работает.
То есть либо изменить то, как этот враппер (или как это назвать, оболочка) масштабируется, либо пофиксить мышь.

3

Re: Z Expansion XP v1.7 beta 3

Сейчас игра запускается в окне, но при этом мышь не работает.

Это будет исправлено в следующих тест-версиях (изменений будет много). Сейчас необходимо собрать статистику по текущим исправлениям. Видимо в связи с предстоящими праздниками, кризисом, а может идущей сессией, народу не до этого сейчас.

ЛС переполнен, не надо писать туда.

4

Re: Z Expansion XP v1.7 beta 3

А это нормально, что в этой тест-версии не работает протокол TCP/IP?
Его просто тупо нет в списке.
Попробовали 1.6.5 -- и странное дело: у меня все отлично заработало на XP SP2, а у приятеля не запускается оконный режим -- раз, и два -- не видно курсор мыши.
Ну и три, у нас обоих были непонятные притормаживания при скролле правой кнопкой. Там как бы ведь надо быстро и точно перемещаться, а тут хоп -- и затык легкий.
И четыре -- грузилось все почему-то очень долго при старте мультиплеера. То есть реально долго, мы даже подумали, что совсем не будет счастья.

5

Re: Z Expansion XP v1.7 beta 3

А это нормально, что в этой тест-версии не работает протокол TCP/IP?

Да, в ней отсутствует и ещё ряд исправлений (на то она и тест). Акцент сделан на проверку работоспособности музыки и общей стабильности работы.

По следующим двум пунктам ничего сказать не могу, а гадалка в отпуске smile. Что касается четвёртого, бывает иногда, проскакивает такое. С сетевыми функциями я пока не разбирался, но планируется их разбор, предположительно после "багфикс релиза".

ЛС переполнен, не надо писать туда.

6

Re: Z Expansion XP v1.7 beta 3

Antares пишет:

По следующим двум пунктам ничего сказать не могу, а гадалка в отпуске .

Ну а что еще можно добавить к багрепорту? Версии одинаковые, железо плюс-минус одинаковое. Ну не запускается в окне и все тут. Скажи, мы добавим )
И затыки со скроллом -- тоже вещь неясная. Либо сама прога тормозит, либо может быть лаги в сети (хотя у нас общий провайдер и районы близко, то есть мы не в разных городах на модемах).

7

Re: Z Expansion XP v1.7 beta 3

1. Установлен ли "режим совместимости" на файле winz.exe или на патче? Несмотря на то, что я даже поставил защиту от этого, некоторые люди упорно пытаются его устанавливать и пишут что у них выдается ошибка.
2. Установлены ли какие-нибудь антивирусы, фаерволы и прочий защитный софт? Открыт ли доступ из них для патча?
3. Версия операционной системы с установленными сервис паками (или вообще без них)?
4. Тип установленного процессора и частота?
5. Версия DirectX ?

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

А вообще ждите новой тест-версии, многие старые проблемы будут решены.

ЛС переполнен, не надо писать туда.

8

Re: Z Expansion XP v1.7 beta 3

Антарес, очень приятно, что Вы не оставляете работы над своим прекрасным дополнением к Z95. Сейчас поиграл с помощью новой тестовой версии zxp под WinXP- проблем не было. Звук нормальный, но он и был у меня нормальным на 3х компьютерах, где я запускал ZXP - и под XP, и под Вистой. Видео тоже нормальное, пропорции сохраняются. По сети не играю. Вообще, проблем с ZXP не больше (по-моему, даже меньше), чем с оригинальной Z expansion pack. Так что здесь предолжений не имею - на мой взгляд, всё и так хорошо.

Имею предложение доработать редактор уровней, который идёт с Z95. Он ещё более недоработанный, чем оригинальный Z expansion pack. Сейчас пользоваться им очень неудобно (требует 16 бит цвет), а создать уровень для одиночной игры - практически невозможно. Есть попытка доработать этот редактор для создания одиночных уровней, автор - наш (юный, судя по всему) соотечественник. Но то, что я видел, выглядит очень сыро и по-дилетантски. Можно только мечтать, чтобы этим проектом занялись Вы.

9

Re: Z Expansion XP v1.7 beta 3

mvm
Спасибо большущее за хорошие слова smile. До редактора я как-нибудь доберусь, но пока другие приоритеты. Хочу наконец таки перейти от исправлений к добавлению функционала. Поначалу предполагалось сделать следующую версию 1.6.8 с небольшими доработками, но в процессе разбора накопилось исправлений на полноценную версию. Её то я и спешу представить.

Подробное описание всех изменений читайте в первом сообщении.

ЛС переполнен, не надо писать туда.

10 Отредактировано mvm (05-01-2009 15:38:32)

Re: Z Expansion XP v1.7 beta 3

@Antares:

Ну что ж, будем ждать и надеяться. А пока - тестировать новую версию ZXP. Сейчас играл на ней в уровень 14. У меня процессор Core2Duo T7500, 2.2 GHz, WinXP SP3. Загрузка одного ядра была ~ 70%, второго ~ 20%. Интересно, а что в основном грузит процессор - игровая логика, или что-то другое?

добавлено: прошёл на тестовой версии 20 основных уровней игры, всё в порядке, никаких ошибок и вылетов не было.

11

Re: Z Expansion XP v1.7 beta 3

Интересно, а что в основном грузит процессор - игровая логика, или что-то другое?

Грузит основной игровой цикл. В грамотно и правильно написанных программах чтобы зафиксировать определённый "FPS", вставляется функция задержки, отдающая неиспользуемый процессорный потенциал другим приложениям и операционной системе (Sleep, WaitForSingleObject и другие). Но во многих старых играх и даже в некоторых современных, к решению этого вопроса подходят в лоб, и просто "крутят" процессор в бешеном цикле, отдавая управление основному коду игры при необходимости.

Кстати буквально на днях, совершенно случайно столкнулся с похожим явлением. У меня для теста производительности графических карт, установлена "Unreal Tournament 3 Demo". По умолчанию все приложения на многоядерных системах используют все ядра процессора, естественно нагружая его по мере возможности на максимум. Так вот, если отключить (например через Process Explorer) все ядра, оставив только одно, то игра продолжит совершенно нормально работать, без снижения количества кадров и даже более стабильно, при этом нагрузка может упасть вдвое. Поэтому системные требования, которыми так любят "трясти" современные игры, в действительности могут оказаться ниже заявленных. Так же совершенно очевидно, что мощность графических карт не задействуется на 100%, их изготовители удачно манипулируют производительностью через драйверы.

прошёл на тестовой версии 20 основных уровней игры, всё в порядке, никаких ошибок и вылетов не было

Класс smile. Побольше бы таких сознательных тестеров.

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

ЛС переполнен, не надо писать туда.

12

Re: Z Expansion XP v1.7 beta 3

beta 2
Что нового?
- исправлена ошибка, допущенная в первой бете, которая не позволяла играть в новые уровни
- новый параметр командной строки "/vga", позволяет запускать игру в vga режиме, как оригинал в DOS версии
- добавлена поверка аппаратной поддержки DirectDraw
- улучшена плавность перемещения курсора (без заметных рывков и притормаживаний) и прокрутки экрана
- практически сведены на нет моргания экрана
- экраны загрузки стали более плавно отображаться
- прочие исправления или изменения

ссылка на скачивание в первом сообщении

ЛС переполнен, не надо писать туда.

13 Отредактировано Ba (09-02-2009 20:52:10)

Re: Z Expansion XP v1.7 beta 3

Бета 2 не запустилась вообще sad
Даже до главного меню дело недошло -- после запуска немеделенно выбрасывает в Винду с сообщением об ошибке.

В админке пишут следующее:

=======================================
Категория: Отсутствует
код: 1000

описание: Ошибка приложения winz.exe, версия 1.0.0.2, модуль unknown, версия 0.0.0.0, адрес 0x002b31fc.

0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 77 69 6e   ure  win
0018: 7a 2e 65 78 65 20 31 2e   z.exe 1.
0020: 30 2e 30 2e 32 20 69 6e   0.0.2 in
0028: 20 75 6e 6b 6e 6f 77 6e    unknown
0030: 20 30 2e 30 2e 30 2e 30    0.0.0.0
0038: 20 61 74 20 6f 66 66 73    at offs
0040: 65 74 20 30 30 32 62 33   et 002b3
0048: 31 66 63 0d 0a            1fc.. 
========================================

При отладке приложения дебагер MsVC сообщает:

-------------------------------------------------------------------------
Unhandled exception at 0x002b31fc in winz.exe: 0xC0000005: Access violation reading location 0x002b31fc.
-------------------------------------------------------------------------

При переходе в точку останова видим:

002B31F2  ???             
002B31F3  ???             
002B31F4  ???             
002B31F5  ???             
002B31F6  ???             
002B31F7  ???             
002B31F8  ???             
002B31F9  ???             
002B31FA  ???             
002B31FB  ???             
----->>002B31FC  ???             
002B31FD  ???             
002B31FE  ???             
002B31FF  ???             
002B3200  ???

14

Re: Z Expansion XP v1.7 beta 3

Да, в ХР почему то сбоило, проблему убрал smile.

ЛС переполнен, не надо писать туда.

15

Re: Z Expansion XP v1.7 beta 3

Antares пишет:

Да, в ХР почему то сбоило, проблему убрал .

Ок. Всё работает smile

16

Re: Z Expansion XP v1.7 beta 3

beta 3
Нововведения:

- Убран разрабатываемый мною алгоритм AMEC (automatic mode error correction) и заменён на разработку BugTrap, созданную вероятно нашим бывшим соотечественником Максимом Пятковским. Данная разработка применяется в игре СТАЛКЕР и предназначена для отлова ошибок, генерации "креш-дампа" и отсылки на сервер разработчикам. Если кто играл в S.T.A.L.K.E.R, то наверняка видел, как при падении игры появляется небольшое окошко с зелёным жучком. Вот такая же штука теперь применяется и в новом патче. Надеюсь всё же, что вам не придётся ею воспользоваться smile.

- Включена система подключения плагинов. Для тех кто смыслит в программировании и имеет хотя бы небольшой опыт в ассемблере, имеется возможность самим вносить изменения и править ошибки в игре. От использования так называемых "hot-patch", о которых сообщалось в первой бете, я решил отказаться, ввиду их узконаправленности и невозможности писать на других языках отличных от FASM.



Вкратце опишу процесс создания плагина
===============================

Для написания плагина, нужно создать DLL, и экспортировать одну функцию UPMStart. Эта функция должна иметь два входных параметра CInter (содержит указатель на COM интерфейс патча) и hInstance (содержит хендл загруженного плагина).

На ассемблере это выглядит так

proc    UPMStart, CInter, hInstance
.
ваш код
.
ret
endp

На С++ это вероятно будет выглядеть как то так (никогда не программировал на HighLevel)

static void UPMStart(CInter, hInstance)
{
ваш код
}

Далее, эта экспортируемая функция выполняет две задачи:
А) Проверяет содержание любого из двух параметров CInter или hInstance и если они содержат NULL, то возвращает временной штамп игры. Для Z Expansion это 0x34FAE468. Патч таким образом узнает для какой игры предназначен плагин.

Б) Если параметры CInter и hInstance не пусты, значит функция UPMStart вызывается для "патчивания" игры.

hInstance - содержит (как это было описано выше) хендл загруженного плагина. Он редко используется, но инога может пригодится для каких-нибудь функций.
CInter - содержит указатель на COM интерфейс патча. Этот интерфейс содержит несколько функций для удобства "патчинга".

На FASM этот интерфейс выглядит так

       interface UPInter,\
                  null,\
               gen_call,\
               gen_jump,\
               gen_nop,\
               HookProc

Каждая из перечисленных функций имеет по два параметра
null - зарезервирован
gen_call, адрес_в_игре, адрес_вашей_функции - генерирует CALL вызов (занимает 5 байт)
gen_jump, адрес_в_игре, адрес_вашей_функции - генерирует JMP команду (занимает 5 байт)
gen_nop, адрес_в_игре, количество_нопов - генерирует NOP (пустышки)
HookProc, адрес_WInAPI, адрес_вашей функции - перехватывает WinAPI (локальный "хук")

Не смотря на то, что всё вроде бы довольно просто, уверен почти на 100% что многие ничего не поняли. Приведу фрагмент кода на ассемблере, ну и если что, задавайте вопросы, постараюсь ответить.

proc    UPMStart uses esi edi ebx, CInter, hInstance
       xor    ebx, ebx
       mov    eax, 34FAE468h    ; возвращаем в eax штамп времени файла, для которого предназначен патч
       cmp    ebx, [CInter]         ; смотрим что в параметре CInter, если 0, на выход
       jz    .exit

       mov    edi, [CInter]         ; засунем в edi указатель на интерфейс патча
       mov    esi, [hInstance]    ; засунем в esi хендл этого плагина

       stdcall [edi+UPInter.gen_jump], MyFunc, 401000h   ; сгенерируем JMP по адресу 401000h на нашу функцию MyFunc
       stdcall [edi+UPInter.gen_call], MyFunc, 401000h   ; сгенерируем CALL по адресу 401000h на нашу функцию MyFunc
       stdcall [edi+UPInter.gen_nop], 401000h, 10         ;сгенерировать 10 NOP-ов по адресу 401000h
       stdcall [edi+UPInter.HookProc], [UpdateWindow], MyFunc_UpdateWindow   ; перехватить системную функцию UpdateWindow (библиотеки USER32.DLL), обработкой будет заниматься наша функция MyFunc_UpdateWindow
.exit:
       ret
endp

Для тех, кто осилил материал, завершающим штрихом будет переименование вашего плагина с расширения DLL на UPM.

ЛС переполнен, не надо писать туда.

17

Re: Z Expansion XP v1.7 beta 3

Antares
Предоставленный тобой интерфейс для патчевания технически позволяет не только исправлять, но и расширять функционал игры, однако, подозреваю, что такой возможностью вряд-ли кто воспользуется - ведь, главное для этого условие - знать полезные и интересные места в программе, детально понимать, что в них происходит и как это взаимодействует с остальной частью программы. Боюсь, что никто кроме тебя не занимался изучением игры изнутри, как это делал на протяжении нескольких лет. Может быть тебе стоит расшарить часть добытых тобой "тайных" знаний и сделать их достоянием общественности, чтобы твои последователи могли повторить слова Ньютона, что своими успехами он обязан тем, что стоял на плечах гигантов?

18

Re: Z Expansion XP v1.7 beta 3

Meeky пишет:

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

Согласен. Не зная этого невозможно даже планировать плагин, не то что реализовать wink
Думаю, было бы полезно просто составить список возможных модификаций, который поделить на 2 части:
а) реально осуществимые на данный момент (т.е. известно где, что и как менять)
б) теоретически осуществимые (т.е. известно что менять можно, но надо разобраться что и как)
Исходя из этого списка мы могли бы планировать геймплей для нового дополнения, или хотябы собственные плагины (консультируясь с Antares'ом).

К примеру, можем ли мы добавить в игру новые типы юнитов? Можем ли мы исправить алгоритм поиска пути (оригинальный оставляет желать лучшего)?
Можем ли мы исправить итоговую статистику -- подсчёт очков, чтобы он был "честным" и осуществлялся по понятным правилам?

19

Re: Z Expansion XP v1.7 beta 3

подозреваю, что такой возможностью вряд-ли кто воспользуется - ведь, главное для этого условие - знать полезные и интересные места в программе, детально понимать, что в них происходит и как это взаимодействует с остальной частью программы.

Я тоже сомневаюсь что кто то присоединится. Действительно, процесс разбора отнимает очень много времени, и просто так поделится с кем то своими изысканиями очень не просто. Была ситуация, когда с трудом добытый мною алгоритм и по просьбе отданный другому человеку, стал как-бы его собственным трудом, то есть никаких ссылок на авторство. До сих пор удивляюсь альтруизму open-source разработчиков. Пока я не решился на полное открытие исходников, но потихоньку подхожу к этому и открытие принципа работы плагина тому подтверждение.

Думаю, было бы полезно просто составить список возможных модификаций, который поделить на 2 части:
а) реально осуществимые на данный момент (т.е. известно где, что и как менять)
б) теоретически осуществимые (т.е. известно что менять можно, но надо разобраться что и как)

Все ошибки которые я нашел уже исправлены и задумки которые были, реализованы. То-есть на текущий момент я не знаю что ещё можно добавить. На мой взгляд остаётся два пути развития патча для Z, дописывание нормального сетевого режима и\или постепенное переписывание игры. Готов поделится своей базой (дизасмом).

К примеру, можем ли мы добавить в игру новые типы юнитов?

Да. Мне кажется для этого даже не нужно вмешательства в код.

Можем ли мы исправить алгоритм поиска пути (оригинальный оставляет желать лучшего)?

Какого пути? Ааа.. имеется ввиду ИИ компьютера? Очень сложно, без подключения как минимум ещё одного профессионала точно не обойтись.

Можем ли мы исправить итоговую статистику -- подсчёт очков, чтобы он был "честным" и осуществлялся по понятным правилам?

Сложно, я точно не потяну. Нужно разобрать все связи, задачка мягко говоря не тривиальная, но сделать можно что угодно при желании и наличии времени.

Я заметил такую тенденцию, у каждого человека есть "нюх" на определённые вещи. Применительно к нашей теме, это может означать, что у одного получается найти и исправить то, что не получается у другого и наоборот.

ЛС переполнен, не надо писать туда.

20

Re: Z Expansion XP v1.7 beta 3

Antares пишет:

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

Если работа не оплачивается, то зачастую в качестве движущей силы, основным побудительным мотивом становится признание результата твоей работы со стороны окрущающих или коллег. Полагаю, именно по этой причине разработчики OpenSource в качестве условия пользования продуктом просят на видном месте поместить о себе упоминание. Всё это, конечно, очень попахивает тщеславием, но, чтобы работа приносила удовольствие, она должна каким-то образом вознаграждаться.
Но есть еще один важный момент: если в любом большом деле каждому кто за него ни возьметься придется начинать с самого начала, то конца так никто и не увидит - без передачи накопленных новых знаний прогресс просто невозможен. Посмотртие сколько постов zzone.lewe.com начать новую разработку заканчивались ничем - человек, поработав немного на запале энтузиазма, понимал, что одному ему с этим не справиться, терял интерес и исчезал...

Antares пишет:

На мой взгляд остаётся два пути развития патча для Z, дописывание нормального сетевого режима и\или постепенное переписывание игры. Готов поделится своей базой (дизасмом).

Именно это и может помочь в развитии проекта, а не сырцы inject-кода на FASM'е, так что выкладывай smile

21

Re: Z Expansion XP v1.7 beta 3

Antares пишет:

До сих пор удивляюсь альтруизму open-source разработчиков.

Планирую ZMap делать именно в OpenSource wink

Antares пишет:

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

В том то и фишка -- надо разобраться, что можно сделать реально, а что вряд ли. Отсеять реальное от нереального и сосредоточится на самых перспективных вещах (ведь не всё, что можно сделать, будет полезным для игрового процесса).

Мне вряд ли поможет дисасс... Я, кстати, когда-то пытался дизассить Z, но кроме того, что в качестве компилятора использовался какой-то неизвестный мне "Доктор Ватсон" (или что-то вроде) ничего, есно, не понял smile

Antares пишет:

К примеру, можем ли мы добавить в игру новые типы юнитов?

Да. Мне кажется для этого даже не нужно вмешательства в код.

Я пытался подключать новых юнитов, прописывая их ID в CPUPRL (которые вычислил на 100%), однако это ничего не дает.
Однако видел сообщения, что их успешно подключали (терминатора, который может использовать все оружие, но не может занимать технику, к примеру).

Antares пишет:

Ааа.. имеется ввиду ИИ компьютера? Очень сложно, без подключения как минимум ещё одного профессионала точно не обойтись.

Понято, будем думать wink

Antares пишет:

Сложно, я точно не потяну. Нужно разобрать все связи, задачка мягко говоря не тривиальная, но сделать можно что угодно при желании и наличии времени.

Это жаль, новая статистика -- архи-важно.

Meeky пишет:

именно по этой причине разработчики OpenSource в качестве условия пользования продуктом просят на видном месте поместить о себе упоминание. Всё это, конечно, очень попахивает тщеславием

Не совсем. Такой проект вполне можно упомянуть в резюме. А с учетом того, что такие проекты иногда становятся очень масштабными и, порой, не уступают коммерческим продуктам (игрвые движки OGRE, Irrlicht Engine, NEBULA) это весьма и весьма полезно. На NEBULA написано несколько коммерчески-успешных игр (а код OGRE имеется во многих отечественных игровых проектах).
Так что кроме "лирики", в обязательном упоминании авторства имеется четко обозначенная "физика".

22

Re: Z Expansion XP v1.7 beta 3

Ballwin пишет:

В том то и фишка -- надо разобраться, что можно сделать реально, а что вряд ли. Отсеять реальное от нереального и сосредоточится на самых перспективных вещах (ведь не всё, что можно сделать, будет полезным для игрового процесса).

Реально осуществить около-игровые возможности, то, что не связано с самим игровым процессом. Добавить сетевой режим новый, изменить формат музыки, изменить формат заставок и т.д. Но и это, как вы понимаете, очень не просто. Набавление очков, поиск пути и пр., это уже игровые функции, тут нет никаких WinAPI и я не понимаю за что можно ухватится что бы найти их. Предвидя что рано или поздно мне надоест этим заниматься я и решился на разделение монолитного кода на две части, загрузчик и подключаемые плагины, что бы каждый мог продолжить писанину. Собственно главный плагин находится внутри загрузчика, наверное я действительно открою его.

Meeky пишет:

Если работа не оплачивается, то зачастую в качестве движущей силы, основным побудительным мотивом становится признание результата твоей работы со стороны окрущающих или коллег. Полагаю, именно по этой причине разработчики OpenSource в качестве условия пользования продуктом просят на видном месте поместить о себе упоминание. Всё это, конечно, очень попахивает тщеславием, но, чтобы работа приносила удовольствие, она должна каким-то образом вознаграждаться.

Именно так. Мне, думаю как и большинству людей, приятно если уж не получать деньги за свой труд, то хотя бы знать что им пользуются (как можно большее количество людей) и моё авторство закреплено за ним. А когда тебя лишают и этой возможности, да ещё и приписывают эту работу себе, то пошло это в... Поэтому я не против открытия исходников, я против отсутствия культуры у людей. А то "умельцев" полно развелось, берут готовенькое, логотипы перешлёпали, копирайты свои проставили, добавили сомнительных функций, и опа, новая версия, это я сделал! Если берёшь чьё то, то будь добр сохрани автора, добавь себя и напиши какой вклад внёс сам. Вот моё видение такое.

Meeky пишет:

Именно это и может помочь в развитии проекта, а не сырцы inject-кода на FASM'е, так что выкладывай

Хорошо, но что выкладывать то? "Дизасм" публично не выкладывают, закину на почту если нужно. Исходники же главного модуля (плагина) у меня всё равно на FASM, так что... со всеми вытекающими.

ЛС переполнен, не надо писать туда.

23 Отредактировано Meeky (26-02-2009 02:06:45)

Re: Z Expansion XP v1.7 beta 3

BallWin пишет:

Не совсем. Такой проект вполне можно упомянуть в резюме. А с учетом того, что такие проекты иногда становятся очень масштабными и, порой, не уступают коммерческим продуктам (игрвые движки OGRE, Irrlicht Engine, NEBULA) это весьма и весьма полезно. На NEBULA написано несколько коммерчески-успешных игр (а код OGRE имеется во многих отечественных игровых проектах).
Так что кроме "лирики", в обязательном упоминании авторства имеется четко обозначенная "физика".

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

Antares пишет:

Хорошо, но что выкладывать то? "Дизасм" публично не выкладывают, закину на почту если нужно. Исходники же главного модуля (плагина) у меня всё равно на FASM, так что... со всеми вытекающими.

Не выкладывают из-за авторских прав? Тогда кинь, плз, на мыло, надеюсь, он будет с твоими комментами? wink
Нет, к FASM у меня, в общем-то, неприязни нет - все-таки это гораздо лучше, чем в дизасме ковыряться smile
В загрузчике нет для других практической пользы, а вот знать, что было тобой уже пропатчено и перехвачено во избежание взаимного исключения явно не помешает. Кроме того, при перехвате API-функций, думаю, нужно хранить всю цепочку сменяющих друг друга процедур, как это реализовано в Windows Hooks. roll

24

Re: Z Expansion XP v1.7 beta 3

Meeky пишет:

Кроме того, при перехвате API-функций, думаю, нужно хранить всю цепочку сменяющих друг друга процедур, как это реализовано в Windows Hooks.

Эмм... насколько я знаю, подобное касается только перехвата оконных процедур. Чтобы реализовать это, нужно писать диспетчер через который будут проходить вызовы, а не напрямую как это происходит сейчас. Я очень сомневаюсь что подобное будет востребовано, так-как в реале почти не приходится ею пользоваться, обычно надёжней и лучше переписать всю функцию целиком или её часть.

ЛС переполнен, не надо писать туда.

25

Re: Z Expansion XP v1.7 beta 3

Antares, спасибо за посылочку!
Комментов действительно не так уж много, но учитывая, что игру я еще практически не смотрел - это хороший старт smile