I remember having done a project like that in my CS school.
We had to do a compiler from some pseudo asm to the binary opcode supported by the corewar VM, the corewar VM itself (you can call it the arena) and a champion and we would fight champions across teams.
Taugh me a lot about opcodes and emulation.