3
\$\begingroup\$

I'm a programmer. I've experience in Java, python, and c++. I see that some big games are built using game engines (Crysis uses Cryengine). However, other don't (Bayonetta for example). what's their approach ? Do they start coding from scratch using OpenGL or Directx ? is this approach feasible considering time, cost, porting to many platforms ?

I want to know what's the options before I start

\$\endgroup\$
3
  • 1
    \$\begingroup\$ If you can think of it, someone has done it that way. (Yes, some code from scratch.) \$\endgroup\$ Jan 16, 2015 at 4:08
  • 1
    \$\begingroup\$ One size does not fit all ;-) \$\endgroup\$
    – Kromster
    Jan 16, 2015 at 5:23
  • \$\begingroup\$ Since when the question "How did they do it" is opinion based?? \$\endgroup\$
    – kolenda
    Jun 1, 2017 at 15:54

2 Answers 2

2
\$\begingroup\$

The different options out there are essentially as follows:

  1. Engine. An engine provides you with a high-level API through scripting and gives you many visual and non-visual tools to work with it. With an engine, you probably don't touch it's code, and the only thing you provide are resources which the engine loads at start of execution and that's it. Example: Kerbal Space Program, Unity Engine.

  2. Scratch. In this case you write the entire program from scratch and optionally integrate some libraries. Pretty straightforward. Example: Super Hexagon.

  3. Framework. A framework provides a common interface for all of it's different components. To use it, you incorporate it into a program written from scratch. Most times, you will find that you go into the frameworks source code and modify it to suit your needs. Example: XNA Framework (now obsolete :( ).

\$\endgroup\$
1
  • \$\begingroup\$ Note that even with #2 here, most people make use of some existing library or 'middleware' for some aspect of their game. \$\endgroup\$ Jan 16, 2015 at 16:05
2
\$\begingroup\$

The real question is what are you goals for this project?

If you have a specific game in mind and just want to 'make it happen', then using something like Unity or Unreal is the sane approach. Creating an entire engine for anything but the simplest games is a huge endeavor.

If, on the other hand, you are trying to gain skills and/or create a demo to land a job in the game industry, then writing your own engine is more likely to teach you more and be more impressive. You won't get as far, but you can demo technology without demoing a whole game.

Do you have experience coding with OpenGL or DirectX? How about audio APIs like OpenAL, XAudio, or middleware like FMOD? If not, you have plenty to learn before you can really write your own engine.

\$\endgroup\$

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