Byte Battle
Bytebattles
Bytebattles are a form of live coding, similar to Shader Showdowns, where two contestants compete in writing a visual effect in 25 minutes. The coding environment is the TIC-80 fantasy console. However, unlike Shader Showdowns, there is an additional limit: the final code should be less than 256 characters. This requires the contestants to use efficient code (e.g. single letter variables) and to minimize the code (e.g. remove the whitespace), all within the time limit. Unlike normal TIC-80 coding, there is no compression, so every character counts.
Basic optimizations
- Functions, that are called 3 or more times should be aliased. For example, e=elli
with e()e()e()
is 3 bytes shorter than elli()elli()elli()
. Functions with 5 characters may already benefit from aliasing with 2 calls: r=rectb
with r()r()
is 1 character shorter than rectb()rectb()
.
- t=0
with t=t+.1
is 3 bytes shorter than t=time()/399
.
- for i=0,32639 do x=i%240y=i/240 end
is 2-3 bytes shorter than for y=0,135 do for x=0,239 do end end
.
- (x*x+y*y)^.5
is 6 bytes shorter than math.sqrt(x*x+y*y)
.
- s(w-11)
and s(w+8)
both approximate math.cos(w)
, so only math.sin
needs to be aliased. s(w-11)
is slightly more accurate, with the cost of one more character.
Additional Resources
- Code from past bytebattles https://livecode.demozoo.org/