ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Курилка | страница 16 |
|
|
|
Канал Свободного Общения »
Канал игры JASS: «Курилка» |
|
|
donald 1947 EGP
Репутация: 350 Сообщения: 7278 Откуда: Череповец Зарегистрирован: 23.08.2004 |
|
Fenrisus : |
Бот в отличии от тебя - может играть 24\7 и без устали выполнять монотонные действия.
|
Верно. И чем больше разрабы втуливают в геймплей разного рода рутинные тыкалки, тем больше соблазн втулить бота. Защищать бесполезно - на каждую хитрую найдёцца свой болт. А попытки-таки защитить - выливаются не неоправданные затраты на эту защиту и добавлению тонн кода, что, я полагаю, не способствует оптимизации и масштабированию проекта.
_________________ Рыбы в океане больше, чем кажется... |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
donald : |
Верно. И чем больше разрабы втуливают в геймплей разного рода рутинные тыкалки, тем больше соблазн втулить бота. Защищать бесполезно - на каждую хитрую найдёцца свой болт. А попытки-таки защитить - выливаются не неоправданные затраты на эту защиту и добавлению тонн кода, что, я полагаю, не способствует оптимизации и масштабированию проекта.
|
Дело даже не в рутинных тыкалках. Это в прошлом. Полностью защитить игру от ботов невозможно. Однако можно свести к минимуму возможность создания продвинутых ботов использующих код клиента для перехвата информации нативно. Этого достаточно.
На самом то деле, никаких "больших затрат" на защиту (правильную) нету. Достаточно иметь защифрованный протокол, сильным криптоалгоритмом + обфускцию клиента дабы усложнить задачу реверс инжиниринга. Достигается это не количеством кода и снижению производительности, а лишь сотней строк кода в нужных местах. Не более того. Конечно, защита не способствует оптимизации проекта и его маштабированию, в случае, если ты используешь какой либо движок, ибо по дефаульту в любых движках это попросту не предусмотрено. Отсюда и пляшем.
_________________ "МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин |
|
|
donald 1947 EGP
Репутация: 350 Сообщения: 7278 Откуда: Череповец Зарегистрирован: 23.08.2004 |
|
Как ни парадоксально, но я полагаю, что проще встроить ботов в проект и автоматизировать рутинные операции по дефолту. Таким образом большинство юзеров окажется в равных условиях и обеспечат требуемый онлайн. Ессна, придёцца каким-то образом ребалансить экономику проекта.
_________________ Рыбы в океане больше, чем кажется... |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
Что уже в прочем сделано в большинстве проектов. Автоматизация рутинных систем - само собой разумеецо. Однако есть те системы, которые могут быть автоматизированы только игроком. Банально - убийство NPC и некоторые другие системы.
_________________ "МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин |
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Fenrisus : |
Достаточно иметь защифрованный протокол, сильным криптоалгоритмом + обфускцию клиента дабы усложнить задачу реверс инжиниринга.
|
Как утопично... Возьмем UO (Ultima Online). Там популярны 2 системы скриптинга: UOPilot (анализ картинки) и EasyUO (они для каждой версии ехе находят адреса в памяти с примитивами и т.д. и используют эту информацию, чтобы управлять клиентом). Я хочу обратить ваше внимание на 2ю систему... UO написано на Сях. Так как в те времениа использовать макро языки было нельзя из-за скорости. Нету защиты. И никогда не будет.
А да, я еще забыл упомянуть StealthUO, которое является прокси между клиентом и сервером и может полностью автоматизировать бота на основе протокола. И да, протокол защифрован TwoFish'ем и пожат алгоритмом Хафмана. IDA, неделя чтения ассемблера и все.
Я уже не говорю про ВОВ...
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
Варсик : |
Как утопично... Возьмем UO (Ultima Online). Там популярны 2 системы скриптинга: UOPilot (анализ картинки) и EasyUO (они для каждой версии ехе находят адреса в памяти с примитивами и т.д. и используют эту информацию, чтобы управлять клиентом). Я хочу обратить ваше внимание на 2ю систему... UO написано на Сях. Так как в те времениа использовать макро языки было нельзя из-за скорости. Нету защиты. И никогда не будет.
А да, я еще забыл упомянуть StealthUO, которое является прокси между клиентом и сервером и может полностью автоматизировать бота на основе протокола. И да, протокол защифрован TwoFish'ем и пожат алгоритмом Хафмана. IDA, неделя чтения ассемблера и все.
Я уже не говорю про ВОВ...
|
Пусть будет так. Когда я занимался UO - так и никто несмог взломать мою защиту. При этом защита была написана на ASM Изначально же в UO вообще нет никакой защиты от реверса...
На реверсь на здоровье. Если даже ты сможешь таки после плясок с бубном открыть экзешник дебаггером, тебя ждут нули. То беж совсем нули. Что в IDA что в OllyDbg (и некоторых других утилитах) - одинакого.
Cкрытый текст (кликните здесь для просмотра)
|
Хмм, интересно, что же будет делать человек, когда не работает IDA и подобное...
Не спорю, и эту защиту, теоритически можно снять(методом терморектального криптоанализа ). В данном случае цель - не оправдывает средства. На обход защиты уйдет ооочень много времени. А за этот промежуток времени - обновится защита, впрочем как и клиент игры.
Да, не спорю всякую защиту можно снять однако есть несколько критериев. Специалист, который сможет данную защиту снять - запросит как минимум 700$ за данную работу. Новый апдейт - опять кучу денег платить? Нуу или другой вариант - если игра ну ооочень популярна. Тот же WoW. "Производители" платных ботов, таки будут платить так как есть аудитория для продажи ботов. Тут да, с игрой в которую играют миллионы - проблема... Но ведь мы то делаем игру не для "миллионов пользователей"... если 2-4к (как на приватках Lineage Interlude) наберется - это уже будет громадным успехом.
Так что вот такая вот диллема. В теории - можно. На практике - врятли.
|
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Fenrisus : |
Так что вот такая вот диллема. В теории - можно. На практике - врятли.
|
Достаточно было сказать про аксиому криптозащиты. Бинарник с ланчера запускался?
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
Бинарник запускается с лаунчера при этом EntryPoint находится вне самого exe, там перезаписан PE Header и по факту оно запускается через антибот ->> Launcher\updater-->вызов exe(+нечитаемые символы как аргументы в commandline + невозможность запустить без лаунчера)---->DLL--->Application EntryPoint. Ну а сам антибот выполняет проверки - скан памяти, скан виртуализации (не запускается под VMWare и прочее), скан скрытых процессов, эвристический анализ памяти на наличие сигнатур ботов\читов, анти-инжект модуль, CRC32 проверка, MD5-хеши, хайд модулей игры (визуально нету их, при этом, твой процесс не висит даже в диспетчере задач) +++ антиреверс, антидамп (генерация дампа памяти ведет к синему экрану смерти ибо unsafe+critical state)и прочаяя прочаяя. В принципе - снять реально, только вот заморачиватся врятли кто будет. Всетки приватный шард UO а не оффициальный шард от EA. "Победа над ботами" осуществляется в совокупности так сказать факторов. И один из основых - неблагодарное это дело, реверсить данную штуку учитывая большие времязатраты, высокий "порог вхождения" по скиллу и то - что твои боты будут работать ровно до следующего апдейта. Грубо говоря, когда шард более менее настроен - не составляет труда "менять" защиту один раз в неделю например. Причем при помощи спец. макросов, на "апдейт" защиты - уходит суммарно часов 5-7.
Так что в таком случае - эффективно и еще как. В данном же случае (jass) с головой хватит толковой обфускации + собственный алгоритм шифрования пакетов.
_________________ "МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин |
|
|
McRousseaux 841 EGP
Репутация: 210 Сообщения: 6930 Предупреждений: 1 Откуда: ) и все мы Зарегистрирован: 31.01.2005 |
|
налейте мне то же что и ему!
_________________ МакРуссо, он же Мак, он же Руссо.
Пират, контрабандист. Отличается пристрастием к рому.
Характер скверный.
Не женат. |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
гыг.
|
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Fenrisus : |
Бинарник запускается с лаунчера
|
ДДальше не интересно и не читал. Понятно как сделано и что сделано. Сам таким страдаю. Обходится не сказать чтобы легко, но понятно как. Вот если-бы такой ехе без ланчера запускался... (Что, кстати, возможно. Как - догадайся.)
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
Варсик : |
Fenrisus : |
Бинарник запускается с лаунчера
|
ДДальше не интересно и не читал. Понятно как сделано и что сделано. Сам таким страдаю. Обходится не сказать чтобы легко, но понятно как. Вот если-бы такой ехе без ланчера запускался... (Что, кстати, возможно. Как - догадайся.)
|
Сама защита - к лаунчеру не привязанна если что. Лаунчер - всего лишь дополнение. И такая версия была Так что выводы - ошибочны. Представление о том как это сделано и что сделано - не полное.
З.Ы. запуск с лаунчера-апдейтера появился апосля, ибо юзерам (многим) было лень читать новости об обновлениях и запускать лаунчер, однако плодили over9000 топиков - "игра не работает!?! почему?!".
|
|
|
Magistr_AVSH 605 EGP
Рейтинг канала: 4(62) Репутация: 119 Сообщения: 2705 Откуда: Росс 154 - планета Мерлин. Зарегистрирован: 26.12.2009 |
|
Разбавлю скучные разговоры пачкой планеток
_________________ Добрый и сытый кот. |
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Эм... У меня такое генератор планет ГИМПовский умеет. Ну... Почти такое, ладно.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Судя по всему - работы идут полным ходом...
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
Варсик : |
Судя по всему - работы идут полным ходом...
|
Идут Полным прям вообще ходом. Конечно шли бы быстрее, если бы кто то занялся графикой. А так, в целом прогресс есть.
_________________ "МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин |
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Fenrisus : |
Бинарник запускается с лаунчера при этом EntryPoint находится вне самого exe, там перезаписан PE Header и по факту оно запускается через антибот ->> Launcher\updater-->вызов exe(+нечитаемые символы как аргументы в commandline + невозможность запустить без лаунчера)---->DLL--->Application EntryPoint.
|
Не помню - понятно-ли мне было тогда о чем разговор.. Давайте продолжим что-ли?..
У меня есть 2 варианта:
1) В exe статически прилинкована ваша DLL (линковку можно добавить к уже готовому ехе). В ней есть код в EntryPoint ))
2) Если первое да, то тут могут быть варианты:
2.1) В DLL, кроме разных вещей есть код "положи код ехе или его части в entry point"
2.2) В DLL зашит ImageBase адрес не $40000 (Или какой он там для DLL), а другой, которого нету в карте ехе и по этому видна кладет ваш dll туда куда прописано в ImageBase (Она-же не хочет делать релоки, правда), а адрес запускаймой сабы в DLL и есть EntryPoint в exe. Кстати - довльно умно и прикольно. Не знаю - можно-ли так на самом деле.
2.2 сложно из-за того что код не всегда переносим. С другой стороны идиотов, которые базозависимый код генерируют - я не помню. Для ухода от этого всегда делали трамплины.
Я недалек от истины?
ЗЫ: Кстати, 2.2 делается и без кода в EntryPoint либы.
_________________ WARNING: By reading this post you accept that this post is genius.
Последний раз редактировалось: Варсик (15:49 10-06-2015), всего редактировалось 1 раз |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
В принципе да. Но не во всех случаях. Это очень обширная тема для дисскусий.
Ну а если интересно...
Cкрытый текст (кликните здесь для просмотра)
Даже если детачнуть эту дллку - работать к примеру клиент игрушки не будет. Тут я сделал пару трюков для антиотладки в качестве примера. (я не говорю уж про memory breakpoint и прочие высшие материи, это так, простенький экзампл без этих сложностей).
Собстно стандартненький наборчик. Небольшая обфускация кода, VMProtect (API), ну и фишка в том, что у нас есть оффсеты нетворка и мы меняем XOR ключи (на сервере например есмь ридер сего тоже, хукнули предположим). Но это так еще, слабовато. Но уже этого достаточно, что бы отсеять множество читеров и ботоводов в stand-alone клиенте игры. Конечно это не полный вариант протекта, так, базисы. Но в продолжении темы защиты от подобного ПО... Сколько времени уйдет на снятие данной защиты, и самое главное - какие знания под это нужны.
А если это все еще скомпилить под х64 архитектуру и накрыть сверху Themida x64
Вообщем развлекайся
Код: |
extern g_Protect Protector;
extern g_ProtoDef ProtocolGuard;
#define oXORFilterStart 0x00OFFSETHERE
#define pActiveSocket *(SOCKET*)(*(DWORD*)0x0OFFSETHERE + 0x0c)
#define oDataRecv_Call 0x0OFFSETHERE
#define pDataRecv ((void(*)(DWORD Type, LPBYTE Data, int Len, int aIndex)) 0x00OFFSETHERE)
#define JUNK_CODE_ONE \
__asm{push eax} \
__asm{xor eax, eax} \
__asm{setpo al} \
__asm{push edx} \
__asm{xor edx, eax} \
__asm{sal edx, 2} \
__asm{xchg eax, edx} \
__asm{pop edx} \
__asm{or eax, ecx} \
__asm{pop eax}
///-----//
inline int AddSubOne(int One, int Two)
{
JUNK_CODE_ONE
return ((One + Two) - 1);
}
inline void PushPopSS()
{
__asm
{
push ss
pop ss
mov eax, 9
xor edx, edx
}
}
extern "C" __declspec (dllexport) void __cdecl EntryPoint()
{
VMBEGIN
#ifdef PROTECT
if( VMProtectIsDebuggerPresent(TRUE) != 0 )
{
MessageBox(0, "Protect system found debugger, process will be closed", "CheatGuard", ERROR);
ExitProcess(0);
}
LoadLibrary("lci.dll");
g_ProtoDef.Load();
#endif
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE) g_Protect.AntiDebug,NULL,0,NULL);
VMEND
}
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
/*
А можно и так, и кстати можно использовать и то и другое вместе.
именно это вызывается при вызове LoadLibraryA
сюда напхать всякого
*/
AddSubOne(32767, 5723);
PushPopSS();
g_Protect.AntiDebug();
PushPopSS();
break;
}
return TRUE;
}
void Protector::AntiDebug()
{
unsigned long NtGlobalFlags = 0;
char IsDbgPresent = 0;
__asm {
mov eax, fs:[30h]
mov al, [eax + 2h]
mov IsDbgPresent, al
}
__asm {
mov eax, fs:[30h]
mov eax, [eax + 68h]
mov NtGlobalFlags, eax
}
PushPopSS();
if (IsDbgPresent == 1)
{
//MessageBox(NULL, "Please close your debugging application and restart the program", "Debugger Found!", 0);
ExitProcess(0);
}
typedef unsigned long(__stdcall *pfnNtQueryInformationProcess)(IN HANDLE,
IN unsigned int, OUT PVOID, IN ULONG, OUT PULONG);
// ProcessDebugPort
const int ProcessDbgPort = 7;
// We have to import the function
pfnNtQueryInformationProcess NtQueryInfoProcess = NULL;
// Other Vars
unsigned long Ret;
unsigned long IsRemotePresent = 0;
HMODULE hNtDll = LoadLibrary(TEXT("ntdll.dll"));
if (hNtDll == NULL)
{
// Handle however.. chances of this failing
// is essentially 0 however since
// ntdll.dll is a vital system resource
}
NtQueryInfoProcess = (pfnNtQueryInformationProcess)
GetProcAddress(hNtDll, "NtQueryInformationProcess");
if (NtQueryInfoProcess == NULL)
{
//obfuscation part
PushPopSS();
auto increment = AddSubOne(567, 234);
if (increment == 567)
{
PushPopSS();
}
// Handle however it fits your needs but as before,
// if this is missing there are some SERIOUS issues with the OS
}
// Time to finally make the call
Ret = NtQueryInfoProcess(GetCurrentProcess(), ProcessDbgPort,
&IsRemotePresent, sizeof(unsigned long), NULL);
if (Ret == 0x00000000 && IsRemotePresent != 0)
{
// Debugger is present
//MessageBox(NULL, "Please close your debugging application and restart the program", "Debugger Found!", 0);
ExitProcess(0);
}
if (NtGlobalFlags & 0x70)
// 0x70 = FLG_HEAP_ENABLE_TAIL_CHECK |
// FLG_HEAP_ENABLE_FREE_CHECK |
// FLG_HEAP_VALIDATE_PARAMETERS
{
// Debugger is present
//MessageBox(NULL, "Please close your debugging application and restart the program", "Debugger Found!", 0);
ExitProcess(0);
}
PushPopSS();
auto increment = AddSubOne(2334, 67);
if (increment == 344)
{
PushPopSS();
}
Sleep(10000);
}
//
void ProtocolGuard::Load()
{
VMBEGIN
// ----
ZeroMemory(this->XOR, sizeof(XOR));
this->ChangeXORFilter();
// ----
VMEND
}
// ----------------------------------------------------------------------------------------------
void ProtocolGuard::ChangeXORFilter()
{
VMBEGIN
// ----
this->XOR[0] = 0xf2;
this->XOR[1] = 0xa5;
this->XOR[2] = 0xb4;
this->XOR[3] = 0x85;
this->XOR[4] = 0xf5;
this->XOR[5] = 0xa7;
this->XOR[6] = 0xd9;
this->XOR[7] = 0x38;
this->XOR[8] = 0x92;
this->XOR[9] = 0x01;
this->XOR[10] = 0xee;
this->XOR[11] = 0x11;
this->XOR[12] = 0xd1;
this->XOR[13] = 0x96;
this->XOR[14] = 0xfe;
this->XOR[15] = 0xfa;
this->XOR[16] = 0xa5;
this->XOR[17] = 0xda;
this->XOR[18] = 0x2f;
this->XOR[19] = 0xd1;
this->XOR[20] = 0x44;
this->XOR[21] = 0xf6;
this->XOR[22] = 0x4c;
this->XOR[23] = 0x20;
this->XOR[24] = 0x91;
this->XOR[25] = 0x74;
this->XOR[26] = 0xdc;
this->XOR[27] = 0x1d;
this->XOR[28] = 0x37;
this->XOR[29] = 0xbe;
this->XOR[30] = 0xaf;
this->XOR[31] = 0x6b;
// ----
for( int i = 0; i < 32; i++ )
{
SetByte((PVOID)((oXORFilterStart + 4 * i) + 3), this->XOR[i]);
}
// ----
VMEND
} |
|
|
|
|
Варсик 545 EGP
Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Ну-у-у... В общих чертах - понятно... Как-нибудь сяду поплотнее. Все-таки защитой и взломом ехе уже года 4 не занимался. Общие знания есть, но дьявол, как известно, в деталях.
Как там с JASS-то, кстати... Заглохло все?
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Fenrisus 70 EGP
Рейтинг канала: 3(27) Репутация: 0 Сообщения: 142 Откуда: Омикрон Гамма Зарегистрирован: 30.12.2012 |
|
Варсик : |
Как там с JASS-то, кстати... Заглохло все?
|
Нее не заглохло. Разработка идет, но не так быстро как хотелось бы. Так сказать "в коде" есть движок, есть игровая механика, есть много чего интересного. Увы нет самой графики... Иконок интерфейса, нет иконок предметов, нет даже собственных кораблей (совсем своих, которые бы не попадали под копирайты).
Движок поддерживает и 2D и 3D объекты...
Cкрытый текст (кликните здесь для просмотра)
|
Но увы, даже своих станций нету... Не ну есть что то типа...
Cкрытый текст (кликните здесь для просмотра)
|
однако во первых - это делается ну оооочень медленно, а во вторых качество текстур - не особо соответствует. Я молчу про графику предметов (оружие, ракеты, силовые установки и прочее барахло) их попросту нет. Математически - все это работает, но визуально всего этого не существует.
Грубо говоря - есть почти все, кроме пожалуй самого главного - контента(графики), и к сожалению - взять ее попросту негде. А так как проект без финансирования, отсюда и результат. Графика медленно но в процессе. Одну например станцию (ту что выше), нарисовали нам за месяц Человек делал на альтруизме и по принципу наличия свободного времени...
Нет я конечно могу взять стырить тупо графику Евы, и дальше че? Это не торт и это не выход. Но и свою графику взять увы неоткуда (любой труд должен быть оплачен). И врятли найдется хороший 3D артист\художник pro уровня, сделающий нам графику на альтруистских началах с перспективой профита в будущем и не за пару лет а за реальные сроки...Я таких надежд не питаю - это не реально.
Так что приходится исходить из того, что имеем. Код - кодом, а вот контент... Если бы у нас была графика - бета тест был бы еще полтора месяца назад где то.
Список графического контента, и откуда он взялся:
Cкрытый текст (кликните здесь для просмотра)
1)Планеты, небулы, звезды - наши.
2)Партиклы (выстрелы, эффекты попаданий, взрывов и тд.) - наше.
3)Бэкграунды космоса, астеройды - DarkOrbit/Uridium Wars.
4)Джампгейты, станции (1шт наша! ) - DarkOrbit/Uridium Wars
5)Интерфейс(иконки, стилистика) - я взломал pkg архивы с AES-256 шифрованием у ныне почившей игры BlackProphecy. Т.е. результат реверс-инжиниринга. Стилистика то ладно, а вот иконки...
6)Корабли - 2.5D - DarkOrbit, WarpFire. 3D - Homeworld2 (Моды & Оригинал).
7)Предметы - их попросту нет. Для тестов используются иконки из BlackProphecy, EvE online, Uridium Wars.
==========================
Увы, но как бы я не хотел, но мы попросту не можем сделать "бета тест" для пилотов, этой игры сейчас, даже учитывая то, что логически игра - играбельна где то на 70-80% от задуманного. Весь контент что там есть - "тестовый" для внутреннего использования так сказать. Просто потому что другого нет (не синие\зеленые же треугольники вместо кораблей вставлять?)...
|
---добавлено---
На данный момент - Магистр оптимизирует рендер для снижения нагрузки и повышения производительности, а так же фикисит баги и недоработки в редакторе кораблей(клиентская часть) и редакторе карт.
Я же, занимаюсь оптимизацией (серверная часть) менеджеров: Guild Manager, Territory Manager, MapManager (Sector/Instance) и тд. по части сохранения всего этого в БД. а так же, делаю изменения в циклах AI логики для оптимизации всех НПЦ в одном секторе с целью улучшения взаимодействия неписей друг с другом.
Ну и попутно мы стараемся решить проблемы с графическим контентом игры
_________________ "МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин
Последний раз редактировалось: Fenrisus (21:26 13-07-2015), всего редактировалось 3 раз(а) |
|
|
|
|
|
Канал Свободного Общения ->
Канал игры JASS: «Курилка» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: На 18 странице совещания модератор КСО Nadin и модератор ЖК и КС Harley наконец решили выяснить, о чем же все же они будут совещаться. (Harley)
|
» Курилка | страница 16 |
|