Since using Unity, I’ve been trying to replicate a pipeline that’s similar to Flash. Being able to use Flash’s environment for hand-polished 2d animation just can’t be beat, unless you count custom developed tools. LWF from GREE shows promise in allowing you to bring your Flash animation into Unity, but there is some work involved in getting it to work!

donuts_lwfDemo made with LWF in Unity.

With the mobile version of DONUT GET!, I tried a homemade Sprite Animation approach. This worked reasonably for the requirements of the port but it was more trouble than anticipated given the size of the texture sheets needed for so many frames of animation. Sprite sheets ate up RAM like nobody’s business and easily crashed lower-end devices.

Late last year GREE announced a godsend, LWF. It’s an Open Source tool to export Flash animation from SWF’s into Unity or HTML5. This was around the time I released DONUT GET! on mobile (which was GREE integrated) and I was excited to try it out. Unfortunately, the first release required you to compile it yourself and the only info I could find was in Japanese. Later on I found out that GREE posted more information and a super helpful video walkthrough on the Unity forums.
Continue Reading…

[Check out our Away 3D 4.0 update to this post — Stars and Clouds in Away 3D 4.0]

This is a tutorial based on the simple starfield I created during the loading screen for our recently released game, Rush Hour Plus. I created it in Flash with Away 3D Lite.

This can make a good effect for flying through stars in space, cool particles for action sequences, pixies in an enchanted forest, lotta different things if you put your mind to it!

Here’s the starfield used for the loading screen for Rush Hour Plus .

View the tutorial demo here: http://blog.sokay.net/stuff/starfield/

I wanted to give a little motion to the loading screen with adding too much weight to the filesize (only like 30KB) so I opted for creating this starfield with Away 3D Lite.

Download Away 3D Lite from their repository. Their site has an old version which doesn’t include the Sprite3D class. Get it latest version here:

https://github.com/away3d/away3dlite-core-fp10

And here is the source for the main chunk of it, the StarField class:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
public class StarField extends BasicTemplate
{

private var starCount:int = 200;
private var stars:Vector.;

private var starArt:BitmapData; // in this tutorial we'll create a bitmapData from scratch

private var rotateSpeed:int = 1;
private var rotateDirection:String = "none";

public function StarField()
{
mouseChildren = false;
mouseEnabled = false;
}

override protected function onInit():void
{
trace("on init");
debug = false; // setting to false hides debug info in template class

//create bitmapData for our material, 4x4 and white! (0xffffff)
starArt = new BitmapData(4,4,false,0xFFFFFF);

// create an Away3D Material with that bitmapData, this is the image used for our particles!

//var starMaterial:BitmapMaterial = new BitmapMaterial(new starArt().bitmapData); // use this if you decide to import an asset
var starMaterial:BitmapMaterial = new BitmapMaterial(starArt);

// create a Vector array to the size of "starCount"
stars = new Vector.(starCount , true);

// start filling the Vector with Sprite3D objects!
for (var i:int = 0; i < starCount; i++) {

var star:Sprite3D = new Sprite3D();
star.material = starMaterial;
star.width = 4;
star.height = 4;

star.alignmentType = AlignmentType.VIEWPOINT; // I forgot what this does... haha! look it up!

star.x = -400 + (Math.random() * 800);
star.y = -500 + (Math.random() * 800);
star.z = -1000 + (Math.random() * (1000 + 800));

scene.addSprite(star);

stars[i] = star;
}

// offset the stars a bit to make them look pretty like!

//scene.rotationY = 0; // reverse direction
//scene.rotationY = 180; // towards screen

scene.rotationY = 160; // nice dynamic, over the shoulder angle
scene.rotationX = 10;

}

// sets the rotation to look in a certain direction

public function lookForward(): void {
scene.rotationY = 180;
scene.rotationX = 0;
}

public function lookBackward(): void {
scene.rotationY = 0;
scene.rotationX = 0;
}

public function lookLeft(): void {
scene.rotationY = -90;
scene.rotationX = 0;
}

public function lookRight(): void {
scene.rotationY = 90;
scene.rotationX = 0;
}

// set a rotation direction with the keys

public function rotateLeft() : void {
rotateDirection = "left";
}

public function rotateRight() : void {
rotateDirection = "right";
}

public function rotateUp() : void {
rotateDirection = "up";
}

public function rotateDown() : void {
rotateDirection = "down";
}
public function rotateNone() : void {
rotateDirection = "none";
}

// this onPreRender function fires every frame, thanks to our nift Away3d template file!

override protected function onPreRender():void
{

for (var i:int = 0; i < stars.length; i++) {

var star:Sprite3D = stars[i];

star.z += 20; // stars move forward on Z-axis every frame

if (star.z > 800) {
star.z = -1000; // when stars move past limit of 800, set them back to -1000 so they loop forever!
}

}

// handle rotations!
if (rotateDirection == "left") {
scene.rotationY += rotateSpeed;
} else if (rotateDirection == "right") {
scene.rotationY -= rotateSpeed;
}
if (rotateDirection == "up") {
scene.rotationX += rotateSpeed;
} else if (rotateDirection == "down") {
scene.rotationX -= rotateSpeed;
}

}

}

The class uses the Away3D BasicTemplate class, which sets up the view and basic scene super quickly. I believe there’s also a FastTemplate class, but for some reason it doesn’t work with Sprite3Ds so watch out for that! And by default the BasicTemplate has a debug function built in, so you have to switch it off. The BasicTemplate is good for setting up something quick! But I’d rather setup something myself ideally.

It creates 200 Sprite3D objects, which use a white 4×4 square of BitmapData for its texture. Those are then scattered randomly in 3D space and on each frame it pushes them forward 20 units. I added in some keyboard controls so you can mess around with it (arrows and WASD).

Download the source here:

The source can be run from an FLA (CS4 format and AS3) or you can execute it as a Flex Actionscript Project (just make sure to include the lib folder as source, and swc folder).

I hope this helps!

Away3D is a huge improvement over Papervision. I still haven’t done any animated character demos with it but we’ll see if I ever get around to it!

——–
For code styling, I’m using the CodeColorer plugin. Very nifty!

We’ve just released a teaser for our upcoming game, Donut Get! Watch it in HD on Vimeo.

Developed in Flash, it’s the story of greed going out of control. A cop catching donuts falling from the sky and his life spiraling into world of trouble.

Details will emerge as we creep closer to completion. Stay tuned into this blog and donutget.com .


The new site.

It seems I’m making one major site update a year, haha. This update has what I wanted to do with the redesign last year but didn’t get around to doing it. The major new content is each game having a subsection with images, a description and links.

Turned out to be trickier than I anticipated. I’ve been wanting to make the whole site XML based but since I don’t plan on updating it frequently I decided to go with a quick & dirty Flash route. I added SWFAddress to handle deeplinking for the site last year, but with subsections it becomes more useful. I also fixed a bug involving the back button not firing an update event (solution: make sure the SWF has an ‘id’ within the embed code). I’m also using a modified version of Lightbox for the pop-up images — I found it here (he’s got broken links and stuff so it’s hard to find).

So check it out at Sokay.net.


Play The Dream Machine at www.thedreammachine.se

I had contacted Anders Gustafsson, creator of Gateway II, and he gave me a preview of the first chapter of his latest game — The Dream Machine by Cockroach Inc.

I had played the demo before and while it was presented well, I didn’t know what to think of it. It was so short that it felt like it was over before it ever began. But after playing through the first chapter, I can now rest my worries. I can’t wait to play the rest!

First off the game is well written. While Gateway had some dialogue, its story was mostly told visually through the animation of the characters. In The Dream Machine, the characters have some great dialogue, which I find believable. The game start with your character, Victor, just moving into an apartment with his girlfriend. You get a good feel for their relationship through their talking. The game has dialogue branches which allow you to respond in a more serious or joking manner if you wish. It helped me to believe in the characters — okay, Game Creator, you’ve got my attention.

Continue Reading…

Just finished my first game since going solo and it went pretty well. It’s a pretty simple top-down shooter. I wanted to test myself with a 1 week schedule, but ended up taking 2 weeks.

Rush Hour

I’ve put it on Flash Game License. This is the first time I try out their service, but I’ve only heard good things. I’ll put a link up after the game’s live.

The soundtrack was done by my brother, Jonathan Rock. After the game’s out, I’ll put the music here for download.

Continue Reading…

A long while ago I stopped posting when I decided I wasn’t getting enough cold hard coding done. After a lot of cold hard coding, I’m back to talk about Bad Bones. Bad Bones is a flash based real-time strategy game that is my first attempt at the RTS genre the way I see it. It still needs work, but it’s doing well.

Bryson is still working on unit art, but here are a couple sketches I sent over to give him an idea of what I was going for with the game.

They’re called Boman and they like to eat and have babies. Stay tuned for more art and the Boman backstory.

I’ll be demoing my early version of Bad Bones at the Independent Game Conference West in sunny Los Angeles (Marina Del Rey) this Thursday and Friday (November 5th and 6th, 2009). If you’re around, gimme a holler and wish me luck on finding a bag of cash to fund my game.

Now I wish to direct your attention to some impressive figures! I expect that I can deliver good performance on map sizes at least as big as 1600×1200, and perhaps as large as 3200×2400. Dimensions like that are generally thought to be impossible in flash, but I tell you it can be done. My proof is that I have seen it! Though it was at about 15fps…Still, it can happen.

I can get in 1000 units if I’m okay with 15fps on a 1600×1200 map currently. After some house-cleaning I expect to run a solid 30 fps with 500 units on a 1600×1200 map and of course I’ll aim for higher.

Bad Bones represents years of pondering over the RTS genre. I might say that the first time I became a hardcore fan of a game was when I got into Warcraft. It was right around the time that Warcraft 2 was coming out that I found out about the series from a kid named Raphael in my 6th grade class. His description gave me a blind faith in its excellence, and at this crucial time in my gaming experience, I was not disappointed. My family had just recently purchased our first computer and Warcraft and Warcraft 2 were an immensely gratifying experiment in PC gaming for my brother and I.

However the suspension of disbelief perpetuated by the fantastic booklet art and its pages of story, the in-game text, cut-scenes, and characters could not last forever. Warcraft 2 was my first online multiplayer experience and I became immediately aware that the name of the game was micromanagement and rushing. The best players weren’t strategists or tacticians, they were factory foreman that knew how to pump out a basic unit fast and deliver it to the enemy encampment. Continue Reading…

I was Interneting when I found this bit of coolness. Scarygirl is a platform game based on the Scarygirl line of toys and fun things. The game is by Touch My Pixel, which seems to be a cool Australian Flash game+web company. It’s not out yet but it looks cool as hell!

It’s funny to see this because I totally recognized the Scarygirl site. A year ago I had bought some cool vinyl figurines at a music store in Long Beach and I wanted to find out who made them. I ended up finding Scarygirl on that search — I’m not sure if any of my figurines are from that series.

Anyway, the game looks awesome and the guys at Touch My Pixel have a nice blog so check it out for updates on the project.

I spent much of today beating 2 flash games. I like the sound of that: beating flash games. Not just playing them but beating them, because there is enough in the games to play that when you’re done you can actually say the games are beaten.

Dino Run: I found this beauty c/o the blog over at indiegames.com and I was very impressed with PixelJam‘s work. I’d label it under the Sonic the Hedgehog genre of games, one I’d like to play more of. It’s a full game with a lot to play with. The look and feel is nice, some of the physics are a tad weak, but they do the job and beat the norm. I love the tension, the atmosphere of fleeing. It would be excellent setting for a simple story because the nature of a chase is that it is linear. Not to say that stories must be linear, but game-stories tend to be (due to laziness). Unfortunately, the game is lacking in the story department, but it’s alright because it does well everywhere else. GO PLAY IT.

Warlords: I was linked to this piece from Ben Olding after playing Dino Run and was really surprised by such a simple design adds up to strategy on multiple levels. It’s not only about unit selection, but timing, and tactics as well. Again, the game has tons built into it: multiple races and unit types, unlockable races and unit types, leveling-up, a filled out campaign mode and the unit purchasing/upgrading system really gives players a place to craft a style of play. It’s all very simple, but the game is much more than the sum of its parts. PLAY THIS ONE TOO.

As a bonus, each of these games has a form of multiplayer. Dino Run is actual online play and Warlords allows 2 people to play on the same keyboard. Both options are pretty cool if you ask me.

Man, it’s nice to find good games.

-Christopher J. Rock

While you were too busy playing GTAIV, Nintendo launched the “Nintendo Channel” for the Wii. As per usual Wii owners can download the new channel for free from the online shop. With it, you can stream videos of game previews or (as is the case for WiiFit) interviews with developers. You can also download game demos for your Nintendo DS and of course Nintendo has given us the power to volunteer market information. Continue Reading…