20 Ağustos 2010

Pardus ile nasıl CS:S sunucusu yapılır?

Dün laptopuma kurduğum sunucuyu gerçek oyuncularla test ettik. Gördüm ki 10mbit indirme, 1mbit gönderme hızı olan internete bağlı 1.6Ghz çift çekirdekli bir sunucu çok rahat 6 kişilik bir oyun kaldırıyor. Ülkemizde 8mbit adsl bağlantısına sahip birilerini bulmak o kadar da zor değil. Eğer böyle bir bağlantınız varsa ve elinizin altında eski bir bilgisayar varsa siz de onu arkadaşlarınızla takılacağınız, istediğiniz haritalarda oynayacağınız özel bir sunucu haline getirebilirsiniz. Hatta 1mbit internetle bile 2 kişi teke tek oynayabilirsiniz.

Bugün, bunun Pardus 2009.2 işletim sistemi ile nasıl yapacağınızı anlatacağım. Yapacağımız şey Pardus'u çok temel bir şekilde bilgisayara kurmak, bu kurulumdan sonra eski bilgisayarınızı yavaşlatan ve bir sunucu için gereksiz olan grafik arayüzü olmayacak. İnternet bağlantısını sağlayacağız, sunucu dosyalarını indireceğiz, modem ayarlarını yaptıktan sonra mani admin plugin kuracağız ve sunucumuz hazır olacak.

Pardus Kurulumu

Ekleme: ozgurlukicin.com forumlarında bir kullanıcı tam da bizim ihtiyacımız olan şeyi yapmış ve bir adet temel sistem iso'su yapmış. Eğer elinizde bir Pardus CD'si yoksa veya daha sonradan Pardus'u normal bir şekilde kurmayı düşünmüyorsanız aşağıdaki forum başlığındaki linkten CD'yi indirebilirsiniz. Bizim ihtiyacımız olan dosyalar var sadece içinde. Ve boyutu sadece 180mb:
http://www.ozgurlukicin.com/forum/gonullu-calismalar/17530/

Öncelikle http://www.pardus.org.tr/indir/ adresinden Pardus'u indiriyoruz. Boş bir CD'ye yazıyoruz, ve bilgisayara takıp CD'den çalıştırıyoruz. Önümüze bir menü açılır açılmaz aşağıda Açılış Seçenekleri yazan kısmın yanına yali4=baseonly yazıp entera basıyoruz. (Bununla ilgili başka bir yerden bulduğum bir resim)

Kurulumu bilmeyenler için de anlatacağım. GPL'i kabul edin, diski doğrulamaya gerek yok, klavyeyi seçerken eğer klavye ingilizce klavyeyse ingilizce seçmeniz daha iyi olabilir. Türkçe karakterlere pek ihtiyacınız olmayacak ama bazı özel karakterlere ihtiyacınız olacak, sorun çıkmaması için. Kullanıcı adı ve parolanızı girin, yönetici parolanızı aklınızda tutun.

Disk bölümlendirmeye geldiğinizde Hayır diski kendim bölümlendireceğim'i seçin. Bilgisayarda boş bir bölüm olmalı, eğer yoksa varolan Windows bölümlerinizle vedalaşmak isteyebilirsiniz :) Boş alan'ı seçip Pardus sistem dosyaları için(/) bir bölüm oluşturun, 5GB yeterli olacaktır, ancak en iyisi en az 10GB lık bir bölüm oluşturmak. Ardından yine boş alana tıklayıp bir takas alanı oluşturun. Bu bölüm bilgisayarım RAM'inin yetmemesi durumunda RAM gibi kullanılacaktır. 2-4GB bir şeyler verebilirsiniz, veya ne kadar olursa. İleri diyin, eğer ne yaptığınızı bilmiyorsanız Önyükleyici seçimi kısmında bir şeye dokunmadan ileri diyerek kurulumu başlatın.

Pardus'u Ayarlamak

Kurulum bittikten sonra Pardus'ta bazı ayarlar yapmamız gerekecek. Bilgisayarı açın, komuta satırından oluşan bir pencere ile karşılaşacaksınız. Sistem ayarları yapacağımız için kullanıcı adınızı kullanarak girmeyin. Kullanıcı adına root, şifreye de yönetici şifrenizi girin.

Şimdi interneti ayarlayacağız, network create yazın. Sorusu geldiğinde IP numarasını kendiniz girmeyi seçin, (Enter IP adress manually). Benim girdiğim IP'ler:
Adress: 192.168.1.200
Mast: 255.255.255.0
Gateway: 192.168.1.1 (modem)
DNS olarak Google DNS seçtim(8.8.8.8) :D
Eğer IP'lerin otomatik olarak alınmasını(DHCP) seçerseniz pek de sorun olmayabilir, zira çoğu dağıtım IP'yi alırken bilgisayarın parmak izi olan MAC adresine göre alıyor, yani her seferinde aynı oluyor. Ama işinizi sağlama almanız ve benim yaptığım gibi girmeniz faydanıza.
Sonunda bir profil ismi girin, internet1 gibi. Aşağıdaki komutla interneti çalıştırın:
network up internet1
ve bağlantıyı kontrol edin...
ping -c 3 www.google.com

Source Dedicated Server kurulumu

Kısaca SRCDS, bu program sayesinde CS:S, HL2:DM, TF2 gibi oyunlara sunucu kurabilirsiniz. Ben CS:S sunucusu kuracağım. wget isimli bir pakete ihtiyacımız olacak, onu kurun.
pisi install wget
Yönetici olark oturum açmıştık, daha güvenli olması için normal kullanıcı olarak oturum açın:
su kullanıcıadı
srcds için bir klasör oluşturup o dizine gidin,
mkdir /home/kullanıcıadı/srcds
cd /home/kullanıcıadı/srcds
Şimdi srcds yükleyicisini indirelim, adı hldsupdatetool(half-life dedicated server update tool). Bununla eski CS 1.6 sunucusu da kurabilirsiniz.
wget http://www.steampowered.com/download/hldsupdatetool.bin
indirdiğimiz dosyayı çalıştırılabilir hale getirip çalıştıralım:
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
Uzun sözleşmeyi okuduktan sonra kabul edin(şaka şaka, direk kabul edin işte :P). Bulunduğumuz dizinde steam diye bir dosya oluşacak, onu çalıştırın ve Steam güncellensin.
./steam

Şimdi, geldik asıl kısma. Eğer benim gibi CS:S sunucusu kuracaksanız, yaklaşık 3GB dosya indireceksiniz demektir. İnternetiniz hızlı olsa da dosyalar yavaş inebiliyor ve bu işlem uzun sürebiliyor. TF2 sunucusu kurmak istiyorsanız bende "Counter-Strike Source" yazan kısma "tf", CS1.6 sunucusu kurmak istiyorsanız da "cstrike" yazınız. -retry parametresini koymayı unutmayınız, bu parametre hayat kurtarıyor. Eğer bağlantı koparsa 30sn de bir tekrar deniyor. 2 Kere onu girmeden indirmeyi denedim bütün zamanım boşa gitti, bağlantı bir koptu mu kaldığınız yerden devam edemiyorsunuz. Neyse, aşağıdaki komutu girin ve gidin uyuyun, ders çalışın, TV izleyin, sokağa çıkın, kız/erkek arkadaşınız varsa onunla buluşun(Zaten kız/erkek arkadaşınız varsa bu tür işlerle uğraşmayın hiç, bütün zamanınızı onunla geçirmenizi tavsiye ederim).
./steam -command update -game "Counter-Strike Source" -retry -dir .

Bütün dosyalar indikten sonra aslında çalışan bir sunucunuz var demektir!!! Sunucuyu çalıştırmak için aşağıdaki komutu girin:
Ama önce orangebox klasörüne gidin...
cd orangebox
ve işte beklenen an!
./srcds_run -console -game cstrike +map de_dust +maxplayers 16 -autoupdate

Bundan sonra yapmanız gereken modeminizi ayarlamak, bir sürü modem çeşiti olduğundan ve bunun nasıl yapılacağı hakkında bilgi bulmanız çok kolay olduğundan burada anlatmayacağım. Yapmanız gereken 27015 portunu açıp bilgisayarınızın yerel ağdaki IP'sine yönlendirmeniz(Mesela en başta kurarken ben 192.168.1.200 yazmıştım). Tabii isterseniz başka bir port açıp, oyunu çalıştırırken "-port ..." parametresini de ekleyebilirsiniz. Eğer bu sunucu işine niyetliyseniz aylık 2-3tl vererek statik IP almanızı savsiye ederim, aksi taktirde modem her kapandığında değişen IP'nizi sabit tutan bir servise(no-ip) üye olmanız gerekecek ve bu işler hakkında pek bir bilgim yok açıkçası... Modem ile olan işlerinizi hallettiniz kabul ediyorum ;)

Not: Aynı yerel ağ üzerindeki bir bilgisayarda sunucu gözükmüyorsa merak etmeyin, yerel ağ IP'sini kullanarak bağlansanız da dışarı bağlanan IP'niz ile evden bağlanamayabilirsiniz. Bir arkadaşınızdan kontrol etmesini rica etmeniz gerekecek.

Sunucu ayarları

Bundan sonra yapmak isteyeceğiniz şey sunucunuzu ayarlamak olacak... server.cfg dosyasını ayarlamak lazım. Eğer İngilizce bilmiyorsanız CS:S için her parametreyi Türkçe tek tek anlatan bir dosya yok. Uygun bir zamanım olduğunda bu dosya ayarlarını yapmanızı sağlayan Linux'ta çalışan Türkçe bir program yapmayı denerim ama ;) Eğer bu yazıyı okuyorsanız sıkınız dişinizi.
Server.cfg'yi linux komut satırında ayarlamanızı sağlayan bir Python scripti yazdım. cstrike klasörünüze gidin
cd cstrike
şimdi sever-cfg-olusturucusu dosyasini indirelim ve tardan cikaralim, ve calistiralim.
wget http://lys01.0fees.net/server-cfg-olusturucusu.py.tar.gz
tar -xvzf server-cfg-olusturucusu.py.tar.gz
python server-cfg-olusturucusu.py
Oradaki adımları takip edin, iyice okuyun. Her bilgiyi girmek zorunda değilsiniz, eğer girmemek istiyorsanız "gec" yazmanız yeterli olacaktir. İşiniz bittikten sonra orangebox klasörüne geri dönünüz.
cd ..

Admin mod kurulumu

Sunucumuza Mani Admin plugin kuracağız. Adı üstünde bu bir plugin, yani eklenti ve Meta Mod üzerinde çalışıyor. Yapacağımız işler daha çok komutlarla olacak, hadi başlayalım:
mod klasörümüze gidelim: (bu oyundan oyuna değişir, ve eğer sunucuyu yine çalıştırmak isterseniz bir üst klasöre dönmeniz gerekecek, cd .. yazarak bir yukarı dönebilirsiniz. Nerede olduğunuzu görmek için de pwd yazın.)
cd /home/kullanıcıadı/srcds/orangebox/cstrike
http://www.sourcemm.net/ adresinden bulduğumuz Linux linki ile metamod'u indiriyoruz.
wget http://www.sourcemm.net/downloads/mmsource-1.8.3-linux.tar.gz/2
Hazır onu indirmişken, http://www.mani-admin-plugin.com/ adresinden bulduğumuz link ile de Mani Admin plugini indirelim :)
wget http://maniadminplugin.googlecode.com/files/mani_admin_plugin_v1_2v_orange.zip
Şimdi Meta Mod'u tar'dan çıkaralım...
tar -xvzf mmsource-1.8.3-linux.tar.gz
addons klasörü içine metamod.vdf diye bir dosya oluşturup gerekli ayarları girelim
mkdir addons
nano addons/metamod.vdf
ve aşağıdakileri yazalım:
"Plugin"
{
"file" "../cstrike/addons/metamod/bin/server"
}

Ctrl+O'ya basarak kaydettikten sonra Ctrl+X ile nano metin düzenleyicisinden çıkalım.
Sıra Mani'ye geldi, Mani'yi zip'ten çıkaralım. Meta Mod'un aksine Mani zip dosyası, komutu da farklı.
unzip mani_admin_plugin_v1_2v_orange.zip
Meta Mod'un Mani'yi açılışta çalıştırmasını sağlamamız lazım.
nano addons/metamod/mani_admin_plugin.vdf
aşağıdakileri yazdıktan sonra kaydedip kapatalım.
"Metamod Plugin"
{
"alias" "Mani Admin Plugin"
"file" "addons/mani_admin_plugin/bin/mani_admin_plugin_mm"
}


Admin eklemek

Admin eklemek için clients.txt diye bir dosya oluşturmamız lazım. * işaretlerinin arasına yazdıklarımı sizin değiştirmeniz gerekiyor.
SteamID: SteamID'nizi http://steamidfinder.com/ adresine Steam profilinizin linkini yazarak veya oyunda tek kişilik oyun açıp konsola "status" yazın, adınızın sağında STEAM:_0:0:123456 ya benzeyen şey sizin SteamID'niz.
nano /cfg/mani_admin_plugin/clients.txt
"clients.txt"
{
"version" "1"

"players"
{
"*OyundakiAdınız*"
{
"name" "*adınız*"
"steam" "*SteamID'niz*"
"flags"
{
"Admin" "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e"
"Admin" "f g i k l m o p q q2 q3 r s t v w x y z admin client"
"Admin" "grav pban spray"
"Immunity" "a b c d e f g h i j k l m n o p q r s t u v x y afk ping autojoin grav Immunity"
}
}
}
}


İşte bu kadar! Artık çalışan bir sunucunuz var, hem de Pardus!!! ;) Unutmayın SRCDS Linux'ta Windows'ta olduğundan çok daha hızlı çalışır, grafik arayüzü olmaması da performans açısından çok büyük bir artı. Özellikle bu yazıda anlatmak istediğim bir süperbilgisayara değil, el altındaki eski bir bilgisayara veya öylesine duran bir laptopa nasıl sunucu kurulacağı olduğu için bunlar önemli. İyi eğlenceler!

Not: Yazıyı yazdıktan sonra Özgür Bozkurt isminde birisinin hazırladığı çok güzel bir sunucu kurulumu videosu buldum, yalnız bu Windows için. Belki yardımcı olabilir, eğer admin modla veya portlarla falan sorun yaşıyorsanız izlemenizi tavsiye ederim.
http://blog.ozgurbozkurt.com/counter-strike-source-server-kurulumu-videolu-anlatimi.html

17 Ağustos 2010

Linux'ta Source Dedicated Server

Canım sıkıldı ve Laptopuma Counter-Strike: Source dedicated server kurayım dedim...
1.6Ghz çift çekirdekli Pentium işlemci ve 2GB ram, üzerine de 4GB Swap bölümlü Arch linux kurulu. Minimal Arch tabii, X kurmadım.

Dosyaları indirirken iki kere bir yerlerde takıldı ve devam etmedi, ikisinde de yeniden başlattım. Sonunda update ederken -retry parametresini girdim. Sunucu kurulumunu anlatan çoğu kaynakta bu parametreden bahsedilmiyor, ancak bence çok ama çok gerekli bir şey. Bağlantınız koparsa 30 saniyede bir yeniden deniyor. Kaldığımız yerden devam edemeyince, ve 3GB küsür dosya indirirken inanın bu komut hayat kurtarıyor.

Uzun bir süre sonra dosyalar indi, sunucuyu çalıştırdım. Tek başıma girdim, çifter çifter bot ekliyorum oyuna ama bir kasılma yok :D En son 9 bot + ben varken, de_dust2 haritasında bir el bombası atarken takılır gibi oldu. Dedim tamam daha fazla bota gerek yok. Sevindim tabii, 1.6Ghz işlemcili bir bilgisayarda o kadar kişi ile oynanabilmesi şaşırtıcı, hem de bunlar yapay zekalı BOT, yani gerçek insandan daha fazla meşgul ediyorlar işlemciyi.

Başka clientler ile oynamayı dememedim tabii, 1mbit upload hızı kaç kişiye yeter bilemeyeceğim. ADSL zamanında 256k ile pek de sorun olmadan oynayabiliyorduk, bu da demektir ki 4 kişi oyuna girse oynanabilir. Tabii denemeden konuşmamak lazım ;D

14 Ağustos 2010

Aşk, komünistlerin uydurmasıymış!

Genç kız: Anne aşk nasıl bir şey?

Annesi: Aşk mı? Şey... aşk şöyle bir şeydir kızım, hani mesela çok zengin ve yakışıklı bir adama rastlarsın, seni Venedik'e götürür, mehtapta gondolla gezersiniz, sonra San Marco meydanında güzel bir restoranda harika bir yemek yersiniz, nazik falan, ve arkasından en luks bir otelde sana şahane bir gece yaşatır. Sonra da, ne bileyim işte, sana güzel bir araba alır, bir daire alır, ya da deniz kıyısında sana bir villa satın alır, elmas gerdanlıklar, altın yüzükler hediye eder, mutluluktan uçarsın adeta, işte aşk böyle bir şeydir kızım.

Genç kız: Ama anne, peki o heyecanlar, güzel duygular, kalbin küt küt çarpması, ilk buluşma, ilk öpücük, birlikte bir şeyleri başarma, paylaşım... Bunlar yok mu?

Annesi: Ha onlar mı? Kızım onlar bedava hatun götürsünler diye komünistlerin uydurmaları, yok öyle bir şey!