My colleague Laszlo Nemet is a senior backend developer at Sponge Hammer. His job title doesn’t give away the vast amount of coding knowledge and experience he has been gathering over the staggering 34 years since he started game development, beginning with coding.
In the first episode he spoke about his first experience with coding and in the second one he explained his difficulties making his first game. In this episode he talks about his first AAA game, where he wrote the 3D engine from scratch.
With technology advancing, did that also mean you had better access to information? Was writing code becoming easier?
Well, we still didn’t have internet, so we were learning from here and there, from magazines, books sometimes, or from friends who had heard this and that. We tried everything to realise our ideas. And then I had to serve in the army, which made it hard to dedicate time to coding. Just when I finished, my friend started his time in the armed forces, so we couldn’t work together. I signed up for a programming course, where I learned many new things and ideas, but many of my programming questions remained unanswered, because not even the teacher was able to help me with them. The funniest moment I had throughout the course was when the teacher gave us a task to write a programme in C, and by the time he finished listing the criteria and the requirements, I had already written a working mini-game. It was very basic, but fun.
Where would you find help if you were stuck with something?
It wasn’t easy. In high school, when I first started toying with the idea to create something in 3D, I approached my maths teacher. I asked him about how to calculate the rotation of an object in a 3D environment, for instance, so the teacher gave me some advice – which didn’t work. Fortunately, we managed to obtain a 3D CAD book, where we found something that was related to our problem, and we figured it out ourselves. We built sine and cosine tables and indexed them, so we were able to extract the data from there. Even though these new processors were faster they still could not perform multiplications similar to the Z80 back in the day. It was difficult. All the problems we encountered usually required more advanced knowledge than the teachers had at that time.
How do you feel about it when you look back?
We didn’t have a safety net like today. We couldn’t turn to the internet or the books to give us an answer, not even to the teachers. But, as a result of that, we learned – at least I believe we did – how to code properly, and that knowledge will never fade away. We learned why things work, and how.
Today, you can find answers to your question on the internet, and it makes your life much easier, but you won’t necessarily learn or understand why something actually works the way it does. Going back to the Unity learning session we had last time here at Sponge Hammer, if you decide to learn Unity, you could find tons of information about it and eventually, you can create games in Unity, but you won’t necessarily understand the processes behind them. This may sound a bit presumptuous, but I’d say I’d be able to recreate Unity, or maybe I’d be able to make a Unity engine, because I understand what’s going on in the background, and because I’ve written game engines from scratch before.
What happened after that?
I spent years learning programming, mostly on my own. I didn’t finish any notable projects, but I learned a lot. Then, in ’97, I was employed by a game studio, where I worked on my first AAA game, Fatal Abyss. I wrote the 3D engine for the game. Originally, we had planned a lot more content for the game, but it was cut back during production. We’d imagined it as a 2D/3D strategy-action game, where you have the 2D game as a strategy field, but the moment you select any vehicles, it changes to 3D action. It’s a shame that the 2D strategy part was cancelled.
This sounds like a big milestone in your career.
I created the engine from scratch, basically, and the complexity of it was mind-blowing. It had perspective correction texture with software rendering without using hardware to help to render out polygons, and it also had fog. I remember when Pentium 2 came out and the Celeron processors gave you the opportunity to overclock them, and I immediately tested Fatal Abyss on them. If the overclocked processor worked running Fatal Abyss, I considered it a success, but more often than not it locked up after a while. The way I wrote the engine it basically calculates every tick on the processor to make sure it uses every bit of resource available.
Did the company dedicate a big team to Fatal Abyss?
The game was a commission by Segasoft, and I think the team consisted of four or five programmers and four graphic designers.
How many other 3D engines did you write?
I have no idea. More than ten, that’s for sure. Csaba Berenyi (MD of Sponge Hammer) said the other day that those people who write engines make very few games, and I must agree. Nowadays, most of the developers use an existing game engine, like Unreal or Unity, and I don’t know what is going to happen to the knowledge we, I mean programmers who can write engines, possess.
I hope you enjoyed this episode of Laszlo’s journey in the early ’90s. In the next part, he will talk about the game industry changes and how he lived that.
Stay tuned as more to come!