My Projects
Asteroids Game

This is a 3D game similar to the classic "Asteroids" made by "Atari", I made this project to learn about the "Microsoft XNA Game Studio" and the C# language, it started with the "Going Beyond" XNA tutorial, then I continued to add features and turned it into a complete game, the 3D models and sound effects was taken from the "Space Wars" XNA Starter Kit, I made v1.0, v1.1, v1.2 and working on v1.3

Connect 4

A 3D version of the popular Connect 4 board game, I programmed it in C# and using the XNA Framework, I started from scratch, I made the 3D models for the game, and wrote the code based on the simple Java version I made, the game was never finished

UDP Chat

A simple UDP client, I programmed it in C#, I made it to learn about building applications that connects with other computers through UDP clients (like LAN multiplayer games), I succeeded in making 2 computers on the same local network chat just by typing the targeted computer name or IP address and the UDP port, then they can type whatever message they want to send and the whole conversation appears in a scrollable history panel

The Resuscitation Game (IC 2009)

This game was made for Microsoft's "Imagine Cup 2009" Game Development Competition, I was in a team with 2 of my friends, it was required that we program it using C# and the XNA framework, the game was supposed to show and describe the problems facing an imaginary country and how a team of four friends who met randomly will solve all these problems and “resuscitate” their country, the game was submitted as a Round 1 entry but it didn't advance to Round 2 because it was incomplete because we didn't have enough time to work on it (about 2 weeks only)


This is the project for my "Computer Programming Lab" university course, I was in a team with one friend, each team had to implement either a TetraVex or Checkers game using JAVA and implement its GUI with the Java Swing Library, we completed the game and it got evaluated as 100/100, I later made a 3D version for it using C# and XNA using the same Game Engine

Prolog Project

This project was part of the "Concepts of Programming Languages" university course, I was in a team with 2 other friends, our task was to help the players of Egypt's football team (as if they're going to the world cup in South Africa 2010) to choose the players and their positions, arrange their seating order and assign their lockers during the cup according to certain constrains and the given knowledgebase, we were required to implement the project in "Prolog" using "SWI-Prolog"

Haskell Project

This project was part of the "Concepts of Programming Languages" university course, I was in a team with one other friend, our task was to implement some functions in "Haskell" using "HUGS 98" to evaluate and simplify Logical Expressions and generate Truth Tables for them

World Relief (IC2010)

This project is for Microsoft’s ImagineCup 2010 Game Design Competition, it had the same Theme as ImagineCup 2009, I have 2 extra members in the team and we are working on a new game different than last year’s “The Resuscitation Game”

Chat Room Server and Client

This was my “Introduction to Computer Network” course’s project, we were asked to implement a Server than manages Chat Rooms and Room Members and a Client that connects to the server and joins a Chat Room and starts chatting with other members in the room, the Server-Client connection was made through TCP Sockets, we defined our own Chat Protocol to differentiate between Chat Messages and Control Messages

Block Mania Game

This was my Computer Graphics University Project, I worked in a Team of 4, we were asked to create anything that had a 3D Environment and Camera Navigation using OpenGL on C++ and using external frameworks was optional, so we chose to recreate a game we found on MiniClip called “Bloxorz” and we used the Panda3D Framework

Online Tutorials Website

In my “Databases I” course, we had a project which required us to apply what we learned to implement a website were Lecturers and TAs could post Tutorials, Mini-Quizzes and other educational content for student to read, rate, comment and get graded on.
We were free to choose any language to implement the website, but we had to implement the database in either MS SQL or MySQL, so I implemented the website using ASP.NET and C#, and built the Database using MS SQL

String Encoder

At the end of my “Introduction to Media Engineering” course, we were asked to use what we learned in our Encoding Chapter to implement a simple Java Applet that Encodes strings using Run-Length, Huffman or LZW encoding, and it also had to show the Compression Ratio


I decided to make myself a new website, and since I wanted to apply what I learned in ASP.NET and MS SQL, I didn’t use any of the Blogging Services like Tumblr and Blogger and decided to implement everything myself from Databases to Web Design and Interface Elements.
I’m also using different APIs to integrate my website with other Web Services like Flickr, Twitter and Facebook

Webcam Live Video Streaming

As part of my “Multimedia and Networking” course, I had to either make a small research or project, I chose to make the project about Webcam live video streaming, I got an open source library called WPFCap to capture live video from my webcam, I then send the video to another computer on the same network using UDP Sockets.

Motion over UDP

A Windows Phone app that gets motion data from your phone's sensors and sends it to your PC over a UDP Socket, a client running on your PC can make use of that motion data in any way (like controlling a Game).
I started working on this app during one of the Windows Phone Underground Competitions held at Microsoft at the Smart Village in Cairo, and it won the first prize which was a Samsung Focus S smartphone running Windows Phone 7.5 :)
You can download Motion over UDP on your Windows Phone from here.