Sosyal ağ oyunu tasarımı ve geliştirilmesi
Social network game design and development
Yazar: ALPER YILDIRIM
Danışman: YRD. DOÇ. DR. OĞUZ KARAN
Haliç Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2012
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Facebook = Facebook ; Oyunlar = Games ; Sosyal ağlar = Social networks

Özet:
Bu projede facebook üzerinde çalışan ve en son teknolojileri kullanan sosyal bir oyun uygulaması geliştirilmiştir. Oyun içinde alışılageldik 2 boyut yerine 3 boyut kullanılmıştır.Oyuncu oyun içerisindeki marketten çeşitli evler ya da tarlalar satın alarak kendi şehrini kurmaya çalışacaktır. Boş tarlalara ürün ekerek ya da evlerini kiraya vererek para ve deneyim kazanabilir. Ancak oyuncu, tarlalarıyla düzenli olarak ilgilenmezse ektiği ürünler çürüyebilir ve para ya da deneyim kazanamaz. Bu durumda sadece yeni ürünler ekmek üzere tarlasını temizleyebilir. Oyuncunun amacı, daha fazla para kazanarak şehrini güzelleştirmek ve büyütmektir. Kazandığı paralarla daha lüks evler almaya çalışır. Bu durumda daha fazla kira toplayabilir. Aynı şekilde tarlaları içinde daha fazla para kazandırabilecek ürünler ekebilir. Daha yeni evler dikebilmek için eski evlerinin ya da tarlalarının yerini değiştirebilir veya tamamen haritadan silebilir. Bir objenin yerini değiştirdiğinde kazanacağı para ya da deneyimde bir değişiklik olmaz. Bu para ve deneyimler zamana bağlı olarak kazanılır. Oyuncu bir eve kira alabilmek için etkileşimde bulunduğunda süre dolmamışsa kirasını alamaz. Benzer şekilde tarlasını hasat edemez.Oyuncu, tarlasına ürün ekmek, tarlasını hasat etmek, çürümüş tarlasını temizlemek, bir evi kiraya vermek, marketten bina ya da tarla satın almak istediğinde birer aksiyon oluşur. Bu aksiyonlar sonrasında yapılmak istenen eylemin mantıklı olup olmadığı kontrol edilir. Eğer mantıklı ise client serverı protokoller yardımıyla bilgilendirilir. Bu protokolleri server açarak gelen bilgilerin doğruluğunu tekrar kontrol eder. Eğer bilgiler doğru ise veri tabanında gerekli değişiklikleri yapar ve Flash'a geri bildirim gönderir.Bilgileri hem server(.net) hem de client(Flash) tarafının kontrol etmesinin amacı kötü niyetli kişilerin oyuna müdahale etmesini engellemektir. Eğer server gelen bilgileri kontrol etmeden veri tabanında gerekli değişiklikleri yaparsa kullanıcı client ile server arasında gidip gelen protokolleri dinleyebilir ve bu protokolleri simule edebilir. Bunun sonucunda paranın güncellenmesini serverdan talep ederse server bu değişikliği mantıklı olmasa bile veri tabanında yapabilir. Bu gibi haksızlıkları önlemek için server'ın bilgileri kontrol etmesi gerekir.Flash tarafının bilgileri kontrol ederek yollamasının amacı ise server tarafından olumsuz dönebilecek cevapları server'a göndermeden kendi içinde tespit ederek ser-ver yükünü azaltmaya çalışmaktır. Milyonlarca insanın oynadığı bir oyunda her oyuncunun her hareketini server'ın kontrol etmeye çalışması server için hamallıktır. Bu yükü hafifletmek amacıyla client tarafında da gerekli kontrollerin yapılması gere-kir.Anahtar Kelimeler: Facebook, sosyal oyun, sosyal ağ, flash

Abstract:
In this project, a social game application, which is using recent technologies, runs on the facebook, is developed. In the game, 3D is used instead of standard 2D.Player tries to establish his/her own city by buying varied houses or fields from the market in the game. Player can earn many and bonus by planting crop or renting his/her houses. But, if player doesn?t take care his/her cultivated lands regularly, the crops can molder and player cannot earn money or bonus. In this situation player can only purified lands for planting new crops. The aim of the player is to beautify and to grow his/her city by earning more money. With money player tries to by luxury houses so that player can collect more many from renting. Same as the houses, player can plant a crop which makes his/her earn more money. To built new houses player can change the places of the houses fields or can totally delete from the map. To change the places of the object don?t create any changes in the level of many or bo-nus. This money and bonus are earned by depending on time. If the time of the rent-ed houses has not filled yet, player cannot earn money when he/she tries to interact with the rented houses. Same as the houses crops cannot be cultivated before the time is up.When the player wants to plant a crop, cultivate the crops, purify the fields, rent the houses by building or fields from market there a merge an action. After these actions the rationality of the action is controlled if the action is rational server can be in-formed by the help of protocols. Server checks the truth of the knowledge again by opening these protocols. If the knowledge is correct the sufficient changes are mad-den in the database and are sent feedback to the flash.The aim of the control of the knowledge by both server (aspx) and client (flash) is to prevent intervention to the game by people in bad faith. If the server makes the suffi-cient changes in the database without checking the knowledge, user can listen the protocols. Which are in between server and client and user demands to update the money, server make this changes in the database even the knowledge is not rational. To prevent this cheating, server has to check to knowledge.Flash sends the knowledge by checking them. The aim of the flash for doing this checking is to not fire out server?s effort needlessly. It is meaningless for server to check every single action of the every player in any games which are played by mil-lions of people. To mitigate the burden of the server client has to make sufficient controls.Keywords: Facebook, social game, social network, flash