Super Cute Alien - A cute platformer, inspired on BattleBlock Theater, Super Meat Boy and others!



  • 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 (regionAttachment.name.indexOf("alien/masks/custom") >=0)
    		{
    			trace("mask detected, replacing");
    			var wrapper2:FlxSprite = new FlxSprite("assets/custom heads/custom1.png");
    			
    			if (regionAttachment.name.indexOf("alien/masks/custom1") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom1.png");
    			
    			if (regionAttachment.name.indexOf("alien/masks/custom2") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom2.png");	
    			
    			if (regionAttachment.name.indexOf("alien/masks/custom3") >=0)
    			wrapper2.loadGraphic("assets/custom heads/custom3.png");
    		
    			if (regionAttachment.name.indexOf("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

    EDIT:

    I've been asked on now to make these fancy buttons. Most of it comes from the great 9 slice tutorial from here: http://coinflipstudios.com/devblog/?p=243 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: http://kvazars.com/littera/ -- 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


Log in to reply