<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Miguel Fernández Arce</title><link>https://muit.dev/</link><description>Recent content on Miguel Fernández Arce</description><generator>Hugo</generator><language>en-us</language><copyright>&lt;a href="https://github.com/muit" rel="noopener"&gt;Miguel Fernández Arce&lt;/a&gt;</copyright><lastBuildDate>Tue, 01 Aug 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://muit.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Making your own array</title><link>https://muit.dev/posts/2023/08/making-your-own-array/</link><pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate><guid>https://muit.dev/posts/2023/08/making-your-own-array/</guid><description>&lt;p&gt;Just use &lt;strong&gt;std::vector&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Which is what I did until a some weeks ago, when I decided enough was enough!&lt;/p&gt;
&lt;p&gt;It was about time I made an array type for the needs of my library. In this post, I will go through the design decisions taken while doing so: Creating a custom array container.&lt;/p&gt;
&lt;h2 id="why-a-custom-array"&gt;Why a custom array?&lt;/h2&gt;
&lt;p&gt;Until now, I used a wrapper around &lt;code&gt;std::vector&lt;/code&gt;, which was okay… No, really. But:&lt;/p&gt;</description></item><item><title>A new approach to ECS APIs</title><link>https://muit.dev/posts/2022/02/a-new-approach-to-ecs-apis/</link><pubDate>Thu, 10 Feb 2022 00:00:00 +0000</pubDate><guid>https://muit.dev/posts/2022/02/a-new-approach-to-ecs-apis/</guid><description>&lt;p&gt;Let’s talk about a different approach to ECS I have been rumbling about lately. Well, specifically, about how we query entities, manage dependencies and access/modify data.&lt;/p&gt;
&lt;h1 id="what-is-ecs-you-ask"&gt;What is ECS you ask?&lt;/h1&gt;
&lt;p&gt;Fair question! &lt;strong&gt;ECS&lt;/strong&gt; (as Entity-Component-System) is an architectural pattern based on DOD (data-oriented design), where you have three main elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Entities&lt;/strong&gt;: They are just an identifier and don’t hold any data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Components&lt;/strong&gt;: Structs of data associated with a single entity (1 entity can have 1 component of each type). They don’t have any code/logic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Systems&lt;/strong&gt;: Functions executed operating entities and components.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I could explain ECS in greater detail, but there are plenty of resources online already that will do a better job than me. 






 


&lt;a href="https://www.youtube.com/watch?v=0_Byw9UMn9g"
 &gt;This talk&lt;/a&gt; is a good start, and for more resources, you can also 






 


&lt;a href="https://github.com/SanderMertens/ecs-faq"
 &gt;read this&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Implementing a general-use arena</title><link>https://muit.dev/posts/2022/02/implementing-a-general-use-arena/</link><pubDate>Thu, 03 Feb 2022 00:00:00 +0000</pubDate><guid>https://muit.dev/posts/2022/02/implementing-a-general-use-arena/</guid><description>&lt;p&gt;Now that we have learned about 






 


&lt;a href="https://muit.dev/posts/2021/03/allocators-and-arenas/"
 &gt;arenas and allocators&lt;/a&gt;, we can get our hands dirty with an implementation of an arena.&lt;/p&gt;
&lt;h2 id="best-fit-arena"&gt;Best Fit Arena&lt;/h2&gt;
&lt;p&gt;You see, for the last couple of months, I&amp;rsquo;ve been updating 






 


&lt;a href="https://github.com/PipeRift/rift-core"
 &gt;RiftCore&lt;/a&gt; with new features.
&lt;strong&gt;RiftCore&lt;/strong&gt; is a cross-platform framework I use for C++ projects, and it lacked some memory management.&lt;/p&gt;
&lt;p&gt;So the time came to design a general-purpose arena!&lt;/p&gt;
&lt;p&gt;This article will describe the design and implementation of a &lt;strong&gt;Best Fit Arena&lt;/strong&gt;.
Feel free to come up with a better name though (and put it in the comments below!)&lt;/p&gt;</description></item><item><title>Allocators and arenas</title><link>https://muit.dev/posts/2021/03/allocators-and-arenas/</link><pubDate>Tue, 30 Mar 2021 00:00:00 +0000</pubDate><guid>https://muit.dev/posts/2021/03/allocators-and-arenas/</guid><description>&lt;p&gt;Lately, I have been playing around with the implementation of custom allocators and arenas to replace native allocations on my C++ projects.&lt;/p&gt;
&lt;p&gt;Wow! Stop right there, Muit. This line already deserves some introductions!
Let&amp;rsquo;s talk about allocators.&lt;/p&gt;
&lt;h2 id="crash-course-on-allocations"&gt;Crash course on allocations&lt;/h2&gt;
&lt;p&gt;To keep this brief, I will assume that we have some experience with C++ and heap allocation (&lt;code&gt;malloc&lt;/code&gt; and &lt;code&gt;new&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;An &lt;strong&gt;allocation&lt;/strong&gt; is when we request a pointer to a block of memory of a specified size.
When we use &lt;code&gt;malloc&lt;/code&gt; or &lt;code&gt;new&lt;/code&gt; we are getting this block of memory from the heap.&lt;/p&gt;</description></item><item><title>About</title><link>https://muit.dev/pages/about/</link><pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate><guid>https://muit.dev/pages/about/</guid><description>&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m Miguel, also known as Muit.&lt;br&gt;
Game programmer &amp;amp; voice actor.&lt;/p&gt;
&lt;p&gt;The majority of my work in videogames is centered around the design and implementation of videogame systems and tools in C++. If you like to code, stick around and have a look at my 






 


&lt;a href="https://muit.dev/posts"
 &gt;posts&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Many of my projects are open-source and can be found at 






 


&lt;a href="https://github.com/piperift"
 &gt;Piperift&lt;/a&gt;. Currently working at CI Games, previously Ubisoft Stockholm, EA DICE &amp;amp; Splash Damage.&lt;/p&gt;</description></item><item><title>Voice Acting</title><link>https://muit.dev/pages/voice/</link><pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate><guid>https://muit.dev/pages/voice/</guid><description>&lt;h2 id="demos"&gt;Demos&lt;/h2&gt;
&lt;p&gt;All demos recorded in one take.&lt;br&gt;
Effects: de-noiser&lt;/p&gt;
&lt;h3 id="spanish"&gt;Spanish&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;A - Happy, Angry, Sad, Shy . . .&lt;/strong&gt; &lt;br&gt;
. . . soon&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;B - Registros, Tonos&lt;/strong&gt; &lt;br&gt;
. . . soon&lt;/p&gt;
&lt;h3 id="english"&gt;English&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;A - Happy, Angry, Sad, Shy . . .&lt;/strong&gt; &lt;br&gt;
. . . soon&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;B - Registers, Tones&lt;/strong&gt; &lt;br&gt;
. . . soon&lt;/p&gt;
&lt;h2 id="studies"&gt;Studies&lt;/h2&gt;
&lt;h3 id="polford---curso-integral-2022-2023"&gt;Polford - Curso Integral 2022-2023&lt;/h3&gt;
&lt;p&gt;Had the chance to learn closely from three legendary voice actors. Luis Posada, Oscar Barberán &amp;amp; Jordi Brau who often voice actors like Robin Williams, Johnny Depp, Jim Carrey, Leonardo DiCaprio and many more in spanish.&lt;/p&gt;</description></item></channel></rss>