Jump to content

Should I actually use Babylon?


Recommended Posts

Hey guys!


After about 5 or so months of working on my editor and game, I have hit a big big problem... whether I can actually acheive my dreams with webGL!

Alright. So here's my story.


I wanna make a real game. I've never done this, I've never even released an actual game, I've just made never-finished 2D games.

When I say a real game, I mean a story-based game that'll be about 2-3 hours of gameplay. What does this mean? A LOT of content.


I don't wanna say too much, but I'll say that the entirty of the game is on a ship. A big ship. A certain unsinkable ship, if ya get me. ;)

In other words, quite a lot of content. A lot of people, a lot of meshes, a lot of everything, really.


I'm not going to make it too fancy, but even the idea of having this many meshes colliding with stuff and animating and stuff scares the crap out of me.

Also, what I want for my editor is something I know I'll never achieve - the biggest feature being a timeline-system. Basically drag and drop different animations and sound clips to creat a cutscene or whatever.


So I guess, what I'm asking is... can babylon or even webgl help me achieve such a dream? Or should I switch to Unreal engine or something else?

Sorry this post is so much like http://www.html5gamedevs.com/topic/14080-choosing-game-engineframework/, I just wanted to ask, myself.


This is a very scary question for myself... I've spent SO much time working on my editor, and now.... I'm really having doubts. I also know there ain't no community like this one, and I'd hate leaving it. Idk if anyone can answer these questions, except in the technical aspect... is it physically possible for babylon to do this?


Halp! XD



Link to comment
Share on other sites

Hi Josh,


I won't say too much just yet, as I'm really interested in hearing what others have to say.  I also just had some of this discussion yesterday on the post you referenced - as you know.  But I thought I'd at least get the thread going, and tell you that I've been in the same position with Babylon as well as other platforms with productions in the past.  Babylon is - as everyone is aware - brand new - and actually developing games and any quality content on the web is new. Thank God for the adoption of HTML5 and WebGL, or the answer to your question would ultimately be no.  But again, there's no new info for you in anything I've written above.


I'm excited about BabylonJS because I can already develop and deliver quality content, and even though the framework currently may not offer everything I want right now, it certainly will in the future - and that's exciting.  We're right on the edge of this new way of creating and delivering games and content, and you'll be the expert while others try and catch up in the future - if you stick with it.  Aside from the technical challenges, I'd say it's all about goals.  If you want to produce a game and then move onto something other than making games, I'd personally use UE4.  But then you're limited to the platforms which your game can be played. It's also way more work than most people understand to produce a game on your own, and really easy to get lost and give up because you don't have the community support.


But if you want to continue making games, you're right where you should be; as the future only holds a place for developers on server based platforms. Consoles will go away, and everything will be made to be mobile - whether it can be played on a desktop or not.  


As far as technically - you can develop and produce the game you described above now.  However, there are the limitations you're already aware of.  I would also make sure you have a pipeline similar to what was discussed on the other post for building and animating characters.  The poly count and other limitations are my greatest fear, although these limitations will be less and less in a very short time.  But that doesn't help you or I right now.


So my solution was to build my server from scratch - which I had no experience in building servers - but built relationships with other developers who do. Now I have a server which dynamically streams data, and this is what will allow me to create and publish whatever I want using BabylonJS, since I'm no longer reliant on a linear download of all elements prior to launching a game.  I'm sure you know I could go on and on about other aspects (as most people on this site know I can write some monstrous posts,) but I'm glad you asked this question - which is very different from what was asked in the post you referenced from yesterday. I really want to hear what everyone else has to say.  I'll just tell you that you can build and publish the game you briefly described without sacraficing quality or gameplay using BabylonJS.  But only if you work "out of the box."  And you'll probably build a better game because of the limitations and circumstances in which we have to work. Otherwise, there's a good chance you may never finish your game - as once you're on your own and not working in an idea driven community like this, you'll most likely never finish a game.  Most people don't.  I'm saying this from experience - been there done that.  Technically - you can absolutely develop and finish your game in BabylonJS. That's my opinion.






POST EDIT: I've also built (with a development partner) a graphic authoring tool which functions exactly the way you described.  I can load any elements I want into the interface, edit them together or seperately, and then it's all about the timeline and setting up events to drive the elements and media I've loaded. I can then simply push a button and publish the stream.  So can it be done?  Yes.  And trust me - if I can do it, anyone can.

Link to comment
Share on other sites



By reading you it seems there are two things that worry you the most:

1. will you be able to achieve sufficient performance on your game? and

2. will you be able to find/code adequate authoring tools?


About performance: it will be your every day struggle, that I can guarantee (it's probably already the case). WebGL is incredible to work with, but it is demanding. It's like a really, really beautiful girlfriend... (sorry for the lousy comparison). Now, it doesn't mean you won't be able to do what you want, just like dbawel said. It's just that you'll have to think of this when doing every little part of your game.

Do I need this mesh loaded? How can I make sure WebGL doesn't switch state between this and that? Can I achieve this effect using a little clever trick instead of heavy operations?

Personally, I find this to be very engaging. It just teaches you so much, compared to using an editor based engine like UE4 or Unity.


About authoring tools: from what you've written, it seems you'll mainly need a scene/level editor and a cutscene editor. Also you've probably have your level editor already fleshed out, if I remember what I've seen from you here. I honestly think that if you focus on putting features in your authoring tools, and make them as simple as possible, it is largely doable. For example, a cutscene editor can probably be nothing else than your basic text editor, where you'd write stuff such as:

00:03 [activecamera:1]

00:12 [entity: John] [anim: Talk]

00:15 [activecamera: 2]

00:17 [entity: Jim] [anim: Talk]
I'm really making this up as I go. But there always are tricks for making things simple.
Also, a level editor is after not much more than your game engine with the added ability to add/remove objects in the scene, edit their properties, save/load and include a rudimentary scripting system (may not even be necessary).
All in all, I'd say the challenges you'll face when making a game with BJS won't be 'bigger' than with other engines. They will just be very different, and much more instructive in my opinion. And browser-based games will probably become very common in the times to come, seeing as how the browsers themselves are handling graphics better and better. So my advice, for all it's worth, would be: stick with BJS :)
Link to comment
Share on other sites

Hello Josh,


When developing WebGL, take into account that made all the images and models to download depending on the internet connection of people. So you need to optimize consider this.

Images must be the lightest possible. Meshes with a small number of poly order to have contained much (this is more important when there is multiplayer)

For videos of the game, try to reach 25 frames per second (such as drawings animate) to reduce weight and make them as short as you can.

You will not forget to also reduce the number of bones of your characters, because it is expensive for the framerate.


Whether you are on a engine Unity, Unreal or others, you will always adapt to engine requirements and achieve performance optimization. But it is true that you have to make WebGL more attention. But your goal may be possible with a lot of tricks.


Do not imagine that you can create a game like GTA 4 or 5 with WebGL, but GTA vice city might be possible for comparisons. And this kind of game, do not imagine that make poly higth they uses a lot of tricks to optimize (generally the normal map to give more detail, the LOD, texture 512 * 512 1024 * 1024 max for those who have very good pc. In a game the most important optimization are the images, their numbers, their weight, their resolutions .... This is even more important when they are downloaded from a server Web based on people's connection.


In short, everything is possible, it is only a matter of design always with tips to achieve a goal or others. With Babylon you will need 100% optimisation tools: octree, no physic, or a little, LOD, instances, cloned, sceneOptimiser, incrementation.babylon, textures low, mesh low with normal map, small ground (prefer more than many small field and create of portals. Take a house, the door to enter could be a portal to switch scenes (web page) that be representing the interior of houses. This is a trick that when multiplied, optimizes the game tremendously.)


I hope that my English was not too bad.
Link to comment
Share on other sites

one can learn to use more than one engine, and still be a part of the community of both  :) I am pretty sure a few of the people writing in this forum are also using ThreeJS (Blasphemy!!) from time to time...


My best suggestion for you is to choose the one giving you the features required for you to have your game the way you want it. And if one engine doesn't have a certain feature you think is required, try suggesting it, or implementing it yourself. 

Use the Engine that is the most comfortable for you to use. That you know the best. They all do essentially the same (Blasphemy nr. 2!!)  with different paradigms. I find the BJS coding style, integration and set of features wonderful. Especially for my current use of it.


Don't forget that WebGL is essentially OpenGL ES 2.0 . The same is is supported by Android till version 4.3 (only then they moved to 3.*). iOS supports ES 2.0 as well (was changed in version 7 of iOS). Anything you can do with this version of OpenGL, can be done with WebGL. And there are wonderful games that were implemented using this technology. If you want to develop a game for mobiles, you will anyhow have to use it.

Link to comment
Share on other sites

I am not a large post writer,unless I am pasting source.  I have not successfully published a finished game, so I'll limit myself somewhat.  You did not say anything beyond technical concerns.  There is more to launching an enterprise than just technical aspects.  They can be just as fatal, if there is an issue.  Issues with IP can be avoided for the most part by not including things that look exactly like a Coke bottle, for example.  Thinking about marketing and payment / add display systems are also important, if you wish to do this as a business.


BabylonJS being really new, but already at version 2.0, is a good sign.  Being open source means that you can actually change it, if you need to.  The last thing is, as the great one said:  "Skate to where the puck is going to be, not where it is."

Link to comment
Share on other sites

So Josh,


I was hoping more people would respond to your post, but with what you've received so far, do you have a better idea whether you will continue developing your game in BabylonJS?  I'm sure everyone would like to hear your thoughts after reading the responses you received to this post.  Please write whatever you might be thinking - you won't affend anyone if you're leaning away from Babylon.  But no matter what the case, it benefits us all to take this journey with you, and for any newbies to read and better understand why you might be questioning if this is the right platform for your development needs, and what your current thoughts are.







Post Edit:

I was just looking for different methods to paint/draw in real time on a mesh.  I recalled that recently there was a post labelled "Terrain Painting" where there was a method I was not familiar with using a "chunk system."  In reviewing the function again, I saw this was your work, and saw that it is really well thought out and well written.  I continued to review the few other posts I could find where you had contributed, and realize that you have a much more thorough understanding and far more experience using BabylonJS than I do.  I knew this already, but know that if I was hiring a BabylonJS developer right now, I wouldn't think twice about working with you - simply because you have obviously put in the time, and appear to have a really good comprehension of this new framework.  I'm not quite certain where your knowledge base might be limited, and why you don't necessarily have the answers you seek here in this post.  Pehaps it's just that you've never completed a game released as a product.  


Regardless, I see that you definitely have the skills to make your game a reality utilizing this framework, and are well equiped to do so. I can't see anything you're lacking to build a brilliant game in the context of what you described.  And, your familiarity and skills in Babylon are far beyond most people who are using this forum and building their first game.  I've been working on games for many years now, and only recently as a developer - beyond creating whatever functions I needed for what I was personally contributing on a specific project.  So if there is any knowledge I might be able to provide you with as far as answering questions reguarding the overall production of a game, and/or providing the different methods available to use beyond what you might know from your experience, then I'd be happy to provide any info to assist in these areas.


I've been fortunate to work in practically every production role on some of the most sucessful titles released, and have experienced many different methods, processes, and pipelines for producing varying styles of gameplay and graphics.  I have my own preferences for creating the different elements required to produce a game, but have used many different processes (some my own and some learned) over the years to create great games.  I can assure you that I personally believe that you are exactly where you should be and it will reward you for all of your efforts.  And as I initially queried, please let us (the Babylon community) know where you might be in your decision to continue with BabylonJS.

Link to comment
Share on other sites

Hey josh,


I can't add really more than what others already said, but be sure that any engine you choose will embed its own problems to deal with.

Of course with graphical game engine, as Unity or UE4, it's easier to set up the scenes content, but the struggle for optimisation and making everything beautifull will be the same in all cases. And do not think that because Unity can export multiplateform you'll be able to "develop once and deploy everywhere", that's not so easy, you'll have to consider the textures, shaders, user inputs, external libs you'll need, etc, differently for each plateform.


In my opinion, to choose your weapon, start by answering these questions:

- which tool do you already know and be confortable with ? 

- what is your target audience ?

- how long do you want your game last and be able to evolve ?


I'm totally sure that targeting the web is the future. And the audience is just... everyone, everywhere, everytime (provided you always keep in mind mobile compatibily at every step of your work!).

Unity can export to WebGL, but it's a sweet dream to think you'll be able to export your complete game in one click.


I personnaly think that, if you're not in a hurry and you really want a compatible, evolutive and today's modern game, BJS is the right way to go. But you'll certainly need more time and more lines of code to acheive it than using an already existing authoring tool.


And finally, if your big fear is about adequate authoring tool, why not trying to consider the brand new UnityExporter2BJS. It still require some improvement but the first step is pretty convincing. That could be a neat option (particularly if you already know and use Unity).


Cheers, and don't loose faith in your abilities (that's the most important to achieve anything!!) B)

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.

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.


  • Recently Browsing   0 members

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