{"id":3786,"date":"2024-08-05T18:20:38","date_gmt":"2024-08-05T18:20:38","guid":{"rendered":"https:\/\/www.goncalo.pt\/por\/?p=3786"},"modified":"2024-10-16T23:00:24","modified_gmt":"2024-10-16T23:00:24","slug":"2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c","status":"publish","type":"post","link":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/","title":{"rendered":"2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;"},"content":{"rendered":"\n<p>Um dos mundos m\u00e1gicos de testes escondidos no meu Game Engine, para mostrar uma melhoria no meu sistema de rel\u00e2mpagos e trov\u00f5es (sim, estou de volta ao Game Engine!).<\/p>\n\n\n\n<p>Isto porque eu h\u00e1 meses n\u00e3o mexia no meu Game Engine, e tinha saudades, e decidi melhorar os meus sistemas de rendering (explico abaixo).<\/p>\n\n\n\n<p>E ao faz\u00ea-lo, tive de fazer update ao sistema de rel\u00e2mpagos e vi que estava horr\u00edvel, pois ele antes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u00e3o era ass\u00edncrono, o que significa que a chuva parava para ele desenhar o ecr\u00e3;<\/li>\n\n\n\n<li>S\u00f3 tinha as luzes nos c\u00e9us porque os rel\u00e2mpagos eram horr\u00edveis;<\/li>\n<\/ul>\n\n\n\n<p>Agora se repararem, os rel\u00e2mpagos j\u00e1 s\u00e3o desenhados nos c\u00e9us (ainda n\u00e3o est\u00e1 um sistema perfeito mas est\u00e1 melhorado):<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.mp4\"><\/video><figcaption class=\"wp-element-caption\">2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;<\/figcaption><\/figure>\n\n\n\n<p>E ao serem desenhados, a chuva n\u00e3o p\u00e1ra, ou seja, s\u00e3o desenhados de forma ass\u00edncrona (multi-threading).<\/p>\n\n\n\n<p>E de cada vez, varia entre 1 a 3 rel\u00e2mpagos por &#8220;ataque&#8221;, para aumentar o dinamismo e a viol\u00eancia dos mesmos.<\/p>\n\n\n\n<p>E s\u00f3 depois deles \u00e9 que surge o c\u00e9u em clar\u00e3o, mas que pode surgir sem rel\u00e2mpagos visuais tamb\u00e9m porque podem acontecer noutros pontos fora do alcance da c\u00e2mera.<\/p>\n\n\n\n<p>E claro, os trov\u00f5es que acompanham os rel\u00e2mpagos!<\/p>\n\n\n\n<p>Por isso, temos agora chuva que ocorre em tempo real, sem paralizar devido ao algoritmo que desenha os rel\u00e2mpagos (que \u00e9 bem mais complexo e CPU intensive do que parece), que corre de forma ass\u00edncrona, e temos um n\u00famero vari\u00e1vel de rel\u00e2mpagos a ocorrer com os flashes habituais nos c\u00e9us, que podem ocorrer sem rel\u00e2mpagos tamb\u00e9m, e junto com trov\u00f5es. \ud83d\ude42<\/p>\n\n\n\n<p>S\u00f3 depois disto \u00e9 que retomo o sistema de renderiza\u00e7\u00e3o.<\/p>\n\n\n\n<p>O que se passa nisso \u00e9 que eu para desenvolver o meu Game Engine mais r\u00e1pido, usei por vezes containers STL que s\u00e3o algo lentos, e est\u00e1 na altura de os trocar pelos meus pr\u00f3prios sistemas feitos \u00e0 pata e que tornar\u00e3o o Game Engine ainda mais r\u00e1pido.<\/p>\n\n\n\n<p>Ao mesmo tempo, vou recriar os meus pr\u00f3prios sistemas de rendering, que tratam das imagens, e mistura de cores no ecr\u00e3, etc, por outros mais r\u00e1pidos, pois a optimiza\u00e7\u00e3o estava feita mas usando ainda containers STL, ou mecanismos ainda n\u00e3o muito aperfei\u00e7oados por mim.<\/p>\n\n\n\n<p>Mas eu quero criar na minha DML (Direct Media Layer, a minha libraria de gr\u00e1ficos e hardware), coisas o mais r\u00e1pidas poss\u00edvel.<\/p>\n\n\n\n<p>Isso farei mais tarde.<\/p>\n\n\n\n<p>Hoje diverti-me a melhorar o Game Engine, pois tenho andado super ocupado com trabalho, e continuarei por mais uma semana, e para desanuviar, bem como para me relembrar do Game Engine, decidi fazer isto.<\/p>\n\n\n\n<p>Agora sinto-me melhor, e mais, recordei melhor o Game Engine.<\/p>\n\n\n\n<p>\u00c9 que fazer trabalho de Software Architect, a gerir um Game Engine de centenas de ficheiros com centenas de milhares de linhas de c\u00f3digo, que est\u00e3o todas na minha cabe\u00e7a, sem fluxogramas, sem diagramas ou mapas, sem nada, \u00e9 um trabalho em que n\u00e3o basta ter-se o tipo de mem\u00f3ria de autista que tenho.<\/p>\n\n\n\n<p>\u00c9 preciso mexer nele de tempos a tempos para que eu me mantenha informado sobre como ele funciona e n\u00e3o me esque\u00e7a dele.<\/p>\n\n\n\n<p>\u00c9 por isso tamb\u00e9m que eu tento n\u00e3o ficar muito tempo num projecto e afastado do outro, para os manter na minha cabe\u00e7a.<\/p>\n\n\n\n<p>Se um dia tiver amn\u00e9sia, vai tudo por \u00e1gua abaixo! \ud83d\ude42<\/p>\n\n\n\n<p>Noto alguns bugs a n\u00edvel de renderiza\u00e7\u00e3o com alguns p\u00edxeis a negro que terei de investigar mais tarde.<\/p>\n\n\n\n<p>De qualquer das formas vou voltar ao trabalho, e s\u00f3 retomo o Game Engine dentro de 1 ou 2 semanas, isto foi s\u00f3 para matar saudades e refrescar a mem\u00f3ria.<\/p>\n\n\n\n<p>Hasta! \ud83d\ude42<\/p>\n\n\n\n<p>2024-08-05.<\/p>\n\n\n\n<p>Partilhado no mesmo dia no meu LinkedIn, em:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.linkedin.com\/posts\/goncalopt_um-dos-mundos-m%C3%A1gicos-de-testes-escondidos-activity-7226295495726387200-UPUH\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.linkedin.com\/posts\/goncalopt_um-dos-mundos-m%C3%A1gicos-de-testes-escondidos-activity-7226295495726387200-UPUH<\/a><\/p>\n\n\n\n<p>Post em que finalizei j\u00e1 sem bugs o n\u00edvel de testes da Chuva:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"n6iTPoXX8T\"><a href=\"https:\/\/www.goncalo.pt\/por\/2024\/10\/16\/2024-10-16-finalizados-os-algoritmos-de-neve-e-chuva-no-meu-game-engine-em-c\/\">2024-10-16 &#8211; Finalizados os Algoritmos de Neve e Chuva no meu Game Engine em C++&#8230;<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;2024-10-16 &#8211; Finalizados os Algoritmos de Neve e Chuva no meu Game Engine em C++&#8230;&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2024\/10\/16\/2024-10-16-finalizados-os-algoritmos-de-neve-e-chuva-no-meu-game-engine-em-c\/embed\/#?secret=FWFCmNzWVB#?secret=n6iTPoXX8T\" data-secret=\"n6iTPoXX8T\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">2024-10-16 \u2013 Finalizados os Algoritmos de Neve e Chuva no meu Game Engine em C++\u2026<\/figcaption><\/figure>\n\n\n\n<p>Post seguinte associado ao meu Algoritmo de Chuva:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"5rE0N0xjPl\"><a href=\"https:\/\/www.goncalo.pt\/por\/2024\/10\/03\/2024-10-03-testando-multi-threading-com-a-chuva-do-meu-game-engine-em-c\/\">2024-10-03 &#8211; Testando Multi-Threading com a Chuva do meu Game Engine em C++\u2026<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;2024-10-03 &#8211; Testando Multi-Threading com a Chuva do meu Game Engine em C++\u2026&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2024\/10\/03\/2024-10-03-testando-multi-threading-com-a-chuva-do-meu-game-engine-em-c\/embed\/#?secret=OnQHB5MCHv#?secret=5rE0N0xjPl\" data-secret=\"5rE0N0xjPl\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">2024-10-03 \u2013 Testando Multi-Threading com a Chuva do meu Game Engine em C++\u2026<\/figcaption><\/figure>\n\n\n\n<p>Post seguinte associado ao meu Game Engine:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"D2zi44A1rN\"><a href=\"https:\/\/www.goncalo.pt\/por\/2024\/09\/05\/2024-09-04-paineis-publicitarios-estilo-tricky-quicky-no-meu-game-engine-em-c\/\">2024-09-04 &#8211; Paineis Publicit\u00e1rios estilo Tricky Quicky no meu Game Engine em C++\u2026<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;2024-09-04 &#8211; Paineis Publicit\u00e1rios estilo Tricky Quicky no meu Game Engine em C++\u2026&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2024\/09\/05\/2024-09-04-paineis-publicitarios-estilo-tricky-quicky-no-meu-game-engine-em-c\/embed\/#?secret=VMvql8iiyt#?secret=D2zi44A1rN\" data-secret=\"D2zi44A1rN\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">2024-09-04 \u2013 Paineis Publicit\u00e1rios estilo Tricky Quicky no meu Game Engine em C++\u2026<\/figcaption><\/figure>\n\n\n\n<p>Post seguinte, sobre o meu mosaico de &#8220;Quem Sou Eu?&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"U6RhsJgI9u\"><a href=\"https:\/\/www.goncalo.pt\/por\/2024\/08\/27\/quem-sou-eu-numa-so-imagem-versao-de-2021\/\">Quem Sou Eu, Numa S\u00f3 Imagem\u2026 \ud83d\ude42 (Vers\u00e3o de 2021)<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Quem Sou Eu, Numa S\u00f3 Imagem\u2026 :) (Vers\u00e3o de 2021)&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2024\/08\/27\/quem-sou-eu-numa-so-imagem-versao-de-2021\/embed\/#?secret=ksAKt0Q5JI#?secret=U6RhsJgI9u\" data-secret=\"U6RhsJgI9u\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Quem Sou Eu, Numa S\u00f3 Imagem\u2026 \ud83d\ude42 (Vers\u00e3o de 2021)<\/figcaption><\/figure>\n\n\n\n<p>\u00daltimo post associado ao meu Game Engine:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"7BQILPKrNg\"><a href=\"https:\/\/www.goncalo.pt\/por\/2024\/03\/31\/2024-03-31-adicionado-um-ovo-da-pascoa-como-demonstracao-do-meu-sistema-novo-de-premios-do-meu-game-engine-em-c\/\">2024-03-31 &#8211; Adicionado um Ovo da P\u00e1scoa como demonstra\u00e7\u00e3o do meu sistema novo de pr\u00e9mios do meu Game Engine em C++&#8230;<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;2024-03-31 &#8211; Adicionado um Ovo da P\u00e1scoa como demonstra\u00e7\u00e3o do meu sistema novo de pr\u00e9mios do meu Game Engine em C++&#8230;&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2024\/03\/31\/2024-03-31-adicionado-um-ovo-da-pascoa-como-demonstracao-do-meu-sistema-novo-de-premios-do-meu-game-engine-em-c\/embed\/#?secret=rCz9k9QyCW#?secret=7BQILPKrNg\" data-secret=\"7BQILPKrNg\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">2024-03-31 \u2013 Adicionado um Ovo da P\u00e1scoa como demonstra\u00e7\u00e3o do meu sistema novo de pr\u00e9mios do meu Game Engine em C++\u2026<\/figcaption><\/figure>\n\n\n\n<p>Post anterior (associado a simula\u00e7\u00f5es de Gal\u00e1xias):<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"FtvapiTGgB\"><a href=\"https:\/\/www.goncalo.pt\/por\/2024\/06\/19\/2024-06-19-varios-exemplos-de-galaxias-criadas-com-o-meu-simulador-de-galaxias-em-c-ja-com-regioes-de-h2\/\">2024-06-19 &#8211; V\u00e1rios exemplos de gal\u00e1xias criadas com o meu simulador de gal\u00e1xias em C++, j\u00e1 com regi\u00f5es de H2&#8230;<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;2024-06-19 &#8211; V\u00e1rios exemplos de gal\u00e1xias criadas com o meu simulador de gal\u00e1xias em C++, j\u00e1 com regi\u00f5es de H2&#8230;&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2024\/06\/19\/2024-06-19-varios-exemplos-de-galaxias-criadas-com-o-meu-simulador-de-galaxias-em-c-ja-com-regioes-de-h2\/embed\/#?secret=BrUibypHG8#?secret=FtvapiTGgB\" data-secret=\"FtvapiTGgB\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">2024-06-19 \u2013 V\u00e1rios exemplos de gal\u00e1xias criadas com o meu simulador de gal\u00e1xias em C++, j\u00e1 com regi\u00f5es de H2\u2026<\/figcaption><\/figure>\n\n\n\n<p>\u00daltimo post associado a este tema da Chuva e Rel\u00e2mpagos, de 2022:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gon-alo-ferreira wp-block-embed-gon-alo-ferreira\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"VQnnJBWK7P\"><a href=\"https:\/\/www.goncalo.pt\/por\/2022\/12\/16\/2022-12-16-o-meu-pequeno-mundo-de-testes-de-chuva-relampagos-e-neve-do-meu-game-engine-em-c\/\">2022-12-16 &#8211; O meu pequeno mundo de testes de chuva, rel\u00e2mpagos e neve, do meu game engine, em C++&#8230;<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;2022-12-16 &#8211; O meu pequeno mundo de testes de chuva, rel\u00e2mpagos e neve, do meu game engine, em C++&#8230;&#8221; &#8212; Gon\u00e7alo Ferreira\" src=\"https:\/\/www.goncalo.pt\/por\/2022\/12\/16\/2022-12-16-o-meu-pequeno-mundo-de-testes-de-chuva-relampagos-e-neve-do-meu-game-engine-em-c\/embed\/#?secret=2XpLdnIWyV#?secret=VQnnJBWK7P\" data-secret=\"VQnnJBWK7P\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">2022-12-16 \u2013 O meu pequeno mundo de testes de chuva, rel\u00e2mpagos e neve, do meu game engine, em C++\u2026<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"263\" src=\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif\" alt=\"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++...\" class=\"wp-image-3787\" style=\"width:1138px;height:auto\"\/><figcaption class=\"wp-element-caption\">2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Um dos mundos m\u00e1gicos de testes escondidos no meu Game Engine, para mostrar uma melhoria no meu sistema de rel\u00e2mpagos<\/p>\n","protected":false},"author":1,"featured_media":3787,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,284,5,3,134,285,289,44,4,164,162,133],"tags":[7,186,118,207,24,23,117,282,120,187,189,166,172,241,160,345,344,158,26,25],"class_list":["post-3786","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-game-development","category-platformers","category-programacao","category-projectos","category-retro-gaming","category-shoot-em-up","category-horizontal-shooter","category-sistemas","category-softwares","category-top","category-top-game-engine","category-video-jogos","tag-c","tag-chuva","tag-desenvolvimento-de-jogos","tag-dev","tag-game-dev","tag-game-engine","tag-motor-de-jogos","tag-plaltformer","tag-programacao","tag-rain","tag-relampagos","tag-simulacao","tag-simulacoes","tag-sonic","tag-top","tag-top-10-game-engine","tag-top-20","tag-top-game-engine","tag-videogames","tag-videojogos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++... - Gon\u00e7alo Ferreira<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++... - Gon\u00e7alo Ferreira\" \/>\n<meta property=\"og:description\" content=\"Um dos mundos m\u00e1gicos de testes escondidos no meu Game Engine, para mostrar uma melhoria no meu sistema de rel\u00e2mpagos\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Gon\u00e7alo Ferreira\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-05T18:20:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-16T23:00:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"263\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"gnmf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gnmf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\"},\"author\":{\"name\":\"gnmf\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd\"},\"headline\":\"2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;\",\"datePublished\":\"2024-08-05T18:20:38+00:00\",\"dateModified\":\"2024-10-16T23:00:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\"},\"wordCount\":957,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif\",\"keywords\":[\"C++\",\"Chuva\",\"Desenvolvimento de Jogos\",\"Dev\",\"Game Dev\",\"Game Engine\",\"Motor de Jogos\",\"Plaltformer\",\"Programa\u00e7\u00e3o\",\"Rain\",\"Rel\u00e2mpagos\",\"Simula\u00e7\u00e3o\",\"Simula\u00e7\u00f5es\",\"Sonic\",\"Top\",\"Top 10 Game Engine\",\"Top 20\",\"Top Game Engine\",\"VideoGames\",\"VideoJogos\"],\"articleSection\":[\"Desenvolvimento de Jogos\",\"Platformers\",\"Programa\u00e7\u00e3o\",\"Projectos\",\"Retro Gaming\",\"Shoot 'Em Up\",\"Shooter Horizontal\",\"Sistemas\",\"Softwares\",\"Top\",\"Top Game Engine\",\"Video Jogos\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\",\"url\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\",\"name\":\"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++... - Gon\u00e7alo Ferreira\",\"isPartOf\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif\",\"datePublished\":\"2024-08-05T18:20:38+00:00\",\"dateModified\":\"2024-10-16T23:00:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage\",\"url\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif\",\"contentUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif\",\"width\":600,\"height\":263,\"caption\":\"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++...\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.goncalo.pt\/por\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#website\",\"url\":\"https:\/\/www.goncalo.pt\/por\/\",\"name\":\"Gon\u00e7alo Ferreira\",\"description\":\"[Game Engine\/Software\/Simulation\/Trading Systems\/Full Stack] Developer, Musician, Composer, Painter, Writer, IT Trainer, Sys Admin, Ex-Trader, Skater, Strongman, Vegan, Self-Taught Neuro-Divergent Polymath, and 1001 things more. Welcome to my world!\",\"publisher\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.goncalo.pt\/por\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#organization\",\"name\":\"Gon\u00e7alo Ferreira\",\"url\":\"https:\/\/www.goncalo.pt\/por\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png\",\"contentUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png\",\"width\":389,\"height\":90,\"caption\":\"Gon\u00e7alo Ferreira\"},\"image\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/www.linkedin.com\/in\/GoncaloPT\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd\",\"name\":\"gnmf\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g\",\"caption\":\"gnmf\"},\"sameAs\":[\"http:\/\/www.goncalo.pt\/por\"],\"url\":\"https:\/\/www.goncalo.pt\/por\/author\/gnmf\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++... - Gon\u00e7alo Ferreira","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/","og_locale":"en_US","og_type":"article","og_title":"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++... - Gon\u00e7alo Ferreira","og_description":"Um dos mundos m\u00e1gicos de testes escondidos no meu Game Engine, para mostrar uma melhoria no meu sistema de rel\u00e2mpagos","og_url":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/","og_site_name":"Gon\u00e7alo Ferreira","article_published_time":"2024-08-05T18:20:38+00:00","article_modified_time":"2024-10-16T23:00:24+00:00","og_image":[{"width":600,"height":263,"url":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif","type":"image\/gif"}],"author":"gnmf","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gnmf","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#article","isPartOf":{"@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/"},"author":{"name":"gnmf","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd"},"headline":"2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;","datePublished":"2024-08-05T18:20:38+00:00","dateModified":"2024-10-16T23:00:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/"},"wordCount":957,"commentCount":0,"publisher":{"@id":"https:\/\/www.goncalo.pt\/por\/#organization"},"image":{"@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif","keywords":["C++","Chuva","Desenvolvimento de Jogos","Dev","Game Dev","Game Engine","Motor de Jogos","Plaltformer","Programa\u00e7\u00e3o","Rain","Rel\u00e2mpagos","Simula\u00e7\u00e3o","Simula\u00e7\u00f5es","Sonic","Top","Top 10 Game Engine","Top 20","Top Game Engine","VideoGames","VideoJogos"],"articleSection":["Desenvolvimento de Jogos","Platformers","Programa\u00e7\u00e3o","Projectos","Retro Gaming","Shoot 'Em Up","Shooter Horizontal","Sistemas","Softwares","Top","Top Game Engine","Video Jogos"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/","url":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/","name":"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++... - Gon\u00e7alo Ferreira","isPartOf":{"@id":"https:\/\/www.goncalo.pt\/por\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage"},"image":{"@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif","datePublished":"2024-08-05T18:20:38+00:00","dateModified":"2024-10-16T23:00:24+00:00","breadcrumb":{"@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#primaryimage","url":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif","contentUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2024\/08\/2024-08-05-Better-Lightnings-and-Rain-on-my-Cpp-Game-Engine.gif","width":600,"height":263,"caption":"2024-08-05 - Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++..."},{"@type":"BreadcrumbList","@id":"https:\/\/www.goncalo.pt\/por\/2024\/08\/05\/2024-08-05-melhoria-nos-relampagos-e-chuva-e-multi-threading-de-volta-ao-meu-game-engine-em-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.goncalo.pt\/por\/"},{"@type":"ListItem","position":2,"name":"2024-08-05 &#8211; Melhoria nos Rel\u00e2mpagos e Chuva e Multi-Threading &#8211; de volta ao meu Game Engine em C++&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.goncalo.pt\/por\/#website","url":"https:\/\/www.goncalo.pt\/por\/","name":"Gon\u00e7alo Ferreira","description":"[Game Engine\/Software\/Simulation\/Trading Systems\/Full Stack] Developer, Musician, Composer, Painter, Writer, IT Trainer, Sys Admin, Ex-Trader, Skater, Strongman, Vegan, Self-Taught Neuro-Divergent Polymath, and 1001 things more. Welcome to my world!","publisher":{"@id":"https:\/\/www.goncalo.pt\/por\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.goncalo.pt\/por\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.goncalo.pt\/por\/#organization","name":"Gon\u00e7alo Ferreira","url":"https:\/\/www.goncalo.pt\/por\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/","url":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png","contentUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png","width":389,"height":90,"caption":"Gon\u00e7alo Ferreira"},"image":{"@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.linkedin.com\/in\/GoncaloPT\/"]},{"@type":"Person","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd","name":"gnmf","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g","caption":"gnmf"},"sameAs":["http:\/\/www.goncalo.pt\/por"],"url":"https:\/\/www.goncalo.pt\/por\/author\/gnmf\/"}]}},"_links":{"self":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts\/3786"}],"collection":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/comments?post=3786"}],"version-history":[{"count":8,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts\/3786\/revisions"}],"predecessor-version":[{"id":3939,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts\/3786\/revisions\/3939"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/media\/3787"}],"wp:attachment":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/media?parent=3786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/categories?post=3786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/tags?post=3786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}