Dalam Teknologi Informasi dan Komunikasi khususnya teknologi internet, sering dibicarakan mengenai istilah teknologi seperti GPRS, EDGE , 3G atau UMTS, 3.5G atau HSDPA dan LTE atau 4G. Lalu apasih pengertian istilah istilah diatas???
Selasa, 28 September 2010
Jumat, 02 Juli 2010
Perbandingan Game Engine
Pengertian Game Engine
Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan. Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.
Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan. Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.
Sabtu, 05 Juni 2010
Contoh Aplikasi Ogre 3D
#include "ExampleApplication.h"
class BelajarOgre : public ExampleApplication {
public:
BelajarOgre(){
}
~BelajarOgre(){
}
protected:
void createScene(void){
Entity *ent1;
Entity *ent2;
mSceneMgr->setShadowTechnique(SHADOWTYPE_TEXTURE_MODULATIVE);
mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox");
mSceneMgr->setAmbientLight(ColourValue(0.2, 0.2, 0.2));
SceneNode* headNode = mSceneMgr->getRootSceneNode()-> createChildSceneNode();
ent1 = mSceneMgr->createEntity("Ufo","ufo.mesh");
ent2 = mSceneMgr->createEntity("Ufo2","ufo.mesh");
ent1->setCastShadows(true);
ent2->setCastShadows(true);
Plane plane(Vector3::UNIT_Y, 0);
MeshManager::getSingleton().createPlane("ground",
ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,
1500,1500,20,20,true,1,3,5,Vector3::UNIT_Z);
Entity *ent12 = mSceneMgr->createEntity("GroundEntity", "ground");
mSceneMgr->getRootSceneNode()->createChildSceneNode()-> attachObject(ent12);
ent12->setMaterialName("Examples/Rockwall");
ent12->setCastShadows(false);
Light *light;
light = mSceneMgr->createLight("Light1");
light->setType(Light::LT_POINT);
light->setPosition(Vector3(0, 450, 450));
light->setDiffuseColour(1.0, 0.0, 0.0);
light->setSpecularColour(1.0, 0.0, 0.0);
light = mSceneMgr->createLight("Light2");
light->setType(Light::LT_SPOTLIGHT);
light->setDiffuseColour(ColourValue(.25, .25, 0));
light->setSpecularColour(ColourValue(.25, .25, 0));
light->setDirection(Vector3( 0, -1, 1 ));
SceneNode *node1 = mSceneMgr->getRootSceneNode()-> createChildSceneNode("UfoNode",Vector3(0,50,300));
SceneNode *node2 = mSceneMgr->getRootSceneNode()-> createChildSceneNode("UfoNode2", Vector3(200,250,200))
node1->attachObject(ent1);
node2->attachObject(ent2);
mCamera->setPosition(200,250,730);
mCamera->lookAt(-100,75,0);
}
};
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif
{
//bikin objek aplikasi
BelajarOgre app;
try {
app.go();
} catch (Exception e) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBoxA(NULL,e.what(),"Terjadi Error!",MB_OK | MB_ICONERROR |MB_TASKMODAL);
#else
fprintf(stderr,"Terjadi Error = %s\n",e.what());
#endif
}
return 0;
}
Penjelasan Source Code
Aplikasi yang dibuat merupakan aplikasi yang menampilkan objek ufo.mesh kedalam suatu layout background bergambar planet. Pada ufo itu terjadi pencahayaan hingga memiliki bayangan. Objek ufo tersebut ada dua, dimana peletakan koordinat ufo tersebut berbeda sehingga berbeda posisi. Posisi cahaya yang datang terletak diatas kedua ufo tersebut. Sehingga menimbulkan bayangan. Dan karena letak ufo itu berbeda jarak dengan cahaya yang datang, maka bayangan yang dihasilkanpun berbeda.
Berikut penjelasan source code tersebut diatas :
#include "ExampleApplication.h"
class BelajarOgre : public ExampleApplication {
public:
BelajarOgre(){
}
~BelajarOgre(){
}
Pertama kita mendeklarasikan header file. Header file tersebut adalah #include "ExampleApplication.h". Selanjutnya dideklarasikan nama class yang dibuat. Yaitu Belajar Ogre. Pada class tersebut terdapat method dari class BelajarOgre tersebut.
Untuk memulai penggambaran layar maka kita masuk ke method createScene. Pada createScene ini pertama dilakukan penginisialisasian variabel yang digunakan :
protected:
void createScene(void){
Entity *ent1;
Entity *ent2;
Dilanjutkan dengan kkode untuk memberi bayangan. Tipe bayangan yang digunakan adalah SHADOWTYPE_TEXTURE_MODULATIVE. Kemudian dilakukan pengesetan shadow tersebut ke mSceneMgr. Pada bayangan ini diberi nilai AmbientLight dengan nilai warna untuk RGB (0.2, 0.2, 0.2).
mSceneMgr-> setShadowTechnique(SHADOWTYPE_TEXTURE_MODULATIVE);
mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox");
mSceneMgr->setAmbientLight(ColourValue(0.2, 0.2, 0.2));
Selanjutnya dalah pendeklarasian untuk menambah objek. Untuk ent1 adalah untuk ufo.mesh yang pertama dan ent2 adalah untuk objek ufo.mesh yang kedua. Dan dilanjutkan dengan meng-set shadow pada kedua obkjek tersebut.
SceneNode* headNode = mSceneMgr->getRootSceneNode()-> createChildSceneNode();
ent1 = mSceneMgr->createEntity("Ufo","ufo.mesh");
ent2 = mSceneMgr->createEntity("Ufo2","ufo.mesh");
ent1->setCastShadows(true);
ent2->setCastShadows(true);
Selanjutnya adalah untuk memberi suatu latar bidang bagi objek. Latar tersebut dengan lebar 1500 dan panjang 1500. Dilanjutkan dengan membubuhkan latar tersebut ke layar.
Plane plane(Vector3::UNIT_Y, 0);
MeshManager::getSingleton().createPlane("ground",
ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,
1500,1500,20,20,true,1,3,5,Vector3::UNIT_Z);
Entity *ent12 = mSceneMgr->createEntity("GroundEntity", "ground");
mSceneMgr->getRootSceneNode()->createChildSceneNode()-> attachObject(ent12);
ent12->setMaterialName("Examples/Rockwall");
ent12->setCastShadows(false);
Dilanjutkan dengan pencahayaan. Pada pencahayaan ini diletakan pada posisi vektor 450 untuk Y dan 450 untuk Z. Dengan tipe cahaya yang digunakan adalah LT_POINT dan LT_SPOTLIGHT. Jadi pencahayaan dari dua sumber cahaya dengan tipe yang berbeda.
Light *light;
light = mSceneMgr->createLight("Light1");
light->setType(Light::LT_POINT);
light->setPosition(Vector3(0, 450, 450));
light->setDiffuseColour(1.0, 0.0, 0.0);
light->setSpecularColour(1.0, 0.0, 0.0);
light = mSceneMgr->createLight("Light2");
light->setType(Light::LT_SPOTLIGHT);
light->setDiffuseColour(ColourValue(.25, .25, 0));
light->setSpecularColour(ColourValue(.25, .25, 0));
light->setDirection(Vector3( 0, -1, 1 ));
Selanjutnya untuk penempatan objek digunakan variabel node1 dan node2. Yaitu diletakan berdasarkan nilai vektor.
SceneNode *node1 = mSceneMgr->getRootSceneNode()-> createChildSceneNode("UfoNode",Vector3(0,50,300));
SceneNode *node2 = mSceneMgr->getRootSceneNode()-> createChildSceneNode("UfoNode2", Vector3(200,250,200));
node1->attachObject(ent1);
node2->attachObject(ent2);
Pada aplikasi ini juga diletakan kamera. Kamera tersebut didefinisikan sebagai variable mCamera.
mCamera->setPosition(200,250,730);
mCamera->lookAt(-100,75,0);
}
};
Seleksi kondisi berikut adalah merpakan seleksi untuk dapat atau tidaknya aplikasi tersebut di jalankan. Jika terjadi kesalahan maka akan tampil suatu message box dengan pesan kesalahan.
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif{
BelajarOgre app;
try {
app.go();
} catch (Exception e) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBoxA(NULL,e.what(),"Terjadi Error!",MB_OK | MB_ICONERROR |MB_TASKMODAL);
#else
fprintf(stderr,"Terjadi Error = %s\n",e.what());
#endif
}
return 0;
}
Setelah selesai lakukan proses Build dengan memilih menubar Build > Buid Solution. Jika sukses kemudian Run. Maka akan tampil windows sebagai berikut :
Tekan tombol OK maka akan tampil aplikasi yang telah kita buat tersebut.
Bada Operating System
Tak mau kalah dalam meramaikan dunia aplikasi mobile, Samsung akhir tahun 2009 lalu telah meluncurkan sistem operasi BADA untuk ponsel cerdasnya. Bada yang berarti lautan dalam bahasa korea ini diluncurkan sebagai open platform dan tentunya akan menjadi pesaing bagi open sistem operasi mobile lainnya seperti Symbian, Android, dan LiMo.
Baru baru ini, Samsung bahkan telah merilis BADA SDK 2 yang tentunya menjadi kabar yang menggembirakan bagi para pengembang. Bada SDK 2 tersebut telah dilengkapi dengan IDE (Integrated Development Environment), Simulator, UI builder, serta sample aplikasi beserta tutorialnya. Framework SDK terbaru ini juga telah mendukung TouchWiz terbaru, Adobe Flash, sensor gerak, getaranhingga deteksi wajah.
Ponsel cerdas pertama sistem operasi Bada, Samsung Wave S8500 dikabarkan akan hadir kepasaran pada akhir mei 2010 dimana dikabarkan telah mampu merekan video 720p.
Kamis, 20 Mei 2010
The Art of Art Assets - Building a Simple Bridge : Bagian 1a
Tutorial ini merupakan pengenalan paling dasar pembuatan seni game. Objek arsitektural yang dipilih dipercaya akan membantu pengembang game pemula untuk mengetahui typr coinstraint yang terdapat dalam pemodelan game. Akan dibentuk suatu jembatan dengan menggunakan struktur perulangan. Pemodelan dalam tutorial banyak menampilkan teknik pemodelan meggunakan spline sederhana. Menggunakan aplikasi modeling 3D Studio Max yang telah menjadi standar dalam membentuk aset dalam seni game. Tutorial ini menggunakan banyak tools modeling dan menggunakan polygon counter yang tersedia pada 3D Studio Max.
Langganan:
Komentar (Atom)



