Jump to content

Frameworks Vs Game Engines


Pooya72
 Share

Recommended Posts

im new to the world of html5 canvas and online game developing, and at the beginning im facing with an important question. which way to create games ? 

 

using engines (specially unity, construct2 and Game maker) or frameworks (specially Phaser).

 

as i said above im new to Html5 game develop but as a web developer since 5 years ago i familiar with coding itself.

 

I've not seen so many comparison topics (between frameworks and engines) so please post your experiences and some details about yourself to help Game developers all over the world not just me .

 

Thx
 

Link to comment
Share on other sites

I've not seen so many comparison topics (between frameworks and engines) 

There's industry-wide confusion about the difference between a "framework" and an "engine."

Some people think they're different, others think they're the same.

Ultimately it doesn't matter.

All you need to know is: these are all things that let you make games.

 

How do you like to make games?

If you like making them with a drag-and-drop UI, you'll like Unity, Construct2 and Game Maker.

If you like making them from pure code, you'll like Phaser.

 

From your list of "things with which to make games", you should know that Unity is not an HTML5 technology.

If you're want to make games for mobile and desktop, and don't care about the web, use Unity.

 

If you want to target the web, use one of the HTML5 things: Phaser, Construct2 or Game Maker.

Their features are all pretty comparable and they're all really good, so just use whichever one best suits your development style.

You don't have be too picky; just think of it like shopping for a new pair of shoes.

 

Hey, you're on the Phaser forum, so you might as well go for Phaser!

Link to comment
Share on other sites

In my understanding engine is something more than framework... It is existing construction, where framework is just a blueprint. 

 

My short list of pros and cons:

Engines:

 

Pros:

  • you can get up and running really fast
  • often doesn't require programming knowledge (Construct, GM)
  • you can export your project to many different plarform

Cons:

  • you are closed in architecture of engine
  • it can be impossible to debug thing if there is a bug in engine
  • using pseudo-code slows your develop as programmer

 

Frameworks:

Pros:

  • you are working in the real code (you are gaining real experience)
  • it is more flexible, gives you more freedom
  • because you can deliver code, open door for contract work

Cons:

  • learning curve for non-experienced can be quite high

 

 

In my opinion using framework like Phaser is much better long term choice if you stick to HTML5.

Link to comment
Share on other sites

It doesn't have to be one or the other, it can be both... with WADE we've been trying to develop something that's both a framework and an engine, meaning that you drag and drop things and have a visual interface, but you can also write as much (or as little) code as you like. Not pseudo-code either, just normal javascript, so all the Pro's listed above and none of the Con's :)

 

I hope more people will follow the same approach with other frameworks and I know that a couple of them are evolving in the same direction, adding visual editors to existing code-based frameworks.

Link to comment
Share on other sites

Thx sodomo for your detailed and constructive answer i just need to add exporting game for diffrent platforms is not only for engine users, programs like intel xdk makes it possible to do same with pure JavaScript and frameworks too.

Thx gio for your new perspective.

Now it seems coding is the best option for someone like me but im curious to know how much using a game engine may help you to speed up game developing by average ? Half time or less ?

Link to comment
Share on other sites

  • 1 year later...

Sometime back I wrote Library Vs Framework vs Engine in an attempt to clear up some of the confusion between these terms.  That said, the line between and engine and a framework can become awfully blurry.

 

As to which to use, it really comes down to you.  An Engine is generally higher level and offers greater productivity, but the cost is less flexibility.  You either like the way they implemented their solution or you dont.  A Framework often provides many of the tools you need, but you will often have to build on top of them, often needing to add things like a scene graph or creating tools.  Of course, and especially in HTML5, you can also build your own from scratch by bringing together various libraries ( Box2d, Pixi, etc ).  If you find a good engine that fits your workflow, it's going to save you a ton of time and effort though.

Link to comment
Share on other sites

On 2.6.2015. at 6:18 PM, Pooya72 said:

OK let us start from the beginning.Many people want from Windows OS to jump into game(software) development straight away but they always skip power user segment which is important.Basically see farther than your nose and start digging.If you are coming from Windows OS environment Game engine weather GUI or not is short term solution that can help you to see all aspects of the game development,but as i said,short term solution for 3 to 5 years top.With Game engines you do get convenient approach,but in game engine bugs,having your project always compatible with game engine latest version,being stuck with current software versions simply because engine can't parse an update,unpredictable bugs and compile errors that you can not solve etc.Once you end up debugging whole engine weather its open or closed source,once your game creation in that engine start to expand and become more complex than actual coding,then its time for you to change things.I am saying this because that is what i am doing at the moment.Until then keep using game engines until you learn basic concepts of game creation.

PS:

Don't skip power user segment.Try all GNU/linux and BSD/other operating systems that are out there,take a look at game emulators and experiment with them,try even to make some homebrew game so you could just compare the performance .Get some mobile console no matter how old/new it is and try to make simple hello world running on it and have some fun!

Regards
 

 

Link to comment
Share on other sites

If you were to list the features of a framework and an engine (without examples) I'd guess you'd probably end up with almost the same list. I've rarely heard the term engine outside of gaming and there seems to be a confusion as to what that means, to me it seems to be used to represent the same as a framework i.e. a collection of libraries that drive towards a defined goal.

From your example though, framework seems to be constrained to game code whereas maybe the engines you've listed have additional features like a build and release pipeline (?), although in other web disciplines frameworks often take on this role as well (i.e. Angular 2 has its own build chain, so too for the Ionic framework which builds a top it and can release web-tech based code to various platforms).

In either case it really comes down to how hands on you want to get. For me the difference between framework and library was best summed up by Paul Lewis (paraphrased), "I can use libraries when I need in code, whereas frameworks run the show and sometimes let me do a little bit of coding". This is further backed up by this article. The short of it is that frameworks deal with a lot of common issues when developing apps but they generally force you to do it their way, they run the show and they have little windows into them where you can actually write some code. Libraries are generally the opposite, they allow you to compose them (through clean and good APIs) to produce whatever you want, you run the show and you employ them to help solve common issues.

Phaser, for example, is a collection of smaller libraries, which, in my mind, is exactly how a framework should be (specifically Pixi and P2 but most of the other modules it uses could be released as standalone with probably not too much effort). JS is a very flexible language and its approaching a decent level of maturity now, plus, in npm it arguably has the best module system of any language, so it lends itself to being composed in this way.

tl;dr

If you want to jump right in and don't mind being cornered then a framework is your best bet. Quick, but ultimately less performant.

If you enjoy coding and don't mind an initial setup period then composing smaller libraries into your own app-specific framework is preferable. Slower (at least initially) but potentially more performant.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...