Welcome to tridi game development

In this blog, i'll try to explain how to create game, tips and tricks to develop game, especially using my 3D engine, tridi - in English and Indonesia.

Tampilkan postingan dengan label game. Tampilkan semua postingan
Tampilkan postingan dengan label game. Tampilkan semua postingan

Introduction to Tridi

Seriously, i dont know how to number (version) my engine. In fact, i event dont have "engine only" download (i will do it later). So you have to download Dreamworld latest binary from http://sourceforge.net/projects/tridi.

So what is Tridi ?

Tridi is a combination of 3D software rendering engine, audio/music engine, scripting engine (python), database engine (SQlite) that can be used to develop game. I create tridi using Borland Delphi 7. If you want to have the source-code you can contant me (ryannining@yahoo.com)

Tridi rendering feature:

  • Semi deffered, monochromatic light. Texture and light renderer separately, so i can modify texture stage easily (you want the source heh :) ).
  • Texture and light blended at the postprocessing stage, included in this stage is Cartoon postprocessing, Depth of Field, Blur that can be turned on and Off.
  • Light source can have shadow, shadow map or vertex shadow. So developer send vertexs and faces, buffered by tridi, and processed at once with shadow, and all effect.
  • Semi free anti-aliasing. If your game runs more than 30fps, you can get Antialiasing for free.

Tridi audio feature:

  • Play wav, mp3, Sony PSF (Playstation 1 sound music), midi
  • Multi channel, channel -1 for PSF music, 0-15 for audio

Tridi database feature:

  • SQL language support
  • Only 2 calls, db_open and db_exec, db_exec can return data (list) first row is header (column name)

Tridi scripting engine:

  • Minimal Python 2.3, only include packages: os, ntpath, traceback
  • If you want more packages, you just copy package you need in folder lib

Download latest tridi : Dreamworld RPG Latest Binary

Indonesia

Bener lom aku  gak paham cara menomori versi program. Dan sementara gak ada download versi engine saja, terpaksa anda harus download game RPG versi terbaru di situs My Tridi Files.

Apa sih Tridi itu ?

Tridi adalah kommpilasi engine grafis 3D software rendering, audio, database dan scripting. Fitur2nya adalah:

Fitur software render:

  • Semi deffered, lampu hanya warna putih. Tekstru dan lampu dirender terpisah, sehingga gampang untuk merubah renderan tekstur (mungkin anda ingin source-codenya, hubingi saya).
  • Tekstur dan lampu digabung pas proses akhir, dan anda bisa memakai efek kartun, depth of field (fokus), blur.
  • Lampu bisa memiliki bayangan, baik shadow map atau vertex shadow.
  • Kalu fps game anda lebih dari 30 maka nikmatilah antialiasing secara gratis.

Fitur audio:

  • Memainkan wav, mp3, Sony PSF (Playstation 1 sound music), midi
  • Multi channel, channel -1 untuk PSF music, 0-15 untuk audio

Fitur database:

  • SQL 
  • Hanya 2 fungsi, db_open and db_exec, db_exec bisa menghasilkan data berupa array. Baris pertama adalah nama-nama kolom

Scripting engine:

  • Minimal Python 2.3, hanya modul khusus yg dipake: os, ntpath, traceback
  • Kalau ingin modul lainnya, kopikan ke folder lib

Bricks game, Introduction

Lets starting develop using tridi engine.

This time, i will explain how to make simple Bricks game. First, bricks game is an old game that the player must control a ball by bouncing it using player pad. The ball then hit groups of boxs and make them drop or destroyed. So what we need is:

  1. Pad model
  2. Ball Model
  3. Bricks model

To model those objects, we use blender. We dont need to add animation to those objects. Just static box/ball object.

In this game we will learn:

  1. Simple object movement and rendering
  2. Simple collision
  3. Simple gameplay (just control pad)
  4. Simple 2D rendering for texts
  5. Simple lights control
  6. Simple sound, music

What you need is just download the latest Dreamworld RPG demo, and then we will modify it by removing all objects, codes. In fact, jou just need download once, extract and copy the dlls,plugins,fonts folder to other folder.

Indonesia:

Ayo mulai membuat game dengan tridi.

Kali ini, kami akan menjelaskan bagaimana caranya membuat game bricks yg sederhana. Pertama-tama, game bricks adalah game jaman dulu, dimana player harus mengontrol papan yg digunakan untuk memantulkan bola keatas mengenai tumpukan bata. Karenanya yg dibutuhkan adalah model:

  1. Papan model
  2. Bola Model
  3. Bata model

Untuk membuatnya, kami memakai blender. Dan untuk game ini tidak perlu membuat objek dengan animasi, cukup kotak dan bola saja.

Di game ini kita akan mempelajari:

  1. Animasi dan penggambaran sederhana
  2. Deteksi tubrukan
  3. Gameplay sederhana
  4. Rendering teks
  5. Pengaturan cahaya lampu
  6. Penggunaan suara dan musik

Yang anda butuhkan adalah download game Dreamworld terbaru dan mengambil hanya folder dlls,plugins,fonts-nya saja dan kopikan ke folder lain dimana game akan dibuat.

Game Database

Do we really need database in game ?

Of course we do. Although maybe we not using a database engine such MySQL, Access, we still use "database" in our game. Database is needed to hold data that can easily modified such as save game, status, items in game, characters.

In RPG game, database is used extensively. RPG game itself is like a database program. We can have stats, we can interact with NPC that can pop some dialogs. We can buy or sell items, use items, etc.

The question is, do we need Sql database on our game ?

The answer is depends on our needs. But using Sql database has advantages and disadvantages.

Advantages:

  1. We can query data easily using SQL
  2. We can edit data using external available data manager (such Microsoft Access, Navical Mysql)
  3. Well, we dont create a new engine, so can be integrated easily, and (i hope) no bug in database engine

Disadvantages:

  1. Slow
  2. Addition file (engine) or maybe server

If we create our own database engine, well maybe:

  1. Fast, we only make something we need.
  2. Small file (maybe)
  3. No file addition (engine)

But:

  1. We must deal with buggy engine.
  2. We must make data manager too to edit database.
  3. We can't use Sql query to easily filter data or join some table/data

In my game, i use Sqlite database engine. Its small footprint (200kb) and we can use Sql Query to get data easily. But in my game, i cant save BLOB type data yet. Because in my game i create a bridge between Python and Sqlite using Delphi, so - some feature are not included yet.

To edit data, i use FireFox Sqlite plugin at first. But in the end, i make a specific data editor for my game, so i can edit things easily.

Indonesia:

Apakah kita membutuhkan database di game ?

Tentu kita membutuhkannya. Meskipun mungkin kita tidak menggunakan database seperti Mysql, Ms Access, kita tetap membutuhkan "database" di game. Database digunakan untuk menyimpan data yang bersifat permanen ataupun status yg harus disimpan di file.

Di game RPG, database digunakan sangat intensif. Karena game RPG ini sendiri seperti sebuah program database, bayangkan item yg bisa anda gunakan, jual atau beli, karakter yang bisa anda ajak komunikasi, dan lain-lain.

Pertanyaannya: apakah kita membutuhkan database SQL di game ?

Jawabannya tentu tergantung kebutuhan kita. Memakai SQL database memiliki keuntungan dan rugi sebagai berikut:

Kelebihan:

  1. Bisa mengambil data dengan query filter
  2. Mengedit data menggunakan tool yg sudah ada
  3. Engine yg kita pakai setidaknya sudah teruji dan bebas bug

Kekurangan:

  1. Lambat
  2. File tambahan yg harus disertakan

Jika kita membuat sendiri engine databasenya keuntungannya:

  1. Cepat, karena kita pasti membuat sesuai kebutuhan saja
  2. Ukuran file datanya kecil (mungkin)
  3. Kecil ukurannya, tidak menambahkan file lagi diluar

Tapi:

  1. Bagaimana kalau engine kita ada bugnya ?
  2. Harus membuat data editor sendiri
  3. Tidak bisa menggunakan SQL query untuk filter

Di game yg saya buat, aku menggunakan Sqlite, ukuran engine cukup kecil, 200kb. Fiturnya lengkap, meskipun beberapa fitur belum bisa saya manfaatkan.

Untuk mengeditnya saya menggunakan Firefox Sqlite Plugin. Namun pada akhirnya saya membuat sendiri editor yg khusus untuk game yang saya buat.

My first RPG game


A few month ago, i participate in a RPG game development contest at www.gamedevid.com, of course i'm not the winner. But from that contest, i have learn may things from 3D modelling, RPG game programming, etc.

The game itself created using my 3D engine, Tridi. I use delphi and python. Delphi for 3D engine (software rendering), and python for RPG gameplay. For database, i use Sqlite.

The game itself is weird, short, not good story, not great animation, Low resolution. Because as a technical programmer i must do things that i'm not good such as creating story, character design, etc. So i do technical stuff more than artist stuff, and i dont test the game thoroughly.

Enough chit-chat, I, Ryan Widi Saputra will write my knowledge about game programming in this blog.

Download my RPG game: http://sourceforge.net/projects/tridi

I Hope you enjoy it.

Indonesia: Game RPG pertamaku

Beberapa waktu yang lalu, (kurang dari 2 bulan) saya mengikuti sebuah lomba pembuatan game RPG di forum www.gamedevid.com, hehe tentu tidak juara. Tapi dari situ aku belajar banyak tentang modeling, animasi karakter menggunakan blender.

Gamenya sendiri dibuat memakai engine 3D yang sebelumya aku buat, Tridi. Ada 2 bahasa program yang digunakan, Delphi untuk engine grafis 3Dnya dan python untuk engine game RPGnya.

Database yang digunakan adalah SQLITE,... gamenya sendiri bisa dibilang sangat aneh, pendek, tanpa cerita yang jelas. Maklumlah aku orang teknik, sedangkan game itu aku buat seorang diri mulai dari modeling, artist, story, programming. Jadinya prosenstase yg aku kerjakan lebih besar ke arah technical.

Cukup basa-basinya. Di blog ini akan saya uraikan 1 persatu tips-tips programming untuk membuat game.