Başarı öyküsü: Team STEP’in Apillon ile hızlandırılmış Web3 oyun geliştirmesi

Apillon Turkiye
4 min readOct 11, 2023

Apillon’un Web2 benzeri yöntemleri, Web3 bilgisi eksikliğini telafi etti ve oyunların merkezi olmayan bir ağda barındırılma şeklini otomatikleştirdi.

👉 Proje: Team STEP
👉 Niş: Web3 oyunları
👉 Kullanılan Apillon hizmetleri ve özellikleri: Merkezi Olmayan Depolama paketleri, Merkezi Olmayan Barındırma, API, CLI, GitHub Eylemleri

Daha büyük resim
Team STEP, Unity ve Godot’ta oyunların yanı sıra araçlar, uygulamalar ve platformlar geliştiren uluslararası bir ekiptir.

Oyunlarının tamamen Web3 uyumlu olmasını sağlamak için Team STEP’in tamamen merkezi olmayan bir altyapıyı entegre etmesi ve konuşlandırılan uygulamaları durdurulamaz hale getirmesi gerekiyordu.

Team STEP’in merkezi olmayan bir altyapıya ihtiyaç duyan projelerinden biri, ortaçağ fantastik dünyasında geçen gizli, saklambaç oyunu Witch One’dı.

Ön uç ve standart oyun mekaniklerini geliştirmek bir sorun değildi. Daha fazla kafa karıştırmaya neden olan ve ekibin çok fazla zamanını tüketen şey, Web3'e teknik katılımdı.

Sorun: Web3'e yönelik yüksek eşik
Team STEP’te her oyun üzerinde birkaç mühendis çalışıyor ancak yalnızca lider geliştirici Web3 altyapısının inceliklerini derinlemesine anlıyor. Diğer geliştirme ekibi üyeleri Web2'nin eski yöntemlerinde uzmandır ancak Web3 mimarisine ve onun özelliklerine pek aşina değillerdir. Web3'e yönelik yüksek eşik, Team STEP oyunlarının piyasaya sürülme gidişatını ve sonuçta başarı potansiyelini yavaşlatıyordu.

Geliştirme sürecini hızlandırmak ve oyunların merkezi olmayan bir şekilde barındırılmasını sağlamak için Team STEP’in, insanlar tarafından edinilen Web3 uzmanlığı eksikliğini telafi edecek güvenilir, anahtar teslim bir araca ihtiyacı vardı.

Apillon’un devreye girdiği yer burası…

Çözüm: Apillon’un Web2 benzeri geliştirme yöntemleri
Team STEP, Apillon’un Merkezi Olmayan Depolama ve Barındırma hizmetleri için manuel kod sondajına geçti.

Yeni oyun yapıları artık GitHub Eylemleri, Apillon CLI ve API aracılığıyla otomatik olarak Apillon Merkezi Olmayan Depolamaya dağıtılıyor.

Otomatik, merkezi olmayan oyun barındırma, ADIM adım
Team STEP oyunlarının tamamen Web3 arka ucuna geçiş basitti.

  1. Ekip ilk olarak Merkezi Olmayan Depolama aracılığıyla Apillon’da barındırılan statik bir web sitesi yapılandırdı. Web sitesi, her yapı sürümünün belirli bir klasörde saklandığı Apillon Merkezi Olmayan Depolama gruplarındaki Web3 oyun dağıtım klasörlerine göz atabilir.
  2. Statik web sitesi, geliştiricilerin farklı derleme sürümleri arasında geçiş yapmasına ve bunları tarayıcıda hemen test etmesine olanak tanır.
  3. Team STEP geliştiricilerinin yapması gereken tek şey, Web3 oyun yapılarını GitHub Eylemlerini tetikleyen GitHub’a dağıtmaktır. Apillon’un Merkezi Olmayan Depolama ve Barındırma CLI’si, oyun yapılarını ilgili klasöre dağıtacak şekilde yapılandırılmıştır ve bunları 2. Adımda açıklanan statik web sitesi oluşturma değiştiricisine otomatik olarak dahil eder.

API, Web3'e giden yol
Team STEP’in geliştiricileri, Apillon’un API’sini kullanarak Web3 oyun altyapısının tamamını alışık oldukları bir şekilde kurdular; Web2 ağ geçitlerini kullanarak merkezi olmayan barındırma ve dosya depolamanın avantajlarından yararlandılar.

import { Axios } from 'axios';
import { ApillonDirectoryResponse, ApillonFileResponse } from '../types';
const API_ENDPOINT = 'https://api.apillon.io';
const IPFS_ENDPOINT = 'https://ipfs.apillon.io/ipfs'
export default class ApillonApi {
private _apiInst: Axios;
constructor(apiKey: string, apiSecret: string) {
const reqAuth = btoa(apiKey + ':' + apiSecret);
// create a axios instance with all the base config
this._apiInst = new Axios({
baseURL: API_ENDPOINT,
headers: {
Authorization: 'Basic ' + reqAuth,
},
responseType: 'json',
});
}
public async getBucketFolderContent(bucketUuid: string, directoryId?: number | string) {
// todo: need to handle corner cases
const res = await this._apiInst.get(`storage/${bucketUuid}/content/${directoryId ? `?directoryId=${directoryId}` : ''}`);
const bucketItems = (JSON.parse(res.data) as ApillonDirectoryResponse).data.items;
return bucketItems;
}
public async getFileDetails(bucketUuid: string, fileId: number | string) {
const res = await this._apiInst.get(`storage/${bucketUuid}/file/${fileId}/detail`);
const fileInfo = (JSON.parse(res.data) as ApillonFileResponse).data;
return fileInfo;
}
public getIpfsLink(cid: string) {
return IPFS_ENDPOINT + '/' + cid;
}
}

Yukarıdaki kod pasajı, Team STEP’in Witch One oyununda Apillon API’sini çağırmaya devam ediyor

Merkezi olmayan depolama ve barındırma yalnızca bir adım uzakta
Apillon ile Web3 oyun altyapısının geliştirilmesini kolaylaştırmayı tercih eden Team STEP, pazara açılma yolunda önemli bir avantaj elde etti.

Apillon kontrol panelinde bunu da birkaç dakika içinde yapabilirsiniz. Soldaki menüde Merkezi Olmayan Depolama ve Barındırma’ya gidin ve oyun içeriklerinizi merkezi olmayan bir depolama paketine yükleyin.

Web3 Hizmetlerini projenizin ihtiyaçlarına daha fazla uyarlamak ve kodunuzun kontrolünü elinizde tutmak istiyorsanız Apillon API, CLI ve SDK’yı tercih edin.

Teknolojiyi manuel olarak araştırma ve uygulama zahmetine girmeden oyununuzu, web sitenizi veya uygulamanızı Web3 düzeyine yükseltin.

Basitçe yükleyin, seçin, ayarlayın ve dağıtın.

--

--

Apillon Turkiye

https://blog.apillon.io geliştiricilerin @Polkadot ekosisteminde uygulama geliştirmelerine imkan sağlayan bir Web 3 platformu.