Pergunta

Eu fui um amante de Half-Life por anos. Eu tenho um BS em CS e têm sido informalmente programação desde alta School. Quando eu ainda estava na faculdade eu tentei tornar um programador mod para fun..using o primeiro motor de Half-Life ... não funcionou tão bem. Então eu percebi que depois de tudo o meu grande learrning faculdade :-) eu teria uma ideia mais clara sobre como lidar com este problema e poderia finalmente fazê-lo. Então aqui eu am..finally no java programação mundo dos negócios ... então eu baixei o HL2 SDK e começou a procurar através da estrutura de classes. Eu sinto que eu fiz da última vez eu tentei isso ... atordoado e confuso. Desculpe por toda a terra de volta.

Então, qual é a melhor maneira de aprender sistematicamente a estrutura de código? Eu sei java e sei c ++ .. Eu só não sei o que qualquer uma das classes fazer ... os comentários são poucos e distantes entre si e a documentação parece insuficiente. Qualquer bons approahces? I ** don '** t quero começar meu próprio mod ... Eu só quero talvez ser um programador mod-tempo livre em algum legal MOD um dia ... para manter a diversão na aprendizagem de programação juntamente com o lado comercial.

Foi útil?

Solução

Os comentários são poucos e distantes entre si ea documentação parece insuficiente. Qualquer bons approahces?

Bem-vindo à maravilha que é o SDK Source. Não, ele não está documentado. Experimento, corte, pontos de interrupção de lugar e ver o que acontece se você mudar pedaços de código.

Há um wiki que podem ser úteis em alguns casos, mas ela está cheia no pela comunidade, e não pela Valve, o que significa que você não vai encontrar qualquer documentação real lá, explicações apenas de como modders anterior ter cortado o motor.

Honestamente, é uma porcaria. A única maneira de contornar isso é para mergulhar. Tente conseguir várias mudanças para o jogo e não tenha medo de rasgar o código existente distante. Não vai ser bonito, mas se ele funciona, quem vai reclamar? Seu código é muito horrível, e muito provavelmente, o seu será também.

Outras dicas

Você pode começar no Válvula desenvolvedor Wiki .

Eu acho que a melhor maneira é verificar o código-fonte de um dos alguns mods de código aberto lá fora, Open Source Jail break . Ele irá ajudá-lo, pelo menos, se familiarizar com o código.

Além disso, seus recursos apenas desenvolvedor e fóruns.

Edit:. Plano de Ataque parece grande demais

Além disso:. Este é uma grande lista, incluindo os dois temas gerais e específicos

Eu faço o que faço com qualquer outro sistema vago ... lotes conjunto de pontos de interrupção e começar uma sensação para a estrutura por vê-lo funcionar. Adicionar seus próprios comentários / documentação que você vá. Testar sua compreensão, fazendo pequenas mudanças e veja se você obter os resultados esperados.

Eu trabalhei com o SDK Fonte para um pouco e fez algumas modificações. Realmente você tem que ter uma boa compreensão de C e C ++. O SDK Fonte não é moderno C ++ e é muito mais semelhante a C com aulas que qualquer OOP real.

O SDK é simplesmente formado em que a maior parte do código é composta por entidades, muitos dos quais você pode ignorar.

Também sabemos que os usos SDK herança muito forte, por isso olhar para classes de base para a funcionalidade que você pode desejar.

Eu diria que fazer uma lista de arquivos importantes e classes que talvez relevantes para o que você quer fazer com o SDK. Em seguida, iniciar a triagem esses arquivos usando pastas virtuais em VS (ou pastas reais no sistema de arquivos) e usar a descoberta opção de arquivos (ou grep) para encontrar o caminho de volta.

Alguns arquivos de amostra: eiface.h - interfaces de motor gameinterface.cpp / .h - Lotes das interfaces de dlls externas para servidor cdll_client_int.cpp / .h - Muitas das interfaces de dlls externas para cliente * _Gamerules.cpp / .h - Gamerules (determina a lógica do jogo) world.cpp - Entidade que determina as propriedades do mapa e carrega o gamerules e outras entidades

Além disso, tente usar o Source SDK Base de Dados em vez da base HL2MP para um mod. O primeiro é muito mais limpo e mais fácil de construir fora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top