Oyun nasıl yazılır, Game Programming
NasiLL.com sitesinden



Eveet geldik bir önemli nasılımıza daha,
Oyun yazmaya karar verdik.
Konu başlıkları |
[düzenle] İşe Nereden Başlamalıyız
Önce oyunu yazacağımız platforma karar vereceğiz. Buna game engine denir.
[düzenle] Game Engine ne yapar
Oyun motoru veya game engine size tasarladığınız oyunu gerçeğe dökme işi sağlar. Yani diyelim ki oyunumuz Osmanlı döneminde geçiyor. Etrafta hanlar olacak, hamamlar olacak, pazarlar olacak, kaleler olacak vs. Bunları nasıl tasarlayabileceğiniz ayrı bir nasılın konusu onu pas geçiyorum. Tasarladığınız bu modelleri bir ortamda birleştirmenizi, etrafta çeşitli animasyonlar oluşturmanızı, Sonra Kahramanınızı bu sahneye yeleştirip hareketlendirmenizi sağlar.
Bunları ve dahasını yapabilmeniz için arayüzleri,
script dilleri,
model ve animasyon tasarım araçları,
fizik kanun ve etkileri sunar ve kullandırır.
[düzenle] Game Engin altında Fizik Motoru, physics engine vardır
Fizik motoru, sahnedeki tüm fizik olaylarını sizin adınıza gerçekleştirerek sizi çok büyük bir iş yükünden kurtarır. Böylece siz sadece senaryoya ve ne yapacağınıza odaklanırsınız. Tabi bu iş öyle kolay ve basit değildir.
Mesela Fizik motoru iki nesne çarpıştığında ne olacağını tamamen kendisi halleder. Ama bunu nasıl yapacağını sizin tabiki daha önceden belirtmiş olmanız gerekiyor.
Nasıl yani? Yani bu nesnelerin ne kadar ağır olduğu, plastik, demir vs. değil mi? bağlı olduğu başka nesne var mı? kapının menteşesi vs gibi temel tanım diyeceğimiz parametreleri sizin tabiki ayarlamış olmanız gerekir. Bunları yaptıktan sonrası ise gayet kolay. Fizik motoru artık olması gereken çarpışma, açılma, sallanma, kapanma herşeyi yerine getirir.
Yani aslında fizik motoru, oyunumuzun en önemli olmazsa olmaz temel ihtiyacıdır.
Game Engine veya oyun motoru bu fizik motorunu arka planda bizim için yönterek ekranda scriptlerle, görsel tasarımlarla vs. bize oyun yapma ortamı sunar.
[düzenle] Seçmeniz için Oyun Motorlarının bir listesi şöyle
[düzenle] ÜCRETSİZ OYUN MOTORLARI
These engines are available for free use, but without the source code being available under an open source license. Many of these engines are commercial products which have a free edition available for them:
- Adventure Game Studio — Mostly used to develop third-person pre-rendered adventure games, this engine is one of the most popular for developing amateur adventure games.
- dim3 — Freeware 3D javascript engine for the Mac (although finished games are cross platform).
- DX Studio — A freeware 3D game engine with complete tools for 3D video game development. Upgrading to paid licenses would unlock extra features.
- Game Maker — A free game engine oriented towards beginners and people that do not want to learn how to program. A paid upgrade can unlock some 3D features.
- Unity — An open-ended 3D game/interactive software engine for web, Windows, and Mac OS X. Upgrading to paid licenses can additionally enable support for the iPhone, Android, Nintendo Wii, Playstation 3, and the Xbox 360.
- Unreal Engine — Considered one of the most popular game engines in the top market. The free edition, called UDK (a binary release of the engine), allows you to use the engine for commercial purposes under specific terms.[1]
- CryEngine 3 — CryEngine 3 is a new generation engine developed by Crytek to create the FPS game Crysis 2. The engine has been released recently, with a license model that is similar as offered by the UDK engine.
- Visual Pinball - A pinball game engine.
- World Builder — A classic Mac OS game engine.
- Wintermute Engine — A runtime and development tools for creating 2D and 2.5D point'n'click adventure games (Windows) . A "lite" Version is also available, but without the 3D Actor function (Windows, MAC, Linux)[2][3]
[düzenle] ÜCRETSİZ VE AÇIK KODLU MOTORLAR
| Name | Primary programming language | Bindings | Cross-platform | SDL | 2D oriented | Scripting | Notable games | License | Notes and references |
|---|---|---|---|---|---|---|---|---|---|
| Şablon:Rh | AllBinary Open Platform | Java | EVET | EVET | YOK | XML and XSL | ZeptoRacer 3D, ZeptoWars, ZeptoTowers, MiniSpaceWars, MiniSpaceWars w/Vector, ZeptoRacer, ObamaStimulus, Don't Lose Your Balls!, ZeptoTanks, Tank Massacre 3D, Marble Solitaire | AllBinary Open License | Supports 2D and 3D. Source is available at https://github.com/AllBinary/AllBinary-Platform | |
| Aleph One | C++ | EVET | EVET | HAYIR | Lua, Marathon markup language | Marathon | GPL | FPS engine | |
| Allegro library | C | Ada, C++, C#, D, Lisp, Lua, Mercury, Pascal, Perl, Python, Scheme | EVET | HAYIR | EVET | zlib | Graphics and audio | ||
| Ardor3D | Java | EVET | HAYIR | YOK | zlib | Fork of jMonkeyEngine 2.0 | |||
| Axiom Engine | C# | EVET | HAYIR | HAYIR | LGPL | [4][5] | |||
| Blender | C++ | EVET | HAYIR | HAYIR | Python | Yo Frankie!, ColorCube | GPL | 2D/3D game engine packaged in a 3D modeler for quick and intuitive use; fully integrated Bullet physics library | |
| Build engine | C | HAYIR | HAYIR | YOK | Duke Nukem 3D, Shadow Warrior, Blood | Custom | FPS engine, 2.5D (2D grid base geometry.) | ||
| BRGameEngine | C++ and Lua | to acess www.brgameengine.org | HAYIR | HAYIR | YOK | Trem de DOido | GPL2 | Adventure engine, 2.5D (3D Ogre, OpenGL, OpenAL, Bullet.) | |
| Cafu Engine | C++ | EVET | HAYIR | HAYIR | Lua | GPL or proprietary | Full game engine; graphics, audio, physics, scripting, networking, and map editor[6] | ||
| ClanLib | C++ | EVET | EVET | EVET | Clanlib | Self-described "toolkit", provides most game engine functionality and extensive GUI programming | |||
| Cocos2d | Python, Objective-C | EVET | HAYIR | EVET | MIT | Ported to Linux, Mac OS X, iOS, Windows; iOS port is written in Objective-C and integrated with Box2D and Chipmunk physics engines | |||
| Construct Classic | Event Based | HAYIR | HAYIR | EVET | Minitroid | GPL/BSD | |||
| Corona SDK | Lua | EVET | HAYIR | EVET | Bubble Ball | ||||
| Crystal Space | C++ | Java, Perl, Python | EVET | EVET | HAYIR | LGPL | Graphics, audio, physics | ||
| Cube | C++ | EVET | EVET | HAYIR | zlib | Previous gen, 2d grid based system, optimised for outdoor rather than indoor maps | |||
| Cube 2 | C++ | EVET | EVET | HAYIR | Cubescript | zlib | Efficient 6 directional height map based geometry (versus traditional Polygon soup model), hence the name Cube, FPS engine | ||
| Delta3d | C++ | EVET | HAYIR | YOK | Python | LGPL | Integrates various modular libraries in plain view, rather than burying the modules behind its own API as most engines do | ||
| DGD | LPC | EVET | HAYIR | EVET | LPC | LPMud server | YOK | ||
| DXFramework | C++ | HAYIR | HAYIR | YOK | Python | BSD | DirectX renderer, integrated into visual studio | ||
| Env3D | Java | EVET | HAYIR | HAYIR | GPL | 3D game engine that creates a simple interface for dynamically adding EnvObjects. Built on jMonkeyEngine 2.0. Intended for educational use in teaching computer science. | |||
| Exult | C++ | EVET | EVET | EVET | GPL | Free software reimplementation of the Ultima VII game engine | |||
| Flexible Isometric Free Engine | C++ | EVET | EVET | EVET | Python | Unknown Horizons | LGPL | Can make almost any 2D game, but more optimizal for RTS or RPG | |
| Flixel | ActionScript | EVET | HAYIR | EVET | Various games by Gregory Weir | MIT | Full boiler-plate code for flash games | ||
| GameKit (OgreKit) | C++ | EVET | HAYIR | HAYIR | Lua | MIT/zlib/BSD | Has Blender integration similar to BGE; fully integrated Bullet physics library | ||
| Genesis3D | C | HAYIR | HAYIR | YOK | Renderer, one of the earliest to use skeletal animation | ||||
| id Tech 1 | C | EVET | HAYIR | HAYIR | ACS | Doom, Doom II, HeXen, Heretic, Strife | GPL | 2D based geometry, sprite and particles, uses clever methods to emulate 3D graphics | |
| id Tech 2 | C | EVET | HAYIR | HAYIR | QuakeC | Quake II | GPL | Full game engine, better known as the Quake II engine. | |
| id Tech 3 | C | Game Data {PAK OR PK3 } | EVET | HAYIR | HAYIR | QuakeC | Quake III Arena | GPL | Full game engine, better known as the Quake III engine. |
| id Tech 4 | C++ | Game Data {PAK OR PK3 } | EVET | HAYIR | HAYIR | Quake 4 | GPL | Full game engine, better known for Doom 3 and Quake 4. | |
| id Tech 5 | C++ | EVET | HAYIR | HAYIR | RAGE | New full game engine. | |||
| Indielib | C++ | HAYIR | EVET | EVET | LGPL | 2d game engine in C++ for game development with tutorials, api reference, entity system, sprite animations, collision detection, 3d hardware acceleration, bitmap and TTF fonts, 2d parallax scroll, 3d objects, 2d cameras, viewports, timers, alpha blending, shaders and image filters. | |||
| ioquake3 | C | EVET | EVET | HAYIR | Urban Terror | GPL | |||
| Jake2 | Java | EVET | HAYIR | HAYIR | GPL | ||||
| JGame | Java, Actionscript 3 | EVET | HAYIR | EVET | BSD | Also runs on J2ME and Android | |||
| jMonkeyEngine | Java | EVET | HAYIR | HAYIR | BSD | ||||
| Jogre | Java | EVET | HAYIR | EVET | GPL | ||||
| Lavgine | C++ | HAYIR | HAYIR | EVET | Lua Script | Free for Non-Commercial, Commercial | Full 3D hardware acceleration, Customized by scripts and config files, 3D Audio based on OpenAL, Multi-Threaded Engine, Fast 2D animated physic objects, Easy automated network module, DLL dependency free*, No need to install,Reloads textures and shaders when file changed and many, many, many more... | ||
| Lightweight Java Game Library | Java | EVET | HAYIR | EVET | Minecraft | BSD | |||
| LÖVE2d | C++ | EVET | EVET | EVET | Lua | Zlib/libpng | |||
| Nebula Device | C++ | Java, Python | EVET | HAYIR | YOK | Lua, Tcl/Tk | YOK | ||
| OpenSceneGraph | C++ | EVET | HAYIR | HAYIR | OpenSceneGraph Public License | ||||
| OpenSimulator | C# | EVET | HAYIR | HAYIR | LSL | BSD | |||
| ORX | C/C++ | EVET | EVET | EVET | zlib | 3D accelerated, supports Windows, Linux, Mac OS X, iPhone, iPad and Android | |||
| Panda3D | C++ | Python | EVET | HAYIR | HAYIR | Python | Toontown Online, Pirates of the Caribbean Online | BSD | |
| PixelLight | C++ | EVET | HAYIR | HAYIR | Lua | LGPL | [1] | ||
| PLIB | C++ | EVET | EVET | HAYIR | LGPL | ||||
| Quake engine | C | EVET | HAYIR | HAYIR | QuakeC | Quake | GPL | Full game engine, first true 3D id tech engine. | |
| Retribution Engine | C++ | HAYIR | HAYIR | YOK | GPL | ||||
| Sge2d | C | EVET | EVET | EVET | MIT | ||||
| Sphere | C++ | EVET | HAYIR | EVET | JavaScript | YOK | |||
| Spring | C++ | C, C++, Java/JVM, Lua, Python | EVET | EVET | HAYIR | Lua | Balanced Annihilation, Zero-K | GPL | RTS, simulated events, OpenGL |
| Storymoto | JavaScript | JavaScript | EVET | HAYIR | HAYIR | JavaScript | Adslife | MIT | This is an engine that runs on any Browser JavaScript engine, client side. Full sources on GitHub |
| Stratagus | C | EVET | EVET | EVET | Lua | GPL | |||
| Name | Primary programming language | Bindings | Cross-platform | SDL | 2D oriented | Scripting | Notable games | License | Notes and references |
Afrika Kampanyası


