GoldSrc (ou GoldSource) é o motor de jogo desenvolvido pela Valve, entre 1996 e 1998, a partir do código-fonte do primeiro jogo da série Quake (desenvolvido pela id Software). O primeiro jogo a suportar foi Half-Life. Consequentemente, fora utilizado na criação de futuros títulos da Valve, como Day of Defeat, Team Fortress e Counter-Strike.

GoldSrc
Desenvolvedor Valve Corporation
id Software (código fonte original)
Plataforma PC (Windows e Linux)
OS X
PlayStation 2
Xbox
Dreamcast
Lançamento 8 de novembro de 1998 (22 anos)
Idioma(s) Inglês
Escrito em C (motor de jogo)
C++ (jogos e ferramentas)
x86 Assembly (renderização por software)
Sistema operativo Windows, Linux, Mac OS X
Gênero(s) Motor de jogo
Licença Proprietária
Página oficial https://github.com/ValveSoftware/halflife

Foi substituído pelo Source Engine com a chegada de Counter-Strike: Source e Half-Life 2 em 2004. Contudo, isso não impediu o seu licenciamento para desenvolvedores terceiros (third-party), seu suporte às atualizações periódicas e a sua popularização e utilização (devido à sua relativa simplicidade) por jogadores para criar modificações e jogos independentes (ou indies) como Cry of Fear e Sven Co-op. Nexon Corporation, por exemplo, licenciou o GoldSrc para desenvolver Counter-Strike Online.

História e desenvolvimentoEditar

 
Ramificações de diversas engines originadas a partir do primeiro Quake.

A sua origem coincide com a fundação da companhia Valve. No ano de 1996, logo após a Valve ser fundada como uma companhia LLC (Limited Liability Company, que literalmente significa "Sociedade de Responsabilidade Limitada") em Kirkland, Washington e terem pessoalmente[1] licenciado o código-fonte de Quake da id Software, criadora de clássicos como Wolfenstein e Doom, eles deram início ao desenvolvimento simultâneo de dois títulos exclusivos: Quiver e Prospero. Infelizmente, embora não tenham visto a luz do dia, os seus conceitos e as suas ideias foram reaproveitadas em Half-Life e possivelmente em Ricochet.[2]

Parcelas do código fonte original de Quake foram modificadas e substituídas eventualmente. Durante o período da produção de Half-Life (em meados de 1997), 25% foi o que tinha restado do código original[3]. De acordo com o desenvolvedor Chris Bokitch, o sistema de inteligência artificial (IA ou "AI", de "artificial intelligence") do GoldSrc foi escrito a partir do zero.[4] O motor também incorpora códigos de outros jogos da série Quake, incluindo Quake World e Quake II, porém, são minimamente significantes em comparação ao uso do código fonte do Quake original.

Em 1997, a Valve contratou Ben Morris e adquiriu Worldcraft, uma ferramenta de criação de mapas personalizados para Quake.[5] Mais tarde, a ferramenta Worldcraft foi rebatizada de Valve Hammer Editor (mais conhecido pela abreviatura "VHE" ou simplesmente referido por "Hammer"), tornando-se a ferramenta oficial de criação de mapas para jogos do GoldSrc.

Antes da criação do seu sucessor, Source, não possuía nenhum nome ou sequer uma alcunha oficial, sendo referido diversas vezes apenas pelo título genérico "Half-Life Engine" por ser, basicamente, o próprio motor de jogo de Half-Life. Em 1 de setembro de 2005, Eric Johnson, ao responder à pergunta do utilizador "RJO" em sua página de discussão, explica a origem do nome "GoldSrc":

Em 2013, a Valve lança Half-Life e Counter-Strike 1.6 para OS X e Linux. Como resultado, o resto de seus títulos clássicos se encontram atualmente disponíveis para as duas plataformas por meio da plataforma oficial Steam.

TecnicidadesEditar

Paridades com Quake Engine[7]Editar

  • O formato BSP usado no GoldSrc é similar ao do Quake. Inclusive, a extensão é a mesma: ".bsp/.BSP". De longe, as diferenças mais notáveis estão em como ambos lidam diferentemente com a iluminação e carregamento de texturas[8]. Ademais, o BSP de GoldSrc e Quake funcionam de uma forma tão similar que chegam até a ser compatíveis em diversas ocasiões, pelo menos unilateral e parcialmente. As primeiras versões do Valve Hammer Editor, por exemplo, podiam ser utilizadas para editar mapas de Quake e Quake II. Com pequenas alterações, as versões que originalmente não oferecem suporte ao Quake podem ser finalmente utilizadas para criar mapas para Quake[9].
  • Os mapas não compilados do GoldSrc usam o formato MAP (igualmente com a extensão ".map/.MAP"), que também é usado pelos mapas não compilados do Quake[10].
  • Tanto GoldSrc como Quake usam o formato WAD (extensão ".wad/.WAD") para guardar e carregar texturas. A única diferença está no fato de que, no GoldSrc, cada textura tem a sua própria paleta de cores, ao invés de compartilhar de uma única paleta de cores. Outras características do GoldSrc incluem a capacidade de carregar múltiplos WAD (enquanto o Quake usa apenas o gfx.wad e o cabeçalho de arquivo) e ter suporte ao WAD3[11] (uma versão atualizada do WAD2 usado pelo Quake). O WAD2 (e consequentemente o WAD3), por sua vez, são baseados no formato WAD utilizado em Doom. Além disso, o kit de desenvolvimento de Half-Life (Half-Life SDK) inclui uma ferramenta de criar arquivos WAD chamada Qlumpy, que pode ser utilizada também para criar arquivos WAD para Quake.
  • Ambos GoldSrc e Quake usam arquivos PAK (".pak/.PAK") para armazenar dados, como níveis e modelos. Embora, no caso do GoldSrc, não seja obrigatório ou necessário o uso de um arquivo PAK, podendo os modelos e níveis ser armazenados normalmente em pastas como "/models" e "/maps".
  • GoldSrc e Quake apenas compartilham do formato MDL (".mdl/.MDL") para os seus modelos, sendo na prática mutualmente incompatíveis em todos os aspectos.
  • Ambos usam o formato Quake C (".qc/.QC") para a compilação de modelos, embora no GoldSrc seja muito mais simplificado.

Acréscimos[2][12]Editar

  • NPCs inimigos podem agrupar-se ou agir diferentemente quando estão em bando. Por exemplo, se bem agrupados, os houndeyes causam danos exponenciais ao jogador em Half-Life.
  • Os modelos do GoldSrc possuem esqueletos de animação (rigging), recurso totalmente ausente no Quake, cujos modelos são animados por vértices.
  • O GoldSrc é capaz de reproduzir uma maior quantidade de polígonos em relação ao Quake. Um único modelo no GoldSrc (isto é, se não for subdividido em 32 submodelos ou em 128 submodelos[13] no caso da versão modificada usada pelo mod Sven Co-op) pode ter até 2048 vértices (ou 4080 triângulos), 2048 normais, múltiplas texturas, 128 ossos (rigging), 8 controladores de ossos, 4 anexos de ossos e 512 quadros-chave (keyframes) por cada uma das 256 sequências (animações reproduzidas a cada ação do jogador).
  • Suporte ao mecanismo de scripts de sequência, sendo possível a criação de elementos não lineares e cutscenes (cenas), que podem ser tanto ativas (cutscenes in-game) ou passivas (cenas interativas).
  • Suporte à texturização com níveis de transparência, útil para modelos de vidro e cristal dentro do jogo.

Obsolescências e desvantagensEditar

Por ser um motor de jogo bem antigo e feito para ser iniciado em computadores modestos de sua época, o GoldSrc conta com uma série de desvantagens em comparação ao seu sucessor Source Engine. Eis os contrapontos:

  • Limite pequeno de renderização de polígonos e resolução de texturas para os padrões de hoje. Modelos só podem ter até teoricamente 65.536 vértices (ou 130.560 triângulos) e texturas na resolução 256X256 (512x512 se configurado por meio de variáveis no console) com a paleta de 256 cores na versão original do GoldSrc. Embora no Sven Co-op os modelos obedecem limites ligeiramente maiores (como texturas em 1024x1024[13] e o incrível limite teórico de 262.144 vértices/522.240 triângulos), graças ao acesso ao código-fonte oficial do GoldSrc.
  • Contudo, graças a uma possível falha de design ou à arquitetura já obsoleta do GoldSrc, dependendo do computador ou da otimização gráfica implementada, quanto mais próximo dos limites estiver o modelo, maiores serão os gargalos como queda na taxa de quadros por segundos (slowdowns).
  • Não suporta mapas normais (normal maps), mapas especulares (specular maps) ou mapas de opacidade/alfa (opacity/alpha maps). Efeitos de transparência bastante pobres.
  • Ausência de simulações físicas avançadas.
  • Os esqueletos de animação dos modelos devem possuir apenas 1 peso de influência por vértice, ocasionando a ausência de deformações suaves na malha. Contudo, existe uma maneira de simulá-las apenas se utilizando o truque dos ossos entrepostos em articulações como o joelho e o cotovelo, controlando seções da malha em cadeia.
  • O limite de tamanho dos mapas é bem pequeno. Porém, mods como o Half-Life Rally contornam de uma maneira bem peculiar, tornando os modelos ainda menores que o padrão.

Suporte de títulosEditar

Série Half-LifeEditar

 Ver artigo principal: Half-Life (série)

Half-Life (lançado em 19 de novembro de 1998) foi o jogo responsável por marcar o início da trajetória da Valve e por apresentar o GoldSrc. Tornou-se um sucesso de vendas e de crítica, recebendo notas altíssimas[14] e ganhando mais de cinquenta premiações de Jogo do Ano graças a sua história e narrativa sublimes, jogabilidade a frente de seu tempo e gráficos considerados avançados para a sua época[15]. Devido ao seu estrondoso sucesso, acabou por receber duas expansões exclusivas desenvolvidas pela Gearbox Software e publicadas pela finada Sierra Studios, sendo mais tarde distribuídas pela própria Valve por meio da sua plataforma de distribuição digital oficial, Steam: Half-Life: Opposing Force (lançado em 19 de novembro de 1999 nos Estados Unidos e 29 de novembro do mesmo ano na Europa) e Half-Life: Blue Shift (lançado em 12 de junho de 2001).

Deathmatch Classic, focado exclusivamente no modo competitivo online, foi lançado em 7 de junho de 2001.

Half-Life: Decay, um spin-off não canônico (possivelmente, já que a Valve nunca definiu a canonicidade da franquia) com foco no multiplayer, foi lançado em 14 de novembro de 2001 somente para o PlayStation 2, após a estreia de Half-Life para o mesmo em 11 de novembro. No entanto, uma versão não oficial do jogo foi lançada por desenvolvedores independentes em 2008 para PC (Windows). Half-Life: Decay é o marco final da série no GoldSrc.

Outros títulos da ValveEditar

A Valve desenvolveu vários títulos usando o GoldSrc entre o final da década de 1990 e o início da década de 2000. Títulos como Counter-Strike e Team Fortress Classic eram, na verdade, modificações (ou mods) feitas por fãs. Team Fortress Classic, por exemplo, lançado pela Valve em 7 de abril de 1999, tem como os seus desenvolvedores os próprios responsáveis do popular mod para o Quake chamado Team Fortress, que depois participaram no desenvolvimento de Team Fortress 2.

Counter-Strike, após várias versões, recebeu uma sequência: Counter-Strike: Condition Zero, lançado em 2004, e no mesmo ano, foi lançado o seu sucessor, Counter-Strike: Source, dessa vez utilizando o Source. Counter-Strike Neo foi lançado pela Namco para máquinas de fliperama (arcade) em 2003. Mais dois jogos da série que vieram depois do Source ainda usam o GoldSrc, mas não foram desenvolvidos pela Valve. São eles: Counter-Strike Online e Counter-Strike Nexon: Zombies (lançados, respectivamente, em 2008 e 2014).

Ricochet, jogo com elementos de plataforma, foi lançado em 1 de novembro de 2000.

Day of Defeat, jogo ambientado em batalhas militares da Segunda Guerra Mundial, foi lançado em 1 de maio de 2003. Embora não tenha recebido sequência, foi lançada a versão atualizada, feita no Source: Day of Defeat: Source, com gráficos e efeitos mais realistas, mais mapas e modos de jogo.

Títulos e modificações de terceirosEditar

GoldSrc também foi usado para o desenvolvimento de títulos e mods por outras companhias de jogos e fãs com pouca ou nenhuma participação da Valve. Rewolf Software usou o GoldSrc para desenvolver Gunman Chronicles (lançado em 2000). A versão para PC de James Bond 007: Nightfire (lançado em 2002) foi desenvolvida pela Gearbox Software usando uma versão modificada do GoldSrc. Cry of Fear e Sven Co-op, originalmente mods feitos exclusivamente por fãs, estão disponíveis gratuitamente na Steam como lançamentos únicos e/ou independentes (standalones), sem necessitarem do uso da instalação do jogo base.

LegadoEditar

Source EngineEditar

 Ver artigos principais: Source Engine e Source 2

O Source Engine foi desenvolvido paralelamente, tendo-se originado da primeira separação do código-fonte de Half-Life em dois (lê-se bifurcação ou ramificação).

O seu desenvolvimento tem sido marcado pela mistura de tecnologias proprietárias middleware com códigos originalmente desenvolvidos pelo próprio estúdio (in-house). Por exemplo, o Source Engine usa as tecnologias do Bink Video, MP3 e Havok para, respectivamente, reprodução de vídeo, de áudio e simulação de interações físicas.

Posteriormente, veio a ser substituído pelo Source 2 em 2015, com o lançamento de uma atualização do Dota 2.

Xash3DEditar

Xash3D é uma versão não-oficial lançada em 2011 pela Xash XT Group, uma equipe de programadores russos independentes. Foi construído por meio da engenharia reversa do próprio GoldSrc. Segundo os seus desenvolvedores, tem por finalidade superar as capacidades e aumentar as funcionalidades do GoldSrc, que já se encontram atualmente obsoletas e desatualizadas[16]. Graças ao Xash3D, um port do Half-Life foi feito para os sistemas Android e Pandora em 26 de abril de 2015[17]. Em 2016, um programador chamado Alibek Omarov criou um port do Counter-Strike 1.6 para Android.

O seu uso não é incentivado pela Valve, visto que não obedece os termos de uso da engine original[18] e supostamente usa parcelas de código-fonte de origem ilegal[19].

Ver tambémEditar

Referências

  1. Romero, John (2015). «Has John Romero ever met or worked with Gabe Newell? If so, are there any details about him or John meeting with him he wants to share with us?». Quora. Consultado em 3 de janeiro de 2021 
  2. a b «The History of GoldSrc». Sourcemodding. Consultado em 3 de janeiro de 2021. Cópia arquivada em 24 de novembro de 2020 
  3. Newell, Gabe (1999). «Half Life: Interview With Gabe Newell». GameSpot UK. Consultado em 2 de janeiro de 2021. Arquivado do original em 23 de julho de 2001 
  4. Bokitch, Chris (1 de agosto de 2002). «Half-Life's Code Basis». Valve Software. Consultado em 2 de janeiro de 2021. Arquivado do original em 1 de março de 2007 
  5. «Valve Press Release». Valve. Consultado em 2 de janeiro de 2021. Cópia arquivada em 22 de fevereiro de 1999 
  6. Johnson, Erik (1 de setembro de 2005). «Talk:Erik Johnson». Valve Developer Community. Consultado em 2 de janeiro de 2021. Cópia arquivada em 20 de março de 2007 
  7. «Combine Overwiki - GoldSrc». Combine Overwiki. 3 de maio de 2020. Consultado em 3 de janeiro de 2021. Cópia arquivada em 3 de janeiro de 2021 
  8. «Half Life .Bsp Format». GameDev.net. 3 de outubro de 2007. Consultado em 3 de janeiro de 2021 
  9. «QuakeAdapter for Worldcraft 3.3». QuakeOne. 28 de julho de 2009. Consultado em 3 de janeiro de 2021. Arquivado do original em 18 de junho de 2016 
  10. «Quake Specs v3.4 - Section 1: MAP Information». Gamers.org. 1999. Consultado em 3 de janeiro de 2021. Cópia arquivada em 1 de janeiro de 2020 
  11. «Gimp-developer Quake / Half-Life texture wad support». berkeley.edu. 20 de janeiro de 2009. Consultado em 3 de janeiro de 2021. Arquivado do original em 5 de janeiro de 2010 
  12. «GoldSrc Model Export Tutorial». The303. 2016. Consultado em 3 de janeiro de 2021. Cópia arquivada em 3 de janeiro de 2021 
  13. a b «Dropping support for Windows XP/2003, Windows Vista/2008, and Linux GLIBC <2.24 as of Sven Co-op 5.18». Sven Co-op: Pleasing Taste, Some Monsterism. 11 de dezembro de 2018. Consultado em 3 de janeiro de 2021. Cópia arquivada em 26 de dezembro de 2018 
  14. «Half-Life Critic Reviews for PC». Metacritic. Vários Autores. Consultado em 4 de janeiro de 2021 
  15. Glanville, Phil (1998). «Half-Life Review». gamesdomain.com. Consultado em 4 de janeiro de 2021. Arquivado do original em 10 de janeiro de 2004 
  16. «Xash3D Engine - Mod DB». 19 de junho de 2011. Consultado em 2 de janeiro de 2021 
  17. «Release - Xash3D - Half Life». 26 de abril de 2015. Consultado em 2 de janeiro de 2021. Cópia arquivada em 1 de setembro de 2017 
  18. «Valve may open-source GoldSrc, their first game engine». 16 de abril de 2019. Consultado em 2 de janeiro de 2021. Cópia arquivada em 2 de janeiro de 2021