KaiOS developer survey

I asked the developer of “Airship Combat 3D” game for KaiOS about stats and he said (source):

If the data is reliabley there have been about 10k players in June, 5k in July and about 1500 for August so far.
I don’t have agressive ads in place. So if you want to know if I made any considerable amount of money, the answer is no. Still worth it!

:thinking:

7 Likes

Missed the poll but I’d have voted yes :slight_smile:

I used to develop for Brew/J2ME/BlackBerry and some obscure proprietary South Korean systems and even though it sometimes was quite hard due to extremely limited specs it was also quite a lot of fun.

4 Likes

Results are 50/50?? :smiley: What a coincidence :smile:

4 Likes

Again, thank you to everyone who answered the poll. I’ve talked to Kai Tech about Kai OS and while I can’t share everything with you due to an NDA I can share a few things:

  • Users can be divided into two main groups:
    • First time internet users - These are users where their first interactions on the internet happen on a Kai OS device. Typically users from countries in the Middle-East, Asia and South America.
    • European and American users which either uses a KaiOS enabled phone as a backup phone or users who for one reason or another doesn’t want a smartphone.
  • Revenue share is different from what most of you are used to: It’s 70% to Kai and 30% to the developer. The larger cut taken by Kai Tech is shared with their investors who make it possible to sell extremely inexpensive KaiOS enabled phones (sometimes costing as little as $10 in India).
  • There’s one OS but two stores:
  • The Jio store has a much larger userbase than the Kai OS store
  • Anyone can publish to the KaiOS store if you have a signed distribution agreement with Kai OS.
  • Apps that perform well will also end up in the Jio store.
  • The KaiOS store is growing very fast as carriers are pushing a user transition from 2G to 4G in many countries.
  • WebAssembly support is planned in a partnership with Mozilla

The Defold Foundation is continuing to evaluate Defold for Kai OS and talking to Kai Tech to see if there are ways for us to collaborate. Stay tuned for more info!

13 Likes

Are there any indications of this split changing, now that even iOS app store cut is favorable for small businesses?

Have there been any further developments regarding KaiOS?

1 Like

Google just announced a similar program today too (via @Mathias_Westerdahl ) .

https://www.cnbc.com/2021/03/16/google-app-store-fees-cut-for-developers-on-first-million-in-sales.html

I would not expect KaiOS to change though when it’s already so in favor of the publisher. I wouldn’t worry about making money from KaiOS either, instead see platforms like it as a way to reach broad audiences in emerging markets and introduce them to your brands - eventually in a few years maybe some of them will convert to a platform where they can pay you for your work what it’s worth.

3 Likes

Could you please ask about the current progress of WebAssembly implementation?

1 Like

We are still in contact with the KaiOS team and are still discussing various ways to collaborate. We have released a KaiAds extension:

There has also been two Defold games released for KaiOS to test Defold, the KaiAds integration and the release process.

I know KaiOS is working hard to release their next iteration of KaiOS (currently they are at version 2.5.x). I would not be surprised if WebAssembly will be an option soon after.

9 Likes

What devices are people using for testing? I’m going to get a $10 Tracfone Carrier-Locked Alcatel MyFlip 4G Prepaid Flip Phone and see if it will work for testing as a low end device.

1 Like

Make sure to test on a 256MB device! I’ve used one Nokia 8110 4g 512MB (the yellow banana phone) and one Zoey Smart 256MB.

2 Likes

Ordered!

What kinds of optimizations did you do in your published projects? I feel like KaiOS versions would need to be made as their own projects, special versions. And then put limitations into for example rendering. Only render new frames after a longer timer / game requests it / users does input. Then be very careful with coding to only code reactively / on long timers.

I guess the new features would only work on the new future phones though?

How do entry level MediaTek chips compare to Raspberry Pi boards or some older phones in performance?

I have a few game ideas in the works that are suitable for low res and low framerates but for those I was actually planning to use native web tech(SVG, CSS, JS) and Raspberry Pi4 for testing/recommended spec.

But the open nature of web - poor protection for source code is what holds me back.

Well, yes, you need to think about the amount of Lua code you are running per frame. Do as much as possible using go.animate()! Cache variables and user data. The display updates at 30 FPS so things are already a bit choppy so you don’t want to add additional stutter due to garbage collection kicking in.

Two examples:

Ruuun!:


SafeCracker in collaboration with @benjames171:


Sound playback is not working very well through the Defold sound system (I’m suspecting the 30FPS update frequency and the streaming of sound samples to be the problem). For SafeCracker we decided to try playing sounds directly through a JavaScript API and that works quite well.

8 Likes

For KaiOS the low end 256MB devices have 1.1 - 1.3GHz Dual or Quad Core chips. The Raspberry Pi 4 is definitely more powerful.

5 Likes

Could you share a sample of the method you used?

Did you try to detect if your games were running on a KaiOS device? It seems like someone could rip the game library and then emulate the API while serving their own ads on a pirate site. Maybe nothing that could really be done about that.

2 Likes

It’s nothing fancy. The sound files are bundled with the game using bundle resources and played with JavaScript:

const AudioContext = window.AudioContext || window.webkitAudioContext;

var defold = {
	audioCtx: new AudioContext(),
	audioBuffers: {},

	loadSoundFile: function(filepath) {
		return fetch(filepath).then(function(response) {
			return response.arrayBuffer();
		}).then(function(arrayBuffer) {
			return defold.audioCtx.decodeAudioData(arrayBuffer);
		}).catch(function(reason) {
			console.log(reason);
		});
	},

	playAudioBuffer: function(audioBuffer) {
		// check if context is in suspended state (autoplay policy)
		if (defold.audioCtx.state === 'suspended') {
			defold.audioCtx.resume();
		}
		const bufferSource = defold.audioCtx.createBufferSource();
		bufferSource.buffer = audioBuffer;
		bufferSource.connect(defold.audioCtx.destination)
		bufferSource.start();
		return bufferSource;
	},

	playAudioFromURL: function(url) {
		if (defold.audioBuffers[url]) {
			defold.playAudioBuffer(defold.audioBuffers[url]);
		}
		else {
			defold.loadSoundFile(url).then(function(audioBuffer) {
				defold.audioBuffers[url] = audioBuffer;
				defold.playAudioBuffer(defold.audioBuffers[url]);
			}).catch(function(reason) {
				console.log(reason);
			});
		}
	}
};
5 Likes

This device seems like a good consumer device but it’s not good for development. Unfortunately the Tracfone variation is locked down and can’t sideload apps / there are no ways to enable this that I have found. There are devices of the same model which do seem to work, but the Tracfone version does not. A lesson is to check this site and pick a device which is listed to be dev friendly: https://sites.google.com/view/bananahackers/devices

The BLU Zoey Smart I also got does work for development ( had to go to https://w2d.bananahackers.net/ in the phone’s browser to fully enable it to work with the steps listed here https://developer.kaiostech.com/getting-started/env-setup/os-env-setup ) though it’s an inferior consumer device compared to the Alcatel MyFlip. No matter what I tried to do to optimize a project the BLU Zoey Smart constantly stutters / lags. And in other games too. Putting the device into airplane mode does help the stuttering some so maybe it’s related to that somehow. Airplane mode doesn’t stop periodic long lag spikes in games but it does seem to diminish it. Compare to the Alcatel MyFlip I did not see such issues of periodic / persistent lag spikes.

https://www.kaiostech.com/kaios-technologies-and-mozilla-partner-to-enable-a-healthy-mobile-internet-for-everyone/

  • WebAssembly for more optimized web apps
  • WebGL 2.0 for advanced graphics and 3D games

Hopefully these arrive to all devices and that the Zoey eventually is able to be improved despite its issues. Because WASM is coming eventually supposedly it’s not worth stripping out of your device. Games under 10MB install pretty fast. Though in emerging markets this may be a different story, at least in India they seem to offer unlimited plans so it’s more of a unreliable network / slow network than total data. There less MB may matter more.

Speaking of India they use a different store than the KaiOS store you get on the devices I got. I don’t know how to get a device from the India market / how to publish there atm. Supposedly they have 100M devices out there sold but nothing shows up on the same places you can buy the other KaiOS devices.

Currently I’d recommend game designs which don’t require high twitch input. Lag is tolerable as long as it doesn’t impact gameplay. So mostly anything turn based would still be fun with lag but twitch gameplay is killed from lag spikes on devices. It may be other devices don’t have the lag spike issues. You can also develop for the future when better devices with more efficient features are widespread.

I tested 3D projects and they do work on the device though the framerate is lower.

I think the builtin animation functions don’t work right on the forced 30FPS of the device, they are too smooth and slow, I’d expect choppier but still speedy animation. It’s worth testing to confirm and potentially ignore script update dt and use system time for dt for animations if that as a whole can improve the experience.

I tried several things to make test projects run smoothly on the Zoey and nothing I did made a meaningful impact. I tried using a lower resolution of 120x160 instead of 240x320 and it did not make a noticeable difference.

So far I have not done any data based profiling only what my eyes see so some things may have made a difference. Worth doing in the future to know.

I’d really like to know some analytics from people who have published but low numbers won’t discourage me at this point. Once I publish some projects I’ll share what data I’m able to.

I would not recommend getting a KaiOS phone for actual consumer app use. For apps, you can get a 7th gen Kindle Fire (with ads that are not that bad) for $49.99 which runs Android apps at full speed and high resolution. I paid $29.99 for the Zoey and if I only wanted to play some games I’d rather spend the extra $20 to get a Kindle Fire. I did not test either device as actual phones, but the refurbished Alcatel MyFlip was only $10 and seems like the better device. The purpose is still cheap phones so for $10-30 + pay as you go that’s a good deal for those who use it, and their app usage would only ever be incidental (India has the best deal it seems $27 USD to get a phone like these and get 2 years of Unlimited service… but the service might also be generally unreliable / slow). I think a lot of people who would want these kinds of devices don’t even want apps (they want a dumb phone which is a phone only and does that really well while also being nearly disposable), or they want specific apps that work well, not as a general smart phone.

I will continue to tinker and make some stuff to be published on KaiOS. Anything I make first for KaiOS I plan to publish elsewhere too.

9 Likes

Some context on the 70/30 split and why it’s a bit more reasonable than at first glance.

3 Likes

Update on this - if you upload a testing version of your app to the official store along with the IMEI of the device you can use it for testing in a limited fashion. I’d still recommend doing research on the devices you’re able to buy and make sure you can fully and easily use them for development.

Any Update on the KaiOS Please?