Stranded: Alien Dawn – Dicas avançadas de modificação

Algumas dicas que ajudariam a desenvolver mods S:AD mais complexos.

 

Usar controle de versão

Sem algum tipo de sistema de controle de versão, é quase impossível desenvolver software complexo. Os mods são de fato tais softwares, apesar do fato de que algumas ferramentas de interface do usuário integradas ajudam a simplificá-los (quase todo mundo pode criar um sobrevivente personalizado usando o editor de mod).
O sistema de controle de versão permite rastrear todas as alterações já feitas em seu trabalho, permite reverter para versões estáveis ​​anteriores em caso de problemas e, o mais importante, permite que vários desenvolvedores trabalhem no mesmo projeto com facilidade.
Uma solução de controle de versão muito popular é o GitHub. Ele fornece hospedagem para projetos online, permitindo assim que vários modders desenvolvam um único mod complexo.
Outra solução é o TortoiseSVN, um wrapper de subversão GUI, que pode ser usado para hospedar o projeto em seu próprio computador ou servidor. É muito fácil fazer isso, há documentação disponível online.
Ambas as soluções propostas são obviamente gratuitas (ou têm uma versão gratuita).
Depois de ter o controle de versão funcionando, você pode acompanhar todas as alterações feitas no seu mod. Por exemplo, pouco antes de carregar a nova versão do seu mod, depois de salvar o mod, todas as alterações podem ser verificadas. Este é um passo obrigatório, pois muitas vezes há coisas confusas no último momento. O próprio editor de mod é relatado como tendo bugs.
Após o upload para o Steam, as alterações locais também devem ser “confirmadas” no repositório de controle de versão.
As pastas mod que precisam estar sob controle de versão estão localizadas em:

%appdata%\Stranded - Alien Dawn\Mods

Monitorando erros em tempo de execução

Ao testar seu mod, no mapa de mod especial, o jogo exibe toda a saída do jogo na tela e no console do gerenciador de mod. Em caso de erros, o modder pode ver as mensagens exatas geradas pelo erro e corrigir o problema. Mas no jogo real, especialmente em jogos salvos onde o novo mod não estava presente, os erros não serão visíveis. Assim, muitos mods são carregados sem serem testados o suficiente e atualmente temos muitos relatórios de bugs em que um mod está realmente quebrando a lógica do jogo.
O log de saída do jogo, onde podem ser encontrados os eventuais erros, é salvo em um arquivo que pode ser encontrado em:

%appdata%\Stranded - Alien Dawn\logs

O problema é que o jogo precisa terminar para liberar o log do jogo gerado. Isso não é prático para depuração, pois é difícil relacionar os erros no log com eventos específicos do jogo. Existe uma maneira simples de monitorar o log do jogo em tempo real fora do mapa de modding. Tudo que você precisa é o Visual Studio IDE. Quando anexado ao processo do jogo a partir do menu Debug – Attach To Process (ou atalho Ctrl-Alt-P), todos os logs do jogo, incluindo os erros, serão visíveis em tempo real na janela “Output”. O processo do jogo a ser pesquisado ao anexar deve ser chamado de “StrandedSteam.exe”. Para aqueles que não estão familiarizados com o Visual Studio, há uma versão gratuita chamada “Community” que pode ser baixada do site do visualstudio.

Código do modo de gravação

O mecanismo de jogo S:AD usa Lua como uma linguagem de lógica de jogo, embora não seja a versão vanilla, mas uma versão modificada – há muitas funcionalidades adicionais, alteradas ou removidas nas bibliotecas padrão. O código modding “item” também está em Lua, embora a versão mod não use o original, mas um ambiente limitado, onde certas funções estão na lista negra. A linguagem Lua em si é muito fácil, qualquer pessoa familiarizada com JavaScript ou Python pode usá-la sem problema. Existem muitos IDE que podem ser usados ​​para editar arquivos Lua. Os mais populares são o Visual Studio Code e o Sublime, ambos gratuitos. Observe que o Steam pode considerar o jogo ainda em execução após fechá-lo, se o Lua IDE tiver sido iniciado a partir do ambiente de modding. Se for esse o caso, basta fechar o IDE.

Use o console do jogo

No mapa do editor de mod, é possível abrir um console do jogo por meio da tecla ENTER. Permite verificar o valor de qualquer variável do jogo, tornando-se assim uma boa ferramenta de teste. Qualquer coisa digitada no console é avaliada como código Lua em tempo de execução e os resultados são impressos na tela.
Por exemplo, quando um objeto é selecionado, uma var global chamada SelectedObj tem o objeto selecionado como valor. Digitar isso no console imprimiria o conteúdo do objeto, que poderia ser um texto muito grande. Portanto, é bom procurar informações específicas dentro do objeto. Se um ponto (.) for digitado após SelectedObj (como é assim que os membros são acessados ​​em Lua), pressionar a tecla TAB mostrará o conteúdo do objeto em uma lista que pode ser selecionada.
Outra variável global importante que pode ajudar na depuração é o UIPlayer. Este é um namespace de muitos valores importantes do jogo. Por exemplo, UIPlayer.labels.Buildings contém uma lista com todos os edifícios colocados, enquanto UIPlayer.labels.Survivors é uma lista com todos os sobreviventes gerados. No entanto, digitá-los no console registraria uma quantidade muito grande de texto, o que não é muito prático. Existe uma função auxiliar chamada ValueToStr, que pode ser usada para mostrar mais texto legível por humanos. Exemplos: ValueToStr(SelectedObj), ValueToStr(UIPlayer.labels).
O console também oferece suporte ao preenchimento automático por meio da tecla TAB. Dessa forma, não há necessidade de saber o nome exato de uma determinada variável global ou membro de um objeto.
Para limpar a tela do texto impresso, use a tecla F9.

Trabalhando com dados do jogo

Ao criar coisas novas no jogo, a maneira mais fácil de fazer isso é basear o novo item em um existente. Certos itens mod têm a opção de “Copiar de” uma predefinição de dados vanila. Mas nem todos têm, e nem todas as predefinições de dados têm um item de modificação. Ou talvez um mod mexa com as predefinições existentes, em vez de criar novas predefinições. Essa intervenção, no entanto, tem uma desvantagem, pois apenas desabilitar o mod não reverteria seus efeitos - os dados não são recarregados quando um mod é desabilitado, apenas o código do jogo.
De qualquer forma, é útil ter uma maneira de inspecionar os dados do jogo de alguma forma. Uma maneira é usar o console do jogo para verificar o conteúdo da variável global Presets. Ele contém quase todos os dados do jogo, agrupados por classe predefinida. Conforme descrito na seção anterior, digitando ponto (.) após cada nome no console, uma lista com o conteúdo do contexto atual seria exibida. Fazendo isso, nível por nível, todos os conteúdos poderiam ser analisados.
Mas usar o console tem suas limitações, pois o conteúdo dos dados é muito complexo para ser inspecionado como um grande pedaço de texto. É necessário entender quais classes predefinidas estão registradas no jogo, a fim de invocar uma ferramenta explícita para cada uma delas. Há um comando do console que aceita a classe predefinida que abre uma interface de dados da interface do usuário:

OpenPresetEditor("<PresetClass>")

onde deve ser substituído pela classe específica a ser inspecionada. Por exemplo, digitar no console OpenPresetEditor(“FXPreset”) abriria o editor FX, que contém um dos itens de dados mais misteriosos – o visual e os efeitos sonoros.

By injto4ka

Mais guias:

Deixe um comentário

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish