This is for TweetTweetJam8 and its 500 character limit: my code contains 495 characters including the html tags and javascript. The name is in reference to cellular automata. The idea is the field is full of cells that keep changing based on a set of rules and you need to get past them to reach the goal. Although I could only fit limited cell types in this version if I revisit it I'll be sure to try out more kinds.

How to Play: 
You are the "@" in the upper corner. Use W,A,S,D to move. You can move through "." and "," but not through"E". If when you move you would have landed on an "L" you lose. You can still occupy a space with an "L". Try to reach the "G". Also the map loops.

This is my 1.0 version. Thanks to my experts coding skills and 500 character limit, this game is 100% bug free! Yes all possible game states and actions are intentional game design! This includes but is not limited to opening the console and changing the code, all softlock states, and lag due to managing large arrays. 


I also made a color version for those having trouble reading the screen: https://ninjakittyc4.itch.io/colored-cell-crawler

Full code:

<pre><script>o=document;p=o.body.children[0];s=40;S=0;P=0;d=0;D=".";R=n=>parseInt(Math.random()*n);m=o=>{d=D.repeat(s*s).split("").map(n=>R(20)<1?"E":n);d[R(s*s)]="G"};r=o=>p.innerHTML=S+Array.from(d).flatMap((n,m)=>[o=m-P?n:"@",m%s?o:["\n",o]][1]).join(" ");m();r();o.onkeydown=e=>(e=({w:-s,a:-1,s:s,d:1})[e.key])?[d[e=(e+P+s*s)%s**2]==D||d[e]==","?P=e:d[e]=="L"?[P=0,S=0,m()]:0,d=Array.from(d,(n,m)=>n==D&&d[(m+1)%s**2]!=n?",":n=="L"?D:n==","?n="L":n),d[e]=="G"?[P=e,S++,m()]:1,r()]:0</script>