10
\$\begingroup\$

I have a strong programming background just not from game development. I only made some pong and snake in high school and I did some OpenGL in college.

I want to make my own game engine. Nothing fancy just a simple 2D game engine. But because I'm kinda old school and feeling retro. I want graphics to look like old 8 bit games (megaman, contra, super mario, ...).

So how were the old games made back then? I want the simplest approach. Were they also using assets (images) like newer engines now do? How do you achieve this kind of rendering using OpenGL?

Keep in mind. Simplest solution. I want to know how it was made back then and how I can replicate that. Doesn't even have to be OpenGL. I can draw on window canvas. I do want to make it from scratch basically.

\$\endgroup\$
8
  • 6
    \$\begingroup\$ 8bit graphics are a matter of assets and not programming, I suppose you could limit your color palette in the code, but that sounds a little too much just for the old school feel. \$\endgroup\$
    – Luke B.
    Nov 26, 2012 at 19:13
  • \$\begingroup\$ If you want 8-bit like graphics, limit the color palette when you make your art assets and always use nearest-neighbor filtering on textures. \$\endgroup\$ Nov 26, 2012 at 19:14
  • 3
    \$\begingroup\$ Where to get started and which technology to use questions are off topic for the site. See the FAQ to learn what types of questions to ask here. You could try rewording your question to just ask about how to render 8bit graphics, and remove everything about making a game engine. \$\endgroup\$
    – House
    Nov 26, 2012 at 19:19
  • 1
    \$\begingroup\$ What Byte56 said - this could be a great and useful question if you reworked it to be more specific to a precise topic. \$\endgroup\$ Nov 26, 2012 at 19:34
  • \$\begingroup\$ Changed. Hope it's better now. \$\endgroup\$ Nov 26, 2012 at 19:47

1 Answer 1

7
\$\begingroup\$

So how were the old games made back then?

Completely differently -- more akin to what we would now call "embedded system programming". Mode-based graphics from 8-bit consoles and arcade boxes were driven by the hardware, not the software. The game code (typically assembly) poked specialized memory on an instruction-schedule (e.g. X instructions per scanline).

How do you achieve this kind of rendering using OpenGL?

Texture-map a quad with filtering turned off. Better yet, batch several quads together and atlas the assets for better performance.

\$\endgroup\$
4
  • \$\begingroup\$ "atlas" the assets? What does that mean? \$\endgroup\$ Nov 26, 2012 at 22:03
  • \$\begingroup\$ Pasting multiple images onto one texture image and "picking" which to show using the quad's UVs. So, e.g., all the background tiles could gridded onto one texture sheet, and then you only need to bind one texture before rendering the background layers. \$\endgroup\$
    – Max
    Nov 26, 2012 at 22:22
  • \$\begingroup\$ Oh. Something like sprites? \$\endgroup\$ Nov 26, 2012 at 23:37
  • \$\begingroup\$ @Matjaz: Very much like sprites. That word meant something different long before 3D graphics accelerators came along. \$\endgroup\$ Nov 26, 2012 at 23:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .