SUPER Cute Alien - 1-4 players platformer about friendship, love and what it means to be human.

  • @Agustín-Pérez-Fernández hey, thanks mate! The HTML5 will be free, so, yes, I will sign you up for the next batch, latest version, as soon as it is done :)

    And, speaking of which, been polishing the UI. Idea is to have a quite clean interface, with the less amount of objects as possible. Most of the UI elements come and go exactly when you need them. Is a much more time consuming process, but more inmersive.

    Here's how it looks so far, also here's the logo, which is WIP, of course:

    alt text

    Sadly, most of this UI won't be available for the Windows version. This is like... a simple UI, mobile/web oriented, with gigantic, and readable content (ugh! :sick:). The Windows version will have a different menu, with different options, and considerably smaller UI. For PC people, ya know :upside_down:

  • Wonder what this might be...



  • Development of SCA resumed and soon releasing on Steam Early Access! Here's some mayor points:

    • Added Spine skeletal animation for masks support, and well, incredible character customization and movement. Also created some cool clases to easily customize colors and attachments. This is something probably I will write in more detail later, since, well, this is a HaxeFlixel forum!
    • Added local multiplayer, plus a few coop and versus maps.
    • Added joystick support. Works beautifully.
    • Support for HTML5 and Flash dropped, we will only target Windows for now.

    alt text

    alt text (lol)

    Last stop is the dynamic lighting and guess we are good to go. More media super soon!

  • Well, I guess since we about to reach 5000 views (!!)... I sense there might be a person or two that is still tracking this dev log! So, quick update!


    • Added GOOD/EVIL system. Basically, good actions give you rewards, and being a bad boy makes you evil. Being good or bad unlocks different content.
    • Added antenna that controls enemies for advanced gameplay. You can break the antenna, fight its drones and pick loot or save the controlled enemies individually and get coins or walk past by and ignore everything or kill everything in sight!
    • New enemies!
      alt text
    • Added shader based meta balls ( this is to spawn realistic blood, like a liquid!)
      alt text


    • Added player selection
      alt text
    • Added zoom in, zoom out
    • Tons of cool weapons (with lasers, silencers and cool stuff)
    • Vendetta mode (challenge and punish other players)
    • Aaaaaaaaaaaaand added ragdolls! CHECK IT OUT (heads are placeholders!) ->

    Here's how it looks so far (there's someone cloacked there!):
    alt text

    And all of this stuff supports joystick. And 4 players. In coop as well.

    There's more stuff, but I can't remember everything. So, here's the changelog from repo.

    alt text

    That's it for now! Thanks, bye

  • Survival mode in coop :)

    alt text

    I also found the way to, finally, replace custom FlxSpine sprites, programatically. This would be incredible useful to support things like.. custom user heads!

    alt text

    They, of course, support ragdoll. The implementation reads directly from the FlxSpine body parts and creates bodies and sprites accordingly. Also, I extended the system to support a few unnecessary things (but cool) such as dismemberment, freezing of bodies (for the ice gun) and a burning mode, which uses a procedural 'running on fire' animation driven by physics. It really looks organic and brutal, which was the intention :)

    alt text

    This involves hacking FlxSpine::GetSprite function:

    if ("alien/masks/custom") >=0)
    			trace("mask detected, replacing");
    			var wrapper2:FlxSprite = new FlxSprite("assets/custom heads/custom1.png");
    			if ("alien/masks/custom1") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom1.png");
    			if ("alien/masks/custom2") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom2.png");	
    			if ("alien/masks/custom3") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom3.png");
    			if ("alien/masks/custom4") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom4.png");
    			imageFrame = FlxImageFrame.fromGraphic(wrapper2.graphic);

    Luckily I found out the way to do, 100%, everything I wished for the Spine implementation. If anybody has a question about it, I will super happy to help!

    Here's the inventory that won't make the cut for the upcoming public version, but will be finished at some point:

    alt text

    alt text

    In the last couple of months an insane amount of changes were done. Most of them, probably, boring, so a video is coming up soon!

    EDIT: added speech bubbles!

    alt text

    alt text

    Did a fancy, super easy class to manage a simple speech bubble. You feed a large string containing '\n" for line breaks, then displays each line in sequence (which you can speed up and skip). Anyone interested, just whistle!

  • Took me longer than expected! But put together a quick reveal video with a few features in. Hope you guys like!

    click to see video

    When the real trailers comes out, I was wondering if would be cool to support HaxeFlixel and put a logo at the start of video. Is the least that I can do. Can I do that?

  • Aaaaaaaand finished some sort of demo. Anyone interested, just whistle and I'll be sending a copy!

    alt text


    I've been asked on now to make these fancy buttons. Most of it comes from the great 9 slice tutorial from here: But I extended it a bit to support fancy labels. And that's the trick. Here's the steps I took.

    Somewhere in your class:
    var btn_versus:FlxUITypedButton<FlxSprite>;

    In your create();

    var _slice:Array<Int> = [10, 10, 40, 40];
    		var _sliceArray:Array<Array<Int>> = [_slice, _slice, _slice]; // all 3 buttons have same slicing
    		var _graphic_sheet:String = "assets/img/ui/9slice/sheet_button.png";
    		buttonsWidth = 170;
    		var buttonsHeight:Int = 50;
    		var labelHeight:Int = 35;
    btn_versus = new FlxUITypedButton(0, 0,YOUR_FANCY_FUNCTION_HERE);
    		btn_versus.loadGraphicSlice9([_graphic_sheet], buttonsWidth, buttonsHeight, _sliceArray, FlxUI9SliceSprite.TILE_NONE, -1, false, 49, 49);	
    		btn_versus.label = createLabel();
    		cast(btn_versus.label,FlxBitmapText).text = "Versus";

    Here's the sprite I created:
    alt text

    Now, on the label. I used a custom bitmap font, with effects already on the letters. You need this kick ass site to generate your font: -- nothing complicated, just pick Preset: Basic and export as it comes by default (XML .fnt)

    Grab the exported files and put them in your assets folder.

    If you noticed, I used createLabel(), here's the function (feel free to tweak it as you wish ie scale):

    private function createLabel():FlxBitmapText
    	var textBytes = Assets.getText("assets/font/font.fnt");
    	var XMLData = Xml.parse(textBytes);
    	var fontAngelCode:FlxBitmapFont = FlxBitmapFont.fromAngelCode("assets/font/font.png", XMLData);
    	var fancy_text:FlxBitmapText = new FlxBitmapText(fontAngelCode);
    	fancy_text.text = "change_me";
    	fancy_text.blend = BlendMode.MULTIPLY;
    	fancy_text.alignment = FlxTextAlign.CENTER;
    	fancy_text.multiLine = true;
    	fancy_text.wordWrap = false;
    	fancy_text.scale.set(0.5, 0.5);
    	fancy_text.antialiasing = true;
    	fancy_text.autoSize = true;
    	return fancy_text;

    Now, the labels won't be centered. That's a bit tricky since is now a label of a button, and the latest will control its position. We need to offset it automagically, like this:

    btn_versus.label.offset.x -= (buttonsWidth - cast(btn_versus.label, FlxBitmapText).width) / 2;
    btn_versus.label.offset.y -= (buttonsHeight - cast(btn_versus.label, FlxBitmapText).height ) / 2;

    Well, off I go. Hope that comes useful for someone else!

  • This post is deleted!

  • @Claudio-Ficara hello I've been following your development of this game for months I've learned so many great tricks and tips from optimization to the cool Dropbox text loader to now really nice flx Bitmap text. I'd love a copy of the game if that's still available. Also the Continued updates of this dev log is really helpful to so many devs as well as myself and I really appreciate it.

  • @PXshadow Hey mate, thanks for following the project and I'm super glad I helped someone with these tips and such.
    I do recognize that I should be writting more about some concepts, ideas and implementations, specially because the HaxeFlixel/OpenFL/Spine/Tiled combo is quite powerful, and there are some libraries, (ie Spine) that could use some explaining.

    As a related Dropbox text loader / copy of the game, I implemented this other thing yesterday, looks like this:

    alt text

    Basically, is a very simple activator online, that will fetch from a server what copy should and shouldn't be playable. Also, there are two methods of activating it, as a developer or beta tester.

    I do understand that is not a perfect solution and could be easily cracked, but it would stop most of the people without that knowledge.

    While the final version of the game won't have DRM (perhaps a default common one handled by the distribution platform) this whole thing is important for a few reasons: 1- Kill switch for versions that got leaked. 2- Kill switch for versions that are waaay too old. 3- Developer mode can be easily set for any person I wish.

    But in short: yeah, I'm gonna wrap this up and prepare a copy!

  • This post is deleted!

  • Moar GFX progress!

    alt text

    PS: Preparing a playable copy soon. Is just that this thing took priority.

  • Aaaaaaaaand currently improving things here and there. Here's some tests for the night glows. Not sure if looks exactly accurate...

    Night glows test

  • Well, here's to celebrate 7000 views!

    Been working on this non-stop to polish it the best I can. Here's some images of the upcoming changes! The rest of the changes are boring:

    alt text

    alt text

    Also, been tweaking the gore aspects a lot. Ragdoll is now supported for single player and there's decal support :)

    alt text

    More soon, of course. Ktnxbai!

  • I'm starting to collect emails to send a preview copy. It only contains 2 game modes, so far, but once things get in better shape, beta testers will be able to access to the full content.

    Anywho, here's the GOOGLE FORM TO ACCESS BETA

    Link to download will be sent once a bunch of emails are collected. Thanks for participating and enjoy!

  • EDIT: Yay, flamethrower!

    alt text

    oshi- Windows 10 users are currently experiencing crashes. This is now fixed. Expect a patch soon arriving in your emails.

    Now, as far as dev goes, we are between tweaking GFX and improving gameplay. Here's a couple of things:

    alt text

    One is the antenna that controlls enemies, the other is the weapon vendor, weapon kiosk, where you can access lots of fancy weapons and items.

    Here's a gif that show cases new monster abilities and more interesting player damage:

    That monster is going to be replaced by dis:

    alt text

    And well, it will come with a couple of variations, such as fire, ice, and etc.

    While people is having fun with survival and versus, the single player is going to be tweaked a lot.

    We are moving towards of what I would call a closed open world style. Open in a sense of bigger maps, in dimensions, with more optional content you can do... or skip. Closed in a sense that levels would pretty much start and end in the same way. How you do so would be up to the player. This would be a bit like Braid. A bit. You go right and finish one level after the other. Or you go and complete all the puzzles and challenges.

    Oh, and flashlight for da night:

    alt text
    More stuff soon.

  • Shout-out to the guys from Arcade Crowd for doing a hilarious video!

    click to see video

    Remember that anyone can fill up this form (just an email) to participate in the closed beta!

  • I'm the worst dev logger (?) ever, I should be posting here more... but hey! I implemented FXAA!

    First of all, right click -> view image, so it opens in full.


    alt text

    ON (notice how the text looks a bit better around the edges):

    alt text

    Da code:

    FlxG.addPostProcess( new PostProcess("assets/shaders/fxaa.frag"));

    Put the following in a file namedfxaa.frag, inside "assets/shaders"

    #ifdef GL_ES
        precision mediump float;
    varying vec2 vUv;
    varying vec2 vTexCoord;
    uniform vec2 uResolution;
    uniform sampler2D uImage0;
    /* Basic FXAA implementation based on the code on with the
       modification that the texture2DLod stuff was removed since it's
       unsupported by WebGL. Made HaxeFlixel ready by Claudio 'SysOp' Ficara*/
    #define FXAA_REDUCE_MIN   (1.0/ 128.0)
    #define FXAA_REDUCE_MUL   (1.0 / 8.0)
    #define FXAA_SPAN_MAX     8.0
    void main () {
        vec2 delta = 1.0 / uResolution;
        vec3 rgbNW = texture2D(uImage0, vTexCoord + vec2(-1.0, -1.0) * delta).rgb;
        vec3 rgbNE = texture2D(uImage0, vTexCoord + vec2(1.0, -1.0) * delta).rgb;
        vec3 rgbSW = texture2D(uImage0, vTexCoord + vec2(-1.0, 1.0) * delta).rgb;
        vec3 rgbSE = texture2D(uImage0, vTexCoord + vec2(1.0, 1.0) * delta).rgb;
        vec3 rgbM = texture2D(uImage0, vTexCoord).rgb;
        vec3 luma = vec3(0.299, 0.587, 0.114);
        float lumaNW = dot(rgbNW, luma);
        float lumaNE = dot(rgbNE, luma);
        float lumaSW = dot(rgbSW, luma);
        float lumaSE = dot(rgbSE, luma);
        float lumaM  = dot(rgbM,  luma);
        float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
        float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
        vec2 dir = vec2(
            -((lumaNW + lumaNE) - (lumaSW + lumaSE)),
            ((lumaNW + lumaSW) - (lumaNE + lumaSE)));
        float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
        float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
        dir = min(vec2(FXAA_SPAN_MAX), max(vec2(-FXAA_SPAN_MAX), dir * rcpDirMin)) * delta.xy;
        vec3 rgbA = 0.5 * (texture2D(uImage0, vTexCoord.xy + dir * (1.0 / 3.0 - 0.5)).xyz + texture2D(uImage0, vTexCoord.xy + dir * (2.0 / 3.0 - 0.5)).xyz);
        vec3 rgbB = rgbA * 0.5 + 0.25 * (texture2D(uImage0, vTexCoord.xy + dir * -0.5).xyz + texture2D(uImage0, vTexCoord.xy + dir * 0.5).xyz);
        float lumaB = dot(rgbB, luma);
        if (lumaB < lumaMin || lumaB > lumaMax) {
            gl_FragColor = vec4(rgbA, 1.0);
        } else {
            gl_FragColor = vec4(rgbB, 1.0);

    Have fun with your less sharp edges!

  • @claudio-ficara said in Super Cute Alien - A cute platformer, inspired on BattleBlock Theater, Super Meat Boy and others!:

    We are moving towards of what I would call a closed open world style. Open in a sense of bigger maps, in dimensions, with more optional content you can do... or skip. Closed in a sense that levels would pretty much start and end in the same way. How you do so would be up to the player. This would be a bit like Braid. A bit. You go right and finish one level after the other. Or you go and complete all the puzzles and challenges.

    What is the difference between Flixel antialiasing and your solution?

    The game is looking great!

    I think you are from argentina. We should get together sometime as we are both using HF.

Looks like your connection to HaxeFlixel was lost, please wait while we try to reconnect.