How come many of you prefer to make games from scratch rather than use an engine?

Started by
24 comments, last by YucelKaramanli 11 years, 3 months ago
So my main question is that why alot of you use API/libraries like directx/opengl/sfml/allegro/sdl/xna and etc to make games rather than use an engine like unity/udk/troque? Doest using an engine make game dev a lot more streamlined and easier than using an api? What are your reasons?

If I were to make a 3D game, I will definitely use an engine like Unity, UDK or Torque. Developing a 3D engine myself as an indie developer is complete waste of time.

Many people who come to this forum underestimate the amount of work it takes to write an engine from scratch, and would say things like "I am going to make a full 3D MMORPG/RTS/RPG/FPS and I will write my own engine from scratch". Most give up after a short time. There are those who make progress, but I see a lot of abandoned projects.

For myself, I don't do 3D games. I do browser games. And I use libraries and engines whenever I can to cut down development time. We're game developers, not software engineers lol.

I used to use Adobe Flash, which makes it very easy to churn out games. Now, developing HTML5 web applications, I try to use Javascript engine whenever possible but because the technology is so new, there isn't anything as versatile as Flash yet. Most HTML5 engines are for platformers and physics based games. There are engines like Construct 2 but they are aimed at non-programmers and quite a hassle to use for programmers.

Advertisement
Whilst I dont often use a premade engine for my projects, I like to mix and match smaller individual libraries that do only one job but do it well.

Like if you look at a large engine (especially closed source ones) like Unity and then decide that you want to use your own Sound system it is very fiddly because Unity generally doesn't like the user loading in their own assets directly rather than going through their resources system. Or if you wanted to use System.Windows.Forms, Unity makes it generally impossible.

My typical setup is:
OpenAL
libogg
OpenGL
libpng
freeglut (Yes, I am a Glut lover)
libwavefront_ext (custom animation system)
tritri.c (A fast triangle-triangle intersect test by Tomas Moller)

So whilst this isn't a full engine, I can generally do anything, and it also means I can use task specific libraries / technologies when I need to (like ode physics, android NDK, OpenCL etc...)

If a platform doesn't support one of the above libraries, it is pretty trivial to just swap it out (using ifdefs). So I find this solution to be the most portable.

I see engines as being of two types: hobby engines that were designed to be more like game-making 'kits', a stand-alone product whose developer's sole intention is to maximize profits by creating something that appeals to a greater audience of people that just want to make games (non-coders) without knowing anything...
Yes this is the latest trend to turn would be developers into consumers. I feel that a lot of people are missing out on useful experience and education by misusing tools like Unity without really knowing what is happening. (Using it more like Microsoft Office than a development tool).
I occasionally do some programming lectures at university and was shocked when the students were starting to learn Unity for one of their units!
Nowerdays the students from UNIX system programming units can make better (portable) games than those on Entertainment Media (Games) Development courses.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

For me it boils down to two things:

1. Ready made engines are bloated, and my games are small.

2. Curiosity - I like to understand how stuff works. (That's why I started programming in the first-place)

When it comes to things which don't interest me much, like audio synthesis, I use engines without a second thought.

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

At this point in my skill level it's as easy for me to learn how to do it from scratch as it is to try and figure out how someone else did it from scratch.
That might change later, but it's true for now.

Also, it's /mine/.

Plus, like a few other people said, it's FUN! <3

I like engines. But more importantly, I like well abstracted, stable, flexible libraries. Isn't it great to wake up in the morning and realize there is a new 1.x.x release for one of the libraries you are using? It's like another person on the team did the job while you were sleeping. Same thing applies to engines.

I finished my uni about a year ago. Although it was a uni course of game dev, and A.I, most of the thing we learned how to use existing game engines. Which really made me mad because we were still far from understanding how things ACTUALLY work. In a perspective of a programmer, i would assume too much abstraction can become a really annoying issue because we can not kill our curiosity towards how things works. After i finished the uni, i started doing something more ambitious, creating my own engine so that i could finally appreciate the complexity of making games. I still got a long way to go. i would still consider myself a newbie. However, i can now gladly admid i can understand some of the complex algorithms of a game engine. Long story short, Learn from making an engine. it benefits a lot even if we are using an existing game engine.

This topic is closed to new replies.

Advertisement