This page hosts the 'gamejamversion'(webBuildabove+manual) and the 'fullversion'(bottom of page binaries/exe/downloads). The fullversion is available to play(with a full manual) for free inbrowser on the official pico8 game engine forums and on pico8's splore( The binaries/exe/downloadables of the fullversion are hosted in the downloads section at the bottom of this page, which I recommend if you don't have access to pico8 because of improved audio+performance not found in the webBuild on the other page. The rest of this page is only relevant to the gamejamversion.

â—˜Lefthand: wasd+space+`12345+6qert+holdshift and a|d +v (ui)+k (resetgame) +, (music off)

â—˜RightHand: mouse-leftbutton/mouse-rightbutton/mouse-middlebutton (lb/rb/mb)

â—˜Objective: Survive until the timer hits 0.

*Controls are position-based not key-based, meaning you can play the same on any keyboard layout. This manual references positions using QWERTY. 

*stat info ~off; alt controls don't exist atm; c (ui) still instead of v (ui); a few things mentioned like zombies dont exist in this version.

â—˜Storyâ—˜ It is the year 305, an era of war. Wizards and cute cuddly animals have been fighting for years, with territory becoming heavily contested. You are a mobile fortress tree unit, created by the Great Wizard ChunChun. One of many tree units created to defend territory against the furry menace...

When Great Wizard ChunChun enchanted you, he gave, like he had to so many others, the gift of conscience. You seemed a little, 'odd' though.. a bit, 'different' from the typical magically embued tree. For one, you had a panting tongue and bulging eyes..almost like a dog. And two, you drooled a lot -_-.

You see, self-watering, although certainly useful, was not a common trait in magical trees. And ChunChun, upon inspection of his creation, became concerned for his reputation... 

ChunChun postulated the theory that your physical appearance may have implanted in your mind, sympathy, to the animal cause, or more accurately, the cause of choosing to 'not do anything' as the enemy passed by. An aloofness of the mind was less than ideal in his magical art. So, better sorry than safe, ChunChun implanted in you the order to destroy all things furry. 

Now ChunChun was not considered a wise wizard by normal wizarding conventions. But he wasn't stupid either. He knew his soft fluffy beard hair could be mistaken for the quality of fur. So he spent his dying moments writing this fact down on your barked skin as the last of his lifeforce oozed out of him all over his humiliating creation: 

'..So became the legend of the ChunChunTree, a glorious creation embued with godlike powers by the magnanimous high-wizard whose name will forever be remembered in fondness over any and all other singular moments in ti-...' 

...At least, that was the end of the script ChunChun scribbled frantically on you as he took his final breath. 

Prophetic, legendary, accomplished. The words were not lost on you as the ages rolled by. Unfortunately, at the moment, it seems you are stuck in the present. The 'ages rolling by' were a long ways off, even more so with the heavy attractive stench of wizard blood all over you. 'You', a makeshift weapons platform, who is presently stuck in the current of a war you were never meant to survive...

You are the ChunChunTree. 

The enemy is coming. 

Prepare yourself!

â—˜Skillbarâ—˜(left->right;casting:bar_above_head; casted:bar_finishes)

`:castbreak (cancels the skill currently being casted, 5s cd; aka ~tilde key)

1:volley(casting: spams cero [slightly faster/less-dmg/inaccurate])

2/ctrl:netshot(casted: 6s immobilize; decrease foe accuracy; +15s alacrity*) 

3:gunflame(casted: piercing, high dmg, inflicts confusion)

4:gunbash(confuse and knock foe in direction of cursor; ea foe hit grant +5s alacrity)

5:smoke ([black screen]10s hides your location from foes)

stamina-arcbar (spacebar: dodges attacks);health-orb (death if hp=0)

6:heal (casted:heals +30 hp; resets cooldown of gunflame(3))

q:god ([bright_green_skin] 6s immunity to all dmg)

e:harden ([pinkskin]15s gain +1energy +1 alacrity when hit, -50%dmg)

r:rage (casted:ALL TriMG bullets bypass shield+2xdmg;redglow; tags 3xdmg)

t:teleport (teleport to cursor; reactivate to return)

*alacrity: lowers cooldowns 2x as fast (i.e. red cooldown text)

**confusion: decreases foe accuracy and ability to function

***my '2' key brokeoff -_- so 'ctrl' was added as an alternative for 'netshot'

â—˜Weaponsâ—˜ TriMG (triple barrel machinegun), Epica (elemental casting)

♦TriMG (keyboard): 

   â€¢a/d aim: changes angle of fire

   â€¢shift held: hold shift while using a/d to turn faster

   â€¢shift tap: sets turnrate of 'shift held' to "R1"(fast) or "R2"(slow)

   â€¢s tap: tags (deal special conditions to weaken foe, pierces shields, creates zombie)

   â€¢s tap2: dCannon (2 high dmg bursts)

   â€¢s held: mg (%chance to pierce armour/kills give stam/worsen foe aim)

   â€¢w held: shield (reflects projectiles)

   â€¢spacebar: dodge (bullets go through u & hitfoe);-50 energy

   *dodging while [25,49]% energy will lead to energy=-100 

   **Tap requires you press the key and release immediately.

   ***Tap2 requires you press the key, hold a little, release.

   ****Held requires you hold the key down, release when desired.

   [Practice firing with The top-left bar ('v' to make it easier to see)]

♦Epica (Mouse: lb/rb/mb=leftmousebutton..etc; skillbar 1->4)

   â€¢cursor: aims Epica in the direction of choice.

   â€¢lb Tap: Cero (0.6s* cooldown, pushes/stuns foes back; immobilize increases dmg)

   â€¢lb Tap2: Grenade(thrown:lands@cursor,knocksdown*#of_foes_hit)

   â€¢lb Held: flame (Wide-spread spam, low-dmg, burns shields)

   â€¢rb/LeftAlt Held: shield (absorb bullets;+5|100 energy per bullet|cero/dCannon)

   â€¢mb/c: Pulse (aoe;destroys bullets;10s**recharge[middlemouse btn]) 

   *Cero cooldown affected by Alacrity! i.e only 0.3s cd with alacrity!

   **Pulse only goes on cooldown when it's 'all' used up. See tips 

   ***'Casting' is tied to Epica, you can't cast+fire at the same time

â—˜Tipsâ—˜ (these do not all apply to the currently posted version of the game)

☻@start tap 'k' to quickly reset the game whenever desired. 'v' to hide the BackGround (BG) and display enemy hp. Take a moment to practice the controls before you 'b'egin (i.e. press 'b' to begin). It's suggested you remove all trees (n), turn the BG off (v), and press 'f' to test against dummies ('g' for advanced test).

☻Too much information? ...or want something new? Let's Simplify! Use a Build:

Gardener: 'Hold s' + 'Hold lb'. Pair with: dodge(space)+heal(6)+god(q)+Harden(e) + (optional: rage(r))
CannonSniper: Use the dCannon as your primary attack while you shield with Epica. Change your turn-rate to 'R2' (tap shift), then you can hold shift when you need precision 'a|d' aim. Cast: 'R' to beat yellows, volley(1) to beat greens, heal(6) between waves.
ShieldHero: Don't fire (s/lb), just Double shield + castskills! See teleporting tips.
ZombieMaker: Create as many zombies with tag kills (tap s) as possible whenever possible, move them to protect/block one region of the map via grenades.

☻Enjoy volley(1)? There's a trick to using just 'some' of it, and leaving it instantly refreshed for another use. Better yet, use this trick to 'double' the cast-length. (Hint: play with the tilde key)

☻Tap pulse(middlemousebutton/c) and get ~3 separate uses. After the third it goes on cooldown and resets in 10s. OR you can hold pulse and use all of them at once, if you do this you can get 'alot' of pulses. Try quickly turning the cursor+holding mb & you can cover half the map! (Only 1 mouse button? Use LeftAlt/c for rb/mb)

☻Remember: You have 2 shields, an invulnerability, a dmg-reduction, a potential +3-dodge chain, heal, smoke, and a teleport. If you are put in an impossible to survive situation, you can survive.

☻grenades are good for clumped foe. They cause the knocked-down state, hurting foe accuracy, and turning foe friendlyfire on. The more foes hit by the grenade the greater the dmg and knockdown time. Grenade have very little effect, if any, on low hp foe and foe already knocked-down. Grenades inflict -20hp friendly fire if they hit you, but you can dodge(space) or use God(q) to negate the damage (harden(e) won't work). Next time a group of 150hp commando surround you: fire a single grenade ontop yourself and dodge the explosion...the results will satisfy. Or get creative: Teleport(t) instead of dodge.

☻Here is how friendly fire works:  i.e. type(hotkey): dmg(hits to end 100hp foe) 

knocked-down/confused/shield_reflect(w): 6(17); rage(r)+shield_reflect(w): 24(5); dodged(space): 36(3); teleported(t): 150(1) 

To garner interest and make it easier to understand, the final two states have been given ingame colour indicators to simplify: 'dodged' turns bullets orange; 'teleported' turns enemy bullets blue (magical residue+bending_space = deadly). Next time you are attacked from Left/Right consider that if the enemy on your right shoots a burst of 3 bullets at you....1 dodge cud solve your problem on the left. You can also block bullets in one direction with shield_reflect(w) and then time to dodge incoming bullets from the opposite direction such that they pass through you...hit your shield...and then pass through u again back at the enemy who fired them. Basically it means 6 dmg reflections in the one direction, and 36 dodge timed reflections (it's still 36 rather than 36+6) in the other, all at the same time with just your left you could technically then use your mouse to attack in a total of three different directions all at once. Or simply cast teleport...if an enemy bullet passes through the sparkly blue residue and turns blue... it will 1 shot most foe (might not turn blue if other modifiers are inplace (i.e. dodged), but dmg buff remains). Note: this also applies to your own bullets (turns your grenades/cero/etc blue).

☻when foe hp hits 0 they become a 'body'. Bodies will travel backwards and hurt the things they hit, more damage inflicted depending on the kinetic intensity of their death. Kinetic intensity is determined by 'how many and the type of' bullets that hit the enemy 1/3s before becoming a body (everything stacks). i.e. Shooting them from 100 to 0hp with the machinegun without delay? Body travels far. Shooting to 1hp, then waiting 1/3s, then firing machinegun again? Not travel very far. Note certain weapons like flamethrower may send the body forwards (combine with machinegun for weird results).

☻gunflame(3) and gunbash(4) inflict confusion on enemies that survive them (seen by weird white halo and weird movement). These enemies shoot everything, even allies. You can use cero to push them back to corners of the map and leave them there as turrets. They are 'sorta unlikely' to hit you when far enough away.

☻gunbash(4) can be a little confusing. Think of it as an aoe with a short lifecycle, where any foe that touches that aoe  will, if killed, be sent flying at the angle of your cursor relative to their own body. So if your cursor is positioned NE of ChunChun (45degrees), any foe killed from touching the aoe of a casted gunbash will be sent 45degrees from their center rather than yours. As an added bonus, anything struck by this body is likely to die....making it a sort of pinball mechanic. Confused? Just point your cursor at the direction you want any foe affected to go flying towards. 

☻triple machine gun (tmg) is weak, but it fires alot. If u hit a foe while they fire then their accuracy goes way down. Killing an enemy with tmg grants some energy...the more shots that hit during the killshot the more energy granted, so aiming all bullets directly gives greater benefit (foe body will also fly back further and longer). Conversely just spraying back and forth over a large area can decrease multiple enemies accuracy, making more miss you. Because it grants energy, u can dodge the initial enemy on the enemy...decrease their aim so u don't have to dodge anymore...then regain that energy for the next enemy when they die. This can be a viable alternative to using your shield. When compared to other weapons: The dCannon might be able to 1shot the enemy, but it requires precise aim and it won't regen ur energy, so you'd need to compensate with usage of your shield.

☻tags(tap s) are a weird wildcard/planning weapon. They pierce armour and have a random chance to deal a condition: confusion/immobilize. Any enemy killed with a tag attack becomes a 'zombie'. Zombie bodies stay in-play for ~40s, block everyones' bullets, and block movement of enemies. You can move zombies around with grenades/etc to shield you from certain angles of attack. If a section of the game is easy but the next section hard, make zombies in the easy section to help you with the hard part.

☻how do shielded (yellow) enemies work? 

   -they are immune to most regular weapon damage except "tags" (tap s). 

   -TMG (hold s) has a ~5% chance to do damage

   -flame burns the shield's hp. Once broken, they will change colour to brown and      dmg works normally again.

   -All weapon effects are still active against shielded enemies. So TMG still    negatively affects the foe's aim, cero still flings them back etc. Gunflame/gunbash    still confuses them (useful gimmick); netshot still temporarily immobilizes them and    hurts their accuracy.

   -easy way to 1v1 shielded enemies: shoot a small burst of flames at them then    immediately start casting gunflame(3). u can use ur keyboard shield(w) to block    while ur doing this. Otherwise it's suggested you aim a shield at them while casting    2/3/4 to inflict some kind of condition to nullify their aim. Try grenades, tags,    etc...explore!  

☻Immobilized (tags(tap s)/netshot(2)) foes take extra damage vs cero. Netshot+ceros can even kill a shielded foe.

☻speaking of netshot(2/ctrl): this grants a lot of alacrity. you can use it when a fight has 'wound down' to quickly regenerate your heal(6). Think of netshot as a way to makeup for any previous damage taken.

☻Teleport is not just another way to dodge. When you are surrounded, try using it offensively: ♥Defend with both shields, then when all foes are close enough teleport so they are all in-front of you, use volley(1), ♥or teleport so multiple foes lineup like a stack of domino for your gunflame(3). ♥Use shields+dodge while turning one foe into a zombie with tags(tap s)...then teleport behind the zombie, use it as a shield, then lob a grenade once all the foes are close together. Experiment, and learn that you can shoot yourself (careful with flamethrower).

☻Speaking of shooting yourself: Notice Epica's shield grants +100 energy when it absorbs cero? Shoot yourself. Twice, Try on the teleport's return, for 'full' regen. dCannon can max you out in 1 shot, but very hard and deadly on mistake. Absorbing flames is another good method (requires less setup/accuracy, and is much more dangerous).

☻Summaries of Energy: Energy regens naturally up to a cap of 100 from a minimum of -100. Absorbing bullets with epica's shield will grant +5 energy per bullet, or +100 per cero/dCannon (you can also absorb some of gunbash(4)'s aoe for ~10->15 energy). Getting shot using Harden(e) grants +1 energy, killing enemies with the machine gun grants an amount based on the number of bullets making contact on kill ~20->40 energy. Dodging(spacebar) drains -50 energy, dodging while at [25,49] sets energy=-100.

☻Ability cd and timers are generous on purpose. For example God(q) is 6s instead of 2|4s. While 2|4s 'can' still be insanely useful, 6s will remain long enough for you to REally see the impact of the ability. The intent is for more players who hit the right thing around the right time to feel rewarded. It keeps the gameplay lighter, and encourages more in-the-moment experimentation...which is the whole point of this game. This isn't a glorified game of twister where, like in many pve mmo, you spam the same combo over and over to maximize damage. There are many ways to skin the squirrel (squirrels still unconfirmed *=_=), and players should have fun figuring them out.

☻Best tip: you can fling foe(dead or alive) into grenade explosions, sorta hard tho -_-

◘☺☻♥☻♠-Instructions End-♠☻♥☻☺◘


â—˜Author's Noteâ—˜

*probably end of june now. will release on pico8 bbs, post on twitter etc.

*2022-5-22 Formerly called 'Against The Current: The Legend of the ChunChunTree'. I presently haven't posted this update but: I fixed the bugs and improved the math (bodies now fly in the direction ur aiming...makes aiming gunbash work better), replaced the circles with shield sprites etc....I actually did all that according to the original timeline weeks ago, but never posted it. I'm presently making music (I'm really really bad at making music) and improving the site presentation, and will also post this game on the pico8 BBS when its ready, and hope to extend gametime +100s if my remaining tokens permit. I hope to have this all done by June 1, but frankly I'm working very slowly like a crippled animal. In order to 'advance' to new things I need a portfolio and this game will be a part of that. My exploits into finding a new game engine have sorta left me emotionally crippled, but returning and polishing this entry will serve to rally myself before I give all that 'next step' baloney another shot.

I'm out of tokens. I'm out of tokens. I'm out of tokens. But no, seriously, I'm out of tokens! Pico8 has 'some' -_- limits: character limit...cpu/ram limit...size limit...but tokens...token limits are the worst and I've hit them for the first time. Without more tokens I can't add anything more to the game. And the only fixes basically butcher readability and cpu performance. So you'll notice some cut corners, for example..the trees....sometimes they grow right ontop of you right? Blame Tokens! Bullets not traveling behind trees? Blame Cpu/ram limits. No third alt melee weapon and alt skillset!??!! No nice fade-in/out effects between scenes!??!?! bLAME tokens! No weapon particles shooting everywhere on hit/fire!??!!? TOKENS... Those are actually annoying to do in general -_-, but TOKENS!  

*A week or so after the Jam is over I will post an updated version of the game. I want to keep polishing things and there are 2 bugs atm I want to fix: One is some offscreen stuff ..sent under the ui to the top left corner. Two is during lategame when the green mobs spawn specifically near the last 80seconds of the game....sometimes enemies and bullets onscreen start 'shifting' and 'dying' and ya ..but its temporary and won't hurt you. This is my first 'full' pico8 game, and it understandably has me upset at how small the game really has to be and that I can't do the things I want to do at this point. Regardless, it's a good milestone. Future games made for pico8 are going to be ..small and aimed at learning specific concepts rather than making a game full of gameplay and story.

tweet me @Cerbyo1 if you have any suggestions for balance/fixes/controls.

StatusIn development
PlatformsWindows, macOS, Linux, HTML5
Rated 3.0 out of 5 stars
(1 total ratings)
GenreShooter, Action
Made withPICO-8
Tags2D, PICO-8, Twin Stick Shooter


Download 775 kB
Download 3 MB
Download 2 MB
Download 1,010 kB


Log in with to leave a comment.


Great job!  This is the first Pico8 game I've played.  I like the many mechanics and abilities.  Also I really enjoyed reading the story!  It was somewhat difficult but I got the hang of it after a few runs.  It was a little difficult to distinguish enemies on the main play area, but overall this was really fun.

Thankyou for the kind words. A bit later in the year, but if it's of interest the full-version(much improved) is now live over on the pico8 forums( and available for download right above this comment. Regardless, best wishes to you and carry on.