thecrazyprogram_icon thecrazyprogram_leaderboard
Facebook leaderboard as seen in The Crazy Program on Android.

 I got a lot of feedback from my friends testing our new mobile game The Crazy Program. One thing that came up a few times was a request to have a high scores table to compete with your friends. I created a quick Facebook App version of Donut Get! last Fall and knew it wouldn’t be too much work with Facebook’s built in high scores functionality.

Facebook allows you to save high scores for your app without needing any backend. The caveat is that you can only save one score per user. So this works decently for a global high score for your game, but not so well if you have different levels and different modes. Facebook’s scores API will also return a list of your friends that are playing, in order of rank. This makes it very easy to hit the ground running with some social features.

Prime31 Social Networking Plugins for Unity

I decided to purchase the Prime31 Social Networking plugins to handle the communication between Facebook and Unity. I had a good experience with their in-app purchase plugins and the support was good. There were other options for Facebook plugins but they either weren’t for both Android and iOS or I couldn’t tell whether or not they could handle posting high scores. Some plugins seemed to just handle basic Facebook connect features, or at least this was the impression I got.

prime31social_demo
Prime31 Social Networking demo scene

I started development on Android. The example scene is straightforward and I got connected with my Facebook App fairly quickly.

Continue Reading…

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…

I ported DONUT GET! to OUYA with the hope of it being a OUYA launch title. I anticipated that it would at least help bring a bit more attention to DONUT GET!, especially since it didn’t get as much coverage as expected. Fortunately DONUT GET! was listed as one of the 104 OUYA launch titles, and mentioned on sites like Destructoid.

We’ve made our download stats available for DONUT GET! on OUYA. It’s a totally free game — there’s no in-app purchases.

donutget_ouya_stats
Our DONUT GET! OUYA Download stats are available here: http://www.donutget.com/ouya-stats/

 

A large problem within the OUYA community is that the company is slowly trickling out the ~60,000 Kickstarter units. For developers it’s a bit unsettling with the low download numbers, and the myriad of other software problems we’re dealing with. Continue Reading…

A few weeks ago I attended the Unity LA Meetup OUYA talk. There was a talk and lengthy Q&A with some people from OUYA. The event cleared up a lot of questions I had about the project.

Representing OUYA on stage was Raffi Bagdasarian, who left product development at Sony to join the OUYA team. He explained that OUYA was originally known as Boxer8. He also brought on the Unity plug-in developer Tim over Skype to talk about some technical aspects of the Unity integration.

Developers can sign up for the OUYA developer program for free at http://devs.ouya.tv . There you can download the SDK, view the actively updating documentation, and lurk in the forums. They’re still ironing out the upload process so you’re not able to upload to the OUYA online store yet.

Ouya Unity LA Meetup
Unity LA Meetup (photo courtesy of the Meetup page!)

And now some bullet points:

  • The console will be running Android 4.1 Jellybean.
  • The SDK consists of in-app purchase and controller APIs.
  • Games are required to be free to play, but features can be unlocked with in-app purchases. This apparently is also a method to curb piracy.
  • There’s the typical 70% (developer) / 30% (provider) split.
  • They’re focusing on app discovery for the OUYA store, aiming to organize the shops by more detailed metrics than “highest grossing” or “most downloads.” Using metrics such as most played, longest played, etc.
  • Approval process will have guidelines — not total free for all. Initially they’ll be reviewing every game manually. Eventually they’ll work peer review into the process, similar to Xbox Indie Games.
  • As far as the style guide, they were working on prepping an official one. But in the meantime, feel free to use OUYA name and branding as long as you’re not presenting yourself as sanctioned officially by OUYA. Also, it’s supposed to be spelled in all caps! haha 🙂
  • There won’t be a content rating system like ESRB, but they’re planning something similar to Google Play.
  • Online matchmaking, achievements, Xbox Live features, etc. Not at launch, but planned for eventual release. Until then, feel free to roll your own systems.

More Stuff, Etc…

  • With only 8 gigs of built in storage, game sizes should be developed with that in mind. They’re working out what the hard limits should be as some games currently in development are a few gigs.
  • They recommended tools like the Unity asset store’s APK Splitter, to give a quick initial download from the store and load in assets as needed during the game.
  • They’re looking into cloud storage. At the time they were apparently debating it.
  • Looking into system level integration of Facebook and Twitter. I’m assuming for viral sharing games, and another metric for surfacing content.
  • Developers won’t be restricted from accessing websites from within games, should be able to pull any kind of data.
  • No access to Android Google Play store from within OUYA.
  • They’re open to accepting apps that are outside of games, like video players, etc.
  • No vibration with controller, mouse + keyboard are allowed.
  • They’ll have store analytics available to developers at launch, supposed to be better than Apple’s minimal dataset.
  • Piracy – since every game is free to play, they’re relying on in-app purchases API calls to unlock things.

Continue Reading…

The Demo

Here’s a CSS3 demo of the Donut Get! background.

Use your mouse to adjust the perspective of the scene.

I’ve been messing around with CSS3’s 3D Transform ability recently. I was looking for a way to achieve some primitive 3D visuals strictly with HTML. I wanted something that would also run on phones and tablets.
Continue Reading…



 

We recently released Donut Get! on iPhone and Android. It was originally developed in Flash and we made the mobile ports in Unity. One of the challenges of porting was figuring out how to bring the game’s Flash animation into Unity. Here’s the “quick ‘n dirty” solution I came up with.
Continue Reading…

[ PRESS RELEASE ALSO AVAILABLE HERE ]

Los Angeles, California – Oct. 29, 2012 – Sokay.net is proud to announce that DONUT GET! is now available for iPhone, iPad, Android, and web browsers. DONUT GET! is a game about a cop eating donuts raining from the sky.

Everyone knows police officers fantasize about the burning of Donut Shops, and Officer Brown is no exception. With donuts bursting in air, there’s proof in the night that Officer Brown will be there. You assume duty as our rotund hero crosses the thin blue line with sweet dreams of round treats bouncing behind his eyes–plenty o’ donuts to get.

The web-based Flash version is 3 games in 1: driving, fighting and donut getting. The player’s actions change the game itself and multiple cinematic endings are available.

The mobile and tablet versions of DONUT GET!, developed with Unity, are a streamlined, arcade version of the game. The objective is simple. There are donuts. GET THEM. As many as possible. The game integrates the GREE platform for leaderboards and achievements.

DONUT GET! is available on:

 

COME AND GET IT!

More information available at http://www.donutget.com

About Sokay.net

Sokay.net is an independent game development team in Los Angeles, California. They say it never rains in Southern California. At Sokay, we make it rain. Sokay.net has developed the games Thugjacker, LUV Tank, Rush Hour Plus and Sammy Samurai.

[Partial repost from our Tigsource DevLog]

ANNOUNCING — DONUT GET! for Android Has Been Released!

Download it for FREE at:
https://play.google.com/store/apps/details?id=net.sokay.DonutGet


Last week I spent some time prototyping our next game in Unity. Of the block matching puzzle game variety.

This week I jumped back to focusing on Donut Get! iPad version and finishing up where I left off with the in app purchasing. I was running into a problem of it just crashing when a purchase started so I had to do a bit of optimizing to prevent that. So far so good, as now I can at least get it to work!


In app purchase screen to remove ads.


Thank you screen!

The textures for the sprite animation is eating up a ton of memory. I’ve tried to keep the cop animation sharp and crisp but I’ve had to bring down the res a bit to accommodate all the lower-end devices it keeps crashing. 🙁 So for now, I’m trying to stop crashing Android phone! haha

Later I hope to do some research to switch between spritesheets based on the memory available on the device. Not quite sure if that’s possible/reasonable yet.

Donut Get! Android is available on Google Play so check it out if you can. Let me know how it works for you!

iPhone version available soon!

The OG Flash version still at http://www.sokay.net/play/donut-get

Thanks for reading.

Peace!

Shortly after I posted my tutorial on creating a Starfield with Away 3D Lite I tried to see how much I could improve performance with Away 3D 4.0, which was Flash 11 and in Beta stage at the time. I got caught up with finishing Donut Get! and working on Unity stuff and forgot about making a post about the demo. Here’s a post about that Away 3D 4.0 demo I made.

This was inspired by playing Kid Icarus on 3DS. During the flying segments, you’re always flying through clouds which is a great effect. I think they do something similar to this, where the clouds are 3d slices of a cloud which you pass through.

I created the clouds with noise. To get “3D slices” I used a 3d Perlin noise generator by Ron Valstar. The regular Flash noise class lets you generate noise on X and Y axis, this allows you to move in the Z axis to create slices.


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

I used Sprite3Ds for the cloud slices, hoping that that would allow me to use a greater amount of cloud slices. In this demo I’m using 12 separate Sprite3D instances. It takes a while to generate the noise at the beginning, I don’t think this noise generator anywhere near as fast as Flash’s internal one unfortunately. I spent a long ass time adjusting the Generator and settled on this result which I felt was looking pretty good, rather than just settling for something that was fast to generate.

Sprite3D displays like a billboard/plane in 3D space that is always pointed towards the camera. The problem with Sprite3D is that it’s displayed as a point in space, and if the point isn’t within the camera viewport, it doesn’t display at all. You can see this issue as you rotate the camera to the side. I tried a list minute fix to change it to planes but I couldn’t get the planes to display. It may have something to do with the scale of the scene, the slices are like 15,000 width. Not spending any time trying to figure it out so good luck with it if you wanna try!
Continue Reading…

Ok, I had a hell of a time figuring out how to load in XML for a Unity project I’m working on and use it to build a level. Fortunately the Unity Community is vibrant and helpful, even though you may have to do digging to find what you’re looking for. It can be difficult getting started, especially when working in C# as many of the examples are coded in Javascript.

Here’s an example of some game xml:

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
<stageData>

<stage>

<map>1, 2, 3, A, B, C</map>

<map>4, 5, 6, 7, 8, 9</map>

<map>2, 1, 3, 5, 6, 2</map>

</stage>

<map>0, 0, 0, 0, 0, 0</map>

<map>1, 1, 1, 1, 1, 1</map>

<map>A, A, A, A, A, A</map>

<map>3, 3, 3, 3, 3, 3</map>

<map>C, C, C, C, C, C</map>

</stage>

</stageData>

Keep in mind that there’s a million ways to go about doing this. I tried to justify why I did it this way, and the best I can say is “I just felt like it.” Haha!

I ended up using a C# port of this Lightweight XML parser. The benefit of it supposedly is that it’s only 8k compared to a megabyte or so that would be added if you used the native C# class, System.XML. I used the C# port by chirhotec in this post. I had to make a small change, commenting out the “string nodeContents” line because the variable wasn’t used.
Continue Reading…