 Hello, my name is Christophe Delinochin, and today I'm going to talk about Alpha waves, which I believe to be the very first 3D platform game in history. There used to be an entry in the Guinness Book of Records for that game, but they dropped the whole section, so it's no longer official. So the best way to understand a game is to play it. So I'm going to start with a quick demo of what it looked like. Those of you in the room have already seen something, but I'm going to start with the main menu here, where you can see that you have a one-player mode, two-player mode, an emotion which is really a training mode without a time limit, some help that we saw running while waiting for the recording to start. So that's what it looked like, and this made the game a bit easier to understand. So what you see on the left is a camera that spins, and the keys that you have to press in order to achieve the desired effect. So let's start by playing the game. So you are this central character here, and I'm going to change to another one for reasons that will be clear at the end of the talk. And basically I can spin around, and I can, by pressing the action button, for instance, the spacebar, I can trigger a sort of reactor at the back, and that makes me move forward. And then I can switch to another room, and there are 256 rooms which are shown in this map here. So you have some time to discover all of them. So this is both a platform game and a puzzle game, and you can save along at the beginning to save your game to make forward progress. You have here something that unlocks the keys. So you see the thing here around the door in front of me is a key, and that means I can't go that way. And what I did by taking this little thing here is I unlocked a key in some other room. And you see that the little thing that spins around it is supposed to unhelp me, or basically be some sort of opponent. And as you go forward in the game they get smarter and more annoying as you go along. Okay, so that's about it for the one-player mode. I'm going to, so I made a high score there. And you see that I have a permanent high score at the top that I don't think you can play long enough in the game to actually beat that game. So the two-player mode is an interesting first because this was the first time you had this horizontally separated splits. So that means you can actually really interact with the other guy. So for instance, I'm going to push him over there and you see me arriving there. And so that was fun because you could basically, you know, this was probably one of the first cases of co-opetition in a game where you could really either help each other or fight one another as you prefer. And I'm going to change rooms to show that this game used an interesting feature of the Atari ST which was that you could change the palette on the fly with VBL sync. And so the game uses that to have a palette per room. Oops. So the two-players could actually be in different rooms and have different color palettes in the middle. An interesting trivia fact about this particular feature is that it only existed on the Atari ST. The Amiga and PC versions of the game had turn-by-turn two-player game which was much less interesting. Another interesting trivia is that when the first time I tried in this simulator which is called Atari, an interesting open source emulator for all the Atari range of computers, that feature did not work. It actually had very bad results on the color effects. And so I have a two lines fix in Atari just to make that game work. Okay. So that's basically the end of my demo for now unless you want me to try something else, but that's basically what there is. So back to the talk. So let me first say that this was really a wonderful time when this game was developed. The game was developed between 98 and 99 and released in early 99 and 1990 for the US. So that was the time where 3D games were really not there yet. No, that's fine. Why is it so slow to load the videos? So this is the game that was an inspiration for me. It was called Star Glider 2. You can see that as was typical at the time, there was a limited region for rendering 3D graphics. Doing that basically saved a lot of time in CPU usage. As was also relatively typical for the time, there is a small number of items on screen. Here you can count five or six. The floor is really one item with some smarts on how to colorize it. And the interactions in game were typically only remote. So you only had things like missiles, et cetera, but you could not really have physics with other items in the game. So these are three areas where Alpha Way is innovated by having full screen game play all the time, having many objects on screen and having direct interaction with the objects. Now, there was a limited color palette available on screen. For that area, it was 16 colors out of 512. So you had to play with that. So no real shadows. It was all pre-computed colors. Another game of that time that I picked up to show it was Hover Tank, which is dubbed on the ID Software website as the first 3D game on a PC. So first of all, it's clearly not the first 3D game by far. There were many others before, et cetera. Alpha Way was released about two years before Hover Tank. But also it's not 3D. It's really 2D. There is only one axis of rotation, basically. And if you look at the characters, they all look at you facing. So the same thing. We should have displayed area and no truth 3D. That being said, Alpha Way was, in my opinion, not the best 3D at the time, which is probably something I would give to Falcon. Again, the 3D area was limited by default. But unlike in other games, you could actually go full screen even if it was slower. And there were many, many objects by the standards of the time. So that's what full screen looked like. Another, so you see, it was like 5 images per second or something like that when you were full screen. And another interesting thing was that, to my knowledge, this is one of the first games that tried to do some accurate shadow projection on the floor. So Alpha Way did that too, but the same tricks, the shadows are really not really computed. You may have seen that they may go outside of the projected area, for instance. So how does Alpha Way fit in video game history? So this is the first platform game with 3D in it. And in my opinion, this is also the first time there was real interactive 3D in the sense that you could touch practically anything that was around you. So this is what the Wikipedia page has to say about it. But how did the idea come about? So you see that I changed the character when I started playing the game. There is another reason that I actually, at the end, it was to show you something that was the closest to what I had in mind initially, which was I was thinking of Smuff's jumping in a room. So do you know the Smuff's coming book? French people probably know about it. So there are very tiny blue characters like this, and when they have to go over a table, they hop about it. So initially, I wanted to do a sort of Smuff-based adventure game. We are far, far away from it. So let's start with the influence of Star Glider. So when I saw that, my first reaction was, wow, how do they do that? It was really the first time we saw this kind of polygon on an ST. And then my next question was, how does that work? So I tried writing some code that would more or less do the same thing. And then I tried to make it faster, smoother, and I kept improving my code. And at some point, it became obvious that I could draw 3D much faster than Star Glider. Basically drawing on full screen and still have what was the standard at the time, like between 15 and 20 images possible. So I got back to Infogram, and I have to tell you a little story about that. So at some point, Infogram decided to go out of games and try their luck in export systems of all things. And so they asked me to translate a book. And when I came back three months later with a finished translation, they told me basically, oh, I'm sorry, we changed our mind, it's a bad idea, we won't do that, so we don't pay you. And so I returned to Infogram with sort of an entrance in mind, saying I will get them to pay me something. That was basically my objective. And so I came with a number of demos on floppy disks. And one of them that I was relatively proud of was a clone of a relatively popular game at the time called Time Bandits. That was better than Time Bandits in a few respects and much worse in other aspects. But I thought that would impress them, except they're just young and they were absolutely not interested at all. But when I showed my last floppy, which was not a game, it was just a sort of demo thing, the director looked like this. He stayed with the joystick like one hour. And then I thought, okay, I have something that Infogram has not seen yet. And that was when suddenly I thought, okay, I need to be careful there. And I came back with a standard contract telling me you're going to work for three months during the summer on Infogram's project and as a training period and you will be paid 7,000 francs, which is about $1,000. So I said no, sorry, did that once. Not going to try again. So there was one month of, what they call in Star Wars, no, it's not Ferocious Negotiations in Star Wars. How do they call it? Aggressive Negotiations. Negotiations with this lightsaber basically. So it took a while and after I think two or three months of negotiation, I finally got royalties and I thought from here, everything is peachy. For the little story here, Infogram at the time was about 40 people in a single floor and all the engineers were outside of the, just outside of the desk of the CEO. And when I negotiated with the CEO, I remember two things. The CEO is called Bruno Bonel. The first thing is at the end of the negotiation, he said I'm happy I negotiated with you because I never see people your age negotiating. So it's not fun. Yesterday, someone told me I don't need much. So that's what he got. Okay. And the second thing I remember is that at the time I was, when we began discussing, I was 18 or 19, something like that. So I had no idea how the business worked. But in my mind, it was obvious that if I wrote the game, 25% royalties was the minimum. So that was my no-go zone. You don't go below 25%. They started at six. So, and in the end, I got 17% royalties and I was very unhappy with it. So, but I was just tired. So I get out of the room and all the engineers are watching me just much like you are here. And they say, so how much did you got? And I said, I got 17%. And they all look at me like, how much? And apparently I was the first external developer to get two digits in royalties at Infragram. They did not pay me, but that's another story. So, marketing. So Infragram was actually impressed enough with the game that they launched something called the Crystal Collection with a new age game. So this is the team that they had at the time. It looks very 80s, right? So that's what the front and back cover looked like. So this is basically what the front cover looks like. And that's the back cover. The whole Collection Crystal over here team. For those of you who are interested in history, there is another talk about Minitel today. That's what the UIL looked like at the time. 13.16. 36.15 for Infragram. That's how we said it in French. So, the collection was, oops, sorry. So we had a few games. We had an English version. You had a 3D version of Tetris. A 3D version of Arcanaeid or Breakout. And they started 3D-fying even their adventure games with something called Dragon. They had actually started the development of Dragon long before, but they put a lot of emphasis on the 3D effects to some extent due to alpha waves. And that's what the games looked like at the time. At the time it was all 2D and typically exploiting existing franchises and stuff like that. So this is where the idea of smurfs came to me, is I thought if they are doing things like that, I could do a smurf-based game. That was why I was thinking about this. Also, I like comics. And another thing that Infragram was doing at the time was the early SimCity. And if you play SimCity today, you cannot think of SimCity as being 2D, but that's what it looked like at the beginning. So, I said they did not pay me royalties. Well, here's another story. So basically I got my reports about royalties every six months or something like that. It was supposed to be monthly, but they never got them in time. And they always told me it doesn't sell in the US. It doesn't sell in the US. It doesn't sell in the US. Okay, well, fine. Then in 1998, I moved to the US, started being present on some mailing list, and I started getting emails saying, are you the guy who wrote alpha waves? We were playing the equivalent of land parties and we were organizing stuff, et cetera. One email, two emails, three emails. So after a while, but, sorry, I'm sorry. Where are the guys who wrote continuum was the first one. And initially I said, no, I did not write this game. But they described the name, the game, and the game looked very much like alpha waves. So what Infragram did is they basically renamed it, sold it to another company called Data East. I had no idea these things existed. That was long before internet was prevalent. So I had no way of knowing. So I believe I never received the actual royalties for the continuum version. I will never know for sure. Maybe I'm lying. Who knows. So what did the press think about it? Well, there was a common theme that the game was hard, was cool, was innovative. And one of my favorite quotes was a French magazine called Generations 4, Generation 4. And what they said was, we don't know what this guy uses for drugs, but we want the same thing. So you have some reviews here. Somewhere good, somewhere not as good. I remember one of the reviews said something like technically very impressive. We only wish it was a game. So thanks to internet, the game remains relatively easy to find today. So if you are fond of retro gaming, you can find it. There are links on Wikipedia. There is this website which I like because it says that the game is a theme. The theme is unique. I like that. Somehow the game did get a best innovation in 1991 award that I was not aware of before preparing this talk. And you can even find it in Russian. So everything, because at the time, I remember at the time, Russia was like completely off the map, right? So nobody thought this would happen. Now, the major influence of the game is that it actually taught 3D to a foreground. And that's through a game called Alone in the Dark. Who knows about Alone in the Dark in the room? Yeah. So this guy is a guy named Frédéric Renal. Who knows him? At least heard about him. Nobody? Seriously? So he's the only French developer to ever receive the Medaille des Arelettes, which is why I have this picture here. Or at least he was the first one. Maybe there is another one now. And so he brought the alpha waves to the PC. And as with all external developers, Infogram decided to review my code before putting this thing into production. So he started reviewing the source code and he went to his boss and he said, you know what? I can port this to the PC. There is one command line per line of code. And this was not completely true. You can check that in the source code today. But what this meant is that this was the first game that Infogram ported from assembly language to C on the PC. And so doing that, he devised a 3D engine that he would later reuse for Alone in the Dark. And he would then clash with Infogram because the same thing, Infogram would not, you know, the game sold by the millions and he would not get a pay raise. So he said, I'm sorry, I'm out of there. So that's what Infogram looked like. So you can see that I take no credit for the inspiration only for the 3D. Because you see it's a completely different way of doing things with actual 2D graphics and the perspective. And the 3D is integrated in it and much less actual 3D because he was doing more complicated things, much more complicated models. And so he could not move as many on the screen at the same time. But that's really, there should be some sound. Can you hear it? Okay. So there was a whole mood and it was really, you know, the thing that made Alone in the Dark so unique was this sort of, you know, or the mood or the sound, et cetera. So it was a really good game. I'm a really bad game designer, frankly. Okay, but game designer. So, well, you can find this online. Let's talk a little bit about the technology. So this was the beginning of everything in 3D, meaning that in the end, we had absolutely nothing to play with. So for example, this is the machine we were running on. That's an Atari ST and an Amiga. And these were bringing 32 bits for every one, but actually the buses were 16 bits and internal computations were also often 16 bits. What you see here in red is basically the amount of memory in my video RAM that corresponds to the whole memory of this machine. And so you could display 16 colors out of 512. So these were very cool machines at the time. So how do you compute 3D graphics on this kind of machine? It's like you want to display 3D with a silix and an abacus. So you start with a very powerful three accelerator, like an NVIDIA Titan or whatever. Actually, I don't have that. So at least I can color the pixels. Sorry, I can't do that. Well, at least I can access the pixels individually. Well, no, they are on multiplanes and they are in different regions of memory, complicated arrangement. Maybe there is 3D-accelerated rendering for polygons. Well, no, sorry. All they could accelerate was rectangles. OK, floating point maybe. I know that 68, 8, 2 would come a couple of years later only. OK, division. Maybe division is fast. 158 cycles to do one division. OK, maybe I can do a multiplication. Actually, a multiplication is only 70 cycles. So it's faster than division, but still. OK, what about additions? Additions are four cycles. That's good. I can do something with additions. So basically, I rewrote the problem as how can you do 3D graphics with only additions? integer addition, shall I? Precise. OK, so for computing sine and cosine and stuff like that, it's easy. Because basically you just pre-compute integer values. You stuff that in a table. You offset. You do a load. And that's basically it. And actually you could accelerate that because this was a SISC processor. So you had a complex addressing mode. You could do that in one instruction. OK, but that's only to compute the rotations. So now I'm going to show you how the trick's inside. So for each 3D object, we would have a 3D rotation along x, y, and z axis. And there are multiplications. You can't avoid that. But you can pre-compute with only additions what happens when you have the same vector times 2 times 3 times 4, 5 and 10. And then you can use this, you know, by negating it to go forward or backward. So you have minus of this. So in the code, this is named xp3zm45, et cetera. And you have a table that looks like this. So this is the character that I was playing with. That's how it's described in assembly code. So let's start. So xm1 gets me there. xp2 gets me there. Origin brings me back at the starting point. Then zp5, et cetera. So you see the idea. Basically, I'm jumping like this. And there was this special thing, go one, go two, et cetera, where I could insert some computations to do some basic animation inside the model. So this is how the bouncing of the character is done. And then all you have to do once you have done that is connect the polygons, the dots with polygons, and that's easy. Now, polygons feeling was complicated at the time. It was really critical to performance. So I used something called Brezenheim's line algorithm. I don't know if you are familiar with that, but look it up on Google. It's very interesting. And what this does is basically you compute this movement using only additional subtraction. What I was very proud of is that while understanding why this was working, I realized that you could also do that for circles and ellipses. And so Alpha Waze is probably also the first game where you had real circles on screen. There were a number of circle objects just to show off. So that's the extension to ellipse. But then Alpha Gram asked me, could you please use our code? Because it's portable. We could use that to pull that to the PC or to the Amiga platform. So I looked at that code, and that code did not work on the TT because it was using self-modifying code. So I said, sorry, don't want to have that. So I spent some time rewriting that using something called the Duff's device. And by doing that, I was actually 30% faster than the original code. So we kept that. That's my other contribution to Alpha Gram. So about the music. So you have the whole playlist on YouTube here if you want to scan it. It's really cool, actually, that some guy saved it. So that's the PC version of the music that you hear. So the Atari ST had this music but only during the intro. And the reason is that because the 512, 520, which has 512K of memory, did not have enough memory for both the game and the music at the same time. So it was stored on the second side of the floppy disk, and the second side of the floppy disk was also something that only existed on the 1040 ST. So that was basically my trick. I have a second side. I can load the music, and at the same time I have the memory to store it. So that's good. Except at some point, a magazine was hired by Alpha Gram to, at the time, you know, you had floppies with magazines with promotions. And they only copied one side. And then they blamed me because the game crashed, not finding the music on 1040 STs, trying to read from the second side and said, sorry, no music, quitting. And, of course, they blamed it on me. So I wrote to them an angry letter and they never replied to me, of course. On the PC you have a relatively high quality ad-lib music. That's why you can still find it on YouTube today is because folks really love this music. It was re-exploding the ad-lib music. So composed by Frédéric Manson, those of you who are French may have heard of a group at the time that was called the Voyage de Neuse and he was part of this band for a short time. And the cool thing for me as the author is that I have the original music as performed on a synth, which is much, much better. Now, if you want to check the source code and an article that talks about this, you can find them online. So the source code is 17K lines of assembly code, 68K assembly code, and the article is basically me ranting about the stuff that I told you about today, but going into more details for polygon drawing and stuff like that. And with that, one last QR code is I just released these books so for French-speaking people, if you want to buy this book, it's a very good sci-fi book. That way you can know what I do today. And that's about it if you have questions. So how much time do we have for questions? Three minutes for questions. Yeah, so he went to make a number of titles, like dozens. So he went to create a company called Edeline Software and then had a little big adventure, had a number of things like that. So many titles later. He stayed in the business. Me not being paid sort of disgusted me of that business. I said, it's not just for fun. Not that I remember. I don't think so. That doesn't ring a bell, but possibly. He has done so many things that I can't really touch. Yeah, so I said I did not get paid at all. That's not completely true. There is one good thing that came out of this and my wife is wearing was paid by this game. So the question is how did I manage to have separate color planets into player mode? So the Atari ST had this very nice feature where you had 16 registers which you could write directly to change the color. And it happened instantly. And one of the registers was used, color zero was used for the border of the screen. So what you did was basically you would sync, which was the vertical blanking interrupt. You would count how many lines had been displayed on the screen and when you had the right spot in the middle of the screen you'd flip the palette. That was somewhat tricky because it had to take into account whether you were at 60 hertz or 50 hertz and stuff like that. But it was somewhat stand out at the time. Now, I must say that this brings back another thing I wanted to tell you, but I forgot. A very interesting trick that you could do at a time and is really hard to do today is if you wanted to instrument how long some code took you could basically write into a color into this register and change the color when you exited the routine. And you would have on screen how much time it took. That's a trick I used on the ZX Spectrum and then on Atari ST quite a bit. Any other question? So the question is do I still have an Atari ST running the game? I have an Atari ST, I have two of them. I actually have the original one that was used to develop that and it happens to be a Stacey. The Stacey was the idea of a laptop and it had a built-in black and white screen which is why this game is also running in black and white because my own laptop was running this. Unfortunately, neither of them is running anymore. I have a larger collection. I have about 70 machines at all. I can't do something about it. At Atari ST I can't really repair it because it basically, well, I could need to replace the whole motherboard. The motherboard was damaged. I'm sorry? No, no, it was at the end that it was meant. So thank you very much for listening, please.