Концепция открытого мира в CS 1.6

Сообщения
271
Реакции
423
Помог
5 раз(а)
Сообщения
13
Реакции
-6
Круто! Но... кто будет играть на столь больших картах? Засядет чел где-нибудь со снайперской винтовкой и будет всю карту простреливать - так всё быстро успеет надоесть. Делать на них что-то наподобие Deathmatch-а с моментальным респавном - может быть, только лимит игроков всего 32 человека, что несколько маловато для таких просторов. Хотя.. если делать что-то наподобие Serious Sam-а, в сеттинге кс.... хотя тоже, честно, не знаю.

Да и детализация подобных пространств дело тоже нешуточное....
 
Сообщения
453
Реакции
255
Помог
9 раз(а)
Glaster, какую нибудь королевскую битву можно рализовать, тут же и говорят о расширениях возможностей КС, в том числе и количества игроков. Я бы с удовольствием по джурассик-парку побегал)
 
Сообщения
3
Реакции
1
Я думаю такая идея подходит для королевской битвы или например как The Division, но вы реально поражаете! Так заморочится... если бы знал как лайк поставить тут - поставил сразу три!
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
Частично портировал рендерер paranoia 1.
В целом надо настроить только яркость/гамму/контрастность с gl_modelrenderer может быть фпс немного больше.
Код:
    cv_renderer = gEngfuncs.pfnRegisterVariable( "gl_renderer_new","1", 0 );
    cv_bump = gEngfuncs.pfnRegisterVariable( "gl_bump","1", FCVAR_ARCHIVE );
    cv_detailtex = gEngfuncs.pfnRegisterVariable( "gl_detailtex","1", FCVAR_ARCHIVE );
    cv_bumpvecs = gEngfuncs.pfnRegisterVariable( "bump_vecs","0", 0 );
    cv_bumpdebug = gEngfuncs.pfnRegisterVariable( "bump_debug","0", 0 );
    cv_specular = gEngfuncs.pfnRegisterVariable( "gl_specular","1", FCVAR_ARCHIVE );
    cv_dynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight","1", 0 );
    cv_entdynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight_ent","1", 0 );
    cv_specular_nocombiners = gEngfuncs.pfnRegisterVariable( "gl_nocombs","0", 0 );
    cv_specular_noshaders = gEngfuncs.pfnRegisterVariable( "gl_noshaders","0", 0 );
    cv_highspecular = gEngfuncs.pfnRegisterVariable( "gl_highspecular","1", FCVAR_ARCHIVE );
    cv_gamma = gEngfuncs.pfnRegisterVariable( "gl_gamma","1", FCVAR_ARCHIVE );
    cv_brightness = gEngfuncs.pfnRegisterVariable( "gl_brightness","0", FCVAR_ARCHIVE );
    cv_contrast = gEngfuncs.pfnRegisterVariable( "gl_contrast","1.5", FCVAR_ARCHIVE );
    cv_speculartwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassspecular","0", 0 );
    cv_dyntwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassdyn","0", 0 );
    cv_blurtest = gEngfuncs.pfnRegisterVariable( "gl_blurtest","0", 0 );
    cv_nsr = gEngfuncs.pfnRegisterVariable( "gl_modelrenderer","0", 0 );
    cv_lambert = gEngfuncs.pfnRegisterVariable( "gl_lambert","2", 0 );
    cv_drawbrushents = gEngfuncs.pfnRegisterVariable( "gl_brushents","1", 0 );
    cv_clipplanes = gEngfuncs.pfnRegisterVariable( "gl_clipplanes","0", 0 );
    cv_showplane = gEngfuncs.pfnRegisterVariable( "gl_showplane","0", 0 );
В целом улучшение фпс незначительное (20-30%) на маленьких картах, на больших же прирост производительности примерно в 7-10 раз.

UPD: исправил отрисовку мира в спеках.
 

Вложения

Последнее редактирование:
Сообщения
133
Реакции
441
Помог
2 раз(а)
Garey, пожалуйста, можешь дальше майнить на моей видюхи. ?
С контрастом и гаммой решить траблики и wp.

gl_contrast 0
gl_gamma 1
gl_brightness 1


Тестовая карта: test.bsp

gl_renderer_new 1
20211106185332_1.jpg
gl_renderer_new 0
gl_renderer_new0.jpg


+ тест на небольшой knife арене
Код:
0.119125 seconds (1074.498271 fps) [gl_renderer_new 1]
0.423203 seconds (302.455670 fps) [gl_renderer_new 0]
 
Последнее редактирование:
Сообщения
103
Реакции
179
Частично портировал рендерер paranoia 1.
В целом надо настроить только яркость/гамму/контрастность с gl_modelrenderer может быть фпс немного больше.
Код:
    cv_renderer = gEngfuncs.pfnRegisterVariable( "gl_renderer_new","1", 0 );
    cv_bump = gEngfuncs.pfnRegisterVariable( "gl_bump","1", FCVAR_ARCHIVE );
    cv_detailtex = gEngfuncs.pfnRegisterVariable( "gl_detailtex","1", FCVAR_ARCHIVE );
    cv_bumpvecs = gEngfuncs.pfnRegisterVariable( "bump_vecs","0", 0 );
    cv_bumpdebug = gEngfuncs.pfnRegisterVariable( "bump_debug","0", 0 );
    cv_specular = gEngfuncs.pfnRegisterVariable( "gl_specular","1", FCVAR_ARCHIVE );
    cv_dynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight","1", 0 );
    cv_entdynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight_ent","1", 0 );
    cv_specular_nocombiners = gEngfuncs.pfnRegisterVariable( "gl_nocombs","0", 0 );
    cv_specular_noshaders = gEngfuncs.pfnRegisterVariable( "gl_noshaders","0", 0 );
    cv_highspecular = gEngfuncs.pfnRegisterVariable( "gl_highspecular","1", FCVAR_ARCHIVE );
    cv_gamma = gEngfuncs.pfnRegisterVariable( "gl_gamma","1", FCVAR_ARCHIVE );
    cv_brightness = gEngfuncs.pfnRegisterVariable( "gl_brightness","0", FCVAR_ARCHIVE );
    cv_contrast = gEngfuncs.pfnRegisterVariable( "gl_contrast","1.5", FCVAR_ARCHIVE );
    cv_speculartwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassspecular","0", 0 );
    cv_dyntwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassdyn","0", 0 );
    cv_blurtest = gEngfuncs.pfnRegisterVariable( "gl_blurtest","0", 0 );
    cv_nsr = gEngfuncs.pfnRegisterVariable( "gl_modelrenderer","0", 0 );
    cv_lambert = gEngfuncs.pfnRegisterVariable( "gl_lambert","2", 0 );
    cv_drawbrushents = gEngfuncs.pfnRegisterVariable( "gl_brushents","1", 0 );
    cv_clipplanes = gEngfuncs.pfnRegisterVariable( "gl_clipplanes","0", 0 );
    cv_showplane = gEngfuncs.pfnRegisterVariable( "gl_showplane","0", 0 );
В целом улучшение фпс незначительное (20-30%) на маленьких картах, на больших же прирост производительности примерно в 7-10 раз.

UPD: исправил отрисовку мира в спеках.
О, прикольно! А как оно в процесс рендеринга вмешивается? И кстати, не сломались ли бленды? Про че я как раз писал ранее.
Еще потенциальное место, которое могло сломаться, это лайтстили. Т.е. тогда отвалится затемнение карты в ZM режиме, например.
 
Последнее редактирование:

d3m37r4

111111
Сообщения
1,428
Реакции
1,169
Помог
10 раз(а)
SNMetamorph, на первых вариантах, которые Garey скидывал, пропадал смок, декали и еще были различные мелочи)
 
Сообщения
103
Реакции
179
на первых вариантах, которые @Garey скидывал, пропадал смок, декали и еще были различные мелочи)
Да это вроде в целом разрешимые вещи. Там есть довольно проблемные места, которые пофиксить весьма трудно, типа несостыковок между КСовским и внешним рендером студиомоделей.
 
Сообщения
103
Реакции
179
Garey а как вообще технически твоя asi с рендером паранои работает? Что она хукает/патчит?
 
Сообщения
271
Реакции
423
Помог
5 раз(а)
Кстати хотел спросить мнение народа. Суть заключается в следующем. Я надеюсь все видели и знают как выглядит кастомное меню в cs 1.6. Так вот предлагаю клиентскую часть работающую с VGUI. Суть заключается в том, что кастомизация работает на уровне HUD и вместо текста пользователь может взаимодействовать с графическим меню кастомизированным со стороны сервера. Правда для этого прейдется скачать и установить клиентскую asi.
 
Сообщения
3,370
Реакции
1,477
Помог
124 раз(а)
bionext, очередная отличная идея от тебя. А как это будет контролироваться с сервера? API для AMXX?
 
Сообщения
704
Реакции
475
Помог
10 раз(а)
bionext, да мне кажется каждый кодер работающий с зомби модами задумывался об этой идее хотя бы раз :good2:
 

ssx

Сообщения
270
Реакции
71
Garey, с HL не работает , а жаль :(
У меня много игроков играет с калькулятора и им бы новый рендеринг был бы полезен.
 

Вложения

Сообщения
271
Реакции
423
Помог
5 раз(а)
Nordic Warrior, Как tempentity, всё через сообщения. Одно сообщение конструирует HUD окно состоящее из набора проиндексированных элементов. Другое сообщение активирует это окно, а далее при нажатии мышкой на какой-нибудь из элементов на сервер отправляется команда по примеру команд меню slot1 и т.д., только с id элемента на который было нажатие, затем проанализировав эту команду на стороне сервера, можно отправить например сообщение о закрытии окна, смене изображения или текста элемента или открытие другого окна.
 
Сообщения
203
Реакции
324
Помог
3 раз(а)
bionext, такие вещи как закрытие окна должны на клиенте выполняться. В конечном итоге, всё меню должно быть заскриптовано на клиент-сайде, а для этого необходимо либо кучу нативных команд делать (.res -> engine), либо вводить скриптовый язык, который будет предоставлять API к стандартным клиентским интерфейсам и связан с VGUI. А это проблематично. Так что считаю, что задумка хорошая, но только не в исполнении VGUI. Если уже и asi модуль, то лучше взять другую GUI библиотеку со скриптовым языком
 
Сообщения
271
Реакции
423
Помог
5 раз(а)
Xelson, Суть моего варианта заключается в том, чтобы использовать стандартное api движка и клиетна не применяя кода внедпения в прграмму, на который кстати и ругается Nod32:) На этом же принципе основана моя asi для расширения границ мира, уже три месяца на лицухе, а vac бана ещё нет, хотя это ёще не показатель, но надежда есть.
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
bionext, вак для 1.6 очень давно не обновлялся и детектит только старые читы и инжекторы.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу