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

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Note that even with #2 here, most people make use of some existing library or 'middleware' for some aspect of their game. \$\endgroup\$ – Chuck Walbourn Jan 16 '15 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.

| improve this answer | |
\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.