New skins!
Today we released new skins that we think are really cool and we hope you will enjoy them. Except making your space ship cool buying a skin will also support and speed up the development of this game.
Thanks for playing!
This is our home made boss editor that we made during an Xdev camp last year. Hopefully we will get time to create some more of that cool content soon.
We just released our first game trailer ever! Go and play the game @ http://www.astroflux.net
Here are some new screenshots from Astroflux. We are getting closer to an official release now.
Is your life as a space captain tough and do you feel like a noob? Then you should look forward to get your hands on the new tractor beam or experience booster that we are developing.
Astroflux

We are darn happy to finally present what we have been working our asses off with the latest months.
I’m talking about Astroflux, a casual arcade real-time MMORPG space shooter experience for social platforms such as Facebook, Kongregate amongst others. Basically we want to capture the fun and craziness in arcade space shooters and combine that with a social leveling experience. And also, keeping it casual with focus on having fun when playing rather than just starring at your skill levels.
We are currently playing the game in pre alpha in our office and frankly, we are having a BLAST! I”m just now watching the newly added rear gun (or the fart gun as we call it) in action which is a poisonous cloud designed to make it harder for enemies, human or not, to follow you. That one along with 5 or more unique weapons will be available in the alpha version.
What about the release date? No idea yet and guessing seems pointless, right now we are focusing on getting the alpha version done. And we are almost there, probably a week or two to go. After that, we’ll aim for a closed beta, followed by a public beta.
Want to know more? keep an eye on our tweets for minor changes and our blog for more in-depth stuff.
Good luck and have fun out there gamers!
♥ Fula Fisken
stefan svebeck: Text Effect Component in Flash AS3
I did this component in Flash AS3 when we were having a hax evening a few days ago.
Use example:
var stf:ScreenTextField = new ScreenTextField(); stf.x = 100; stf.y = 100; stf.textArray = [ [ "Far away in the galaxy...", "A long time ago nothing existed but far away in the galaxy...
Share screenshots with Sharekit and cocos2d on iPhone
Posting screenshots on Facebook and Twitter is a great way to show high scores and make your game known to the world. The problem is that writing code for authentication and poking around the different APIs is time consuming. Here is where Sharekit comes in handy. It is an open source library that add share features for many social media sites.
Setup Sharekit
There are a few things you need to do to get sharekit up and running.
- First go to sharekit and follow the installation instructions for step 1 and 2.
- Go to http://www.facebook.com/developers/ and create a Facebook app. When the app is created click on “mobile and devices” in the left hand menu and change application type to “Native App”. Save the changes and keep the window with application ID open, you will need it soon.
- Go to dev.twitter.com/apps and create a Twitter app. “Application type” should be set to “Browser”. If you don’t have a url for the game set “Callback url” to whatever you want.
Take screenshot in cocos2d
Manu Corporat has provided code for grabbing screenshots at the cocos2d forum. You can find it here. Paste the code into CCDirector.m. You can now grab a screenshot simply by calling:
//grab screenshot UIImage *image = [[CCDirector sharedDirector] screenshotUIImage];
Add share buttons
Now you are ready to start sharing. In your .m file add
#import "SHKItem.h" #import "SHKTwitter.h" #import "SHKFacebook.h"
and methods for adding share buttons
-(void)showShareMenu {
CGSize size = [[CCDirector sharedDirector] winSize];
CCLabelTTF *share = [CCLabelTTF labelWithString:@"Share on" fontName:@"Helvetica" fontSize:24];
share.position = ccp(size.width /2, 80);
[self addChild:share];
CCMenuItemSprite *fbItem = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithFile:@"facebook.png"]
selectedSprite:[CCSprite spriteWithFile:@"facebook.png"]
target:self selector:@selector(shareOnFacebook)];
CCMenuItemSprite *twitterItem = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithFile:@"twitter.png"]
selectedSprite:[CCSprite spriteWithFile:@"twitter.png"]
target:self selector:@selector(shareOnTwitter)];
CCMenu *shareMenu = [CCMenu menuWithItems:fbItem, twitterItem, nil];
[shareMenu alignItemsHorizontallyWithPadding:10.0f];
shareMenu.position = ccp(size.width /2, 40);
[self addChild:shareMenu];
}
-(void)shareOnFacebook {
//take screenshot
UIImage *image = [[CCDirector sharedDirector] screenshotUIImageFromHeight:200];
SHKItem *fbItem = [SHKItem image:image title:@"Check out my highscore!"];
[SHKFacebook shareItem:fbItem];
}
-(void)shareOnTwitter {
//take screenshot
UIImage *image = [[CCDirector sharedDirector] screenshotUIImageFromHeight:200];
SHKItem *twitterItem = [SHKItem image:image title:@"Check out my highscore! #BigFish"];
[SHKTwitter shareItem:twitterItem];
}
The only thing remaining is to give Sharekit access to a UIViewController. The easiest way is to add a UIViewController property and set it on init.
-(id) init
{
if( (self=[super init]))
{
//ViewController for share.
self.vc =[[UIViewController alloc] init];
[[[CCDirector sharedDirector] openGLView] addSubview:vc.view];
[[SHK currentHelper] setRootViewController:vc];
[self showHighscore];
[self showShareMenu];
}
return self;
}
Example project
Here’s a working cocos2d project. Just add your API keys to SHKConfig.h. The code for screenshots has been altered slightly to only take part of the screen area as screenshot. This way the share button will not be part of the image.
Google App Engine - Remote backup, local restore
Writing this script yourself is not a big thingy, but sometimes it’s just nice having it done already so you can focus of your real project. We have had a lot of use for this when creating Sudoku and Friends.
The script allows you to backup the whole project or just a single database entity and then restore the data to your local datastore.
Before using the script though, you need to enable the remote API for your application. Do that by adding the following to your app.yaml:
- url: /remote_api
script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
login: admin
Then we are good to go. Here is the script:
#! /bin/bash echo -n "App ID: " read -e APP_ID echo -n "Kind (hit enter for all): " read -e KIND echo -n "Email: " read -e EMAIL current_datetime=$(date '+%Y%m%d_%H%M%S') filename="backup_$current_datetime.txt" echo Starting backup for $APP_ID to /$APP_ID/$filename if [ "$KIND" == "" ]; then echo Backing up all entities... appcfg.py download_data --application=$APP_ID --url=http://$APP_ID.appspot.com/remote_api --filename=$APP_ID/$filename --email=$EMAIL else echo Backing up $KIND appcfg.py download_data --application=$APP_ID --url=http://$APP_ID.appspot.com/remote_api --kind=$KIND --filename=$APP_ID/$filename --email=$EMAIL fi echo backup finished, starting restore... echo -n "Enter local port?: " read -e PORT if [ "$KIND" == "" ]; then echo Restoring all entities... appcfg.py upload_data --application=$APP_ID --filename=$APP_ID/$filename --url=http://localhost:$PORT/remote_api --email=$EMAIL else echo Restoring $KIND appcfg.py upload_data --application=$APP_ID --filename=$APP_ID/$filename --kind=$KIND --url=http://localhost:$PORT/remote_api --email=$EMAIL fi echo moving logs to /$APP_ID/logs mv *log* $APP_ID/logs mv *sql3 $APP_ID/logs echo restore to http://localhost:$PORT/ finished.If you are new to Bash scripting, here is how to use it:
- Save the script to like /backups/backup_restore.bash
- Open the terminal, browse to the backup dir
- Fix permissions with the command: chmod 700 backup_restore.bash
- Run the script by typing ./backup_restore.bash
- Watch the magic happen!
note:
You may get a warning about not having descending indexes on some of you models. It will work fine if you don’t, but adding those will speed up downloading quite a bit. Add the following index to your index.yaml for the models lacking the index:
- kind: SomeKind # change this name
properties:
- name: __key__
direction: desc
