Old Projects (2008-2012)


Incorporating Affective State of the Player in Video Games: Stress-Based Game

please see Bachelor Thesis: Incorporating affective states of players in video games


 Smart Home Simulation

In this game, we are going to use User Interfaces, Information Delivery, Visualization, Animation and etc. which bring more transparency for the person of how he/she can control smart home and whaUDK_Gamet is going on in it. We want to make the “Behaviors” and “Activities” of the smart home transparent to the user by this game. In the 3d visualization which we are going to develop, we want to create a game which solves the mentioned problems by showing what is going on in a home, which devices were involved in each event, what have triggered the event, if the person wants to know. So, he/she will feel more comfort with living in the smart home.

Additionally, we must provide some ways for the player to define some rules for the smart home behavior or modify the rules that are governed the smart home.

Implemented using Unreal Development Kit (UDK)

Download: Video, Document


This slideshow requires JavaScript.

Face Generator Application

The problem of creating 3D Face from pictures of a face is always an interesting field. This field is currently used in Computer Game Development area to create a faFaceGence of game characters faster and easier and much like what we want. The FaceGen Software (http://www.facegen.com/) is a really good
example of such applications.

Implemented using DirectX9, MFC and Visual C++.

Download: DocumentCodeExecutable and Test Data.


This project was an introduction to game programming for me. I have searched for a game engine for this game. Because I need first a way to start creating games. I was familiar with game engines like Unreal, CryEngine and Scemitiar. I choose OGRE graphics engine that has many parties that can change it to a game engine. Because of no only it has great design also it is open-source and it can be changed in a manner that we want. During this project, I understand that a game cannot be created without previous designing. So, I start to learn UML and how to design using UML. Enterprise Architect is used to designing. Visual Studio is used to implementation. Finally, code has been reversed by Rational Rose and some modification has been done to a class diagram to create the diagram that is attached to this project.

After finalizing this phase of game creation, a script is
implemented in MaxScript that causes users be able to create their own games with their own rules.

This project mainly focuses on:

Using a good game engine to design and create the game to be aware of how to this work is done.


Implemented using OGRE Graphics Engine, OpenAL, CEGUI, VC++, Enterprise Architect, 3D Studio Max and Photoshop.


Download: Document , Class Diagram (CDM), Class Diagram(PDF) Code , Executable

 Required Package: OpenAL, OpenAL SDK

Level Creator for Cube Game Using MaxScript 

This script helps the user to create his level with his ideas and creativity. This script is implemented using MaxScript. The designer must know the rules of the Cube game. The Cube game just has a rule: In the environment there are two type of object; one is face that is static and not rotatable and the other is Plane which is rotatable.

Implemented using MaxScript.

Download: DocumentScript

3D Environment Creator

 The 3D Environment Creator Application is an application to simulate a real environment and the interaction that take place in the real environment in a 3D virtual environment. This application able the user to create desire environment through a XML file that initializes the environment. The
application will get the real environment updates through pipe.

 Implemented using C++ (Windows and Linux ver.), OGRE Graphics Engine.

 Download: Document, Media Files

Windows                Code, Executable

Linux                        Code, Executable


This whitepaper will discuss the dining philosopher’s problem and will present a solution for it. I have sent this to show my skill in writing whitepapers that are attractive. I have shown a problem and its solutions using drawing that is done by me.

 Implemented using DirectX9 and VC++.

 Download: Document (In Persian), Code, and Executable.



Introduction to Lighting and Materials

These are the slides that I have presented on “method of presenting scientific & technical topics” course.

 Download: Slide




This project contains two applications: client and server. This project is used to chat between two or more users. First server must be run and then the clients can be run and the users must get authorization from the server and register themselves on server. Then they can contact each other by knowing their friend’s user names. They will type in friend’s name and the message and click the send button to send
the message. The server gets the destination client’s name and the message then sends the message to the destination client. Destination client will get the message and store it in inbox. Now the user’s friend is able to see the message.

NOTE: This application’s GUI has been implemented using FarzanehGUI System which has been implemented by myself.


Implemented using DirectX 9 and VC++.


Download: Document

Server                 Code, Executable

Client                   Code, Executable


In this project, there are two objects in the scene: a plane and a cone. When this two object meets each other, some shapes will be achieved which is called conic sections.


Implemented using DirectX9 and VC++.


Download: Document, Code and Executable.



In this project water surface will be simulated using COS function.

Implemented using DirectX9 and VC++.


Download: Document, Code and Executable.




This project focuses on using Direct3D sprites to create a fire. Sprite is points in the scene that we can create plane in their position that allows faces to the camera. By using alpha element of the TGA images, we can create transparency.

This is the way that today games uses to create smoke, fire and some particles systems like this in their games.

Implemented using Dir
ectX9 and VC++.


Download: Document, Code, and Executable.

FarzanehGUI System

This project will introduce a GUI System that is done by me. It has very understandable, simple structure to use it. It can be improved more easily and have a well-design and reasonable logic for each function.

To use FarzanehGUI system, we can create different child windows in the main window. Every object like button, textbox, and etc can be placed in the main window or the window that is created by a programmer. For each window, we have an interaction handler function that will check what happens to each object in the GUI. We have a function that is called Windows Interaction Handler which will make changes when a specific window’s state has been changed. There is the main interaction handler which will make changes and do jobs relating to clicking on a button in the main window or another task that may be done and an interaction handler relating to each window which will do jobs relating to clicking on a button in that window or another task that may be done.

As I compare this design with DXUT design, I will tell that some parts of the underneath design are the same but at all FarzanehGUI is more reasonable. I think every programmer with little skill in programming can use it, simple.


Implemented using DirectX 9 and VC++.


Download: Document, Code, and Executable.


This is a solution that contains 9 projects that have been created to show different abilities of Direct3D to work with Textures.

Different Things which are explored in this projects are:

–       Introduction to texturing

–       Screenshot

–       Multi-Texturing

–       Multi-Pass Texturing

–       Point Sprite

–       Fire

–       Alpha Transparency

–       Off-Screen Rendering

–       Bump Mapping


Implemented using DirectX 9.0c.


Download: Document, Code, Executable


This application is created using Microsoft Foundation Classes (MFC). In this application, the user is able to design a logic circuit and set the inputs of the gates and see the output of the logic circuit.

By clicking on each icon in command bar and by clicking in the child window, it will be created. To connect two items, right-click on the element and choose “Connect To” and click on the element that current must be connected to it.

To Move or delete an element, right-click on the element and click on Move or delete.

To change the input value, right click on Binary Switches and click on /off.


Implemented using MFC.

 Download: Document, Code, and Executable.

 Setting Up a Direct3D 9.0 Application

This project is really simple. It will generate a blank window. But what I am looking for to focus here is documenting what happens in the code using DOxygen.

By looking at the code, we can understand that it is commented in a manner which doxygen can understand it and generat
e the document for the code.


Implemented using DirectX9 and VC++. As well DOxygen has been used to generate Document for this project.


Download: Document, Document (Generated by Doxygen), Code, and Executable.

Introduction to Direct3D

This document shows my skill in writing English documents about something that I have knowledge about it.

In this document, I have discussed the Direct3D Structure, Geforce6 series Architecture and the streaming architecture of GPUs. At last, when the reader has enough knowledge about these topics,
he or she will be read about how to create a blank Direct3D application.

Download: Document




 I have some translation in Persian. I think it is really good to send it to you. I have listed them here from new to old.

–     –   I have translated many documents about how to create games and game engines. What is the structure of them and what natural interaction is and how can be used to change games (Download).

–      –    I have translated “Geforce6 Architecture” which is printed in ElmeRooz Weekly Magazine and I call it “Rendering Pipeline” (Download).

–     –     I have translated some documents about how to use OGRE engine (Download).

–      –    I have translated “Streaming Architecture and Technology Trends” by John Owens. I have sent him the translated version. He told me “thanks very much for sending along your translated article. This is the first time anyone has ever translated anything I’ve written, which is quite flattering.” (Download)

–      –    The “Exploring the Ice Age 2” article is done by me and is printed in RayanehKhabar Magazine (Download).