Make a Unicorn interpreter
Unicorn (ES6), 5934 5278 bytes





Under the custom encoding, this is 5278 bytes (1 byte per char); but with UTF-8, it would 4 bytes per char (though only 1 for a space), or 20869 total.

(too many Unicorns and Goats to reasonably display here)


Instead, here's a pastebin. This Unicorn code transpiles to this JS snippet:

s=&gt;eval(s.replace(/\S+ ?/g,c=&gt;String.fromCharCode(c.length&gt;&gt;1&lt;&lt;c.charCodeAt()%2)))


Now, this isn't the shortest possible version; this is shorter:

s=&gt;eval(s.replace(/\S+ ?/g,c=&gt;String.fromCharCode(c.length&gt;&gt;1&lt;&lt;(""&gt;c))))


However, the one unicorn in there would transpile to 56034 goats, thus multiplying the score by roughly 11.

Here's the function I used to transpile to Unicorn:



function g(s){return s.replace(/./g,function(c){i=c.charCodeAt();return(i%2?"".repeat(i):"".repeat(i/2))+" "}).slice(0,-1)}
&lt;textarea id=O cols=100&gt;&lt;/textarea&gt;&lt;button id=P onclick="Q.value=g(O.value);R.innerHTML=(Q.value.length+Q.value.split(' ').length-1)/2"&gt;Run&lt;/button&gt;&lt;br&gt;&lt;textarea id=Q rows=10 cols=100&gt;Output appears here.&lt;/textarea&gt;&lt;br&gt;&lt;p&gt;Length: &lt;span id=R&gt;0&lt;/span&gt;&lt;br&gt;&lt;/p&gt;




Note: I haven't actually tested the program, as there isn't an online interpreter that I could find (although I suppose I could hook up the .js file to HTML...?)