OpenLLM-France/wikimedia huggingface dataset:
# UnrealEd/Propriedades dos brushes móveis

| AI* |
| AI* | AutoDoor | ??? |
| AI* | NoAIRelevance | ??? |
| Events |
| Events | Event | Quando o brush móvel chegar no seu último keyframe, ativa todos os outros atores que tiverem esse mesmo nome |
| Events | Tag | O brush é ativado por outro ator que apontar para esse nome |
| Movement |
| Movement | AttachTag | ?????????????????????????????????????????????????????????????????? |
| Movement | Bounce | ??? |
| Movement | FixedRotationDir | ??? |
| Movement | RotatedToDesired | ??? |
| Movement | Buoyance | ??? |
| Movement | DesiredRotation | ??? |
| Movement | Location | ??? |
| Movement | Mass | ??? |
| Movement | Physics | ??? |
| Movement | Rotation | ??? |
| Movement | RotationRate | ??? |
| Movement | Velocity | ??? |
| Movement | HardAttach* | ??? |
| Movement | IgnoreEncroachers* | ??? |
| Mover |
| Mover | DamageTriggered | O brush é ativado por dano |
| Mover | DynamicLightMover | O brush acompanha as variações de luz por onde ele passa |
| Mover | BrushRayTraceKey | ??? |
| Mover | Slave | ??? |
| Mover | TriggerOnceOnly | O brush é ativado uma vez só e depois pára, não pode mais ser ativado |
| Mover | BumpEvent | ??? |
| Mover | BumpType | ??? |
| Mover | UseTriggered | ??? |
| Mover | DamageThreshold | Quantidade de dano para ativar o brush |
| Mover | DelayTime | Tempo em segundos antes do brush começar a se mover |
| Mover | EncroachDamage | Quantidade de dano causada pelo brush quando ele bate em alguma coisa no meio do caminho |
| Mover | MoverglideType | ??? |
| Mover | MoveTime | Tempo em segundos que o brush leva para completar o seu movimento |
| Mover | NumKeys | Número de keyframes do movimento |
| Mover | OtherTime | Tempo em segundos de ??? |
| Mover | PlayerBumpEvent | ??? |
| Mover | ReturnGroup | ??? |
| Mover | StayOpenTime | Tempo em segundos que o brush fica parado no último keyframe antes de voltar para o começo |
| Mover | WorldRayTraceKey | ??? |
| Mover | AntiPortalTag* | ??? |
| Mover | UseShortestRotation* | ??? |
| MoverEvents* |
| MoverEvents* | Opened / Close Event, Closing / Opening Event, LoopEvent | Define diferentes eventos para o mover disparar quando ele começa a se mover, termina de mover e enquanto ele se move (além do evento que configurado no campo Events) |
| MoverSounds |
| MoverSounds | Opened / Close Sound, Closing / Opening Sound, LoopSound | Define os sons que o mover toca quando ele começa a se mover, termina de mover e enquanto ele se move |
| Object |
| Object | Initial State | BumpOpenTimed o brush é ativado por toque; StandOpenTimed o brush é ativado quando um jogador pisa nele; TriggerOpenTimed o brush é ativado por um interruptor. BumpButton ??? TriggerToggle ??? TriggerControl ??? TriggerPound ??? |
* Disponível apenas no UnrealEd 3
# UnrealEd/Propriedades de luzes

| Corona* | CoronaRotation | ??? |
| Corona* | CoronaRotationOffset | ??? |
| Corona* | MaxCoronaSize | ??? |
| Corona* | MinCoronaSize | ??? |
| Corona* | UseOwnFinalBlend | ??? |
| Display |
| Display | Skin | Textura para ser usada com a opção corona ativada |
| LightColor | Hue / Saturation / Brightness | As cores estão no sistema HLS. Aceita valores de 0 até 255 para o UnrealEd 2 e até 65535 para UnrealEd 3 |
| Lightning | ActorShadows | (sem utilidade?) |
| Lightning | Corona | Ativa o efeito de corona |
| Lightning | LensFlare | (sem utilidade?) |
| Lightning | SpecialLit | A luz ilumina apenas superfícies marcadas com special lit |
| Lightning | LightCone | Controla a abertura dos raios de luz |
| Lightning | LightEffect | Efeitos de luz dinâmica |
| Lightning | LightPeriod | ??? |
| Lightning | LightPhase | ??? |
| Lightning | LightRadius | Raio de alcance da luz. Aceita valores de 0 a 255 para o UnrealEd 2 e até 65535 para o UnrealEd 3 |
| Lightning | LightType | Diferentes tipos de luzes piscantes e luzes que trocam de cor |
| Lightning | VolumeBrightness | ??? |
| Lightning | VolumeFog | Densidade da neblina emitida pela luz |
| Lightning | VolumeRadius | Volume da neblina |
* Disponível apenas no UnrealEd 3
# UnrealEd/Propriedades de superfícies

| Invisible | Face invisível e não renderizada na tela |
| No Smooth** | (sem utilidade?) |
| Masked** | Textura com partes invisíveis |
| Special Poly** | (sem utilidade?) |
| Translucent** | Transparente |
| Small Wavy** | Faz a textura se movimentar lentamente |
| Force View Zone** | (sem utilidade?) |
| Dirty Shadows** | ??? |
| Modulated** | Transparência invertida (as cores mais claras passam a ser menos transparentes, enquanto as mais escuras passam ser mais transparentes) |
| Bright Corners** | Altera o cálculo do lightmap, deixando as bordas da superfície mais claras |
| Fake Backdrop | Mostra o céu no lugar da textura |
| Special Lit | Só recebe luz de luzes marcadas com a opção special lit |
| Two Sided | Textura visível dos dois lados |
| No Bounds Reject** | (sem utilidade?) |
| U-Pan / V-Pan** | Faz a textura se movimentar verticalmente ou horizontalmente |
| Unilit | A textura não recebe luz e fica com iluminação máxima padrão |
| Portal | Usado em portais |
| High / Low Shadow Detail** | As sombras nesta superfície são de alta ou baixa resolução |
| Mirror | Espelho |
| Anti-portal* | Usado em anti-portais |
* Disponível apenas no UnrealEd 3
** Disponível apenas no UnrealEd 2
# UnrealEd/Terrenos mapas de altitude

Este método só está disponível no UnrealEd 3.
Antes de fazer um terreno com mapas de altitude é preciso criar uma zona onde o terreno irá aparecer, dentro da zona se coloca um zone info. Abra as propriedades do zone info e ative a opção Terrain Zone. Feito isso entre no modo de edição de terrenos (parar fechar a janela de edição de terrenos basta sair do modo de edição de terrenos, mude para o modo câmera normal).
Agora, com a janela de edição de terrenos aberta, vá em novo e crie um novo terreno, o valor padrão 256 x 256 pode ser usado, mas você pode diminuir ou aumentar se quiser aumentar ou diminuir o detalhamento do terreno, depende do tamanho do terreno que você quer fazer. No campo Name dê um nome único para o terreno. Pode dar OK agora. O seu terreno já está visível no modo de renderização wireframe, mas ainda não tem textura.
Abra o browser de texturas e escolha uma textura qualquer. Agora volte ao modo de edição de terrenos, vá em layers, selecione a primeira da lista e clique em novo. Dê um nome único como você fez com o terreno e clique OK.
Volte na aba ferramentas e selecione o terreno na janelinha heightmap info (o seu terreno deve ficar selecionado com uma cor mais clara lá). Agora na lista escolha painting e mexa nas opções para mudar o tamanho do pincel. Agora para levantar ou abaixar o terreno criando montanhas ou depressões use ctrl + botão direito ou esquerdo do mouse. Tente as outras ferramentas para criar vales, adicionar chiado ao mapa de altitude e outros efeitos.

## Túneis e pontes

O terreno em si apenas pode ter montanhas altas ou vales baixos. Se quiser cavar túneis e passagens por debaixo do terreno, adicione um ou mais brushes sólidos "por baixo do terreno" e subtraia a passagem subterrânea por dentro do(s) brushe(s) sólidos. Para fazer pontes rochosas, rochas, ranhuras e entradas de cavernas, grutas e vales você também precisa de meshes estáticas bem posicionadas para garantir um terreno bastante natural.
# UnrealEd/Propriedades de som

| Sound |
| Sound | Ambient Sound | Som a ser tocado |
| Sound | Sound Pitch | efeito doppler? |
| Sound | Sound Radius | Raio de alcance do som (ignora toda geometria do mapa) |
| Sound | Sound Volume | Volume |
| Sound | Transient Sound Radius / Volume | ??? |
| Sound | FullVolume* | ??? |
| Sound | Sound Occlusion* | Faz o som ser bloqueado pela geometria e/ou static meshes do mapa |
* Disponível apenas no UnrealEd 3
# UnrealEd/Propriedades de texturas

* http://www.birrabrothers.com/drac/ued2_t023.html
* http://udn.epicgames.com/Two/UnrealTexturing
* http://www.planetunreal.com/architectonic/tutorials/first_level_part3.html#TextureAlign
* http://wiki.beyondunreal.com/wiki/Texture_Topics
# UnrealEd/Requisitos mínimos

O UnrealEd 2 não precisa de aceleração 3D para rodar, toda visualização é feita em modo de renderização via software. Para melhores resultados é bom ter processador de 733mhz, 256MB de RAM e vídeo com pelo menos 16MB.
O UnrealEd 3 precisa de aceleração Direct3D em modo janela para rodar. Se o editor não abrir, mostrando um erro de "falta de dispositivo compatível com D3D", significa que a sua placa de vídeo não é compatível com o editor. Para melhores resultados é bom ter processador de 1ghz, 512MB de RAM e vídeo com pelo menos 64MB.
PS: É possível que o editor rode com menos, mas um processador muito lento prejudica muito a construção dos mapas, muito pouca RAM também, e uma placa de vídeo muito antiga ou limitada não deixa usar todos os recursos de luzes e texturas disponíveis.
# UnrealEd/Propriedades de interruptores

Interruptor básico :
| Collision |
| Collision | CollisionHeight / Radius | Define a altura e o raio de colisão de um cilindro imaginário (a unidade é a mesma da grade do mapa) |
| Events |
| Events | Event | Coloque aqui o mesmo nome do Tag do outro ator que você quer ativar. |
| Events | Tag | Coloque aqui um nome se quiser que outro ator ative este interruptor. |
| Object |
| Object | Initial State | NormalTrigger: Interruptor comum; OtherTriggerTurnsOn / off: Outro interruptor ativa / desativa este interruptor (somente ativa ou somente desativa); OtherTriggerToggle: Outro interruptor controla este interruptor. |
| Trigger |
| Trigger | InitiallyActive | Inicialmente ativo |
| Trigger | TriggerOnceOnly | Ativa uma única vez e não funciona mais |
| Trigger | ClassProximityType | Especifica uma classe de aproximação para ativar o interruptor |
| Trigger | DamageTheshold | Quantidade de dano para ativar o interruptor (o dano tem que ser contínuo, sem pausas) |
| Trigger | Message | Mostra uma mensagem quando o interruptor é ativado |
| Trigger | RepeatedTriggerTime | ??? |
| Trigger | RetriggerDelay | Tempo de espera em segundos antes do interruptor poder ser ativado novamente |
| Trigger | TriggerType | PlayerProximity: interruptor ativado quando o jogador entra no raio de colisão; ClassProximity: ativado quando a classe especificada entra no raio de colisão; Shoot: ativado quando dano suficiente é causado no interruptor (também leva em conta o raio de colisão). |
# GtkRadiant/Propriedades de luzes

* http://qworkshop3.planetquake.gamespy.com/tutorials/
* http://bubba.planetquake.gamespy.com/mapping.html
* http://fnf.20m.com/tutorials.html
* http://icculus.org/neverball/mapping/
* http://www.planetquake.com/q3empire/data/articles.htm
* http://www.nibsworld.com/rtcw/tutorial_getting_started.shtml
* http://www.planetcallofduty.com/addon/editing/
* http://www.wolfensteinx.com/surface/tutorials.html
* http://www.quake3bits.com/htm/tutorials.htm
* http://web.archive.org/web/20010610041616/http://www.claudec.com/the_tutorial_Index/q3a/tutorials.shtml Essa lista de links é velha, muitos links estão quebrados.
* http://www.planetwolfenstein.com/tramdesign/resources.html
* http://www.gamedesign.net/node/168 Doom 3
* http://www.gamedesign.net/node/1147 Quake 4
* http://www.modsonline.com/Tutorials-list-7.html Doom 3, Quake 4, Call of Duty 1 e 2, Soldier of Fortune 1 e 2.
* http://www.iddevnet.com/ Quake 4 e Doom 3.
Observação: O funcionamento do GtkRadiant é o mesmo para todos os jogos, algumas entidades de um jogo não existem em outro ou tem mais ou menos propriedades.
# GtkRadiant/Compilação de mapas

* Shaderlab
* Q3map2Build 1/4 (em inglês)
# GtkRadiant/Shaders para Quake 4 e Doom 3

As texturas não são mais feitas como um simples arquivo, agora elas são materiais complexos feitos de várias camadas.
O uso é mais ou menos como no Q3, você cria as texturas e na pasta materials você salva o script. Única diferença é que agora você tem que obrigatoriamente usar as camadas specular, diffuse e normal nas texturas, e os scripts não são mais salvos com a extensão .shader mas .mtr
* How to make the Shader System work for you, a basic guide
* Making Doom 3 Mods: Tables & Materials
# GtkRadiant/Terrenos com mapas de altura

* http://www.modsonline.com/Tutorials-read-91.html
* http://www.planetpointy.co.uk/editing/tutorials/easygen1.shtml
* http://s15.invisionfree.com/sof2/index.php?showtopic=19
* http://www.wolfproject.net/modules.php?name=Tutorials&tut=easygen
* http://www.webalice.it/bancala/
# GtkRadiant/Configuração
## Teclas de atalho

Para mudá-las no Windows, vá na pasta \Documentos e configurações (ou documents and settings)\seu nome de usuário\dados de aplicativos\RadiantSettings\1.5.0\nome do jogo e abra o arquivo shortcuts.ini

## Usando o editor com conteúdo e motor de código aberto

É possível usar o GtkRadiant para fazer mapas sem precisar comprar um jogo compatível, vou usar um exemplo usando o motor darkplaces mais o pacote openquartz.
* Baixe o Openquartz
* Baixe o DP
* Um front end para compilar mapas sem precisa digitar comandos
Extraia o Openquartz em qualquer lugar, na mesma pasta extraia o DP. Instale o GtkRadiant com suporte a Quake 3. Abra a pasta onde você instalou o GTK e dentro da pasta games abra o arquivo q3.game (use o bloco de notas). Em basegame="baseq3" mude para basegame="ID1". No caminho que indica o motor win32 ponha o caminho de onde você instalou o Openquartz junto com o DP. Pode salvar agora.
Dentro da pasta onde você instalou o Openquartz + DP existe uma pasta ID1. Dentro dela crie as pastas Textures e Scripts. Dentro da pasta textures você cria pastas para organizar as texturas. Dentro da pasta scripts você cria um arquivo shaderlist.txt (nesta pasta ficam os shaders). No arquivo shaderlist você lista os shaders (shader1, shader2, shader3, etc) em linhas separadas.
Uma última configuração. O Openquartz vem com entidades no formato do Quake 1, mas o editor acabou de ser configurado para Quake 3, você vai reparar que todas as entidades para fazer mapas são entidades do Q3, por enquanto use só o player start (ignore o deathmatch) e o light (ignore o light junior). Mais informações sobre como adicionar entidades mais tarde.
Umas guia rápido para fazer um mapa simples e jogá-lo. Faça seu mapa, adicione luzes, adicione um player start, salve na pasta ID1/maps dentro do DP. Instale o Q3map2build, configure os caminhos do q3map2.exe para onde você instalou o gtk, a pasta do DP e o seu mapa deverá aparecer na lista. Deixe as opções marcadas em normal mesmo e compile. Abra o DP, aperte ESC para abrir o console, digite map e o nome do mapa.

## Doom 3

Aparentemente as pastas são organizadas da mesma maneira do Q3 (a pasta base é a base), a única diferença é que a pasta scripts agora se chama materials.
Requisitos: O Doom 3 pede requisitos mínimos muito maiores do que os do Q3, DP e similares, é extremamente recomendável um processador de pelo menos 1,5ghz, pelo menos 512MB de RAM e pelo menos 64MB (128MB é melhor) de vídeo. Os mapas do Doom 3 obrigatoriamente precisam de texturas com specular e diffuse maps, sem elas o Doom 3 fica completamente escuro, se a sua placa de vídeo não consegue desempenho aceitável para usar os specular e diffuse maps não será possível fazer mapas no D3.
# GtkRadiant/Criando volumes

Algumas coisas como água, lava e volumes de colisão são criados usando brushes. Você cria um brush comum e coloca uma textura com propriedades definidas num shader script, assim um brush com textura de água em todas as faces vira um volume de água, um brush com textura clip vira um volume de colisão, assim por diante.
O volume em si não tem um grupo de variáveis editáveis, para criar um volume de lava que queima o jogador por exemplo, você precisa usar uma entidade colocada no mesmo lugar do volume para define a propriedade do dano. Os shader scripts apenas definem o volume, não tem o poder de alterar as propriedades físicas dele.
# GtkRadiant/Exemplos de shaders

Um shader que define água / líquidos é mais ou menos assim:
Um shader que define uma caixa de céu é mais ou menos assim:
Observação: Esse shader tem um funcionamento um pouco complicado. Ele também não é um portal sky (também chamado de céu 3D) que é feito com uma entidade especial e que nem todos os jogos suportam. Primeiro você precisa das texturas de uma caixa de céu, 6 no total. De acordo com a face você nomeia elas como abcd_bk, abcd_ft, abcd_lf, abcd_rt, abcd_up, abcd_dn (back, front, left, right, up e down). Essas texturas você coloca na pasta indicada na linha skyparms. Você precisa de mais uma textura adicional para indicar o céu dentro do editor e no mapa, pode ser uma das 6 do próprio céu (o nome dela tem que ser o mesmo usado nas outras 6). Essa textura adicional é a que você indica no shader. Agora no mapa o céu aparecerá em todas as superfícies que você usar essa última textura.
# GtkRadiant/Manual de shaders
## Texturas

A maioria dos jogos que usam o GtkRadiant como editor de mapas suportam texturas JPG ou TGA de 32bits ou 24bits, não suportam TGA 8bits. O tamanho das texturas deve ser sempre em potências de 2 (2, 4, 16, 32, 64, 128, 256, 512, assim por diante). Não é recomendável usar tamanhos maiores do que 512 x 512 porque elas ocupam muita memória de vídeo, ou RAM do seu sistema no caso do editor. As texturas JPG não devem ser progressivas.
As texturas JPG ocupam menos espaço, mas não economizam memória porque JPG é compressão de software. O jogo tem que suportar compressão de hardware como texturas DDS (Direct Draw Surface) para ocupar menos memória.

## Definição de shader

Um script feito no bloco de notas que serve pra defini várias coisas nas texturas. É um arquivo de texto com extensão trocada pra shader. Dá pra defini um monte de propriedades e efeitos especiais. Se a textura é comum sem nada de especial você não precisa disso.

## Manual de shaders

* Shaderlab
* Quake III Arena Shader Manual
Todos os nomes que você usar nos nomes das texturas, pastas e nos shaders devem ser em letras minúsculas pra evitar confusão. Os shaders são sensíveis a letras minúsculas e maiúsculas.
* Quake III Arena
* Q3Map2:Shader manual
# Internet/Introdução

A internet é uma rede mundial de computadores que foi criada originalmente pela agência governamental americana ARPA (Advanced Research Projects Agency - Agência de Projetos de Pesquisa Avançada) que estava mais interessada em projetos capazes de sobreviver a uma guerra nuclear do que em desenvolver outra coisa de útil para a população mundial.
Inicialmente a rede era conhecida como ARPANET, e o governo tinha a intenção de que ela fosse uma rede de computadores que permitisse a comunicação entre as agências governamentais e certos centros educacionais sobreviventes a uma eventual explosão atômica.
# Internet/Prefácio

* Este trabalho é dirigido às pessoas que já estão familiarizadas com o uso da internet e que desejam saber como ela funciona. Este trabalho não tem como alvo programadores ou outros profissionais que desenvolvem tecnologia para a internet, mas aquelas pessoas ou profissionais que por alguma razão precisam ter um conhecimento melhor de como a internet funciona.
* Quando nós mencionamos tecnologia nós não queremos dizer apenas software e hardware como também incluímos os componentes humanos que fazem parte de todo o conjunto de sistemas que forma a internet.
# Internet/Roteamento

Roteamento consiste em um conjunto de mecanismos para viabilizar o alcance entre redes distintas. Isso é feito através de protocolos de roteamento que tem como objetivo principal a criação de rotas de encaminhamento de pacotes entre as redes que desejam comunicar-se entre si.
# Internet/Web

A World Wide Web — "a Web" ou "WWW" para encurtar — ("rede do tamanho do mundo", traduzindo literalmente) é um sistema de publicação, indexação e de recuperação de informações codificadas em forma de páginas que utilizam a linguagem HTML. Estas páginas são identificadas por um endereço único denominado Uniform Resource Identifier (URI).
A Web pode ser vista como um enorme conjunto de páginas ligadas por meio de apontadores, constituídos por URIs, para outras páginas. Muitas vezes as pessoas confundem internet com a web que é um serviço, operando sobre a internet, para a transferência de páginas codificadas.
# Internet/Newsgroups

Antes da web, dos navegadores e antes do e-mail, as comunicações on-line consistiam em postar mensagens de texto em quadros de avisos eletrônicos, nos quais outras pessoas podiam ler as mensagem e respondê-las. A Usenet começou como um grupo desses quadros de avisos (agora chamados fóruns ou grupos de notícias) criados em 1979 por Steve Bellovin, Jim Ellis, Tom Truscott e Steve Daniel na Duke University. Com o passar do tempo, o número desses grupos de notícias cresceu muito, sendo hospedados no mundo inteiro e abrangendo todos os assuntos imagináveis sobre os quais as pessoas conversam.
Embora informações incrivelmente valiosas estivessem disponíveis nos grupos de notícias, a localização de tais informações exigia uma série de acrobacias tecnológicas. Uma pessoa iniciava um assunto fazendo uma postagem em um quadro de avisos. Outra pessoa respondia. Essa postagem inicial e a resposta constituíam então um "thread" sobre o assunto. O thread crescia até incluir dezenas ou até mesmo centenas de pessoas respondendo à primeira postagem ou a qualquer outra postagem subsequente. Novos threads eram criados a partir de outros threads, como ramificações da discussão original. Pense nessa primeira postagem como uma célula simples, dividindo-se cada vez mais, crescendo e se transformando em progressão geométrica desenfreada. O resultado era algo digno de um filme de terror. Encontrar uma informação específica na Usenet era uma tarefa igualmente horrível. Para tornar tudo isso ainda mais complexo, quase todos os servidores de notícias apagavam as mensagens após alguns dias ou, no máximo, após algumas semanas. As mensagens excluídas são excluídas dos fóruns de discussão ativos e não podem mais ser visualizadas ou pesquisadas pelos usuários.
# Internet/Nomes de domínio

DNS (Domain Name Server — ou Servidor de Nomes de Domínio), consiste em um servidor onde é armazenado ligações entre IPs e domínios.
Quando você pede ao seu navegador para chamar um determinado domínio, automaticamente ele acessa o servidor DNS configurado, e encontra o respectivo IP máquina que hospeda aquela página (esse processo não é usado apenas em páginas) e assim se torna possível você acessar sites usando nomes ao invés de números de IP.
Assim, ao colocar um nome de um servidor (ex: pt.wikibooks.org) o servidor DNS retorna o IP do servidor web em questão. O IP é usado para se comunicar com este servidor web para poder acessar suas páginas.
# Internet/Servidor

Servidor é um computador ou conjunto de computadores que fica ligado esperando conexões vindas de outros computadores.
Trata-se de software que servem serviços a softwares clientes, que são os que usam o serviço. Um exemplo simples é o seu navegador, que é um software cliente, que por sua vez recebe páginas de internet de um servidor http, o qual tem a função de fornecê-las.
Os servidores podem ser locais, acessíveis só por computadores de uma rede interna, ou disponíveis na Internet, podendo ser acessados de qualquer computador conectado à Internet.

## Comunicação

A comunicação é feita através de protocolos de Internet e tanto o cliente quanto o servidor devem seguir o protocolo para poderem se entender.
Um exemplo são o navegador e o servidor web, que usam o protocolo HTTP. O navegador é o cliente que faz um pedido a um servidor web usando o protocolo HTTP e o servidor envia a informação em formato de página HTML. O servidor possui em disco documentos texto com formatação do tipo HTML que, ao pedido do cliente, são enviados pela internet/intranet. No caso de documentos dinâmicos (exemplo: PHP, JSP, CGI, etc.), o servidor executa um software interno para gerar a informação em tempo real, mas acaba sempre por enviar todo o seu conteúdo em formato final: HTML pelo protocolo HTTP.

## Conclusão

Os servidores são sem dúvida o motor básico da Internet, que estão 24 horas online recebendo e respondendo conexões. Sem eles, nem este Wikilivro seria escrito.

## Ligações externas

Para obter mais informações sobre servidores web, consulte o site da Apache Server project.