Hey Ya’ll!

I’ve been posting a Devlog for our current game project Donut Get! for a while over at the TigSource Forums. I just posted over there and I’m doing a re-post here.

Last time I posted I was animating the cop and got super frustrated when I couldn’t test the animation and the game wouldn’t compile. After that, I finished animating the cop and the game was brought to new life.

The following are a couple examples of how the artwork for the car portion of the game was created.


I used these sketches as reference when doing the vector linework for the game.


I imported the linework into Photoshop and added some color for the final look used in game. I used textures to bring some life into the flat colors of the artwork. Simple gradient overlay makes it look fancier than it is and gives a “night-time” effect.

For the past couple weeks I’ve been animating characters for the donut portion of the game and polishing gameplay.


Shown in this animated gif are Mr. Sprinkles and Officer Brown. Mr. Sprinkles is an NPC that will hang around and grab donuts as well.

I finally implemented new elements to the gameplay. Your objective is to eat falling donuts but you now have to dodge falling debris. Now that I started getting NPC animation in, I started filling in their different behaviors (like Mr. Sprinkles eating donuts).

The story is unfolding as gaps are filled in, I look forward to finishing the animation for the remaining NPCs.

David Rodriguez is just about done animating the fighting game segment. Tonight he sketched out some storyboards for a couple cinema scenes related to that segment. I’m very excited to have his animation in the game and playable!

Till next time…

Peace!

[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!

Earlier this month we showed Thugjacker and LUV Tank at a gallery space during the Downtown Los Angeles Art Walk, once again.

Here’s a walkthrough from out last show…

This time I managed to set up the night before.

 

A Sokay Play flyer in the Urban Noodle window.

 Some peeps checkin out LUV Tank. We used our projector this time since we got a feel for how the setup would be.

Continue Reading…

Just finished working on this earlier tonight.

Next step… get it into the game!

If you don’t know about Donut Get!, check out the teaser trailer in an earlier post. More info at Donutget.com!

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 .

This is a sketch I just drew. A sketch from a scene in the world of our upcoming game Donut Get!

I’m working on some updates to Chris’ Rush Hour — here and there. Mostly jazzing it up with some supplementary artwork, just starting to tweak some level design.

Been playing a lot of PS3. Just got one in January. Gran Turismo 5 is my shit. Metal Gear Solid 4 has got a grip of me. Demon’s Souls scares the shit out of me. I’m flashing back with 3d Dot Game Heroes. And my girlfriends been rolling shit up in Katamari Forever.

It’s good to be playing more games. Good to have another perspective of gaming, from the PSX perspective.

As usual, I’m working on too many things at once. But it’s nice when I have something nice to show!

 

This is an animation from the revamping of Chris’ game Rush Hour. It’s been done for a while but I’ve been set on adding some new features to make it even better. Chris has resurrected his programming role on this game and I’m glad because I had a hard time trying to figure out how his code worked. haha.

After we finish this, I’ll be focusing once more on the Donut game. And hopefully not much else.


“Behold! A Massive Overhaul!” – Bryson, the Mighty

Tonight I finished an update to our blog theme. The new theme follows Sokay.net’s color scheme and design more closely — it’s bothered me that they looked similar but different. I like the direction it’s going and I’ll continue to revise the design sporadically.

Indiecade’s this weekend! Although Chris and I didn’t get our entries accepted, it was disappointing that they didn’t even bother to give feedback on our games — they basically said “we got too many entries. if you’re lucky, you’ll get feedback”. I’m suspicious as to whether they even played all of the games submitted. When Chris submitted Children at Play to Indie Fund, he was given a prompt and usefull feedback from Jonathan Blow. And he didn’t even have to pay an entry fee, haha.

With the Donut Game, I’ve passed the Fight Game’s engine to David. He’s working on updating the Fight Game’s animation with his most recent updates. I’ve spent some time working on the UI and some effects for that section of the game.


(this is a work in progress, yo)

To help me ease my mind, I’ve been working on this pixel portrait between running around in circles. I’ve been getting some assistance from the Pixelation community, check out my Work in Progress thread.

That’s it for today!

Peace!

-Bryson

Donut Get: Car Segment
Artwork from the Car Segment of the game.

Work continues to progress on the Donut game. I’ve spent a great deal of the summer focusing on the Car Segment, which serves as an interactive intro. During this segment of the game, you play as the officer driving to the scene of the Great Donut Fire. You must drive through traffic, hopefully avoiding collisions with cars and civilians. The outcome of this section will be dependent on how you handle it — reckless driving will result in a ‘negative’ outcome where you don’t get to where you’re driving to.

Donut Get Fight Fight!With the Car Segment mostly wrapped up, I’ve moved on to focusing on the Fight Segment of the game, which acts as a mini-challenge within the game. David’s animating the characters for this part, the gameplay will be similar to Punch-Out!. I’m working on getting a skeleton of the game engine in place so that he can test his animation without requiring me to drop additional code in. Since this sections gameplay is so tied to the actual animation and timing, it’s important that he’s able to quickly iterate and test while animating.

The game is starting to emerge from the rubble and smoke. With every pass at detail and polish, it becomes clearer to see what the end result will be. While I chose to have the game mechanics relatively simple, I wanted to use them to play out a scenario and communicate ideas and themes from the world. This communication plays a larger role than it did in Thugjacker, where it was a bit more subtle, and is more integrated into the world than LUV Tank where it was much more blatant and abstract.

Most of the game artwork is done and in place at this point, but there’s a lot of animation that needs to be done. I’m doing planning for the game endings now, which will play a large role in the game. The way the game plays out will determine your ending — Way of the Samurai serves as my inspiration for this aspect. I’ve been thumbnailing these endings, working them out on paper while I develop the game.

Until next time…

Peace!

-Bryson

Thugjacker at Agame.com
Thugjacker Half at Agame.com

Over the weekend I noticed a sudden surge in traffic and I noticed most of it was coming from Agame.com. Turned out they had just stolen it and added it to their frontpage on Thursday and a lotta people were playing it. It’s nice to know people are still playing it after 5 years! haha. My favorite part is still reading all of the insightful comments like “cool ima pimp nigga“and “DONT STEAL HIS BIKE“. Mostly spam here, but the Newgrounds comments are still gold to me.

Thugjacker’s been our most popular game, by far. A great deal of it has to do with it being our first game, with Ricky and I spending so much time with it. The gameplay has a stickiness that keeps people coming back — I think it’s just fun to mess around and beat guys up. These days, it’s easy to be lost on Flash portals so it’s usually hit or miss if people notice the game or not. Thugjacker usually does well but LUV Tank usually gets lost. LUV Tank only really took off on Addictinggames.com for some reason, but it’s usually the game that the not-so-hardcore gamers tell me they like the most.

Yesterday I was working on the Donut game with David. We had started talking about Thugjacker and I showed him a lot of the stuff we cut out of Thugjacker Half — David wasn’t working with us on Thugjacker. There were cinemas scenes that I didn’t have time to finish and implement. A lot of the real story. It’ll all find it’s way into the game eventually. This Donut game will give another side of the story.