Log In  

Cart #hakai-3 | 2022-09-07 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

The game's finally released! Hope you all enjoy it as much as I did making it!


HAKAI is a momentum based aerial fighting game that takes cues from Dragonball Z.
Win three rounds to beat your opponent. If the timer runs out, whoever has the lower amount of health wins, and if the players' health are equal it's a draw.

You can choose whatever combination of character, bullet and super type you want. All changing character does is pick your color, though if you're in Practice mode, the character of your opponent matches the AI that character would have in Arcade mode.

Arcade Mode

The 28th HAKAI Tournament has begun! Do you have what it takes to win?

In this mode you can fight four increasingly-difficult AI opponents across the four maps.

Local Versus

Fight against your friend!

The camera is set to zoom out much further to try to keep both players inside the screen at all times.


No time limit and infinite health versus a dummy.

You can use the menu to enable/disable the dummy AI and command info. You will select the dummy's character and skills after confirming yours.


Movement and Jumps

Input left and right with the arrow keys to move on the ground. If you have some speed and input the opposite direction you will skid.

Press Z/C on the ground to jump. If you jump while skidding you will "side jump" which cancels all your horizontal speed.
Hold down before jumping to super jump, adding much more vertical speed. You can also do "super side jumps"!


Press Z/C while airborne to dodge in the direction held with the arrow keys. If no direction is held you will dodge in whatever direction you are moving.

Hold Z/C while a direction is held to fly. This drains energy, but you can still fly when you have none left.
-Flying is a fast movement option and good for covering large distances.


Hold Z/C while no direction is held to charge energy. Charging for longer increases the speed at which energy is gained. You will also slow down and stop moving, even in midair.

Physical Attacks

Press X/V while a direction is held to do a dash.
-The dash will auto track towards the opponent, and will automatically do a strike upon reaching them.
-The direction held will choose the direction of the initial burst of speed.

Hold X/V during a dash to start a heavy dash.
-The heavy strike deals more damage and stun, and launches the opponent much farther.
-The heavy dash gives an addition speed burst and is overall faster, but doesn't track as much making it easier to dodge it.
-During a heavy dash,energy will be drained.
-You cannot start a heavy dash if your energy bar is gray.

If you press X/V while no direction is held you can cancel a dash. You cannot cancel a heavy dash!


Press X/V while no direction is held to shoot a projectile.
-Projectiles auto aim and track on their own. They consume some energy to fire. You cannot fire a projectile without enough energy!
-There are four kinds of projectile: Bullet, Heavy, Sniper, and Track.
-Bullet has a higher fire rate.
-Heavy has a low fire rate but is larger and deals more damage and stun.
-Sniper travels faster than the others.
-Track travels slowly but follows the opponent very well.


Hold X/V while no direction is held and your energy bar is flashing to charge a super!
-There are four kinds of super: Barrage, Nova, Beam, and Bomb.
-All supers interrupt and damage players, even during dash or heavy dash.
-While charging and firing a super you are immune to only projectiles. You are not immune to either kind of dash attack or any super.
-The exception is the Nova attack, which after charged is immune to any other attack, including supers.

-Beam will slow down a Nova.
-Only the "beam" part of Beam has a hitbox. You can flank the beam and strike the opponent's backside.
-If two beams collide they will do a beam clash. This restores energy to both players.


All attacks stun the opponent a varying amount. The amount of stun a player has left is indicated by the combo meter.
-While stunned you cannot do anything! Stunning opponents and combo-ing them is key to doing more damage, so keep this in mind before using a heavy dash and launching the opponent far away.
-If a player hits the ground or the walls while stunned, they will receive more stun. All players bounce off the walls, but you need to hit the opponent hard into the ground to bounce them otherwise they will slide. "Bounces" deal more stun!


All non-super projectiles and regular dashes can be blocked. This is done by holding the direction key opposite to where the attack is coming from.
-Use blocks to gain advantage on an opponent!

General Tips

-You can dodge while doing other attacks. Use this to aim the heavy attack.
-Your speed affects how far you launch an opponent upon doing a strike. Dodge into the opponent right before reaching them to launch them much further!

-The dash is invincible to projectiles. Be aggressive if the opponent is trying to zone you!

-If the opponents hit each other while both are doing a dash, they will bounce off each other.
-If they are in the heavy dash state, they will do a short clash animation before bouncing away. During the animation energy is restored to both players.
-If a player doing a heavy dash hits a player just doing a regular dash, the player doing the heavy dash will get the hit.

P#116052 2022-08-20 07:35 ( Edited 2022-09-07 05:19)

I've played around a lot with using sspr() to palette shift custom areas of the screen, so I thought I'd share a function for doing so over a circular area. It's also what led me to make this suggestion here https://www.lexaloffle.com/bbs/?tid=48796 It's not essential to any of my projects right now but I figured I'd call a bit more attention to it.

function ssprcircfill(x,y,r)
    for i=0,r do
        for op=-1,1,2 do
            local height,lefx=640*sqrt((r/320)^2-(i/320)^2),x-i*op
            local top=y-height/2
            if top<=0 then
    poke(0x5f54,0x00) pal()-- return to defaults

To change what colors are shifted to what, just change the numbers in the pal function!

P#115422 2022-08-08 04:18

sspr should inherently shorten the input width/height of the rectangle taken from the sprite sheet to 128 instead of just cancelling the call completely to better work with programs that mess with stuff like using sspr while treating the screen space as the sprite sheet.

P#115358 2022-08-07 06:37

Cart #demo_3d_citee-0 | 2022-06-13 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

Hey bbs! I had a lot of fun making this city render for my fighting game. arrow keys to move and z and x to zoom in and out!
(The buildings are random gen btw)
thanks to freds72 for helping a ton with optimizing the thing!

P#113088 2022-06-13 01:43 ( Edited 2022-06-14 03:54)

Cart #aerialrave1_0-2 | 2022-01-11 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

Final jam submission is here on the bbs! The "office" tutorial should hopefully teach how the game works, and address some of the problems people have been having figuring out the game. I've had very little time to playtest it (being a jam and all) so if anything still isn't clear or if you don't like something I'd like to hear your criticism!

P#104834 2022-01-11 21:23 ( Edited 2022-01-11 21:27)

Cart #aerialrave1_10_22-0 | 2022-01-10 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

Second work in progress release based on user feedback.

Score, style meter, deathscreen with results and office practice room added.
Killfloor rises much slower, rising faster based on your level
Filling boost is made consistent, takes about 5 kills (fountains count as half)

Style rank adds power to your boost! The higher your rank the higher you fly!

[[z,x, and arrow keys to control
double jump recharges with time
double tap and hold direction to stinger attack
You can walljump (though not for much height)
hold up or hold down to do different attacks. Up attacking a stunned enemy gives you height!
Hold x while doing down attack to keep it active. Doing this on a stunned enemy stops this from canceling.
if you do one of the hold button attacks on a stunned enemy (when they flash) it does something different
Normal slashes are best for causing stuns
hold z to use super jump when red bar is filled
Fill the bar with kills (The fountains count!)]]

P#104727 2022-01-10 06:53 ( Edited 2022-01-10 06:54)

Cart #aerialravewip1_9_22-0 | 2022-01-09 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
z,x, and arrow keys to control
double jump recharges with time
double tap and hold direction to stinger attack
You can walljump (though not for much height)
hold up or hold down to do different attacks. Up attacking a stunned enemy gives you height!
Hold x while doing down attack to keep it active. Doing this on a stunned enemy stops this from canceling.
if you do one of the hold button attacks on a stunned enemy (when they flash) it does something different
Normal slashes are best for causing stuns
hold z to use super jump when red bar is filled
Fill the bar with kills (The fountains count! Downslash kills give the most bar!)
please lmk what you think any issues etc!

P#104623 2022-01-09 06:28 ( Edited 2022-01-09 08:22)

Cart #lightning-0 | 2022-01-02 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

I did a randomized lightning generator. You can turn off the flash in the menu if you're sensitive to it
(it makes me nauseous if I watch for too long)

P#104079 2022-01-02 03:39

This level doesn't have much besides my robot man and his blaster. I've had quite some fun with all the new custom player features, and I plan to expand with much more animations for the robo's various actions, starting with jumping.
But while I was testing I found that when playing in an area larger than one screen or if I move diagonal, my player jitters while it walks. I don't know if my players too big or if there is something I'm missing, but I'm sure all the animations aren't off or anything like that.

Now for my future plans I would like to suggest some things that I think could really help.

One you've probably heard before- more camera options. But here I don't mean like any angle options or first person/third person.
For example, there's a game called Retro City Rampage where the version ported to the handheld 3DS has a feature when driving. The bird's-eye view camera will move ahead of the player to show more in front which is very important (I think) due to the smaller screen of the handheld device, and especially due to the high speeds.
I imagine a feature like this would be very important to future Voxatron maps, especially for ones with bigger players and monsters.

P#8887 2014-06-08 23:49 ( Edited 2014-11-04 14:02)

So here I have the LATEST UPDATE to the Lonely Voxel! So much hype, coming from me!
I've just added a few more areas thanks to little time and/or inspiration.

An idea that I implemented in the end is a simple HUD editor deal. Thanks to Draw In Screen Space you can move an animation up where the HUD is, as everything besides props can be put 15(?) voxels above the editing area, though they can't be seen until the level is played.

It can't be used for health or anything (unless you have a REALLY intricate boss) but can be used for "quest item collection" like the Spiritual Stones or key items. Or you could change the font, add vines on the weapon box, name weapons, many possibilities.

I also found exploding enemies neato.

P#7836 2013-09-21 22:59 ( Edited 2013-09-23 23:05)

Here it is, here it is!
My WIP map is now malleable enough to be shown to the public! Do not play if the sight of red voxels implied to be blood nauseates you! (Don't be ridiculous)

P#7576 2013-07-30 21:47 ( Edited 2016-03-02 22:01)

Follow Lexaloffle:        
Generated 2022-10-07 14:47:59 | 0.068s | Q:34