About me

Table of contents: 


Hello dear Visitor!


My photo My name is Konstantin Nosov, my nickname is Gildor. I'm a video game software engineer from Saint Petersburg, Russia. Welcome to my personal website. At this page you may find some information about me.

The beginning

I started programming at school, in early 90's. My first programming system was ZX-Spectrum with 8-bit Z80 CPU on board. My first programming language was Z80 assembly, and I programmed exclusively with it nearly 5 first years, before I got access to the PC system and started to program with high-level languages like Pascal, C and C++. I graduated with honors from the Saint Petersburg State University of Aerospace Instrumentation. My area of expertise was "system programming". Qualification is a Russian equivalent of Master degree (6 years of education).

I like programming, I do it at work and (sometimes) at home. I like to solve complex tasks and to develop things which were not made by other people earlier.

I started (non-professional) game development in 2001, when John Carmack released his classic Quake 2 source code. I have completely re-created the Quake 2 engine. It was rewritten using C++, I have added support for the Quake 3 player models and support for playing on Quake 1, Kingpin, Half-Life and Quake 3 levels (I have had some challenges with Half-Life, plus I have yet to finish Quake 3 support because I have switched to the UE Viewer project). Project goals (except educational) were to create a fast renderer with some eye-candy features (like lightflares, correct lighting etc) and to support community-made resources from other games - there are a lot of nice maps made for the Quake 1 etc. The project (with source code links) could be found on this site.

I decided to switch to professional game development in 2006. I first job in that area was a senior programmer in "Parallax Arts Studio" (unfortunately the company was closed in 2008). The game title we worked on was "Exodus from the Earth". My expertise was an engine optimization (for speed and memory use) and work on XBox 360 port (abandoned at the final stage). Some low-level engine systems were completely rewritten for better performance. In Parallax Arts Studio I've got a task to create a new animation system for future projects. I did not found any good open-source animation systems to learn, so I decided to look at the Unreal Tournament 2004 internals - it had very good animation system (for 2007). So I began to disassemble some parts of this great game ... and in autumn of 2007 very first private version of the umodel was created. Umodel's animation system was used as a base for the new animation system developed for the Parallax Arts Studio. The project was closed, so I've used one of created tools as SkelEdit available on this site.

Probably my work in Parallax Arts Studio was my most significant professional experience in Russian computer games industry. Later I worked in Driver-Inter Ltd. for Nival Network for their long-build project Prime World (which is on "beta" stage for years), worked on a few smaller projects which were abandoned before being able to see the world ... None of them were provided such amount of interest like our "Exodus from the Earth".


My Projects 

I have a lot of personal projects, but most of them are not available to public. The most significant projects are:

  • UE viewer (legacy name is "Unreal model viewer", renamed due to request from Epic Games); the project is under active development.
  • Modified Quake 2 engine (some details are available above, screenshots are on the project page).
  • Implementation of the fast deflate algorithm for zlib
  • Very fast single-pass macro assembler for Z80 CPU (ZX Spectrum) with builtin Turbo Pascal like editor, it was compiled with itself. I made it when I was a student. Unfortunately the source code resides on 5" disk, so I can't grab it from there.


Reverse Engineering 

About the reverse engineering ... I'm reversing a lot since the time when I worked on 8-bit Z80 computer, but it was never be in the center of my interest. I prefer to create something by myself than to dig into somebody's (often not fair) code. But sometimes I need to learn some cool contemporary technology, and very often the only way to get information about it is reverse engineering (disassembly). Sometimes people are referring to discovering file formats as "reverse engineering" too, but that has nothing in common with disassembly experience, so that's not about me.

There is another application for reversing too - sometimes it helps me to verify correctness and optimality of my own code generated by compiler, because on some circumstances assembly code looks more understandable than it's C or C++ equalent.

My first major experience in reversing was Quake 3 disassembly. The reason of doing this research was my own question: why Quake 3's renderer is much faster than Quake 2 on the same machine with processing more complex geometry? During this work I've made a new renderer for the Quake 2 which was based on the reversed Quake 3 renderer (the source code of Quake 3 engine became available only a few years later). Later, when I got enough OpenGL experience, my renderer was significantly changed so there is nothing from Quake 3 left there (and I think nothing from Quake 2 either).


My work at Video Game Industry

Updated 15.09.2018

I worked a few years in Russian video game industry, changing a few companies. In most cases changing a job was forced - companies closed too quickly. My last job in Russian videogame industry was a lead programmer in one small independent company. We've tried to work on a sea battle game "SeaCraft" using the Unreal engine 3.  I coded 90% of the game prototype. Owner of UE3, Epic Games was impressed with our demo and we've got a full UE3 license on special conditions. Unfortunately the project died due to financial problems. We had full UE3 license, experience and desire to make a game, but no money for doing this... The market for game development in Russia does not currently have good opportunities. Now Russian videogame industry is going in direction which is not interesting for me, mostly to simplify game development as much as possible and to develop games for web and social networks. So I'm looking for a job in a strong foreign videogame company in a team that has an experience of making AAA games.

In 2013 I worked in Ubisoft Reflections for a few months, in a team developing PS4 version of The Crew game. Actually, when recruiter asked me "are you interested in work at Reflections", I said - "no, thanks". A few days later he responded - "I've sent your resume, they're interested". Well, I found that they're working on "Watch Dogs" game and accepted. I've passed interview, been persuaded that I'll work at "Watch Dogs" team. But when I started to work there, I appeared at "The Crew" team (never heard of that game before that).

However, work at Ubisoft was the most interesting job in for 2013 - I've got a lot of PS4 experience there. Ubisoft is a very big and very good company (despite some of their offices tries to save money hiring good developers for cheap).

Unfortunately life in Newcastle (North England) was too hard for my family, every day was a chalenge. I didn't expect that climate somewhere could be stronger than in Saint Petersburg! It wasn't so cold, but it was so windy ... And we lived in a house which wasn't very good (bolonged to migrant's family, they didn't take care of the house at all). Also we've got huge finansial difficulties there (mostly because of renting a house), my salary was too bad to live in UK with a family - it was almost enough to survive (don't misread that: it was smaller than was required to survive), and we had to forget about any entertainment for us or for our children (many "thanks" to my recruiter who put me into this company - he persuaded me that this is the most I can get, and that this is a very good money - nothing were true ...). I even found a second job there to be able to stay in Ubisoft (this is allowed for Ubisoft's employees). However company had refused my attempts because of some UK border agency policies. So I had to do a choice - either to have an interesting job, or to make my family happy. Very hard and awful decision.

So, I left the company after roughly a half of the year working there ... My reputation was broken because I acted like "unreliable person", I think. Every time I passed a job interview, I've been asked "why did you leave Ubisoft so quickly?" Probably this is the main reason why I explained that in so many words above. Main reasons are finansial problems and not beine prepared for serious move to another country. And recruitmens agency did their dirty work too, they just were targetted to hire person with any cost (as cheaper as possible). Guys, never work with "change-job"! I can also say about that agency: after a week of working at Ubisoft, I've got another job adverticement from my recruiter!

Of course, now I've got some experience with family relocation. That was my very first relocation, it was very hard and had a lot of moments which required special attention and where I did mistakes - including salary and accomodation. I hope next time will be better :) (if "next time" will happen at all).

Current Work

Updated 21.10.2019

Currently I work remotely from home, at 4D Pipeline. This is a small programming company working for various famous companies in Computer Graphics area. Like outsourcing, but more "advanced", and more interesting. Most of my work was made for Audi, NVIDIA, and for Donya Labs (Simplygon developers). I work in realtime and raytracing computer graphics areas. Working with modern game technologies like Unreal engine 4, Simplygon, Enlighten. Worked for Epic Games on their DataSmith plugin. For most of my work Unreal engine 4 was used.


Contact Information

My CV is available in a form of linkedin profile, that page also had email and other contacts. MS-Word version of CV is also available on request, but it is fairly compact (there's a recommendation to keep CV in 2-3 pages). However it contains more incormation about my work at 4D Pipeline because I can't share information to public due to restrictions.

My contacts are listed below. Sorry for not posting my email address here - I don't want to feed spam bots.

Please do not contact me using facebook for conversation about use of the UE viewer (umodel), your problems with 3ds Max or about game modding - consider using my forum instead. Most of your questions could be shared with other people (i.e. nothing "confidential" there), so I'd prefer to not answer the same questions to many people many times. Even more, if you will use search (even google) you may find answers to your questions, or at least thread on my forum where the same question was already asked (and may be answered).


 LinkedIn http://www.linkedin.com/in/knosov
 GitHub https://github.com/gildor2


Thank you for reading,