нов 022015
 

Battle Ships Duel

by VojaMaher – MaherGames is the most popular board game for two players. You can play in two main mode:
1) single game – game with AI – try defeat our navy pirates
2) multiplayer game – with your friends or AI so
You can select your profile – avatar and flag, and your ships will be painted with your flag.

Battle Ships Duel

Battle Ships Duel

Rules:
– Area is on the sea and it is 10 x 10 fields.
– You can set all ships in the sea randomly or it’s appearance and position.
– This match is played alternately like turn based games. You can try to guess where your opponent hide his ships. If you have fired successfully, you will guess again. Otherwise the opponent’s next.
– Who destroy all enemies ships is the winner.

BatleShips Promo

Battle Ships Duel Features:
– Single game with smart pirates.
– Multiplayer game with real people.
– Ranking, rating and medals system.
– Flag and avatar system – pirate style.
– Online chat.
– Games statistics.
– Top pirates.
– Easy and hard mode – duel with AI.
– Line and free appearance for ships.
– 2D or 3D animations by your wish.
– Rotate and zoom a camera around the sea.

Improve your concentration and intelligence in the game Battle Ships Duel.

Play Battle Ships Duel online for free…

Battle Ships duel have been programmed with Unity3d software. Use one of the browsers that support Unity3d player and play single match or with other real people for rating online. Our navy pirates are very smart, and you have to play very smart and strategic to beat them. Give the best of yourself and be the pirate nr. 1.
Programmed by VojaMaher – MaherGames!

сеп 012015
 

Driving a car

… Ocean terrain by VojaMaher & MaherGames!


This game is a car driving example, created with unty3d softwer…


Igraj besplatno igru Maher Car Racing na sajtu www.mahergames.com

Maher auto trke je interesantna 3d trkačka igra. Vi vozite originalan lep automobil u trci protiv 8 protivnika. Ova trka je veoma teška. Protivnici su veoma brzi…
Glavni cilj: Morate da pobedite da bi prešli na sledeći nivo.

феб 072015
 

Monetizacija kod besplatnih android aplikacija je osnovni izvor prihoda objavljivačima aplikacija (programerima) i glavni razlog zašto se aplikacije prave. Postoje razne firme koje Vam nude nadogradnju aplikacija dodacima za monetizaciju, ali morate biti veoma pažljivi pri izboru metode za monetizaciju, jer Google ima stroga pravila (pročitajte nekoliko strana o uslovima korišćenja), i ako ih prekršite može doci do gašenja Vašeg naloga. Zato preporučujem korišćenje servisa koji nudi Google nazvanog AdMob koji predstavlja sigurno rešenje, a i zarade koje se ostvaruju njegovim korišćenjem mogu biti sasvim solidne.

Na sajtu za programere Google objašnjava kako funcioniše monetizacija pomoću AdMob servisa kada radite u Java okruženju, dok ako koristite neki drugi programski jezik, morate da dodate u svom paketu specijalne dodatke koji vrše usklađivanje rada sa Javom i pozivanje glavnog servisa koji radi u Javi.

Na sajtu otvorenog koda github.com mogu se besplatno naći pomenuti dodaci za neka programska okruženja, a ovi dodaci se i prodaju na nekim sajtovima, i obično im je cena od 10 – 50 €. Njihovo funkcionisanje je veoma teško kontrolisati, jer im se samo šalje informacija o broju programera odnosno broju reklame – podaci za monetizaciju. Ovi dodaci šalju AdMob servisu predviđene podatke o aplikaciji, korisniku i lokaciji i naravno Vaše podatke za monetizaciju, a ostalo se sve odradi automatski, prikažu se reklame i isključe se kada se sakriju, uklone ili završe planirani posao.

Najpopularnija okruženja pored okruženja Jave u kojima se rade aplikacije za androide koja podržavaju monetizaciju pomocu reklama su Unity3d i Adobe Flash – Air. Za oba okruženja postoji po nekoliko dodataka za povezivanje sa Javom radi monetizacije, a pri izboru posebno obratite pažnju da li su ovi dodaci usklađeni sa najnovijim propisima koje zahteva Google. Oba sistema rade slično.

Dodatak koji ja koristim za monetizaciju pomocu Unity3d okruzenja je: AdmobVNTIS. Kod Unity3d programa treba raspakovati paket koji u sebi ima dosta fajlova sa ekstenzijom ‘.cs’ i ‘.jar’. Za aktiviranje reklama potrebno je na scenu dodati ‘prefab’ objekt i nakon toga na predviđeno mesto popuniti stringove tipa ‘ca-pub-xxx/yyy’ za ‘Banner’ i ‘ca-pub-xxx/zzz’ za ‘Interstitial’ reklamu. Ovi stringovi se dobijaju na sajtu AdMob, kada napravite novu oglasnu jedinicu – reklamu.

Pored ovog potrebno je i paket Google servisa GooglePlayLicenseVerification sa ‘hash’ kodom dodati ili tzv. ‘Base64-encoded RSA public key’, i popuniti na nekoliko mesta string koji se dobija pri prijavljivanju nove aplikacije na Google market. Ovaj kod se na nalazi na glavnom sajtu https://play.google.com/ u okviru aplikacije koju objavljujete u sekciji ‘SERVICES & APIS’ i popunjava se u fajlu ‘CheckLVLButton.cs’. Google automatski priznaje kada popunite ovaj kod, a bez njega ne dozvoljava da postavite aplikaciju na glavnom sajtu.

Takođe je potrebno pripremiti odgovarajuće ikone, i napraviti sertifikat sa Vašim podacima programom Unity3d u okviru opcije ‘File / Build Settings… / Android / PlayerSettings / Publishing Settings / Create New Keystore’, koji morate koristiti ako želite da objavite novu verziju aplikacije.

Davanje imena aplikacije je proizvoljno po Vašoj zelji, a obično se koristi obrnuti zapis domena iza čega ide naziv aplikacije – ‘com.vasdomen.imeaplikacije’ ili slično.

Unity3d mnoge stvari odradi automatski, ali pregledajte sve podatke koje se nalaze u ovom prozoru sa podešavanjima, i popunite ili izmenite šta je još potrebno.

Po kreiranju foldera ‘apk’ sa fajlom sa ekstenzijom ‘.apk’ prekontrolišite kako aplikacija radi na Vašem android uređaju, pre nego sto je objavite, i ako treba ispravite greške ako ih ima.

Adobe dodaci imaju za dodatak fajl tipa ‘.ane’ (android native extenstion) uz fajlove tipa ‘.as’ (action script), a može se naci i tip fajla kao što je ‘.swc’. Njihova implementacija se zasniva na raspakovanje paketa i unošenje stringa Vaše reklame tipa ‘ca-pub-xxx/yyy’ i ‘ca-pub-xxx/zzz’. Ove šifre se dobijaju na sajtu AdMob posebno za reklame tipa ‘Banner’ a posebno za reklame tipa ‘Interstitial’. Unošenjem ovih šifri na predviđeno mesto i pozivanjem reklame tipa ‘Banner’ ili tipa ‘Interstitial’ vrši se jedno prikazivanje reklame. Za ponovno prikazivanje ‘Interstitial’ reklame potrebno je ponovo pozvati ovaj dodatak, i mnogi programeri praktikuju ponovno prikazivanje reklame kada se završi neki ciklus u aplikaciji i/ili kada se napušta aplikacija. Prikazivanje reklame tipa ‘Banner’ se osvežava posle intervala koji se bira kada se kreira oglas na AdMob sajtu (obicno je 60 s). Neki programeri ostavljaju baner na ekranu stalno dok radi aplikacija, dok neki u zavisnosti od toga šta se radi u aplikaciji prikazuju i skrivaju baner. Prikazivanje i sakrivanje banera se radi veoma lako – korišćenjem naredbi ‘showBanner()’ i ‘hideBanner()’, i preporuka je da ne bi stalno pisali u programu ove naredbe uvesti jedno stanje sa nazivom poput ‘ShowAd’, i dodati kod koji na svakih nekoliko sekundi proverava ovo stanje i prikazuje ili sakriva reklamu. Ovo rešenje je mnogo bolje od stalnog pozivanja na odgovarajucim mestima u programu, jer ne možete u potpunosti da kontrolišete dodatak za monetizaciju, a desi se da reklama zakasni i pojavi se posle naredbe za sakrivanje, a retko ko postavi ikonu na koju kada se klikne, dolazi do sakrivanja reklame. Nepažljivim programerima se desi da ta reklama prekrije važne komande za funkcionisanje aplikacije, tako da aplikacija postaje neupotrebljiva.

U narednim linijama dat je opis kojim se najlakše implementiraju, pozivaju i skrivaju reklame u Flash-u koje koriste monetizaciju dodatkom AdMobAne.

Najpre se skine dodatak ‘.zip’ i raspakuje u folderu sa glavnim ‘***.fla’ fajlom. Potrebni folder za dodatak je ovde sa nazivom ‘anes’ u kome se nalaze sledeci fajlovi:

AdMobAne1.0.ane
SingleBanner.as
Interstitial.as

Pomenuti ‘AdMobAne1.0.ane’ fajl je obavezan i ne možete ga menjati, dok je kod za ostala dva fajla i kod u glavnom ‘***.fla’ fajlu dat tako da bude najshvatljiviji, i može se menjati po potrebi. U opcijama Flash-a morate dodati putanju ka ovom ‘AdMobAne1.0.ane’ dodatku ‘File / Publish Settings… / ActionScript Settings / Browse to a Native extension’.

Glavni ***.fla

import com.admob.AdMobManager;
import anes.SingleBanner;
import anes.Interstitial;

try {
var AdMobInterstitial:Interstitial = new Interstitial();
var AdMobBanner:SingleBanner = new SingleBanner();
}
catch (error:Error) {
// error
}
var Mode:String = “Show”;
setTimeout(ShowHideAdMobBanner, 1000);

function ShowHideAdMobBanner():void {
if (Mode == “Show”) {
AdMobBanner.ShowBanner();
}
else {
AdMobBanner.HideBanner();
}
setTimeout(ShowHideAdMobBanner, 1000);
}

function AdMobShowInterstitial():void {
AdMobInterstitial.ShowInterstitial();
}
setTimeout();

Kada je potrebno samo u okviru glavnog ‘***.fla’ fajla pozovete funkciju:

AdMobShowInterstitial();

Odnosno postavite vrednost za prikaz banera:

Mode = “Show”; // “Hide”

SingleBanner.as

package anes {

import com.admob.*;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;

public class SingleBanner extends Sprite {

public static const banner_id:String = “ca-app-pub-xxx/yyy”;
private var adMobManager:AdMobManager;

public function SingleBanner() {

super();
adMobManager = AdMobManager.manager;
if(adMobManager.isSupported){
adMobManager.verbose = true;
adMobManager.bannersAdMobId = banner_id;
adMobManager.createBanner(AdMobSize.SMART_BANNER_LAND, AdMobPosition.BOTTOM_CENTER, “BottomBanner”, null, true);
}
}

public function ShowBanner() {

if(adMobManager.isSupported) {
adMobManager.showAllBanner();
}
}

public function HideBanner() {

if(adMobManager.isSupported){
adMobManager.hideAllBanner();
}
}
}
}

Na predvidjeno mesto mora se uneti broj reklame koja prikazuje baner.

Interstitial.as

package anes {

import com.admob.AdMobManager;
import flash.display.Sprite;
import flash.utils.*;

public class Interstitial extends Sprite {

public static const full_id:String = “ca-app-pub-xxx/xxx”;
private var adMobManager:AdMobManager;
private var isShow:Boolean = false;
private var waiting:Boolean = false;

public function Interstitial() {

super();
adMobManager = AdMobManager.manager;
if (adMobManager.isSupported) {
adMobManager.verbose = true;
adMobManager.interstitialAdMobId = full_id;
adMobManager.createInterstitial(null, true);
}
}

public function ShowInterstitial() {

if(adMobManager.isSupported) {
if (!waiting) {
waiting = true;
if(adMobManager.isInterstitialLoaded()) {
WaitData();
}
else {
adMobManager.cacheInterstitial();
setTimeout(WaitData, 3000);
}
}
}

function WaitData():void {

if(adMobManager.isInterstitialLoaded()) {
waiting = false;
adMobManager.showInterstitial();
}
else {
setTimeout(WaitData, 3000);
}
}
}
}
}

Na pedvidjeno mesto mora se uneti broj reklame koja prikazuje Interstitial sadrzaj.

Fajlove ‘SingleBanner.as’ i ‘Interstitial.as’ kreirajte sami slično kao i ja ili iskoristite gotove fajlove koji su dati u primeru, uz minimalno prilagođavanje, a za fajl ‘.ane’ ne zaboravite da podesite u podešavanjima putanju ka ovom ‘.ane’ fajlu, kao i verziju za izvršavanje programa za android na 15.0 ili više.

Potrebno je dodati i dozvole u ‘File / Publish Settings… / Player Settings / Permissions’ i ja selektujem prve i poslednje 2 iz menija – prikaz u ‘***-.xml’ fajlu.
Potrebno je ovde i kreirati Vaš sertifikat sa šifrom, koji mora da se koristi pri reviziji aplikacije, a ovde se unose i verzija aplikacije, podržani jezici i ikone.

Takođe je potrebno posle prvog eksportovanja izmeniti fajl ‘***-app.xml’ fajl i tamo dodati redove bez kojih reklame neće da rade.

<application>
<meta-data android:name=”com.google.android.gms.version” android:value=”4452000″ />
<activity android:name=”com.google.android.gms.ads.AdActivity” android:configChanges=”keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize”/>
</application>

Dodajte i red za minimalnu verziju android operativnog sistema na kome funkcioniše program, jer će Vam Google izbaciti u protivnom upozorenje da se podaci ne poklapaju. Dodajte zato red u fajlu ‘***-app.xml’:

<uses-sdk android:minSdkVersion=”10″/>

Linije za izvršavanje dodatka za monetizaciju takođe moraju se naći u ‘***-app.xml’, jer bez njih reklame neće da rade.

<extensions>
<extensionID>com.admob.ane</extensionID>
</extensions>

Tek kada sve ovo završite, možete kreirati naredbom ‘publish’ fajl koji se učitava na androidima tipa ‘.apk’, čije funkcionisanje obavezno trebate proveriti na svom android uređaju. Nakon kreiranja ‘.apk’ fajla morate proveriti da li je novi ‘***-app.xml’ izmenjen i da li na kraju izgleda ovako:

<allowBrowserInvocation>false</allowBrowserInvocation>
<android>
<manifestAdditions>
<![CDATA[<manifest>
<uses-sdk android:minSdkVersion=”10″/>
<uses-permission android:name=”android.permission.INTERNET”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>
<application>
<meta-data android:name=”com.google.android.gms.version” android:value=”4452000″ />
<activity android:name=”com.google.android.gms.ads.AdActivity” android:configChanges=”keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize”/>
</application>
</manifest>]]>
</manifestAdditions>
</android>
<supportedLanguages>en zh cs nl fr de it ja ko pl pt ru es sv tr</supportedLanguages>
<extensions>
<extensionID>com.admob.ane</extensionID>
</extensions>
</application>

Ako je Flash izmenio ‘.xml’ ispavite ga ponovo po gornjem primeru, a zatim ponovo kreirajte ‘.apk’, ali prethodno proverite sve podatke ponovo…

Ovako formirana ‘.apk’ verzija radi kako treba, i prikazuje reklame kako je predviđeno. Još samo da bude mnogo instalacija tj. klikova i blago Vama…

 


 

web monetization


Android Zarada – Monetizacija

 

Android Zarada

 Android Zarada – Uvod

Android Zarada – Pravilan Početak

Android Zarada – Saveti Za Optimizaciju

Android Zarada – Reklame

Android Zarada – Monetizacija

Android Zarada – Marketing

феб 072015
 

Android je platforma za koju su mnogi programski jezici napravili dodatke da rade u njoj. Osnovni paket koji podrzavaju androidi ima ekstenziju ‘.apk’ koja je poput ‘.zip’ paketa zapakovani skup više foldera i fajlova sa raznim ekstenzijama. U okviru ‘.apk’ paketa se nalaze svi zapakovani fajlovi koji služe za instaliranje i pokretanje neke aplikacije.

Osnovni programski jezik koji android podržava je Java, ali pomoću raznih programskih jezika se pravi pomenuti ‘.apk’ paket, koji u sebi moze da ima objašnjenja kako da rade i drugi programski jezici. Da bi se prikazao sadržaj koji je planiran nekim drugim programskim jezikom, potrebno je u ‘.apk’ paket dodati i ‘player’ za reprodukciju tog sadržaja, pa mnogi programski jezici u svaku aplikaciju dodaju ‘player’ koji obično zauzima do 10 MB, sto povećava memoriju potrebnu za aplikaciju (kao što radi Unity3d). Većina korisnika nemaju pojma da je to urađeno, već samo instaliraju aplikaciju i koriste je ne obraćajuci pažnju na bilo šta drugo sem na to da li aplikacija radi i da li im se sviđa. Da bi uštedeli memoriju, neki programski jezici su napravili svoj univerzalni ‘player’ koji se instalira samo jednom, a nakon toga ga koriste sve aplikacije koje koriste taj programski jezik. Takav je ‘Adobe Air Player’ – aplikacija za reprodukciju Adobe Flash ‘.swf’ sadržaja poput ‘Adobe Flash Player’-a za reprodukciju ‘.swf’ sadržaja preko interneta – dodatak za pregledače sadržaja na internetu koga ima skoro svaki kompjuter na svetu. Međutim mnogi ljudi iz svog neznanja smatraju da je ‘Adobe Air‘ virus i kada neka aplikacija traži prvi put na njihovom uređaju da se taj paket instalira, ne prihvataju ga i komentarišu da aplikacija ima virus. Iako neke druge aplikacije imaju već ugradjen taj paket u sebi, ali samo za sebe, oni to ne znaju, i tada je sve u redu. Za njih nema veze što se u svakoj aplikaciji utroši novih 10 MB, važno je da nema obaveštenja o virusu…

Sa programerske strane, javlja se velika dilema: da li praviti aplikacije sa uštedom memorije i pozivom glavnog paketa za reprodukciju sa rizikom da aplikacija dobije loše ocene i bude komentarisana da ima virus, ili dodati u svaku aplikaciju dodatak za reprodukciju sadržaja, sa povećanjem memorije, o čemu obični korisnici nemaju pojma. U poslednje vreme ja sam se opredelio za ovaj drugi slučaj, zbog više negativnih komentara o postojanju virusa, koji narušavaju opšti utisak o kvalitetu aplikacije.

Upoređenje memorije za istu aplikaciju snimljenu bez dodatka i sa dodatkom za reprodukciju bi bilo sledeće: verzija iz prvog slučaja zauzima oko 3 MB zapakovana a oko 6 – 7 MB raspakovana, dok ista verzija po drugoj metodi funkcionisanja zauzima oko 13 MB zapakovana a preko 30 MB raspakovana. Prevelika šteta za korisnika, ali prevelika korist za programera čija ocena bude za jedan umanjena na primer čak 3.5 umesto 4.5, što utice na druge korisnike da preuzmu tu aplikaciju i konačni uspeh aplikacije! Svaki programer može da izabere kako da uradi konačni paket, a svaki korisnik može da oceni rad, i da svoj komentar ako želi.

Što se tiče dodatka za monetizaciju, ovde je priča drugačija. Dodatak za monetizaciju je urađen tako da samo radi na platformama sa android operativnim sistemom, i poziva se iz Jave. Da bi ugradili monetizaciju u neku aplijaciju, potrebno je dodati dodatak koji poziva java funkciju koja prikazuje reklamu. Ovaj dodatak učitava reklamu sa identifikacijom programera, prikazuje je i ako kliknete na reklamu donosi predviđenu zaradu programeru. U zavisnosti od lokacije gde se nalazi korisnik i vrste aplikacije, pomenuti dodatak bira jednu od reklama, i ako je sve u redu posle prikaza reklame, bez obzira da li ste kliknuli na reklamu i videli šta Vam se nudi ili samo ugasili reklamu, glavna aplikacija nastavlja sa radom, kao da ništa nije bilo.

Ponovo napominjem da su ove reklame uglavnom jedini prihod programerima besplatnih aplikacija, i klik na njih predstavlja izražavanje zahvalnosti programerima. Kada niko ne bi kliknuo reklamu, ili kada bi bio premali broj klikova, prestalo bi objavljivanje besplatnih aplikacija, pa se Vi upitajte, da li Vam se isplati da se prikaže reklama, ili više volite da platite 2 – 3 € po aplikaciji i da nema ugrađenih reklama. Mnogi programeri čak i nude mogućnost izbora, tj. kupovinu istovetnih aplikacija u koje nisu ugrađene reklame.

Za skoro sve probleme se nadje rešenje. Naš narod voli da sve bude besplatno, najboljeg kvaliteta, da nema reklama niti bilo kakvih smetnji i da sve radi glatko. Čak se mnogi i bune ako im bilo šta nije po volji, a nikada nisu dali ni cent. Ko misli da može da nadje bolje rešenje od postojećeg, neka proba da iznese svoje teorije. Bilo bi divnih ideja koje bi izazvale puno smeha, a ustvari ko zna, mozda se nađe i novi Tesla…

Android Zarada – Reklame

 

Android Zarada

 Android Zarada – Uvod

Android Zarada – Pravilan Početak

Android Zarada – Saveti Za Optimizaciju

Android Zarada – Reklame

Android Zarada – Monetizacija

Android Zarada – Marketing

мај 032014
 

Igraj besplatno igru Maher Dices Yamb na sajtu www.mahergames.com

Maher Kockice Jamb je besplatna igra koja sadrži elemente strategije. Što više poena sakupite to je bolje. Ova igra je klasični Jamb sa 4 ili 7 kolona i 5 ili 6 kockica poznata kao Yamb, Yacht, Yot, Yatzy, Yahtzee…
Možete da bacite – zavrtite kockice do 3 puta u svakom potezu. Zadržite neke kockice i bacajte ponovo. Posmatrajte 3d animaciju ako želite.
Jamb je kombinacija sreće i veštine. U igri jamb morate da planirate popunjavanje tabele, jer je strategija jednako bitna kao i sreća. Sa igrom jamb trebalo bi da poboljšate svoju inteligenciju.

мај 032014
 

Igraj besplatno igru Maher Car Racing na sajtu www.mahergames.com

Maher auto trke je interesantna 3d trkačka igra. Vi vozite originalan lep automobil u trci protiv 8 protivnika. Ova trka je veoma teška. Protivnici su veoma brzi…
Glavni cilj: Morate da pobedite da bi prešli na sledeći nivo.