Soufiane KHIAT //TODO


Works

On this section I will introduce you my works, from the latest to the oldest.




Walk The Line : Parkour game Kinect 3D (2011)

Unity3D, C#, C++, Kinect, Stereoscopic 3D, nVidia 3DVision, Filtering

Context :

For the ENJMIN (National Games and Interactive Medias School) end-of-year projects, I wanted to use the new Kinect system in order to see what it could bring to video games. That's why I got together a team of 6 persons around this project: a game designer, a sound designer, two graphic designers and another programmer. The aim was to gather as much technology (Head Tracking, 3D, 5.1 Sound, Kinect) as possible; then, in association with the game designer, to find an enjoyable gameplay. So Walk The Line is a First Person Rail game in which the main character has to flee from a collapsing city. Via Kinect, the player will have to jump,move from left to right, avoid hurdles and walk on walls.

Role(s) :

In this team I had to manage and to program the project in association with another progammer. I was in charge of the problems resulting from the use of Kinect (filtration of noisy signals, jump detection...). The more challenging task was to find an answer to the game designer's problems because even simple words could turn into a technical puzzle. On top of that, Walk The Line and its new Kinect system were a first and there were no antecedents which we could rely on: as we were developing the project, the Kinect system only had one party game.

Result(s) :

After three months of development, we achieved 2 joined levels. The first one (very dynamic) takes place on back-alleys : the player has to avoid abandoned cars, dumpsters, jump over ditches, walk on walls if the ditch is too big... The game is playable with a Stereo system, but it is more enjoyable with a 120Hz wide screen (for the Stereoscopic 3D) and a 5.1. sound system.

Press

English
GameSetWatch
Joystiq
N4G
123Kinect
...Ology
French
XBox-Mag
XBoxGen
Italian
Multiplayer

Video(s) :

Up


Space Loop (2011)

Unity3D, C#, Physic

Context :

At the Hit Playtime contest organized by the French newspaper Le Monde, we got together a game designer, a sound designer, a graphic designer and two programmers to participate. The constraint was: "Make a browser game". After being pre-selected thanks to our storyline, we started the implementation. Space Loop is a puzzle game playing with gravity. The player starts from a planet and has to reach another one collecting as many "crab coins" as possible and taking the least shots possible. Little by little, different types of planets and enemies complicate the situations.

Role(s) :

With this project, we had to deal with an important gameplay feature: gravitational attraction. I was in charge of the set-up of the programming ("from scratch") as well as turning physics into an enjoying feature instead of making it an approximation of reality. Launching for example depends on too many settings for the player to analyze.

Result(s) :

We achieved three worlds with three environments and ten or so levels each. Unfortunately we didn't win the contest but SpaceLoop is going on.

Video(s) :

Website :

French
Kongregate : Spaceloop
Blog : LeMonde
GameSideStory : Interview

Picture(s) :

Up


ECHO : Jeu Shoot em'up + Tower Defense (2010)

Game Maker, C++, WWise, PS3 SixAxis

Context :

For a "mini-project", a complete team (ergonomist, game designer, graphic designer, manager, programmer and sound designer) had to develop a complete game in five weeks. The concept is quite simple: there is a circular entity in space which is attacked. To survive, there are various types of "power-ups" falling on the planet which enable it to shoot the enemies. Then, by tilting the joystick (PS3 Sixaxis system) the player can turn the planet to adjust the shots. When the entity is shot by an enemy, an impact remains until the enemy reaches the heart, which means the game is over.

Role(s) :

Of course I was the programmer of this project. As we were using the GameMaker tool, our possibilities were limited but we were able to spread them out via external DLLs. I had to write a DLL allowing the entity to be impacted and the implementation of the sound engine WWise. Finally, I implemented some systems making the gameplay easier to understand in collaboration with the ergonomists and the game designers.

Result(s) :

Despite the time constraint, we achieved most of the tasks: we made a playable game with different types of enemies and several bosses, and a sound framework that varies according to the impacts... The SixAxis game system made us think about the possibility of bringing the game to cell phones, that's why we are currently developing iPhone, Android and Windows Mobile versions.

Website :

www.echo-the-game.com

Video(s) :

Picture(s) :


Up


Infinite : World Generator (2009)

C++, 3D, L-System, Topology, Graph, Generalized Map, A*, ...

Context :

Due to the difficulty of obtaining assets for my projects, I decided to develop a world and city generator. The cost of development of a Sandbox-like system is very high because of the considerable production of assets it involves. That's why I try to automate this process as much as possible.

Role(s) :

I did my best to create a tool totally independant from the product, keeping in mind that other persons could use it. I developed it as a "Data Driven" tool to get a large range of worlds, cities, roadmaps, etc without anything to program again.

Result(s) :

The project is still in progress. At the moment I'm implementing a system managing the roadmaps, blocks, building lots and frontage systems. I'm also tackling the volume generator system to add frontages and thereafter, I'll continue with the interior generator. Later on, I'll incorporate this tool on different engines to test a real time approach.

Website :

devblog.soufiane-khiat.com

Picture(s) :

Up


Hexapod Robot (2006)

LabView, Soldering Iron, Electronics

Context :

For an IUT (University Institute of Technology) project, a team of three persons had to make a hexapod robot walk.

Role(s) :

Thanks to the LabView tool, we have been able to test and increment three different walks.

Result(s) :

The topology of the robot (circular hexapod: each leg 60 degrees from the others) implied that the walk wasn't trivial. We couldn't follow any natural example because there aren't any animals or insects with this leg configuration. Finally we managed to make it walk by de-synchronizing one leg out of two, even though the rotations were still slow.

Up


ACFProg : CMS (2005)

PHP, MySQL

Context :

For a High School project, we decided to develop a PHP CMS. The aim was to reduce the dynamic website development as much as possible by supplying several tutorials with our CMS. These are made so that there's no need for any programmation knowledge.

Role(s) :

In that development team, I had to program the CMS and to format the notions of Object Programmation. As the whole team didn't have the same knowledge, we had to take a refresher course.

Website :

acfprog.free.fr

Result(s) :

The CMS is operational but obviously it is far less efficient than Joomla or SPIP programs.


Up


World Dev : RPG (2004)

Unreal 2004, uScript, Maya, PhotoShop, UnrealEd

Context :

In the same context as VirtueLPI and ACFProg, we developed an RPG. The game took contained four worlds: the first one took place on the same map as VitueLPC (the High School), the second one took place in a medieval-fantasy world, the third one in a futurist world and the last one in an oriental world. They are all linked by a very gripping scenery.

Role(s) :

During this project I went on making progress in 3DSMax, Maya and Photoshop tools in collaboration with the graphic designers of the team. I also improved a little bit more in the Unreal Script tool.

Result(s) :

We managed to include different gameplay stages on the RPG: "roleplay" quests in the medieval world and a flying cars race in the futurist one for example. But, because of time constraints, the oriental world which was supposed to reveal all the plot has been replaced by a FMV (Full Motion Video) explaining the how and the why.

Website :

www.world-dev.fr.st Dead link

Picture(s) :

Up


VirtueLPI : Interactive Visit (2003)

Unreal 2003, uScript, Maya, PhotoShop, UnrealEd

Context :

For an A.C.F. (Further Training Activity) High School project, we started to develop a "serious game". The player then becomes a student of our High School and has to find or create an A.C.F.

Role(s) :

During this project I had the opportunity to learn about the different Videogames' jobs, to the Unreal Script (uScript) programming, and even tools intended for graphic designers such as Maya or Photoshop.

Result(s) :

Thanks to a good management, we were able to reach our goal: see where we wasted time, where we gained time, and share the means among the remaining tasks.

Website :

virtuelpi.unreal-design.com Dead link

Picture(s) :

Up


eMotionVision: SDK Differential equations solver (2002)

C++, OpenGL

Context :

After the development of the Elite Strike program, I wanted to try to program some physical systems. Considering how repetitive the tasks were, I tried to formalize the different useful concepts in physical programmation.

Role(s) :

I managed to make the programming as easy as possible: without any technical considerations, solving a N-Corps system would take less than ten lines of code and three lines for the strange Lorentz attractor. As I didn't want to choose one numerical solver, I implemented a dozen ones. This way, I was able to compare them both for their performance and for their results.

Result(s) :

This system allows me to solve any ordinary differential equations. But as the solving of partial differential equations (except scalar ones) cannot be automated, I couldn't implement them in the system. Moreover, there are a lot of publications about that subject: Navier-Stokes, Schrödinger, Klein-Gordon, etc.

Up


EliteStrike : FPS (2001)

C++, DirectX 8, OpenGL, Verlet Integration, Octree, AABB, SoftBodies

Context :

This was an amateur project which aimed at developing a FPS. Even if the main purpose was the game, we nevertheless wanted our own program. That's why there were two teams of programmers: graphic engine programmers and physical engine programmers.

Role(s) :

I was a member of the physical engine programmers' team (there were two of us). I had to deal with the management of the soft bodies, and with the joints between them.

Website :

www.elitestrike.fr.st Dead link

Result(s) :

I was able to develop two functionalities: soft bodies and "boule-boule" joints. But as the project leader was recruited by a videogame society, the team gradually split up. As a result, we couldn't start the game development.


Up