Advertisement

Game Engine or custom game engine?

Started by February 01, 2019 06:48 PM
40 comments, last by JoeJ 5 years, 7 months ago

Hello there! I am new to the GameDev community.

I am a currently a software engineer student at college. As much as I love programming I don't like how this program is introducing me to the programming experience. I have been programming for around 7-ish years with Java, C, C++ and HTML (CSS). I got into software engineering hoping to get into game development but I have been disappointed with the results in this program.

I applied for game development at college but they asked for a portfolio of things that I have done, and to be honest I have not done anything special or anything that would turn heads. So I just went into software engineering.

**QUESTION STARTS HERE**

I have been wanting to create my own game (for the experience) to show potential employers. Full 3D gameplay with decent game mechanics. 

My question is... Should I create this game in a custom engine (or no engine, just straight hard coding) or should I be looking into creating a game using Unity or Unreal (*not using blueprint*)?

I am looking to have a somewhat professional looking result but at the same time I know that by myself I won't get anywhere close to a modern game without a team.

If anyone has some experience in either of those game engines (or others), please let me know your thoughts and how I should approach game development.

Generally speaking, most of your knowledge will be ascertained through initiative. College is great, and in my humble op-onion (though others have had different results, and may have a different perspective) a generic software engineering degree has the potential to open up more doors than a Game Development degree. So I would recommend sticking it through if you're having second thoughts.

Insofar as the engine v.s. custom engine it's probably worth noting that the term, "Engine" gets thrown a bit much. Many people extrapolate it to many things. Generally, when i think engine, I think the works, scene-graph, full blown editor, drag&drop shaders, nice high-level api for the object logic, etc. While this is a route you could go. It could take awhile. That doesn't mean it's not worth itand you wouldn't learn a lot through the process it's just a matter of how quickly you want to get items into that portfolio. 

To clarify,

You can still create a game without any engine. Right, kinda what you eluded to in your post.  This  takes us down a step further with actually _talking_ to an API that'll assist you in rendering graphics, and in most cases, only that. (Take Direct3D for example. That api has been trimmed down in recent years to basically be an interface for just your GPU pipeline. While optional APIs like xinput, and friends existing under the umbrella of the DirectX platform). I can code a game with  the API boilerplate, and game logic tailored just for that game. Sure, this will likely, if coded well, result in re-useable code, but that's a far cry from an engine type experience. 

There are also lots of game oriented frameworks out there. Tools that don't truly rise to the level of an, "Engine experience" but abstract lots of the underpinnings you would need to handle yourself at the API layer. SDL is the first to come to mind, but I'm fairly sure that's 2D exclusively. However, there are 3D rendering frameworks out there as well that aren't coming to mind atm. I'm sure other members could fill in that omission 

Working with pre-built engines is also fine! You can do some great stuff very portfolio worthy with most engines nowadays. From what I hear from the grindstone around the forums is UE tends to have a slightly higher learning curve than unity, but I'd still think both would be a good choice. 

In summation, all the options you mentioned are fine, it's just a matter of what you want your portfolio to look like, and how quickly: 

  • Do you want to show off a WIP engine, that, sure, doesn't really render much of anything interesting to the screen, but has a solid design. 
  • A game that is of limited means in the art department, but has some cool gameplay mechanics
  • And (optionally) some engine experience Unity/UE4 thrown in 
Advertisement

It might also depend on what the OP would like to do. If he wants to do game logic and AI, then for sure using an existing engine will help. But if he wants to be a graphics programmer, network programmer or so, then showing that he could have done it the hard way will certainly be noticed.

1 hour ago, Samiorga said:

My question is... Should I create this game in a custom engine (or no engine, just straight hard coding) or should I be looking into creating a game using Unity or Unreal (*not using blueprint*)?

This is entirely up to you - and where you aim with your career or company. One advice though, make SOMETHING which will prove that you can finish something. I'd say that even simple games for game jams count (like Ludum Dare).

Few remarks:

- there is nothing like 'no engine' or 'straight hard coding' - any moderately complex project will require you to structure your source in some way, that will be re-usable to some extent, at this point it is an engine

- lots of people tend to mix up engine and toolset, making tools for engine to be actually usable is very time consuming (I actually post about that from time to time)

2 hours ago, Samiorga said:

 I am looking to have a somewhat professional looking result but at the same time I know that by myself I won't get anywhere close to a modern game without a team.

This is simply based on the scale of the project. You can have professionally looking result by yourself, it all boils down to how much time are you willing to invest in such project.

For this I'd point you out to F.e. mapping challenges for Counter Strike or such, it is common that they're made by one person (or few people at most), often including assets. Bear in mind though that they dedicate lots of time to get single high quality map.

It is all about desired quality and size of the project. Making high quality, small project, is definitely possible.

2 hours ago, Samiorga said:

If anyone has some experience in either of those game engines (or others), please let me know your thoughts and how I should approach game development.

My advice is - try all of the mentioned. I'd even go further and advise you to make at least one project per either of those engines, and even one by yourself. It doesn't need to be extremely complex or huge - keep it simple and small. Learning multiple tools and applications is viable in any industry, not just game.

And most importantly - make whatever you enjoy making.

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

Hi @Samiorga, I am not a trained developer myself, but I've been programming a framework/tool-set for close to five years.  What I've learned during this time is that there is a distinction between a framework/tool-set and a game.  a tool-set or the more ambitious game-engine is largely, if not entirely, a technical undertaking. A lot of problem and how-to solving.  I think if it as more objective thinking.  To contrast that, game development involves huge amounts of creativity and design.  Taking a subjective experience you've conceptualised and having to turn it into something that in the end is hopefully enjoyable for the user.  A much different style of thinking.  I'd say in my opinion the former, the technical undertaking, is easier and the results can be depended upon.  The later requires a higher level of execution to achieve something that is fun.  

Just my two thoughts.

I make a different distinction between a framework or engine and a toolkit.  To me, an engine is a readily just the reusable technical underbelly for a game, a body of code that takes care of a large amount core functionality (graphics, sound, resource management, IO, events, etc.) that can be used across a large number of games -- which may or may not be of a variety of types / genres.  A toolkit to me is some like an SDK / GDK possibly including editors for resources as well.  The idea that a game with "no engine" might later turn into an engine for other games is, well, how engines, in general, got started -- "Hey, wanna license our Doom engine?"  "Hmmm, let's build on our code from Unreal for Unreal II, and while we're at it, license it for whoever will agree to out terms and pay a royalty."  So, building a game with "no engine" could be the first step in creating the engine it implicitly contains  -- even if it's not as big or as flexible as Unity or Unreal (the Doom engine was basically a shooter engine, you wouldn't go 2D with it).  Perhaps that might even be the best way to start an engine?  Personally, I'd like to develop my own engine / engineless game and get into using one of the major engines as well; whether or not that is for you I cannot say.
 

Advertisement

If you want to learn technical details make your own engine. If you want to learn practical details that will be applicable to your first job search, use a pre-made engine like Unity or Unreal. Lots of entry level positions either require or prefer candidates with big engine experience.

Wow! So many responses!! I guess this may be more then a straight forward answer. Looks like I have a lot more options to go for when deciding whether I want to make my own custom engine, toolkit or pre-built game engine.

22 hours ago, Vilem Otte said:

My advice is - try all of the mentioned. I'd even go further and advise you to make at least one project per either of those engines, and even one by yourself. It doesn't need to be extremely complex or huge - keep it simple and small. Learning multiple tools and applications is viable in any industry, not just game.

And most importantly - make whatever you enjoy making.

I like this idea a lot. I think that I will go towards this route at first. To use a pre-built game engine (Unreal and Unity) for starting off. By doing this I will be able to have some experience for employers and I will get familiar with the programs. I want to get to know how to use these and the mechanics of the program before I can get started with building my own engine/toolkit. I know that creating an engine will be difficult and will require lots of work towards making it functional. 

So much insightful information to has been given to me. Thanks to everyone for responding to my question.

On 2/1/2019 at 3:59 PM, Vilem Otte said:

One advice though, make SOMETHING which will prove that you can finish something. I'd say that even simple games for game jams count (like Ludum Dare).

I'm afraid I have to disagree. This was good advice once upon a time when making finished looking projects was really difficult. That's no longer the case, to be candid about it. Between the big engines and asset stores for those engines and plentiful samples, making a finished simple game is about the least useful thing. It's no longer a good marker of competence or tenacity, and employers are beginning to catch on to this fact.

If your goal is to just get a job on simple games-related work (mobile games or entertainment app type stuff), go ahead and learn Unity and throw some stuff together. But if your goal is serious AAA game development, do something that demonstrates heavy hitting technical competence. Don't write a game - write something that is legitimately challenging. Show off some sophisticated graphics techniques, maybe something with advanced custom physics, or something with interesting complex gameplay.

I'm not going to speak for hiring practices across what's a very diverse industry these days. But we develop our own engine and tech, and at this point I'm outright discarding any candidate who can't show me a track record of building interesting technical work from scratch.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
1 hour ago, Promit said:

I'm afraid I have to disagree. This was good advice once upon a time when making finished looking projects was really difficult. That's no longer the case, to be candid about it. Between the big engines and asset stores for those engines and plentiful samples, making a finished simple game is about the least useful thing. It's no longer a good marker of competence or tenacity, and employers are beginning to catch on to this fact.

Having anything is definitely better than nothing, although I definitely agree on point that making a simple game is not really a challenge anymore (you can just buy most of it on asset store and put it together in Unity or UE).

Speaking from my point of view in my location (this will heavily differ based on location) - majority of candidates won't have anything to show you at all. If you're lucky there may be some with technical background from university (thesis), seniors don't go into game industry that often around here.

Proving that they can actually finish something is an advantage, of course having more complex projects puts you at advantage/disadvantage compared to others. In some companies asking all candidates to do a technically challenging project and giving them a time range between few days and few weeks was used (for junior positions they didn't even need to have anything other than doing this).

1 hour ago, Promit said:

at this point I'm outright discarding any candidate who can't show me a track record of building interesting technical work from scratch

Out of my curiosity - Can you elaborate a bit on that 'from scratch'?

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

This topic is closed to new replies.

Advertisement