4 ms·
Writing game engines in C++ without using any OOP features, makes perfect sense to me. Other than the author likes C, he failed to show me why his approach is b
by slacka 7y ago
Writing game engines in C++ without using any OOP features, makes perfect sense to me. Other than the author likes C, he failed to show me why his approach is better than yours. I found it very light on details.
- ncmncm 7y agoWriting game engines in C++ without using destructors is just foolish. If by OOP you mean virtual functions? Nobody uses that stuff much anymore, except Java refugees. (They use shared pointers, too.) But, anyplace you would use a function pointer in C, it's cleaner with a virtual function, and often faster.
- skohan 7y ago> Writing game engines in C++ without using destructors is just foolish. Why? My understanding is that in modern game dev you're mostly traversing large arenas of structured memory, and you avoid freeing individual objects like the plague.
- Const-me 7y agoMemory is just one kind of resources. Games do tons of I/O, often gigabytes/second. To illustrate, any PC game has a lot of places which call GPU driver like this: D3D11_MAPPED_SUBRESOURCE mapped; context->Map( buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped ); // Write memory address pointed by mapped.pData context->Unmap( buffer, 0 ); With C++ RAII, you can do something like that instead: MappedBuffer mapped{ buffer } // Write memory address pointed by mapped.pData. // No need to do anything else, the destructor of MappedBuffer will unmap.
- ncmncm 7y agoThis. Freeing memory is the least important job for destructors.