CppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”

preview_player
Показать описание


The Commodore 64 was released in 1982 and is the best selling computer model of all time. At 34 years old, even the most simple embedded processor today outperforms it. Join me on an exploration of how C++17 techniques can be utilized to write expressive, high performance, high level code for simple computers. Together we will create a game for this aging system.

You'll leave the talk with a better understanding of what your compiler is capable of and be able to apply these ideas to create better code on modern systems.



*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

I know this video is 3 years old, but I keep referring people to this video because it's doing such a great job at dispelling some misconceptions. Unfortunately, there are no closed captions available for this video, which prevents me from showing this video to a deaf co-worker.

I know generating *proper* captions would be a mammoth undertaking, but I would appreciate it if the automatic captions for this video would be enabled. Thank you in advance.

MartijnvanBuul
Автор

To me this is THE best C++ presentation in the post C++11 era. Have watched it twice. Entertaining, interesting (inspired use of retro-computing as a hook), and informative/educational in respect to C++ the language

TheSulross
Автор

Who else came to watch after hearing Bjarne reference this talk on Lex Fridman's AI podcast?

depthone
Автор

"Can we do this with some overhead or no overhead?"
The answers to that question continued to surprise me over and over again! It's one thing to be told to trust the compiler to optimize for you, it's another to see it in action! Thank you very much Jason for this enlightening and encouraging talk!

YuTe
Автор

Is truly amazing to see the optimizer in action, maybe we can port Unreal to C64 with some constexpr

MaherBaba
Автор

A lot of languages can seem to drift toward use in producing ever more bloated software as the language sophistication and their communities mature and evolve over time. And yet C++ is getting better abstractions for making the chore of programming easier while seemingly doing a better and better job of generating efficient software. This talk was an eye opener in that respect. (And Rob Irving's and Jason Turner's C++ podcast surely deserves a plug - kudos!)

TheSulross
Автор

Amazing to see truly modern development tools being used to develop code for the C64.

jkeelsnc
Автор

28:00 that was SUCH a badass moment haha
Just * mic-drop * :D
Or actually, more like "Cool guys don't look at explosions"-moment ^^

chillyvanilly
Автор

Amazing talk! You can show this presentation to C programmers and convert them to C++. It's hard to convince them without showing 0 overhead. :)

rahulsrma
Автор

Absolute madness. I'm amazed every time I dig into the low-level aspects of C++.

Some of the question askers were twits though. "Hey did you try this? Do you know about this? I know about this! I KNOW THINGS! I'M THE BEST!"

SqueakyNeb
Автор

Excellent presentation, It was like seeing magic how compiler can optimize code .

R_BNK
Автор

Funnily enough, now they're selling modern very flat keyboards with Raspberry Pi inside, so in a sense you can get a super computer version of Commodore 64. Just a lot thinner and faster.

I guess this talk is a great demonstration of why Rust having immutable as default is so great. Before starting to learn Rust, I never paid that much attention to making things const in C++, only some things that were like default values, something like PI. But I started passing const references a lot more after touching Rust.

It's hard to name all the things this talk demonstrates about C++ (but obviously the summary of zero cost abstraction was huge), but it's pretty great in showing all kinds of parts about programming in C++. I don't want to see smart stuff if this is the stupidest thing to do, this is what I'm up for.

Yupppi
Автор

Did something similar in a small hobby project of defining a gameboy CPU dispatch table as a set of traits, with each opcode handler generated from a combination of inlined functions which end up operating directly on the memory representing the emulated CPU state. Compilers are smart.

devnull
Автор

I just started to learn C++ and the video was amazing. Thanks.

KorayYILMAZ
Автор

22:00 Every copy of Commodore 64 is personalized

perguto
Автор

Cool!!! (And I wrote quite a bit of assembler for the 6502, back in the late 70s for the Apple IIe!!!)

drstrangelove
Автор

Awesome talk!
Would be interesting to see some of the homebrewers getting inspired by this

Joefish
Автор

Crazy good. I appreciate seeing the possible optimizations and some of the new language features I need to pick up on. Good talk!

curtnichols
Автор

Extremely good presentation, near perfection

MindGameArcade
Автор

27:15 im going to show this to anyone who complains that I overuse const

steffennilsen