Jump to content

Which HTML5 engine/framework and coding language to choose?


fsquier
 Share

Recommended Posts

*Older than Pixi, since Phaser is built on Pixi so it doesn't receive updates so fast, and as I understand Pixi is for making multimedia, Phaser is 'Pixi strictly for making games'. 

 

To me Phaser feels like simplified Pixi, because games made in Pixi have better graphics and so on - I know, I am probably wrong.

On the other hand Pixi has no examples and lacks tutorials.

 

I guess, I need somebody to confirm me that I can make games in Phaser that are as good as Pixi games, quality wise and tel me what is the difference between Phaser and Pixi.

 

Pixi.js is just a rendering engine. Phaser is Pixi + a game framework (Sprites, Sound, Physics, Animation, TileMaps, etc).

 

Download the latest dev version (https://github.com/photonstorm/phaser/archive/dev.zip), you'll have a very up to date Pixi.

Check out the examples (e.g. Display/Pixi Render Texture). With a little effort you can copy Run Pixi Run too.

Link to comment
Share on other sites

it's used by Photon Storm's projects but their games are mostly games made for kids)

 

Be careful buddy, you may fall in the old trap like many of our ancestors did...

"the awesome game trap  :o "

kids games are really hard to do, specially in the design process, making something easier enough to be played by kid but challenging enough to keep the kid hooked to your game is not an easy thing to do.

In case you didn't heard about Tornado Twins, i highly recommend that you read this article specifically made to help you avoid "the awesome game trap  :o "

And i can put a vote for this right now,

unless you didn't make a dozens of crappy unfinished prototypes and a couple of published but failed games, you will never be able to create your awesome game, and the best way to practice until that point is to make small games or kids games. 

 

In-topic: 

Because i cannot work without an OOP structure, my only choice for HTML5 are either Phaser with TypeScript or LibGDX (java) but i recommend Phaser cause to use LibGDX you need to learn Java and all that comes with it, which is a pretty cool thing to do by the way, but just to motivate you a little bit about Phaser,

  1. Phaser can draw and animate sprites
  2. Phaser allow user Input (keyboard,mouse and touchscreen)
  3. Phaser can draw Fonts
  4. Phaser can handle physics
  5. Phaser can play sound
  6. Phaser allow files input/output (i think) 

 And the list will go on, but with this element only you can make ALL sort of 2d games that you can ever imagine, all you need is practice and passion, but more than everything, you need to set a goal, define which game you want to make, and don't quit until you made it (beware of "the awesome game trap  :o ") 

Recommended games to made (in order)

  1. 2 players-Pong                  : you'll learn user input, movement and basic collision along with basic structure of any game (menu,score,win and lose)
  2. AI-Pong                             : Congratulation, you're just created your first enemy 
  3. Tetris                                 : Basic tile and array manipulation (actually it's kinda advanced) 
  4. Pacman clone                   : Say Hi to your first Level design experience 
  5. Space Invaders                 : BULLETS!! bullets everywhere...
  6. Super Mario                      : It's when you and physics are still best friends
  7. Level editor for Mario        : Advanced tile manipulation + File input/output (save/load levels)
  8. Go Crazy                           : Mix all those games, make a Super Pong game, clone your favorite modern 2D game (mine is Super Meat Boy and Limbo)

And that's it, you are a game developer  :D  !! 

the funny part is that i never went through that list when i started 4 years ago (with flash) and honestly the only thing i regret is the time i wasted on choosing the tool, cause love it or hate it, if that "X" tool has a minimum popularity then be sure that it's more than enough for you, and if you failed with it, then the problem is you, not the tool.

I hope after reading this you will go flip a coin and just start coding. 

Good luck

Link to comment
Share on other sites

Nice reply by aladine, I loved it.

 

I personally don't understand the hate against JS, it's a language I really appreciate, it has its flaw as every languages, but also advantages. I hope fsquier has already used JS before criticizing that much this language.

 

Anyway, I've tried a lot, lot of different frameworks in different languages, and I came to the conclusion that at last, these are just tools, and it's not the tools who make the beautiful things, it's the guy who use it. So basically all the JS, TypeScript, Coffescript and on frameworks are just here to help you make your game. It won't appear magically because you choose the good one, it will appear because you will spend time on it and using this tools.

 

I understand you want to use the best tool, and I approve your will for seeking for the best framework, but at the end, the HTML5 games all are JavaScript, created with Phaser, Turbulenz, TypeScript, or other it will be JavaScript running.

 

I personally advice you to use Phaser and JavaScript, at least try to dev with JavaScript, instead of bashing again and again. (Yes i hate when people hate JavaScript)

I never used TypeScript and CoffeScript so I don't criticize them, just they also make JavaScript at the end.

Link to comment
Share on other sites

I personally don't understand the hate against JS, 

it's not "hate", i like JS when am making little things but when the project get bigger, i just find myself more comfortable with an OOP language better than JS, PLUS i never learned JS, i just use it when i need to, but when it comes to learn JS advanced tricks i honestly never thought about that cause simply am far away from being interested in web development, so it's just a choice, no hate here, i love all languages :wub:    

Link to comment
Share on other sites

@Zaidar as an ex-JS-hater, I think that in general, programming language hate come from lack of experiance in that language + a bit of missuse.
 

to take JS example, many of JS haters told me that they don't like JS because it's OOP implementation was horrible ...etc (that was my advice too), of course if you only use OOP paradigm, it's better for you to use another language made FOR OOP (that was only true before TypeScript ;) ) .
OOP is what we learn in all computer science schools, and most of developers think that OOP is the better choice for everything and here come the confusion, many developers don't even know that there is many other programming approaches that have their own pros and cons : AOP, ECS ....etc.

after some years of experiance, I can now tell that JS is one of the most flexible languages that allow you to implement easily most of those paradigms. this is the power (and the weakness) of JS.
when a language is flexible, developer can make really bad things with it, it's like C pointers, they are powerful if you know how to use them, but can open the door to all problems if missused.

 

Link to comment
Share on other sites

Whoop whoop for Estonia!  B) 
 

Pick a language that would offer you maximum results with minimum effort.

Who cares if you make your first game with Phaser JS (recommended) or native or for desktop or whatever. Nothing kills your game developer career quicker than spending time on writing amazing things that you never finish to a point when you are happy to show it to other enthusiasts, for free.

I've been dreaming about doing few games, because I think I have few good ideas, and some of them might actually get some attention from public. So, after sitting on ideas for years and years, I did an entry for one of the competitions and man was it hard to actually finish a game to a point where it can be played. It would take more time to completely polish it off to where my original plan was, but still, a first "released" game. With competitions you also get boost in people checking your work out and giving you some feedback.

So, that's what I'm doing right now, working on simple puzzle game idea I came up with probably 2-3 years ago, just to get another finished game under my belt.

I am using Phaser JS, because I have 15+ years web dev experience, so JS is relatively easy, I shouldn't get stuck on simple things, and finishing a game should be a pleasant experience.

Then maybe after two, three, heck, five games you might have to start choosing an engine that will suit your commercial needs, before that, don't be afraid to go for a simple solution.

Link to comment
Share on other sites

I dont't hate or dislike JS, just saying that Coffeescripts syntax is easier to me, and as Pert said, I want to achieve  maximum results with minimum effort. I've understood that using TS or CS right now would actually be harder, because it's hard to find enough resources. I've decided to go with Phaser and JS but unfortunately I don't have enough time to do all that aladine suggested so we'll see how this works out :).

 

And here comes (hopefully) last question:

Is Tiled capable of making levels like in... LIMBO? I mean, tilemaps are for Super Mario levels but could I make a level where every object is unique, or should I just use coding for that?

 

Thank you!

Link to comment
Share on other sites

And here comes (hopefully) last question:

Is Tiled capable of making levels like in... LIMBO? I mean, tilemaps are for Super Mario levels but could I make a level where every object is unique, or should I just use coding for that?

 

Thank you!

i never used Tiled before, but in my honest opinion the answer would be "yes, but....", as far as i know, a tile based level is simply a level that have X number of tiles where each tile can be a unique object of the game, it can be a simple graphic block, just like it can be a complicated object that is able to move and have X interactions with X other objects  

Link to comment
Share on other sites

Yes, but tiles are squares and if I want to make a level where the character is moving downwards diagonally, does it looks like the character is moving down the stairs?

So basically does tilemap handle the collision and if it does, does it suit me?

Im guess I'm looking for a Construct's map editor and I have found out that I could basically use Inkscape or even Blender(a bit too difficult for me) for making levels. Can I do that with Phaser?

Link to comment
Share on other sites

To me Phaser feels like simplified Pixi, because games made in Pixi have better graphics and so on 

Just in case you missed it in the replies above: Phaser uses Pixi to display graphics.

If you just use Pixi alone, you'll have to build your own framework around it to make games.

Phaser has already done that hard work for you.

Link to comment
Share on other sites

  • 11 months later...

I am a tad older than the OP but, one year later, I am facing the same question. 

I have a CS degree, but no experience whatsoever in writing games.

I intend to write a simple Open Source game for kids in HTML5+Javascript, and have to choose an engine/framework.

My main target are mobile devices (packaging the game with something like Ejecta, CocoonJS or Cordova) but it would be nice also supporting browsers, if possible.

 

I reduced my options to:

I would like to know the strong and weak points of each one, and on which cases you would choose one of them over the others. 

I'd also like to know how their learning curves compare.

 

Thank you very much for your input!

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...