These weeks in Veloren 247

5/2/2025 Post original

Você pode sentir uma leve turbulência enquanto uma saraivada de novos itens, músicas e brincadeiras enche o ar. Lá vamos nós!

- horblegorble, colaborador do TWiV

Anúncio

Seja você um fotógrafo casual ou um fotógrafo de verdade, queremos que você participe deste concurso de fotografia organizado por @walpo:

Veloren de outrora

Estamos procurando uma nova imagem de capa para o arquivo README do Veloren.

Se você acha que tem uma foto legal para compartilhar com a comunidade, fique à vontade para publicá-la nos tópicos de envio do Discord ou do Zulip !

Regras:

  1. As inscrições estão abertas de agora até quinta-feira, 12 de junho, às 21:00 UTC (cerca de 1 mês e meio). Conteúdo enviado posteriormente não será incluído.
  2. Você tem a liberdade de usar nosso logotipo atual (textual) da Veloren nas imagens enviadas, mas isso não é obrigatório.
  3. As imagens enviadas devem ter uma altura mínima de 600 pixels e uma proporção de 16:9.
  4. Cada participante pode enviar até três imagens. Caso um participante tenha enviado mais de três imagens até o encerramento do período de envio, perguntaremos em particular quais imagens serão incluídas na fase de votação. Caso o participante não responda em tempo hábil, reservamo-nos o direito de escolher as três imagens mais recentes por padrão.
  5. Após o encerramento do período para inscrições, definiremos um sistema de votação para que nossa comunidade escolha seu favorito. Reações de emojis no Discord não contam para a votação.
  6. Você deve ser o detentor dos direitos autorais da imagem enviada. Isso significa que você não pode usar inteligência artificial generativa (GenAI) para criar parte ou a imagem inteira (atualmente, uma área cinzenta legal).
  7. Você concorda em compartilhar seus envios sob uma licença aberta. Por exemplo, algumas licenças do pacote Creative Commons .
  8. Se sua imagem vencer o concurso, nossa equipe entrará em contato para discutir com qual licença você deseja compartilhar seu trabalho e como lidar com a atribuição.

Trabalho do colaborador

Obrigado a todos que contribuíram para o veloren nas últimas semanas: @do-no-van, @Supa, @Gemu, @floppy, @Joe_Cool, @Crabo, @isse, @juliancoffee, @Synis, @srpapinha, @zesterer, @souffle, @unii, @imbris, @Tarhun, @UncomfySilence, @Nikophos e @violetwillow.

Obrigado aos tradutores do Weblate que contribuíram nas últimas semanas:

Linguagem Tradutores
tcheco Janez
Inglês Janez | EatherBone | ministroganso
Francês Limina | sandraev
Alemão compilador de café | CodeVlogs | Benny | Virtex | fnetX
polonês K0RR
russo EatherBone | aleeo | lucius_pilgrim
sueco Emissão
ucraniano ministro goose

Trabalho mesclado

Ação brilhante à distância

Incapaz de esperar pela reformulação do arco, @do-no-van assumiu o controle dos projéteis com uma refatoração pesada. É melhor preparar a proteção para os olhos, pois as faíscas voam pela cidade.

🔊 Todos os tipos de shows de luzes. Música de @Crow

E espero que nada de sinistro esteja esperando pelo "dia em que os idiotas voarão" .

GitLab: !4593

Oud e um alaúde

O que começou como um alaúde remodelado na primeira incursão de @Joe_Cool com o MagicaVoxel, tornou-se um catalisador para a chegada do novo instrumento de Oud . @Supa foi o químico supervisor dessa reação, mixando voxels de @Gemu e áudio de @floppy. Você pode ir até a bancada de trabalho para apreciar os aspectos positivos dessas novas notas.

O recém-chegado (à esquerda) e seu primo remodelado (à direita)

🔊 Novas condições

Ainda com o jaleco, @Supa continuou com alguns ajustes instrumentais:

GitLab: !4778

Amigo ou inimigo

Seja para começar uma briga ou manter a paz, as mudanças do @Crabo na lista de jogadores eliminam as incertezas nas negociações do modo de batalha e no status de moderador. Os ícones de espada foram fornecidos por um traficante de armas secreto que se parecia muito com o @Supa.

Sua carreira de duelo está a apenas um clique de distância

GitLab: !4790

Mise en place

Com o trabalho de preparação feito nos sprites que podem ser colocados em mosaicos, @isse começou a criar um sistema para juntar os mosaicos de móveis:

A maneira como colocamos sprites componíveis no site2 é uma característica de extensão do Painter , que é o que usamos para definir como os blocos são colocados no site2 , e como sprites são blocos, isso os inclui.

Nisto, criei métodos auxiliares para posicionar sprites genéricos em mosaico e funções que se referem diretamente a alguma configuração de sprites, criando algo maior, como uma cama.

Existem diferentes tipos de métodos auxiliares genéricos. No momento, tenho um unidimensional e um bidimensional. O unidimensional, chamado tileable1 , recebe um sprite lateral e um sprite do meio, além de parâmetros para posição, direção da face e largura. Isso pressupõe que o sprite com a posição máxima precisa ser espelhado.

Alguns ASCII+ para demonstrar isso:

 width: 4 blocks < □ □ > center sprite: □ 2 blocks < > side sprite: < mirrored: >

O 2D é chamado tileable2 . Ele precisa de um pouco mais de argumentos, então ele usa a estrutura Tileable2 para defini-lo. Ela armazena um retângulo e uma altitude para definir a posição. Um sprite central, um sprite lateral e um sprite de canto. Tanto os sprites laterais quanto os de canto podem variar dependendo do lado/canto em que são colocados. Ele também tem sua própria direção para girar toda a construção. Para uma tabela onde todos os cantos e lados são iguais, isso se parece com:

+y size: 5x3 blocks (x by y) ⭡ center sprite: □ ╵ ┌ ∧ ∧ ┐ side sprite: < ╵ < □ □ > rotated/mirrored: > ∧ ∨ ╵ └ ∨ ∨ ┘ corner sprite: └ └ ─ ─ ─ ─ ─ ⭢ +x rotated/mirrored: ┘ ┌ ┐ Para uma cama fica assim: +y size: 5x3 blocks (x by y) ⭡ center sprite: □ ╵ ┌ ∧ ∧ ┐ side sprite: < ╵ < □ □ > rotated/mirrored: > ∧ ∨ ╵ └ ∨ ∨ ┘ corner sprite: └ └ ─ ─ ─ ─ ─ ⭢ +x rotated/mirrored: ┘ ┌ ┐

 +y size: 3x2 blocks (x by y) ⭡ side sprite: ∧ | ∨ ╵ ╔ ∧ ┐ (-x) corner sprite: ╚ | ╔ ╵ ╚ ∨ ┘ (+x) corner sprite: ┘ | ┐ └ ─ ─ ─ ⭢ +x Porque existem diferentes sprites de canto usados para as diagonais que enfrentam +y size: 3x2 blocks (x by y) ⭡ side sprite: ∧ | ∨ ╵ ╔ ∧ ┐ (-x) corner sprite: ╚ | ╔ ╵ ╚ ∨ ┘ (+x) corner sprite: ┘ | ┐ └ ─ ─ ─ ⭢ +x

-x e +x .

Existem também métodos auxiliares, como chairs_around , que posicionam sprites em torno de um limite específico. E métodos específicos para sprites que não se encaixam em nenhum padrão genérico que tenhamos, por exemplo, lanternpost_wood . Quando houver mais sprites que precisem desse padrão específico, métodos mais genéricos serão criados.

Um mosaico de ladrilhos

GitLab: !4799

Abaixe o fogo

@juliancoffee entende que, assim como um bom sanduíche de vegemite, você só precisa de um pouco de pasta. Então, agora, quando vocês estiverem fazendo mosh na fogueira com os amigos, a chance de se acenderem aumenta com o tempo e a intensidade da fonte. E quando o calor pegar, a culpa será só do mundo. Um alívio para os guardas da cidade que andam ocupados apagando brigas entre vizinhos esquentadinhos.

O novo lançamento deles é realmente um sucesso lento

GitLab: !4832

Mais progressão vertical

Não, não desse tipo. O outro. É, escalada.

De qualquer forma, @Synis ouviu o feedback sobre as mudanças recentes e criou a próxima versão candidata a lançamento. Ela permite que você supere o medo de cair da escalada e também traz o retorno do salto morro acima. Outras mudanças incluem a persistência do estado de empunhadura, bem como correções nos cálculos de custo de energia e saltos infinitos em paredes.

Deslizando para baixo e subindo

GitLab: !4811

Guerra dos nomes

E no sétimo dia, o usuário cometeu um erro de digitação ao nomear seu novo mundo. Felizmente, @juliancoffee o deixou reescrever a história:

Agora você pode alterar o nome do mundo 🏔️ mesmo depois de ele ser gerado ✍️

Alguém me disse uma vez

GitLab: !4830

Estimativas mundanas

Observar a água ferver, a grama crescer, a tinta secar ou esperar o próximo tique no processo de erosão de um novo mundo. Essas são expressões universais para desgastar a alma. Mas agora há alívio para esta última, com atualizações de @isse para tranquilizar sua mente:

Adicionadas algumas informações adicionais ao gerar mundos, agora mostra um progresso mais detalhado e uma estimativa de tempo de quanto tempo a erosão levará

Pode ser possível sincronizar com uma contagem regressiva de Ano Novo

GitLab: !4834

Confusão na selva

@juliancoffee girou a roda das cores para criar um remix do nosso ambiente tropical:

As selvas agora parecem um pouco mais com selvas. Em colaboração com @Gemu, mudei o esquema de cores para tornar a casca mais escura e reconhecível.

Vermelho Floresta Tropical -> Marrom Botânico

GitLab: !4831

Só giro e nenhum balanço deixam Jack um menino tonto

Depois de algumas sessões de treinamento com @srpapinha, seus parceiros de dança não tão amigáveis aprenderam a entrar em ritmo. Um amplo conjunto de modificadores de orientação corpo a corpo aposentou suas rotinas de "robôs" de mira.

🌪️ 🤢 Rodando e rodando nós vamos

GitLab: !4803

Mesmo sprite, saque diferente

Sem dúvida, todos nós já ouvimos a expressão "Você não deve julgar um sprite pelos seus voxels". É uma sábia ideia que @juliancoffee colocou em prática para o wordgen:

Ok, finalmente aconteceu. Fundimos um MR que permite substituir o saque padrão dos sprites ao colocá-los.

Atualmente, o funcionamento dos contêineres/colecionáveis se dá por meio do método SpriteKind::default_loot_spec() (anteriormente conhecido como SpriteKind::collectible_id ), que consiste em uma grande lista de sprites e suas respectivas tabelas de loot. Isso é aceitável e até desejável para 70% dos sprites. Quando você pega uma Maçã, não quer mais nada. E os baús nas salas dos chefes em nossas novas masmorras de tirar o fôlego se beneficiam muito da conformidade estilística com o ambiente.

Mas temos muitos contêineres genéricos, como caixotes e barris, em cidades e cavernas e, principalmente, em locais, o que inevitavelmente nos obriga a ter as mesmas tabelas de saque chatas. Bem, não mais! Veja a configuração do local para o altar de Saurok:

#![enable(implicit_some)] #![enable(unwrap_newtypes)] [ ( specifier: "world.structure.spots.saurok-altar", center: (10, 13, 3), custom_indices: { + 11: SpriteWithCfg(DungeonChest0, ( + loot_table: "common.loot_tables.spot.saurok_altar", + )), 105: Filled(GlowingRock, (r: 161, g: 255, b: 133)), 113: Filled(GlowingRock, (r: 139, g: 245, b: 104)), }, ), ]

Esta linha nos permite substituir o baú padrão pelo DungeonChest0 e sua própria tabela de saques! Para quem não conhece o sistema de pontos, os pontos geralmente são pequenos modelos pré-fabricados com blocos específicos que reinterpretamos usando índices personalizados da paleta MagicaVoxel. 0 a 16 são predefinidos, e 11 representa o baú padrão, mas você pode substituí-los.

E você pode fazer isso em praticamente todas as situações se puder colocar um sprite junto com SpriteConfig , o que inclui cavernas, cidades, locais gerados proceduralmente, masmorras, etc.

No momento, o MR só habilita essa funcionalidade e precisamos de pessoas de equilíbrio e testadores para tornar o mundo realmente vivo usando esse sistema 🙂

Marco zero, um e dois para a nova configuração de saque

GitLab: !4354

Marque minhas palavras

Dizem que os moradores locais sempre sabem qual é o melhor lugar da cidade, mas têm sido reservados para compartilhar dicas. @zesterer soltou a língua o suficiente para pelo menos apontar os pontos turísticos locais. Se continuarmos jogando bem as cartas, eles ainda podem nos dizer onde encontrar o melhor chá gelado de girassol.

Nem sempre é possível navegar pelo horizonte ao nível do solo

GitLab: !4750

Ocupado com batalhas e escambos

Em vez de ver tudo na vida através de uma janela de negociação, @souffle deu aos comerciantes alguma clareza na expressão de suas preocupações.

Negociação de sucessos vs negociação de bits

GitLab: !4814

Você conhece um bom lugar?

O que produtos de limpeza e Veloren têm em comum?

Testar a área é uma boa prática. E agora fica ainda mais fácil com um toque especial do @juliancoffee:

Ah, e também estendi o comando /spot para funcionar com todos os pontos (esses mini-sítios, como o totem gnarling). O comando /spot foi criado originalmente por @isse, mas funcionava apenas para pontos definidos em arquivos .ron . A maioria dos pontos mais antigos não são definidos em arquivos .ron , então precisávamos consertá-lo. Ponto bônus: agora ele te teletransporta 100 blocos acima do ponto, então prepare seu planador e voe!

Só passando por aqui

GitLab: !4836 + !4839

Vaca grande despeja leite velho

Comerciantes de queijos estavam se instalando no coliseu do Minotauro, e esse touro não é fã de degenerados do setor de laticínios. Mas ele se sentia preso no ringue como um mero gerente de franquia, tendo se desentendido com a gerência da Myrmopolis™ anteriormente. Isso levou o grande Minotauro a contratar a representação da @unii, que foi bem recebida pela empresa. @floppy foi enviado para consertar as coisas, com seu parceiro de testes @Supa ajudando a resolver alguns dos problemas de reposicionamento.

Queijo na bandeja, não pelo jogador

GitLab: !4783

Jogando seu peso ao redor

Das negociações bovinas às inspeções de segurança, @unii trocou de chapéu para nos lembrar dos riscos gravitacionais envolvidos na definição da massa da entidade:

Reduzi a massa das invocações de Frost Gigas (Guerreiros Boreais), para que fiquem menos vulneráveis a danos de colisão/queda. Isso afeta principalmente os encontros em que as diferenças de elevação entram em jogo.

Vai precisar de muito mais neve para quebrar esse outono

GitLab: !4827

Mais mudanças:

Trabalho não mesclado em andamento

Esse Gigas tá pegando fogo

Agora pode ser o momento de se familiarizar novamente com os planos locais de resposta a incêndios florestais. O que antes era considerado uma névoa passageira tornou-se chamas distantes, porém visíveis. A ameaça derretida está se preparando para explodir.

Vamos dar uma olhada no registro geológico para ver onde tudo começou.

Planos de ataque — por @Gemu

Este não é um esporte para espectadores — por @Gemu

Interpretação de papéis como uma batata muito quente — por @do-no-van

♪ Eu caí em um anel de fogo ardente ♪ — por @do-no-van

{{ imgzoom(width=718, height=689, caption="Montando o arsenal de cinzas — por @Gemu", src="https://s3.eu-central-2.wasabisys.com/veloren-blog/cdn/247/2024-12-02_Gemu_ashen-warrior.webp", ) }}

Previsão para hoje: ondas de calor contínuas — por @do-no-van

Estreia do teste de streaming — por @Necti

Consequências de fogo — por @And_i

GitLab: !4638

Jogue TUDO fora!

Garrafas balísticas e frascos voadores estavam no radar dos esforços de prototipagem do @UncomfySilence para ampliar o alcance da refatoração de arremessáveis. Mas por que parar nas poções? Essas mãos foram feitas para arremessar, então vamos colocar as coisas no ar!

Infelizmente, os controles e definições de itens existentes não são tão precisos para a tarefa em questão. Então, a conversa se voltou para a manipulação das dinâmicas em jogo: equipar, arremessar, consumir e golpear. De espaços na barra de atalhos e inventários especiais a cintos de utilidades e menus radiais; muitas ideias surgiram. Eventualmente, o controle de tráfego aéreo foi chamado para configurar um espaço aéreo dedicado dentro de uma Solicitação de Comentários (RFC) . Os objetivos ambiciosos permanecem: praticamente todos os itens podem ser pegos, arremessados e balançados.

Não pegue um resfriado

GitLab: !4846

Discussões

Quem é o próximo?

Palhaços à minha esquerda, palhaços à minha direita — em quem eu dou um soco primeiro? Sabemos que os PNJs não são os que devem ser questionados; eles adoram brincar de perseguição trivial num jogo de "acerte a toupeira". Mas se tirássemos as vendas dos olhos e clareássemos a mente deles, será que poderíamos ensinar truques novos a esses cachorros velhos? Quando @James colocou essa questão na mesa, ele estava pintando um alvo para canhões cerebrais em si mesmo. Não demorou muito para que a discussão disparasse em algumas trajetórias:

Alvo adquirido

Preparando uma tempestade

Depois que as misturas de ideação de @Nikophos transbordaram da panela e do caldeirão da cidade, ele partiu para um breve retiro em uma cabana de bruxa (convenientemente vazia). Livre para mergulhar no ambiente potente e sem ventilação dos caldos do porão e dos vapores do caldeirão, a verdadeira destilação pôde começar. O que borbulhou à superfície foi um sistema baseado em "essências" para criar poções.

Causa e efeito — por @Nikophos

Os ingredientes essenciais — por @Nikophos

Um guia para mixologistas — por @Nikophos

Alternativas alquímicas — por @Nikophos + @violetwillow

@violetwillow, a parceira da slime, chegou após esses brainstormings para ajudar a infundir novas ideias em um conceito de liquidificador octogonal . Quantidades variadas de ingredientes levariam você pelos segmentos para criar poções diferentes. Um coquetel mais raro pode ter um alvo específico, enquanto a região de uma poção mais comum pode abranger vários segmentos.

Será que vai combinar? — por @Nikophos

Vitrine da comunidade

A maré vai embora

Sabendo que o guerreiro Sahagin não é muito de palavras, @unii criou uma atividade de quebra-conchas para eles se abrirem.

Cuidado com as taxas ocultas nas cobranças

Doom-loren

@horblegorble investigou além dos biomas de lava de suas pastas de capturas de tela para criar o clima certo com o design do logotipo de @souffle.

Será esse o futuro de um Gigas imparável?

Dominando a forja

Com os movimentos certos e um ritmo constante, quem precisa de armadura? @And_i, com certeza.

O temperamento quente encontra o ritmo tranquilo

Piquenique em Goblet Rock

O cartão postal que deu início a tudo — por @Supa

A história começou como qualquer outra em Veloren. O típico caso de dirigíveis, masmorras e passeios em geral. Foi quando nosso bando de desajustados descobriu uma formação rochosa única que as coisas saíram do roteiro e viraram uma produção voxelada da Tripulação Motley e do Cálice Sagrado. Os rumores se espalharam e a razão se perdeu — dizia-se que beber de sua neve derretida permitiria ver a semente da geração mundial.

Independentemente da sanidade mental naquele momento, a missão era clara. Como escalar aquela coisa maldita era um pouco mais nebuloso. No entanto, o mal-estar da altitude e os ventos fortes eram apenas um tempero extra para a subida, e uma mistura mútua de incentivo e calúnia levou todo o grupo ao topo. Agora, finalmente no topo da Rocha do Cálice, eles encontraram vistas fantásticas, acústica excepcional e júbilo jubiloso. Mas, por mais neve que comessem, as grandes sabedorias não lhes foram concedidas. Talvez o verdadeiro tesouro fossem mesmo os amigos feitos ao longo do caminho.

Após se recuperarem da hidratação excessiva, a gangue decidiu embarcar em aventuras vampirescas na vizinha Fortaleza Zaluj. O que havia lá dentro eram provas de trabalho em equipe, muito sangue derramado e muita bobagem. Muitas travessuras e uma viola depois, uma descoberta nada relacionada foi feita: sua cavalaria de coco podia ser convertida em granadas de mão sagradas. Foi prontamente acordado que Zaluj não era Camelot, e a cidade abaixo de Ochreseaux era onde eles poderiam fazer coisas bastante tolas. A maioria dos registros do que aconteceu em seguida foi transformada em cinzas, e o que sobreviveu estava bastante chamuscado. Embora muitas evidências tenham sido destruídas, não era mistério quem era o principal encrenqueiro.

Aqui está o álbum de aventuras do @horblegorble.

Você gosta de rabiscos bobos?

Visitantes tolerados

Drama suspenso

Batalha da Lua Sangrenta

Esquadrão de caracóis

Necti nefasto

Gigas gladiadoris

Uma armadilha colossal para caranguejos.

Vira uma pista de gelo.

Capturando presas congeladas.

Tocando agora: The Real Stadium Blues

🔊 Assentos na primeira fila do show

Capturas de tela

Céu vibrante, águas cintilantes — por @Indragedall

Algo especial — @Retromaster

Uma partícula de poeira estelar — @horblegorble

Esporos sob Sporia — por @Supa

Algumas colheitas muito animadas — por @isse

Arranjos de fluxo de ar — @horblegorble

Esses ecos fazem minha voz soar fria? — por @Sam113

Não se esqueça de verificar a previsão do tempo — por @Supa

Templos torrenciais — por @juliancoffee

♪ Estou voando na chuva, oh voando na chuva ♪ — por @Sam113

Indisposto — por @Sam113

Tolerar estranhos vs. andar com o grupo — por @Crabo + @Supa

Mergulhando em busca dos pretos mais profundos — por @Muerto

Gritando para o vazio, olhando para o abismo - onde as ravinas se encaixam? — por @And_i

Deixando de lado os cogumelos — por @Sam113

Não estamos tão altos agora, não é? — por @juliancoffee

Dirigindo por aí — @horblegorble

O início de um problema de poluição atmosférica? — por @Sam113

Melodias do amanhecer, com The Songbirds — @horblegorble

Este blog de desenvolvedor é baseado em informações coletadas em #blog-content , onde os colaboradores do jogo são sempre convidados a comunicar suas atualizações ou simplesmente postar um link para um canal diferente.

@Supa e amigos na fila para seu brinquedo favorito. Não perca o próximo voo :)