That's very interesting, and would definitely solve a lot of the problems with hot-reloading code.
>> There are many different versions of lisp, some of them are used for scripting, but most implementations of Common Lisp could be used for almost anything.
I was talking specifically talking about uses inside of production quality, high performance (e.g. AAA-quality) game engines. The only usage of lisp that I know of is inside Naughty Dog (Last of Us, Uncharted, Jak and Daxter, etc), who have used it internally for a long time. I hear they're lisp nuts, but even they don't try to write the game engine in it.
> Write version 0 in a high level language. Figure out the design and representation. Then rewrite the slow parts in a more efficient language.
For something small, retro, or 2D then maybe this could work. For anything else, this would be setting yourself up for failure.
You'll end up rewriting all or most in C or C++. This will cause you to miss deadlines and generally people will shit on your game on the internet.
Maybe it will be fast enough at this point, but odds are it won't. It will probably have the same problem as most game engines written in a high-level style, even if they're in C or C++. You'll fire up a profiler but there won't be any optimization targets. The whole program will be more or less equally slow. This is because you didn't design with memory access patterns in mind. 90% of the code will be spent waiting for memory to load during a cache miss.
Eventually, the game will be released and will struggle to hit 30fps. People will continue to shit on the game online, and that's if anybody bothers to play it.
Since you're starting now, it will probably be at least 4-5 year in the future, so even if 60fps expected by everybody yet, the oculus rift will be out, and anybody who plays your game on that will have a bad time. On the oculus, the framerate needs to be at least 90fps, or you risk inducing nausea. That means you have 9ms to update, and do two renders of the game (one for each eye), and if you can't make this target, your game isn't just slow, it's actively harmful to the users.
The only way to avoid this is to think about memory usage, access, and the cache from the very beginning. At that point, maybe you could still write it in lisp, but any benefit it would have given you is gone.
I've seen most of this first hand (on engines that were written in C++, but ignored the cache), and it really sucks.
That's very interesting, and would definitely solve a lot of the problems with hot-reloading code.
>> There are many different versions of lisp, some of them are used for scripting, but most implementations of Common Lisp could be used for almost anything.
I was talking specifically talking about uses inside of production quality, high performance (e.g. AAA-quality) game engines. The only usage of lisp that I know of is inside Naughty Dog (Last of Us, Uncharted, Jak and Daxter, etc), who have used it internally for a long time. I hear they're lisp nuts, but even they don't try to write the game engine in it.
> Write version 0 in a high level language. Figure out the design and representation. Then rewrite the slow parts in a more efficient language.
For something small, retro, or 2D then maybe this could work. For anything else, this would be setting yourself up for failure.
You'll end up rewriting all or most in C or C++. This will cause you to miss deadlines and generally people will shit on your game on the internet.
Maybe it will be fast enough at this point, but odds are it won't. It will probably have the same problem as most game engines written in a high-level style, even if they're in C or C++. You'll fire up a profiler but there won't be any optimization targets. The whole program will be more or less equally slow. This is because you didn't design with memory access patterns in mind. 90% of the code will be spent waiting for memory to load during a cache miss.
Eventually, the game will be released and will struggle to hit 30fps. People will continue to shit on the game online, and that's if anybody bothers to play it.
Since you're starting now, it will probably be at least 4-5 year in the future, so even if 60fps expected by everybody yet, the oculus rift will be out, and anybody who plays your game on that will have a bad time. On the oculus, the framerate needs to be at least 90fps, or you risk inducing nausea. That means you have 9ms to update, and do two renders of the game (one for each eye), and if you can't make this target, your game isn't just slow, it's actively harmful to the users.
The only way to avoid this is to think about memory usage, access, and the cache from the very beginning. At that point, maybe you could still write it in lisp, but any benefit it would have given you is gone.
I've seen most of this first hand (on engines that were written in C++, but ignored the cache), and it really sucks.