Firstlook to game development open source project | PlayCanvas

in #utopian-io8 years ago (edited)

PLAYCANVAS.jpg

Introduction


Nowadays, the potential that we can find on the web is well known, from sites dedicated to offering academic information, movies, music books, among others. It is a window open to endless possibilities limited by our imagination, this time we focus our attention on an industry that attracts millions of users, the video game industry.

There is not a person in the world who has not heard or played a computer game or console, or from a mobile device which has initiated a new era in communication and entertainment. The truth of all this is that the video game development market is in a boom phase and more and more companies or small groups of developers interested in this branch of entertainment.

Developing video games is not a simple task at all and requires a set of skills that encompass the knowledge of design, animation and programming to name a few of them, all this added to the different challenges that arise before the development phase of them .

Given this many organizations have focused their efforts on creating tools and frameworks offering developers environments with a base from which they can start in this world. Many of these tools integrate in their functions animation systems, physics engines in 2d and 3d, lighting effects, textures among others, in order to make the experience in the development of video games easier and more user friendly.

PlayCanvas


This time we will talk about this innovative game development engine for web environments, PlayCanvas. We have before us a powerful tool whose base is focused on the use of a complete library of JavaScript with the main functionalities required by a framework oriented to the development of 3D games, among which we can list the loading of models, physical engine, management of audio sources among many others that we will list later. On the other hand, we find a technology called WebGL which is nothing more than an API for the rendering of 3D graphics in any browser that supports this technology without the use of any additional plugin or complement.

Characteristics


Next, we will list and give a little more detail information of the features that we have when choosing this complete framework, let's start:

WebGL based renderer:

We could list this as the main feature of playcanvas, WebGL can be cataloged as the future of 3D games on the web, it turns out to be a very complete api developed in JavaScript as we had previously commented.

WebGL 2.0 makes it even easier to build 3D web applications, with faster real-time rendering, new types of textures and shaders, and reduced video memory consumption. Techniques including deferred shading, tone mapping, volumetric effects, and particle effects can now be efficiently implemented. The new APIs also bring WebGL up to feature parity with OpenGL ES 3.0, a graphics platform commonly used in mobile games.

It has an integration in most modern browsers and is perfect for displaying dynamic content on the web using an HTML canvas element without requiring any additional plugin, another point to highlight is the ability of this technology to make use of acceleration by hardware through GPU.

Directional, point and spot lights:

  • Directional lights:

    The most adapted example for this lighting component is the light source that we perceive from the sun, due to its distance and great coverage on a surface we can appreciate it as if it were traveling in only one direction, it is ideal to use this option for these cases, being able to control its intensity and color if we want a warm sunrise or a dusky sunset.

  • Points light:

    If in your case you want to represent a scene where light sources come from a light bulb or candles it is advisable to use the points of light, with which you can define small points that illuminate in all directions, but with an adjustable range to your needs.

  • spot lights:

    Imagine for this case a reading lamp, flashlight or because not a lighthouse, all these comply with the characteristic of emitting light in the form of a cone, a characteristic that we can put into function from this component. in the same way with the possibility of configuring the intensity of light, color or scope thereof.

  • Physically based rendering (PBR):

    Is a technology applied in the creation of materials simulating the physical behavior of light on objects allowing us to obtain more realistic results in terms of the development of 3D models. We can manipulate diffusion values to determine how the material reflects the light or its specularity and make it brighter to obtain reflections of the environment. Here are some examples of what we can get with this rendering technology.

GPU Particle engine with editor:

From rain, snow, fire, smoke or sparks, all this possible thanks to a particle system editor that we will find integrated in this framework, a very useful feature to give small special effects, Just imagine and make the effect of seeing a bomb explode, driving dust in all directions.

In terms of configuration we have at hand a wide range of options, from particle quantity, management of emission rates, speed, among many others. In particular I want to show you a part of the configuration section of the particle system where we can see small graphs that when you click on them we will show a small window adapted to the configuration that we have selected.

To take an example, I show you the window by choosing "Speed"

What I want to show you is the possibility of modifying the behavior of the particles just by clicking on the line that we want to modify corresponding to its axis (X, YZ) and dragging it to our liking to define how our particles will move in the environment.

Support of material and models from Blender:

If you already know and you develop quickly in Blender you have a point in favor since the editor of PlayCanvas has by default with support to recognize both models and materials of it. Playcanvas can support different formats, some of them are FBX, COLLADA, OBJ, 3DS. As an important fact, the developers recommend us to use FBX, since this is the most robust and tested exchange format.

Collision and Physics

Of course I could not miss one of the most important features when developing games; Physics plays a significant role in the user's interaction with their environment. Those small events unleashed by hitting or throwing an object are those that give a touch of realism and fill the stage with life in a video game.

Ammo.js is a direct port of the Bullet physics engine to JavaScript, using Emscripten. The source code is translated directly to JavaScript, without human rewriting, so functionality should be identical to the original Bullet.

Thanks to a complete integration of PlayCanvas with ammo.js, a 3D physics engine, you can get features such as gravity and attract objects down or if you like you can modify the value of it and define a less gravity environment; We also have rigid bodies where we can assign an object in the scene a weight, friction factor, consult or Apply both linear and angular forces and move objects around or spin them.

In the following video you can see the potential use of this library.

Input peripherals:

with respect to the gameplay we have the possibility to configure our application to work with different input peripherals.

If what you want is a controllable shooting game from the keyboard to move around the stage while aiming and shooting with the mouse, then you only need to configure through a JavaScript file the events to be done when capturing the entries from these peripherals.

Without leaving aside the tactile devices, it is also possible to programmatically define the detection of multitouch events, allowing us to take our applications to more devices, in fact, the number of touch devices such as tablets and smartphones outnumbers the desktop computers, therefore, orienting our games to this market can be much more profitable in terms of obtaining public.

PlayCanvas gives us the facility to program actions corresponding to user inputs putting in our hands a set of functions aimed at capturing the events generated from devices such as the mouse, keyboard, events from touch screens among others, in this aspect the framework shows to be very complete and we can obtain details on how to configure these features by consulting the documentation or reviewing between the tutorials offered on its official website.

Browser compatibility

We have spoken before on this subject in a superficial way, of course the compatibility of the games of playcanvas in terms of web browsers is very broad in the case of modern browsers and have a compatible GPU. Through the following link you can check if your browser has support for WebGL

Desktop browsers:

Goole Chrome:

  • WebGL 1.0 is supported by this browser on all platforms that have a graphics card compatible with updated drivers from version 9.
  • As of Chrome 56 WebGL 2.0 is supported by this browser

Mozilla Firefox:

  • WebGL 1.0 has been enabled on all platforms that have a graphics card compatible with drivers updated since version 4.0.
  • Since version 51 of Firefox, support for WebGL 2.0 is included.

Safari:

  • The versions of Safari 5.1 on Mac OS X Leopard up to 6.0 on Mac OS X Mountain, and new versions are enabled support for WebGL 1.0.
  • From version 11 we can make use of WebGL 2.0 by enabling this function as an experimental feature in the developer menu.

Opera:

  • WebGL 1.0 is implemented in Opera 11 and 12.
  • As of Opera 43 WebGL 2.0 is supported.

Internet Explorer:

  • Version 1.0 of WebGL for this browser in its version 11 is partially supported, updates have been released in order to improve compatibility.
  • At the moment there is no support in this browser for version 2.0 of WebGL.

Edge:

  • As of version 16 of the new Microsoft WebGL 1.0 browser it is supported.
  • It is planned to integrate support for WebGL 2.0 in future updates.

Browsers for mobile:

  • Internet Explorer - WebGL 1.0 is available in Windows Phone 8.1.
  • Firefox Mobile - WebGL 1.0 is available for Android and MeeGo devices from Firefox 4.
  • Google Chrome WebGL 1.0 is available for Android devices from Google Chrome 25 and enabled by default from version 30, version 2.0 is supported from version 64 of Chrome for Android.
  • IOS - WebGL 1.0 is available for Safari mobile in IOS 8.
  • Opera Mobile - Opera Mobile 12 supports WebGL 1.0 on Android only.

Requirements

If you are wondering what you need to start your project or how to download the PlayCanvas development environment we will give you the answer, just simply register on your official website, either using Google or the typical registration option using an email that then you have to verify and ready, you have at your disposal an complete online editor in which we have 200 MB of storage to save everything related to our project and with the possibility of accessing it from any PC with an internet connection and a compatible browser.

Series

We conclude this article in which we explain the highlights of the PlayCanvas project and start this series of sections in order to provide information on open source video game development engines where they can appreciate the functionalities of the same and choose the one that best suits to your needs if you want to start in this fantastic world of game development.

Of course we will be aware of future updates on the playcanvas project to provide recent and detailed information on the features, plugins and other important changes in this framework.

References of images and content

Sort:  

Your contribution cannot be approved because it does not follow the Utopian Rules.

Related Rules:

  • Submissions to this category are designated to promote open source projects and to inform about their development. The post may be one of the following: (1) Project Promotion, (2) Project Introduction, (3) Development Log. Regardless of the type of the blog post, unique and insightful editorial content in a professional format are expected, ideally with high-quality visual supplement.
  • Project promotion contributions must include author's personal experience with the project. Blog post with information processed from official sites and materials, and with no additional value will not be accepted. General promotion posts about the projects are not allowed. Only promotion of new features, events and innovations of the project may be approved.

Clarifications and Suggestions:

  • Utopian had a change in rules and blog posts rules are totally rewritten. Now your contribution on blog posts should fit in one of the 3 accepted types which explained in the rules I quoted above.
  • In project promotion posts, contributions are expected to be about new features or innovations of the project, or an event the project has been presented. General promotion posts are reserved for the owners or collaborators of the project.

You can contact us on Discord.
[utopian-moderator]

Hey @roj, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by petvalbra from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.074
BTC 62514.58
ETH 1637.97
USDT 1.00
SBD 0.41