Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Курилка | страница 16
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 16 из 18
На страницу: Пред.  1, 2, 3 ... 15, 16, 17, 18  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал Свободного Общения » Канал игры JASS: «Курилка»
donald
 1947 EGP


Модератор
Репутация: 350
Сообщения: 7278
Откуда: Череповец
Зарегистрирован: 23.08.2004
Fenrisus :
Бот в отличии от тебя - может играть 24\7 и без устали выполнять монотонные действия.

Верно. И чем больше разрабы втуливают в геймплей разного рода рутинные тыкалки, тем больше соблазн втулить бота. Защищать бесполезно - на каждую хитрую Задница найдёцца свой болт. А попытки-таки защитить - выливаются не неоправданные затраты на эту защиту и добавлению тонн кода, что, я полагаю, не способствует оптимизации и масштабированию проекта.
_________________
Рыбы в океане больше, чем кажется...
    Добавлено: 08:01 01-02-2015   
Fenrisus
 70 EGP


Рейтинг канала: 3(27)
Репутация: 0
Сообщения: 142
Откуда: Омикрон Гамма
Зарегистрирован: 30.12.2012
donald :
Верно. И чем больше разрабы втуливают в геймплей разного рода рутинные тыкалки, тем больше соблазн втулить бота. Защищать бесполезно - на каждую хитрую Задница найдёцца свой болт. А попытки-таки защитить - выливаются не неоправданные затраты на эту защиту и добавлению тонн кода, что, я полагаю, не способствует оптимизации и масштабированию проекта.


Дело даже не в рутинных тыкалках. Это в прошлом. Полностью защитить игру от ботов невозможно. Однако можно свести к минимуму возможность создания продвинутых ботов использующих код клиента для перехвата информации нативно. Этого достаточно.

На самом то деле, никаких "больших затрат" на защиту (правильную) нету. Достаточно иметь защифрованный протокол, сильным криптоалгоритмом + обфускцию клиента дабы усложнить задачу реверс инжиниринга. Достигается это не количеством кода и снижению производительности, а лишь сотней строк кода в нужных местах. Не более того. Конечно, защита не способствует оптимизации проекта и его маштабированию, в случае, если ты используешь какой либо движок, ибо по дефаульту в любых движках это попросту не предусмотрено. Отсюда и пляшем.
_________________
"МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин
    Добавлено: 08:17 01-02-2015   
donald
 1947 EGP


Модератор
Репутация: 350
Сообщения: 7278
Откуда: Череповец
Зарегистрирован: 23.08.2004
Как ни парадоксально, но я полагаю, что проще встроить ботов в проект и автоматизировать рутинные операции по дефолту. Таким образом большинство юзеров окажется в равных условиях и обеспечат требуемый онлайн. Ессна, придёцца каким-то образом ребалансить экономику проекта.
_________________
Рыбы в океане больше, чем кажется...
    Добавлено: 08:24 01-02-2015   
Fenrisus
 70 EGP


Рейтинг канала: 3(27)
Репутация: 0
Сообщения: 142
Откуда: Омикрон Гамма
Зарегистрирован: 30.12.2012
Что уже в прочем сделано в большинстве проектов. Автоматизация рутинных систем - само собой разумеецо. Однако есть те системы, которые могут быть автоматизированы только игроком. Банально - убийство NPC и некоторые другие системы.
_________________
"МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин
    Добавлено: 08:36 01-02-2015   
Варсик
 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.
    Добавлено: 13:47 01-02-2015   
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) наберется - это уже будет громадным успехом.

Так что вот такая вот диллема. В теории - можно. На практике - врятли.
    Добавлено: 22:25 06-02-2015   
Варсик
 545 EGP


Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Fenrisus :
Так что вот такая вот диллема. В теории - можно. На практике - врятли.
Достаточно было сказать про аксиому криптозащиты. Бинарник с ланчера запускался?
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 12:43 07-02-2015   
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) с головой хватит толковой обфускации + собственный алгоритм шифрования пакетов.
_________________
"МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин
    Добавлено: 19:49 07-02-2015   
McRousseaux
 841 EGP


Дозвизделся
Репутация: 210
Сообщения: 6930 Предупреждений: 1
Откуда: ) и все мы
Зарегистрирован: 31.01.2005
налейте мне то же что и ему! Совсем запутался... Гы-гы
_________________
МакРуссо, он же Мак, он же Руссо.
Пират, контрабандист. Отличается пристрастием к рому.
Характер скверный.
Не женат.
    Добавлено: 20:26 07-02-2015   
Fenrisus
 70 EGP


Рейтинг канала: 3(27)
Репутация: 0
Сообщения: 142
Откуда: Омикрон Гамма
Зарегистрирован: 30.12.2012
гыг.
    Добавлено: 22:27 07-02-2015   
Варсик
 545 EGP


Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Fenrisus :
Бинарник запускается с лаунчера
ДДальше не интересно и не читал. Понятно как сделано и что сделано. Сам таким страдаю. Обходится не сказать чтобы легко, но понятно как. Вот если-бы такой ехе без ланчера запускался... (Что, кстати, возможно. Как - догадайся.)
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 07:38 08-02-2015   
Fenrisus
 70 EGP


Рейтинг канала: 3(27)
Репутация: 0
Сообщения: 142
Откуда: Омикрон Гамма
Зарегистрирован: 30.12.2012
Варсик :
Fenrisus :
Бинарник запускается с лаунчера
ДДальше не интересно и не читал. Понятно как сделано и что сделано. Сам таким страдаю. Обходится не сказать чтобы легко, но понятно как. Вот если-бы такой ехе без ланчера запускался... (Что, кстати, возможно. Как - догадайся.)


Сама защита - к лаунчеру не привязанна если что. Лаунчер - всего лишь дополнение. И такая версия была Гы-гы Так что выводы - ошибочны. Представление о том как это сделано и что сделано - не полное.

З.Ы. запуск с лаунчера-апдейтера появился апосля, ибо юзерам (многим) было лень читать новости об обновлениях и запускать лаунчер, однако плодили over9000 топиков - "игра не работает!?! почему?!".
    Добавлено: 00:14 09-02-2015   
Magistr_AVSH
 605 EGP


Модератор
Рейтинг канала: 4(62)
Репутация: 119
Сообщения: 2705
Откуда: Росс 154 - планета Мерлин.
Зарегистрирован: 26.12.2009
Разбавлю скучные разговоры пачкой планеток Улыбка




_________________
Добрый и сытый кот.
    Добавлено: 09:56 11-02-2015   
Варсик
 545 EGP


Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Эм... У меня такое генератор планет ГИМПовский умеет. Ну... Почти такое, ладно.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 11:40 11-02-2015   
Варсик
 545 EGP


Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Судя по всему - работы идут полным ходом...
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 16:30 08-05-2015   
Fenrisus
 70 EGP


Рейтинг канала: 3(27)
Репутация: 0
Сообщения: 142
Откуда: Омикрон Гамма
Зарегистрирован: 30.12.2012
Варсик :
Судя по всему - работы идут полным ходом...

Идут Хы... Полным прям вообще ходом. Конечно шли бы быстрее, если бы кто то занялся графикой. А так, в целом прогресс есть.
_________________
"МАГИЧЕСКИЙ БАЛАНС - НЕ ДОЛЖЕН БЫТЬ НАРУШЕН!"(с) Кассадин
    Добавлено: 18:24 08-05-2015   
Варсик
 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 раз
    Добавлено: 15:48 10-06-2015   
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
}

    Добавлено: 17:04 12-06-2015   
Варсик
 545 EGP


Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Ну-у-у... В общих чертах - понятно... Как-нибудь сяду поплотнее. Все-таки защитой и взломом ехе уже года 4 не занимался. Общие знания есть, но дьявол, как известно, в деталях.

Как там с JASS-то, кстати... Заглохло все?
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 20:16 13-07-2015   
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 раз(а)
    Добавлено: 20:52 13-07-2015   
Канал Свободного Общения -> Канал игры JASS: «Курилка»
На страницу: Пред.  1, 2, 3 ... 15, 16, 17, 18  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Борон борону глаз не выклюет... ибо нечем!

  » Курилка | страница 16
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18