TurkHacks Üyelerine Özel - Tarayıcıdan Oynanabilen Metin2 Web MMORPG Projesi
DetayHost tarafından geliştirilmiştir.
PHP + WebGL + 3D Multiplayer + Chat + PvP + Envanter + Market + Metin/Boss Sistemi
Bu paylaşım eğitim, test ve geliştirme amaçlıdır.
DEMO
https://hemensatariz.com/
DetayHost tarafından geliştirilmiştir.
PHP + WebGL + 3D Multiplayer + Chat + PvP + Envanter + Market + Metin/Boss Sistemi
Bu paylaşım eğitim, test ve geliştirme amaçlıdır.
DEMO
https://hemensatariz.com/
Script Nedir?
Bu proje, tarayıcı üzerinden çalışan 3D bir Metin2 tarzı MMORPG istemcisidir.
Normalde proje tek kişilik, statik ve büyük ölçüde sadece 3D sahne/karakter gösterimi yapan bir web client mantığındaydı x forumda sunucu üzerine kurulum yapılıyordu aldım php döktüm ve online mantığa çevirdim çok basit şekilde yapay zeka ile bu oyunu geliştirebilirsiniz
Biz sistemi geliştirerek:
- PHP kurulum sistemi
- Multiplayer oyuncu senkronizasyonu
- Canlı sohbet
- PvP
- Envanter
- Market
- Metin/Boss sistemi
- Drop sistemi
- Respawn sistemi
- Silah/eşya sistemi
- Karakter isimleri
- Ortak dünya mantığı
- TurkHacks özel tema ve markalama
gibi birçok özellik ekledik.
Sistem artık sadece “3D karakter gösteren demo” mantığında değil, gerçek oyun mantığına doğru ilerleyen bir yapıdadır.
Eski Halinde Neler Vardı?
İlk hali temel olarak:
- Tarayıcı üzerinden 3D karakter gösterimi
- Karakter seçme ekranı
- Savaşçı
- Ninja
- Sura
- Şaman
- 3D şehir haritası
- Karakter hareket sistemi
- NPC modelleri
- Metin ve Boss modelleri
- Basit saldırı animasyonları
- Tek oyunculu çalışma mantığı
şeklindeydi.
Ancak:
- Gerçek multiplayer yoktu.
- İki oyuncu birbirini göremiyordu.
- Chat sistemi yoktu.
- PvP sistemi yoktu.
- Ortak Metin/Boss HP sistemi yoktu.
- Drop sistemi yoktu.
- Market sistemi yoktu.
- Gerçek envanter mantığı yoktu.
- Oyuncular farklı bilgisayarlardan aynı dünyada oynayamıyordu.
- PHP install sistemi yoktu.
- Sunucu tarafında gerçek oyun verisi tutulmuyordu.
Biz Neler Ekledik?
1. PHP Install Sistemi
Script artık doğrudan FTP üzerinden sunucuya yüklenebilir.
Kurulum:
Kod:
siteadresiniz.com/install.php
üzerinden yapılmaktadır.
Installer içerisinde gerekli kontroller bulunur.
- PHP kontrolü
- Storage izin kontrolü
- Oyun dosyaları kontrolü
- Map dosyası kontrolü
- Config oluşturma
- Kurulum durumu
2. Gerçek Multiplayer Sistemi
En önemli geliştirmelerden biri multiplayer sistemidir.
Artık iki farklı tarayıcıdan veya iki farklı bilgisayardan oyuncular aynı oyuna girdiğinde birbirini görebilmektedir.
Örneğin:
Kod:
Oyuncu 1 - İstanbul
Oyuncu 2 - Van
ikisi de aynı siteye bağlandığında aynı haritada birbirini görebilir.
Oyuncuların:
- Konumu
- Dönüş açısı
- Karakter sınıfı
- İsmi
- Hareket durumu
- Saldırı durumu
sunucu üzerinden senkronize edilir.
3. Canlı Sohbet Sistemi
Oyunda ENTER tuşuna basıldığında chat alanı açılır.
Mesaj yazılıp ENTER'a basıldığında mesaj diğer oyunculara da gider.
Örnek:
Kod:
Ahmet: Selam
Mehmet: Hoşgeldin
Aynı sunucuya bağlı oyuncular sohbet mesajlarını görebilir.
4. PvP Sistemi
Oyuncular birbirini hedefleyebilir ve saldırabilir.
İlk sistemde düello isteği vardı fakat daha sonra serbest PvP mantığına çevrildi.
Artık:
- Oyuncu hedefleme
- PvP saldırı
- Server tarafında hasar hesabı
- HP düşürme
- Mesafe kontrolü
- Ölüm/respawn altyapısı
bulunmaktadır.
5. Metin Taşı Sistemi
Metin taşları artık sadece sabit model değildir.
Metinlerde:
- HP
- Hasar alma
- Ölme
- Kaybolma
- Drop verme
- Respawn
mantığı vardır.
Örneğin:
Kod:
Metin HP: 10000
Oyuncu vurur
HP: 7500
Oyuncu skill kullanır
HP: 2100
Son vuruş
HP: 0
Metin kaybolur
Drop düşer
45 saniye sonra yeniden doğar
Ayrıca Metin'in durumu sunucuda tutulduğu için bir oyuncu Metin'i öldürdüğünde diğer oyuncuların ekranında da aynı Metin ölmüş olur.
6. Boss Sistemi
Boss sistemi de Metin sistemine benzer şekilde sunucu tarafına bağlandı.
Bosslarda:
- HP
- Hasar
- Ölüm
- Drop
- Respawn
bulunmaktadır.
Boss respawn süresi Metinlerden daha uzun tutulmuştur.
7. Drop Sistemi
İlk geliştirmelerde item direkt envantere gidiyordu.
Daha sonra sistem geliştirilerek yerde drop mantığı eklendi.
Metin/Boss öldürüldüğünde eşya düşebilir.
Oyuncu düşen itemi toplayarak envanterine alabilir.
8. Envanter Sistemi
Oyunda I tuşuyla envanter açılabilir.
Envanter içerisinde:
- Silah
- Zırh
- Ayakkabı
- İksir
- Drop itemleri
- Market itemleri
bulunabilir.
Eşyalar ekipman slotlarına takılabilir.
Son güncellemede başlangıç itemleri tamamen kaldırılmıştır.
Yeni karakter:
Silahsız
Zırhsız
Ayakkabısız
İksirsiz
Boş envanterle
başlamaktadır.
9. Market Sistemi
NPC market sistemi aktif hale getirildi.
Örneğin:
- Silah Satıcısı
- Zırh Satıcısı
- Genel Satıcı
üzerinden item alınabilir.
Yang karşılığında satın alınan eşya envantere gelir.
10. Silah Sistemi
İlk testlerde silah karakterin yanında ayrı duruyordu.
Bu sistem daha sonra karakter iskeletine bağlandı.
Silah karakter modelinin el kemiğine bağlanarak hareket etmektedir.
Örnek yapı:
Kod:
Character
└── Armature
└── Bip01 R Hand
└── Weapon Socket
└── Sword
Bu sayede karakter hareket ettiğinde ve saldırı animasyonu oynadığında silah da karakterle birlikte hareket eder.
11. Skill Sistemi
Karakter modelleri içerisinde bulunan saldırı ve skill animasyonları sisteme bağlandı.
Örneğin savaşçı karakterinde:
Kod:
onehand_sword combo_01
onehand_sword combo_02
skill samyeon
skill geompung
skill gigongcham
skill noegeom
gibi animasyonlar bulunmaktadır.
Kontroller:
Kod:
SPACE = Normal saldırı
1 = Skill 1
2 = Skill 2
3 = Skill 3
4 = Skill 4
Skill efekt sistemi de geliştirilmeye devam etmektedir.
12. Ortak Dünya Sistemi
Oyunun en önemli farklarından biri budur.
Artık dünya olayları oyuncuya özel değildir.
Örneğin bir oyuncu:
Metin taşını öldürürse
diğer oyuncuda da Metin ölür.
Bir oyuncu:
Boss öldürürse
diğer oyuncularda da Boss kaybolur.
Bu bilgiler ortak server state üzerinden tutulmaktadır.
Kontroller
Kod:
W = İleri
A = Sol
S = Geri
D = Sağ
SPACE = Normal saldırı
1 = Skill 1
2 = Skill 2
3 = Skill 3
4 = Skill 4
I = Envanter
C = Karakter
M = Harita
ENTER = Sohbet
TurkHacks Özel Düzenlemeler
Bu sürüm TurkHacks üyelerine özel olarak düzenlenmiştir.
Yapılan özel düzenlemeler:
- TurkHacks logo entegrasyonu
- Giriş ekranı TurkHacks teması
- Karakter seçme ekranı TurkHacks logosu
- Yeni özel arka plan
- TurkHacks Üyelerine Özel yazıları
- Sol üst bağlantı turkhacks.com olarak değiştirildi
- Instagram kaldırıldı
- Discord kaldırıldı
- WhatsApp iletişim eklendi
- Developer bilgisi DetayHost olarak değiştirildi
- Install ekranı TurkHacks özel hale getirildi
Kurulum
Dosyaları hosting'e yükleyin.
Kod:
public_html/
içerisine çıkartın.
Daha sonra:
Kod:
https://siteadresiniz.com/install.php
adresine girin.
Kurulumu tamamlayın.
Tarayıcı önbelleği için:
Kod:
CTRL + F5
yapmanız önerilir.
Harita Dosyası Hakkında
Ana harita:
Kod:
models/map_city.glb
dosyasıdır.
Harita dosyası büyük boyutludur.
Gerçek GLB dosyasının yaklaşık:
Kod:
163 MB
civarında olması gerekmektedir.
Git LFS pointer olan birkaç yüz byte'lık dosya kullanılırsa oyuna girerken siyah ekran oluşabilir.
Sistem Mimarisi
Kod:
Tarayıcı / 3D Client
|
|
v
PHP Multiplayer API
|
|
+---- Oyuncular
|
+---- Chat
|
+---- PvP
|
+---- Metin
|
+---- Boss
|
+---- Drop
|
+---- Market
|
+---- World State
Sistem geliştirmeye açık şekilde hazırlanmıştır.
Geliştirilebilecek Sistemler
İlerleyen sürümlerde eklenebilecek birçok özellik bulunmaktadır:
- Mob AI
- Mobların oyuncuyu takip etmesi
- Mob saldırıları
- Gerçek skill VFX
- Item + basma sistemi
- +0 / +9 eşya geliştirme
- Demirci
- Stat sistemi
- STR / DEX / INT / VIT
- Kritik
- Delici
- Savunma
- Element sistemi
- Görev sistemi
- NPC diyalog sistemi
- Depo
- Ticaret
- Party
- Lonca
- Arkadaş sistemi
- Özel mesaj
- Teleport
- Yeni haritalar
- Binek
- Pet
- Costume
- Lonca savaşı
- Boss dungeon
- WebSocket altyapısı
- MySQL karakter kayıt sistemi
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.







