Advertisement

What should I learn first

Started by January 04, 2020 02:16 PM
16 comments, last by jomodev 4 years, 10 months ago
Advertisement

Every modern language support OOP, asyn, and exceptions. So what is the point? Maybe not RUST and C, but why would I use them?

C++ does not have to be bare metal. You can chose. But you get very unhelpful error messages and crashing compilers because of the many possibilities in C++. Also C++ has some specs which do not allow it to run on full speed on some processors (DEC alpha, Intel Itanium and maybe others). That spec is internal to the virtual machine in C# / Java and can be adjusted to the underlying hardware. Also these languages allow for self modifying code (managed by the runtime), which C++ cannot allow. So C# can be faster. It is not suitable for small routines which are loaded only once in a while. Loading is slow, scaling in server applications is slow.

Load data manually? Like decipher PNG header and decompress the data? Playing sound from RAM, like setting the DMA pointer of the sound card to the right address and hooking into the interrupt to refill the buffer? Draw the sprites using coordinates like on a C64? I mean, on a DOS PC I had to draw individual pixels and calculating the memory address from the coordinates. On a C16 additionally I would have to take into account the tiles. Even worse on a NES one would have to assign character codes and write to VRAM using port numbers and wait for Retrace to avoid snow on screen..

Are we talking about a level editor? I mean, I switched from PovRay to Blender, because sometimes I just want to fiddle with some values using a mouse and have instant feedback on screen. But only sometimes. Blender runs full speed in the wrong direction. The only PovRay-Like experience receiving love seems to be the shaders. No way to systematically create geometry, which I then could shade.

I mean, in C# even without unity all that is not really taking me big time. After my post I rememberd seeing on YouTube how unity integrates the Havock 3d physics debugger. Such a mature tool to find out about bad collsion shapes or too coarse time steps and stuff. I wonder if this is available in the free tier. This are things one only gets with professional tools.

Advertisement

arnero said:

C++ does not have to be bare metal. You can chose. But you get very unhelpful error messages and crashing compilers because of the many possibilities in C++. Also C++ has some specs which do not allow it to run on full speed on some processors (DEC alpha, Intel Itanium and maybe others)

I'm not sure what compiler your are using, but I do not experience compiler crashes unless I did something stupid. As far as C++ specs that do not allow it to run full speed on some processors, that is completely illogical. C++ is high level compiled language and it is up to the compiler to convert the code to a format that can run on a particular hardware. If there is an issue with a certain language feature that does not run properly on a processor, then that is the fault of the processor vendor for not providing a proper compiler for their device or them not working with a compiler provider to add the support or fix the bug. However since you are referencing old outdated architectures such as DEC and Itanium, then I understand where you are coming from.

This topic is closed to new replies.

Advertisement