Thursday, January 8, 2026

Meteor Defence: An Android game developed with Unity







Download Link:


The story that began with SnakeCraft continues with Meteor Defence. So what happened after SnakeCraft? First, we sent the application, which had moved from "Draft" status, to "Closed Testing," and then 14 days later, we sent it for "Production" approval. If it's accepted, your application is listed on the Google Play Store. We succeeded twice, and both SnakeCraft and Meteor Defence were listed on the Store. It hasn't even been a week yet, but how much did we earn from the first game? Excluding the money from testers testing, we've earned a pittance. Anyway, this is a bit of a dystopian piece. Let's talk a little about our new game. The game's description is as follows:

"Judgment Day has arrived. The rich have boarded spaceships and left the planet. The poor are left to face their fate. Now those who remain must make a magnificent finale. But the end is inevitable. Defend your planet against deadly meteors."

Of course, we're talking about a dystopian universe here! In this universe, the planet has reached its end, and meteors have begun to rain down from the sky. Those who remain believe that while there's no escape from the end, they can make it brighter. This belief eventually turns into resistance against nature, but of course, there's no escape from the end.

I tried to visualize this scene in the game. You have air defense systems and you try to destroy as many meteors as possible. The meteors speed up and multiply over time. As you destroy meteors, you build fortifications with the resources you obtain, and your health constantly increases. I wanted to give you a little hope here because even though your health reaches high values, it will eventually be 0! Of course, if you close the game before it's finished, that's another story.

The game offers about 10 minutes of gameplay with normal gameplay. You might see a one-time ad when you start the game, but you won't encounter any ads in the rest of the gameplay. Whether this will change later is another matter; it won't be like the government reducing the state contribution to the private pension scheme from 30% to 20%. I think I prefer slightly stricter policies regarding reliability. At the start of the game, you can choose your weapon power. This power allows you to fire more shots per second. You can also upgrade it to defend yourself until your arms and legs ache – the choice is yours. The most important part is that you fire by tapping the touchscreen.

So what happens next? Finally, I'll release another puzzle game. I'll see what happens after that depending on the situation.

Wednesday, January 7, 2026

Meteor Defence: Unity ile geliştirilmiş Android oyunu







İndirme Linki:


SnakeCraft ile başlayan hikaye Meteor Defence ile devam ediyor. Peki SnakeCraft'tan sonra neler oldu? Öncelikle "Taslak" durumundan çıkan uygulamayı "Kapalı Test"' e gönderdik ve 14 gün sonra da "Üretim" onayı için gönderdik. Eğer kabul alırsa Google Play Store'da uygulamanız listeleniyor. Biz 2 kere başardık ve hem SnakeCraft hem de Meteor Defence Store'da listelendi. 1 hafta olmadı henüz ama ne kadar kazandık ilk oyundan? Testçilerin test etmesinden gelen parayı saymazsak 1 kuruş kazanmışızdır. Şimdi 1 kuruşu küçük görmeyin Allah bereket versin deyin. Belki 1 kuruşa ihale alıp sonra ihaleyi elinden aldığımız şirketi satın alıp trolleyebiliriz. Zaten bu yazı biraz da distopya yazısı. Neyse yeni oyunumuzdan biraz bahsedelim. Oyunun açıklaması şöyle: 

"Kıyamet Günü geldi. Zenginler uzay gemilerine binip gezegeni terk ettiler. Fakirler kaderleriyle yüzleşmek zorunda kaldılar. Şimdi geriye kalanlar muhteşem bir final yapmalı. Ama son kaçınılmaz. Gezegeninizi ölümcül meteorlara karşı savunun."

Tabi yine burada distopik bir evrenden söz ediyoruz! Bu evrende gezegenin artık sonu gelmiş ve gökten meteorlar yağmaya başlamış. Kalanlar da sondan kaçış yok ama sonu daha parlak bir hale getirebiliriz düşüncesindeler. Bu düşünce sonunda doğaya karşı bir direnişe dönüşüyor fakat tabii ki sondan kaçış yok.

Oyunda bu sahneyi görselleştirmeye çalıştım. Elinizde hava savunma sistemleri var ve meteorları olabildiğince yok etmeye çalışıyorsunuz. Meteorlar zaman geçtikçe hızlanıyor ve çoğalıyor. Meteorları yok ettikçe elde ettiğiniz kaynaklardan tahkimat da yapmaktan geri durmuyorsunuz ve canınız sürekli artıyor. Burada biraz ümitlenin istedim çünkü can değeri yüksek değerlere çıksa da sonunda yine 0 olacak! Tabi oyunu bitmeden kapatırsanız o başka.

Oyun normal bir oynanışla 10 dk'lık bir oynanış sunuyor. Oyuna girerken tek seferlik bir reklam çıkabilir ama sonraki tüm oynanışta reklamla karşılaşmıyorsunuz. Bu sonradan değişir mi değişmez yani devletin BES devlet katkısını %30'dan %20'e düşürmesi gibi olmaz. Ben sanırım güvenilirlikte biraz daha katı politikaları tercih ediyorum. Oyunun girişinde silah gücü seçebiliyorsunuz. Bu güç saniyede daha fazla atış yapabilmenizi sağlıyor. Bunu yükseltip eliniz kolunuz ağrıyana kadar da savunma yapabilirsiniz tercih size kalmış. En önemli kısmı atışları dokunmatik ekranı kullanarak ekrana dokunarak yapıyorsunuz.

Peki bundan sonra ne olacak. Son olarak bulmaca türünden bir oyun daha yayınlayacağım. Bu oyundan sonrasına da duruma göre bakacağım.

Wednesday, December 31, 2025

Making Dashed Line in Unity!

There's probably no web developer who doesn't know the famous dashed line. Especially when you select "dashed" as a style on the border of a web element, voila, there you have it, the dashed line! Let's show an example below:
 

Easy peacy! But wait I need dashed line in Unity. So let's start!

First of all, we need to know exactly what we're going to do. We need a line, this line should be multiple and have gaps between them, and it would be good if it could move!

Lets start with line texture:


You can save this to your computer if you want. We copy this into the Unity project and select its properties as follows:


The key point here is that "Wrap Mode" must be set to "repeat". So the texture is ready. In the next step, we will create a dashed line using this texture. For this purpose, we will use a Shader. Right-click on the folder where we will create the Shader and select Create > Shader Graph > URP > Sprite Unlit Shader Graph. Let's work deductively, and when the graph is finished, it will look like this:


Let's explain the steps in order. First, we create an input of type Texture2D. To include this input in the shader graph, we add a "Sample Texture 2D" node and connect the texture input to the texture input of this node. To multiply and move our lines according to our purpose, we add a "Tiling and Offset" node. The value we give to the "x" value of the Tiling input corresponds to the number of breaks. If we want to move, we split the output of the "Tiling and Offset" node using the "Split" node. The R output will correspond to the "x" value and the G output will correspond to the "y" value. Since we will be moving along the x-axis, we preferably add a "Subtract" node before the x value. Since the x value will decrease over time, we add a "Time" node and, preferably to control the movement speed, we add a "Multiply" node, connecting the "Time" output and the x output to the "Subtract" node. Finally, we connect the output of a "Vector2" node to the UV input of the "Sample Texture 2D" node. We also make sure to connect the RGBA output of this node to the BaseColor input of the "Fragment" node and the A output to the Alpha input. And there you have it!

After creating the graph, right-click on it and select Create > Material to create a "Material". Now all you have to do is create a "Line Renderer" and select the newly created object as the Material.

Once you've completed all the steps, you'll have a moving dashed line!




Sunday, December 14, 2025

SnakeCraft - Making Android game with unity





aa



Download Link:


You can install the game on your Android phone by clicking the link above, selecting the package manager, and completing the security verification. 

In this article, we delved into a completely different topic: game development with Unity. This playground has developed surprisingly much compared to the past, so much so that you can find countless tutorial videos on YouTube. So I thought, why not make one myself? But how does asset creation work? I had AI draw it. I drew it, but of course, I couldn't do much fine-tuning. But still, a game came out of it. Now we need to make some money. For that, there's AdMob. This was great; I was able to finish the process quickly. Quick, but get your driver's license and passport ready. Since I didn't have a passport, I sent my residence permit, and they accepted it, thankfully. So how do we publish this game? We signed up for the Google Play console. Google has made such a mind-boggling console; you need to be a Google engineer to understand what's where and how. Anyway, I researched and found out that we needed to complete a closed test. You informed within the console. For the closed test, you need 12 users, and these users need to test the game for 14 days. Okay, we understand you're implementing this to prevent quality from dropping or to improve declining quality, but am I a company that's going to find 12 people to test it for 14 days? Let's say we distribute it to friends and family. According to my research, Mr. Google might not like that either and extend the process for another 14 days until they're satisfied. Also, I couldn't create an email link to send to the testers. It's impossible to understand by searching at the interface. For example, the status shows "under review," and the game is in draft. What is a draft? Who is reviewing it? What will happen after it's reviewed? Maybe that's why the link isn't visible. I asked the AI, and it couldn't figure it out either. Anyway, people who do this kind of work can copy the link from YouTube videos; hopefully, I'll be able to copy it someday. Additionally, you need to fill out many surveys and create a privacy policy. Finally, you need to pay $25 to use the Google Play console. I wrote this article to share my experiences in case anyone is interested. However, they withdraw the money incredibly quickly; I've never seen a system that does that. Despite everything, YouTube is free, so let's not deny them their due.

Update: To begin closed testing, you need to wait up to 14 days for review process. After process application, status will change from draft and link become usable. So closed tests could be continued.


Saturday, December 13, 2025

SnakeCraft - Unity ile Android için oyun geliştirmek









İndirme adresi:


Yukarıdaki linke tıklayıp paket yöneticisini seçerek ve güvenlik onayını vererek oyunu Android telefonunuza yükleyebilirsiniz. 

Bu makalede bambaşka bir konuya giriş yaptık: Unity ile oyun geliştirme. Bu alan eskiye göre şaşırtıcı derecede çok gelişmiş öyle ki YouTube üzerinde zibilyon tane eğitim videosu bulabiliyorsunuz. Ben de dedim ki madem öyle bir tane de ben yapayım. Yapayım da asset oluşturma işi nasıl olacak? Onu da yapay zekaya çizdirdim. Çizdirdim ama tabi ki ince rötuşları çok yapamadım. Ama olsun yine de bir oyun çıktı ortaya. Şimdi biraz da para kazanmamız lazım. Bunun içinde AdMob var. Bu güzel olmuş hızlıca işlemleri bitirebildim. Hızlı ama sürücü belgenizi ve pasaportunuzu hazır edin. Pasaport olmadığı için ikametgah gönderdim kabul ettiler sağ olsunlar. Peki sonra nasıl yayınlayacağız bu oyunu? Google play consola üye olduk. Google öyle bir konsol  yapmış ki beyin yakıyor, ne nerede nasıl anlamak için Google mühendisi olmak lazım. Neyse araştırdık ve anladım ki kapalı teste girmek lazımmış. Bu durum konsol içinde gösteriliyor. Kapalı test içinse 12 tane kullanıcı lazım ve bu kullanıcıların bu oyunu 14 gün boyunca test etmesi gerekiyormuş. Tamam anladık kalite düşmesin veya düşen kaliteyi yükseltmek için böyle bir uygulama yapıyorsun da 12 adamı nereden bulup 14 gün test yaptıracağım şirket miyim ben? Hadi diyelim ki eşe dosta dağıttık. Araştırmalarıma göre onu da beğenmeyebiliyormuş Google Bey 14 gün daha uzatıyormuş süreci beğenene kadar. Ayrıca testçilere gönderilecek mail linkini de oluşturamadım. Ara yüze bakarak anlamak mümkün değil. Mesela durum "incelemede" görünüyor ve oyun taslak halinde. Taslak ne kim inceliyor incelendikten sonra ne olacak belli değil. Link belki bu yüzden görünmüyor. Yapay zekaya sordum o da işin içinden çıkamadı. Neyse youtube videolarından bu işi yapanlar linki kopyalayabiliyor, bir gün bende kopyalarım inşallah. Ek olarak birçok anket doldurmanız ve gizlilik politikası oluşturmanız da gerekiyor. Son olarak google play konsolunu kullanabilmek için 25$ ödemeniz gerekiyor. Heveslenen olursa tecrübelerimi paylaşmak için bu makaleyi yazdım. Yalnız parayı çok hızlı çekiyor böyle para çeken sistem daha görmedim tebrik ederim. Her şeye rağmen youtube beleş şimdi adamların haklarını da yemeyelim.

Güncelleme: Kapalı  teste çıkmak için 14 güne kadar beklemek ve uygulamının durumunun taslaktan çıkması gerekiyor. İnceleme bittikten sonra link göründü ve test aktif hale geldi.


Saturday, November 25, 2023

DTO projections via JPQL with Hibernate lazy initialization

DTO projections are very important to doing abstraction over model and data processing. Most common interests are fecthing data with a spesific partition and/or different format other than model. Also DTOs can be very usefull for partial database updates. In JPQL, query results can be transfered into DTOs with new keyword as following:
 
SELECT new org.module.submodule.ExampleDTO(b) FROM Book b
Also you can send parameters via constructor separately. But this approach provide you to control DTO flow and lazy initializations.
 
@Getter
@Setter
public class ExampleDTO {

    private String bookName;
    private Set<BookOwner> bookOwners;

    public ExampleDTO (Boob b) {
    
    	this.bookName = b.getName();
        this.bookOwners = b.getBookOwners();
        
        Hibernate.initialize(b.getBookOwners());
    }
}
In the constructor block, you can manage all initialization, property inclusions, property exclusions and customizations.

Saturday, May 14, 2022

Generating GUID in excel using macro

For some reason, you may need to generate GUID in an excel document. For me, because of using GUID as primary keys in database, I have needed to generate insert scripts and GUIDs as primary keys. First of all you need to activate developer options of excel. After that, you are able to write macros. Finally, create a module and create function given below:

Function createguid()
Dim guid As String
guid = CreateObject("WScript.Shell").Exec("powershell -command [guid]::newGuid().ToString()").StdOut.ReadAll
createguid = Application.WorksheetFunction.Clean(guid)
End Function
In this approach, powershell is used for GUID generation. You can use this function in formulas after creation. Only drawback of this method is powershell console is opened and closed as many as generated GUIDs.