Jump to content
  • Advertisement
Sign in to follow this  
Undeadlnsanity

Low-level and high-level

This topic is 4750 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've wondered for a while and have found no answers anywhere. What's the difference between low-level and high-level implementations? E.G. Low and high levelled networking, audio, graphics etc. I'm guessing low-level is DIRECT interaction with hardware, where as high-level is the opposite. E.G Low-level graphics would communicate directly with the graphics card. Thankyou in advance.

Share this post


Link to post
Share on other sites
Advertisement
Your guess is correct as far as I understand it. Low-level means interacting with the hardware instructions directly whereas high-level means communicating with the hardware via an API (Application Programming Interface) of some kind. Of course, there's a whole spectrum of intermediaries, for example: the DirectX API is largely hardware independant, but is platform specific.

Using an API is generally easier and ensures your program isn't totally dependant on the hardware specifics (so that you could try swapping in something else, such as OpenGL for DirectX). However, this high-level interaction often comes with a cost: the functions tend to be very general and may not take advantage of hardware specific features. That's the point where you would have to go in and write some low-level code to communicate directly with the hardware, e.g. if a graphics card had extra shader instructions.

Share this post


Link to post
Share on other sites
It's to do with control.

Imagine the system as an international corporation. There are people at high levels and people at low levels.

The people at low levels will generally have a very good grasp of what is going on and will be responsible for actually getting tasks completed. However, they don't really have the power to mess with the company as a whole - only their area of responsibility.

The people at high levels have a massively filtered view of what is going on, as their information comes to them through layers upon layers of reports and summaries. The decisions they make are broad, sweeping things that can affect the work of many low-level people.

Share this post


Link to post
Share on other sites
It's all relative. But, low level doesn't necessarily mean interacting with the hardware directly. Winsock is usually considered to be low level, but there are still two or three layers between you and the hardware when working with Winsock. Another example is that C now a days is considered to be low level but compared to, for example, assembly it's more like medium level. On the other hand, C++ used to be considered high-level, but compared to languages like C# or Java, it's not so high anymore.

Essentially, when you say something is higher level than something else, it presents a greater level of abstraction. You're more concened about what it does rather than how it does it.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!