Öncelikle telefonum Android işletim sisteminde olmadığı için ne yazık ki oyununuzu test etme fırsatı bulamadım. Ama görsellerden anladığım üzere ve sizin de sonuna not geçtiğiniz üzere Bandersnatch tarzında bir şey.
Belirtmek isterim ki bu oyun tarzına "text-adventure" deniliyor ve 1980'lerde çok yaygın bir türdü. Big Bang Theory izlediyseniz Sheldon birkaç bölümde Zork isminde bir oyunun bağımlısı olmuştu. Bu arada hikayenizde sizi kutlarım.
Uygulamanın boyutunu düşürmek
FMX uygulamanızın native platforma dönüştürülmesi aşamasında kullanılan kütüphanelerden ötürü ne yazık ki boyut düşürmek çok söz konusu bir olay değil. Yine de yükselen hafıza alanları ve güçlü donanımlı cihazlardan ötürü açıkcası 5~25 mb bandında herhangi bir problem olacağını düşünmüyorum. StackOverFlow'a bu hususta
uzun zaman önce şöyle bir şey sormuştum. Verilen cevabı incelerseniz daha fazla bilgi sahibi olabilirsiniz.
Senaryoları veritabanına almak
Oyununuzun tüm hikayesi ve aşamalarını flow-chart olarak oluşturduysanız, aşama aşama hangi sona ulaşılacağını ve kaç adet son olduğunu belirlediyseniz işiniz kolay. İlişkisel bir veritabanı oluşturarak Senaryo1, Senaryo2 şeklinde götürmek adına bir Senaryo tablosu oluşturup içine tüm alternatif sonları belirtirsiniz. Sonra aşamaları tutacağınız bir tablo ile Senaryo1 Aşama1, Senaryo2 Aşama1 şeklinde text olarak senaryolarla aşamaları bağlarsınız birbirine.
Android üzerinde doğrudan SQLite veritabanı koşar. Tek kullanıcı üzerinden gideceği için veritabanı scriptlerini kodunuza eklerseniz programı kurduğu zaman tüm hikayeyi insert atabilirsiniz kullanıcının cihazına.
Opsiyonel: Bunu SQLServer gibi güçlü bir veritabanında sistematik tasarlayıp, araya Java, C# veya PHP ile bir servis yazarak (API veya Web Service) uygulama girişinde hikayeyi online indirebilirsiniz. Böylece kullanıcı uygulamayı kaldır ve tekrar yükle yapmadan en güncel hikayeyi veya yeni hikayeleri edinebilir.
Çoklu dil desteği eklemek
Bunun için TLang komponentini inceleyin. Sabit değerlerinizi bu şekilde çoklu dile uyarlayabilirsiniz. Veya klasik yöntemle arayüzdeki her metinsel değeri kendinize bir keyword ile bağlayın. Örn: Oyunu başlat tuşu. (m_START) isminde bir const yapın. Her dil için bir unit oluşturun.
lang-tr.pas,
lang-en.pas gibi. Uygulama menüsünde dil seçeneği veya ülke bayraklarına dokunarak ana formunuzda tutacağınız CurrentLanguage değişkeninizdeki değer ne ise ona göre ilgili pas dosyasındaki verileri okuyabilirsiniz.
Eğer hikayenin çoklu dil olarak uygulanmasını istiyorsanız bu sefer veritabanınızda LanguageId alanı ekleyip her dil için çoklu metin oluşturmalısınız.
Görsel iyileştirmeler
Bunun için kendinize belirleyeceğiniz bir standart, bir tip referansı bulun. Hoşunuza giden bir buton tipini inceleyin öncelikle. Sonra bu butonu FMX üzerinde nasıl yapabileceğinizi masaya yatırın. Genellikle
TRectangle ile yapılamayacak bir buton görmedim.
Stroke özelliği ile çerçeve verebilirsiniz.
X-Radius Y-Radius ile köşelerin keskinliğini ayarlayabilirsiniz.
Fill ile arkaplanı ayarlayabilirsiniz.
Fill.Kind ile tekil renk mi geçişli renk mi olacağını belirleyebilirsiniz. Tool Palette içinde
Effect olarak aratırsanız smile kafalarıyla belirtilen çeşitli efektleri görebilirsiniz. Bunları doğrudan kendi komponentlerinize sürükle-bırak yaparak aktif edebilirsiniz. (Örn: ShadowEffect, GlowEffect ile seçilen şıkkın etrafını belirtmek gibi)
Her soru ekranını bir TTabSheet içine ekleyin. PageControl içerisinde bunları oluşturduktan sonra Tab geçişlerini kod üzerinden yaparken GoToActivePage komutu ile Direction rotasını belirleyip kaydırmalı geçişler yapabilirsiniz.
Diğer açıdan uygulama içinde ikon kütüphanesi kullanmanız sizin avantajınıza olacaktır.
Icons8 açık ara en iyisidir.