Here I present my most important software developement projects. Although many of these weren't actually completed there were very important milestones in my learning process and they are here to allow me direct comparison of my current skills and the past.
Mesartian: Online 3D Demo action RPG
Particle Engine for the PSP:
The lucky box: 3D Demo game
Mesartian
Online 3D Demo action RPG
Read more at my Mesartian blog
Programming language: C/C++
Libraries used: DirectX, STL, Boost, OpenAL
Timeline: February 2010 ~ May 2010
This is a demo game that links together all my skills so far. It is based on a second itteration of the areiadne engine that I've been developing all these years.
The aim of this project is to create a demo that demonstrates my programming skills.
An automatically generated maze using the depth-first search algorithm.
Particle Engine for the PSP
Final year project
Programming language: C/C++
Libraries used: PSP official developement libraries
Timeline: October 2009 ~ May 2010
Since this is my final year project I can't really give out any details till the demonstration day which is in June 2010. All I can say is that it's a very exciting project that involves programming for the Sony's PSP using the official development kit - a rather rare opportunity for an undergraduate student.
Titan Explorer X
Shoot 'em up
Programming language: C/C++
Libraries used: DirectX, STL, Boost, OpenAL
Timeline: March 2010 ~ May 2010
This is essential a 2D port of the Titan Explorer game. I've decided to make a horizontal scrolling shoot 'em up version of it so I have an easier back-up demo project that demonstrates my skills in a more direct way. It's also based on areiadne2 engine and it will include the particle engine components above. The target is to also port this to the PSP as a practical demonstration of the particle engine.
The lucky box
3D Demo game
Assignment version - Completed (result 82%)
Programming language: Native C++
Libraries used: DirectX
Timeline: October 2009 ~ November 2009
A simple demo game developed using DirectX as an assignemnt for a module of my university course. The game idea is rather simple bust still the most advanced possible within the restrictions of the assignment's specification (3D, physics and multiple cubes where not a requirement). The game starts with a number of rotating 3D cubes. The player can move around in 3D and shoot the boxes. One of these boxes emits a sound in 3D directional mode that the player should lhear carefully in order to identify the correct box.

HanTrainer
Language learning tool and game collection
Programming language: C#
Libraries used: .NET
Timeline: July 2009 ~
A tool for aiding the learning of the Korean language. It offers many of the classic studying modes such as card flashing, multiple choice, connect list and others. In addition it offers some more complex games that aid in the memorization of vocabulary and spelling.

Marbles
3D Demo game
Assignment version - Completed (result 80%)
Programming language: Native C++
Libraries used: STL, OpenGL
Timeline: 28 April 2009 - 8 May 2009
A simple game of marbles written in OpenGL and C++. The target was to create switchable cameras, some lighting and motion physics including collision detection and response.

The Gibraltar Invasion
2D Demo game
Assignment version - Completed (result 98%)
Programming language: C#
Libraries used: TAO Framework (OpenGL)
Timeline: November 2008 - December 2008
A very trivial project that was my assignment for the 2D Graphics module at the university. The game is very simple: you have a cannon which you rotate around and you fire bombs to the ships below.
When it comes to presentation and technical difficulty it's nothing compared to my previous projects so I have completed the assignment with a total success resulting in a grade of 98%.

Quam Online
Massive online language learning game
Programming language: C#
Libraries used: .NET 2.0, XNA Framework 1.0 Refresh
Timeline: June 2007 - September 2007
Team: Georgios Tryfonas & Socrates Vlassis
Current Status: Development has stopped
An online game that players level up by learning languages within co-operative mini games and their level is representative of their actual language skills.

areiadne
3D game engine & content creation toolset
XNA Version
Programming language: C#
Libraries used: .NET 2.0, XNA Framework 1.0 Refresh
Timeline: August 2006 to - June 2007
Current Status: Development has stopped
Native Version
Programming language: Native C++
Libraries used: STL, DirectX 10
Timeline: Not Set
areiadne is the name of a 3D engine I'm making. I'm not any interested in ever completing it; it's rather a good way to apply the theory I read on the books and experiment with various aspects of games programming so I can gain more experience.
A short video from the lastest build. The first parts demonstrate simple physics and collision detection the second part is the on-the-fly create and try feature and the last part displays an octree used on the world. I'm currently implementing full rigid-body support, to improve the realism of the world's objects.

Ereuna
3D action/adventure RPG game
Programming language: C#
Libraries used: based onareiadne
Timeline: asareiadne
Team: Georgios Tryfonas & Christopher Vasilakis
Current Status: Development has stopped
Design process: 20%
Ereuna is a game that is based onareiadneengine. A game project is needed so I have some target to achieve when experimenting with the engine. The game as I dream about it, is a 3D action adventure, set in the very distant future.

Titan Explorer
3D space shooter game
Version 1 - Completed
Programming language: C#
Libraries used: .NET 2.0, Managed DirectX 1.1
Timeline: 12 June 2006 to 28 June 2006
Total Hours Spent: ~150
Version 2 - Completed
Programming language: Native C++
Libraries used: STL, DirectX 9.0c
Timeline: 1st July 2006 to 20 July 2006
Total Hours Spent: ~180
Titan Explorer is a demonstration purposes demo game. Its concept drives us back a few years and to Interplay's 'Descent'. The player has the control of a small spaceship and tries to kill the enemies and escape the maze. In this case there is no maze or a great variety of enemies since all these require some time to be created. This demo concentrates on programming rather than gameplay and it's one of my projects that I have achieved completing the initial targets within timeline. I actually progressed much further than that and I could continue and make this into at least an enjoyable and playable game if there was some specific reason to do so and of course more time.
A video demonstrating some gameplay from the completed project. The last part is rendered in wireframe, displaying the bounding volumes used for collision detection. Everything was done from scratch, including the code and the art.

Quam (Japanese Learning Game)
3D adventure/RPG game
Programming language: C#
Libraries used: .NET 2.0, Managed DirectX 1.1
Timeline: 29 March 2006 to - (Deadline Not Set)
Current status:Development has stopped
What is the Japanese Learning Game?
Maybe the first thing that comes to your mind is "Oh, another silly, boring interactive software to learn a language". I would answer "No, thank you. There are plenty of those out there!". The idea behind this project is not to learn Japanese but to play the game. But hold on, why its name is Japanese Learning Game (JLG) then? The Japanese language is using a few thousands Chinese characters (kanji) and if you want to consider yourself a good Japanese speaker you should know how to pronounce, write and understand a couple of thousand of these.
The idea of this game came while spending numerous hours on the online game Flyff. It was the same time I had to study really hard to pass that Japanese exam. While killing the 999,999th monster in the game I started to wonder: What if each monster was a kanji and I had to attack it with a spell that would represent its meaning or its pronunciation? That way I would have known all 2000 kanji I need by just playing the game and not even concentrating on the actual study... But does this work?
To prove myself that my game would work I created a quick prototype of a game that characters would just pop-up and slowly raise across the screen. You had to select them and then type their pronunciation. The game would understand valid pronunciation as casting a spell and attacking the characters. Characters would lose hitpoints when they were attacked with the right spell (some characters have more than one syllable readings, therefore the need of hitpoints). I also added a level factor so you would gain some experience after killing (well reading) a kanji. Suddenly I've found my self trying to raise my level without really caring about the pronunciation, or even concentrating on that. At the same time I was actually practising and memorizing the pronunciations in a way that the information from the screen would pass into my general memory rather than the recent one. When you concentrate over a book everything passes to the "temporary" or "instant" memory of your brain (you could call it "cache"). Then it's completely up to how your brain works and if you are on "the right day" for that information to pass to the general (or "permanent"/ "constant") memory which is what you'd need to recall that information someday.
The foundation of the previous test and the claims about who the brain works on that matter actually come from a personal study I did. It seems that's so easy to memorize game objects and how to effectively use/destroy them. You don't even have to struggle at all to do this. Everything passes from the screen straight into your head. More than any language, Japanese learning is based on memorizing pictures and patterns. One way is to write down each character 100s of times but that still won't guarantee you will remember this character after a couple of days. Japanese learn those characters mainly from observing them around their everyday life. In a more general way, it works the same with every language.
So isn't that boring too?
It sure is more interesting raising your game level while learning but that won't be enough to keep you there. It easily becomes boring and repetitive and it won't be long before you just shut it down and resume your life. An effective implementation of the idea is to create a full game with many objects, NPCs and storylines that would keep you playing the game. If these game objects are efficiently connected with the language and its structure (without never becoming hard enough to require further concentration) then the target is achieved: You will be playing a typical game, following a (preferably interesting) storyline and trying to save the world. If the storyline is good and the game flow in general interesting enough then you got a great game. In the background you can just pass all this information to the player: instead of learning that the "half pink, half green rat" monster requires attacking with the "water storm" spell, you're actually learning that some character is read a specific way. At the end of the day (well the game) you will just be able to read Japanese and with some more design effort maybe understand Japanese too... In addition, the more graphics and audio you put on it, the more the player would forget about learning Japanese which is the objective (while he's actually learning).

Transsist
Translation software
Version 1
Programming Language: Managed C++
Libraries Used: .NET 2.0
Total Hours Spent: ~40
Current Status: Development has stopped
Version 2
Programming Language: C#
Libraries Used: .NET 2.0
Current Status:Development has stopped
A software that allows translation between languages based on a pattern analysis rather than grammar.

Karaokit (former Empty Bucket)
Subtitling software
Version 1
Programming Language: Visual Basic
Current Status: Development has stopped
Total Hours Spent: ~15
Timeline: August 2003 ~ October 2003
Version 2
Programming Language: Java
Current Status: Development has stopped
Total Hours Spent: ~40
Timeline: October 2004 ~ April 2005
Version 3
Programming Language: C#
Libraries Used: .NET 2.0, Managed DirectX 1.1
Current Status: Development has stopped
Timeline: March 2006 to - March 2007
A software for creating and editing dynamic subtitles and karaoke on music videos.



