What is a video game, and what is more important the graphic,sound effects,game mechanis ?
Some or almost indie game developers have a wrong idea about video games, some people think the graphics in game is the most important some others think the game play is the success key some others may think it's the story this is all wrong, if you want to know what is the most important you need to know what is a video game?
Construct 2 the 2D HTML5 game engine!
In this article i will talking about Construct 2 game engine, if you don't know it. it's a HTML5 2D game engine
dedicated for non programmers or for fast prototyping. basically you don't have even to write a single line of code. but at least you must have a little basic programming knowledge, just basic.
Construct 2 is a HTML5-based 2D game editor, developed by Scirra Ltd.It is aimed primarily at non-programmers, allowing quick creation of games in a drag-and-drop fashion using a visual editor and a behavior-based logic system. wikipedia
after stealing that little definition from Wikipedia let me just explain why it's called Construct 2 you might think it's a version, no it's not! in Wikipedia they refer it as Construct which is a mistake, because anyone knows Scirra Ltd would think you are talking about Construct Classic, scirra is small company of 3 persons, yeah thos 3 guys , Ashley Gullen, Thomas Gullen and Paulo Ricardo Reinehr. so Scirra made an game engine that work only on windows and export
to windows, i think some people still use it untill now, because it's free and open source. but later when HTML5 technology started to invade the Web they let down Construct and moved to develop a new one which they called Construct 2, this last support more platforms by using the HTML5 technologie you are able to deploy your game probably on any platform. Construct that old engine was abandoned even the source is available but none is developing it as i think. then it's renamed to Construct classic to make it tell the difference. that's the story of the twin Construct engines.
Now let's talk about Construct 2:
What is Construct 2?
it's a powerful ground breaking HTML5 game creator designed specifically for 2D games. It allows anyone to build games — no coding required!
It's great for beginners, and powerful enough to let experts work even quicker than by coding!
Indies and Hobbyists: Use Construct 2 to enter the world of game creation.
Teachers and Students: Teach the principles of programming in a fun and engaging way.
Designers and Artists: Produce games without having to learn difficult languages.
Professional Developers: Rapidly create mockups and prototypes, or use it as a faster alternative to coding. Scirra.com
anyway that's what they say on the website
i have been using construct 2 for 2 years learning new tricks every time and
i had a lot of problems and figured out how to solve so i think I'm in a good position to allow me talk a little about Construct 2:
First the engine is easy and fun, it doesn't look complex as other engines, if you have a good computer knowledge and you used to many software interfaces you can start working without even tutorials the user interface is very friendly, the engine is well documented and there is even a little note with every component in the interface to to explain what that thing does.
the engine is really powerful thought it's limited only to 2d games, but 2d games still have a good part in the video games industry. it comes with a lot of plugins and behavior, and your can extend it by getting more plugins made by other or if you are familiar with Java script you can make your own plugins and behaviors.
Plugin is used to add more functionalities to the engine
Behavior is used to tell your game object how to act you can make it manually but behavior save a lot of your time and makes it simpler to make games. don't worry there is a good variety of great behaviors that allows you to make a different type of game in manner of time, you can make a platform game with few little mouse clicks.
The Editor is easy and comes with a drag n drop workspace, and an event sheet editor, that last is used to make your game code without writing a single line of code it only uses logic blocks, it's like playing with LEGO you take parts that can fit together and make anything you want.
the engine uses Webgl and canvas2D for render it's on Canvas2d by default but if the platform support Webgl it will use webgl to make a better performance.
by supporting webgl you are able to make great effects.
the engine also uses Box2d as its default physic engine.
there is a lot more features in the engine, but enough talking about features for now i will talk about some important points :
Scirra says that engine export to multiplatform and .... , actually the engine doesn't export to any platform, the engine give your the source files as html and javascript. and then to build them to a specific platform you need a third party service like phonegap, cocoonJs or intel XDK or for desktop systems webkit.
at least the engine come with web-kit included so when you choose to export to windows or linux... the editor will automatically deal with web-kit and give you the final executable.
another thing is the performance, when you use Scirra Construct 2 you need to make your extreme optimizations, the problem is not in the engine itself but it's the HTML5 your game will run on a browser so it's not directly running on the system this will reduce the game performance, if you don't take care of optimizations you will suffer low frame-rate.
Conclusion : in general Construct 2 has advantages much more than it's disadvantages so it's still a great Engine give it a try if you are interested in making 2d games for many platforms using HTML5 technology.
For Newbies: Opengl Vs DirectX Vs Unity 3D Vs C#
Game development is a huge industry and a good way to make money, that's why game developers community is growing everyday, it's not an easy industry the challenge is very competitive, anyway no one born a game developer every professional game programmer or game artist was newbie at his beginning so don't worry you will be that Pro someday.
but in order to take your first steps in this industry you need to understand some stuff and have a minimum knowledge even if it doesn't matter in the present time due to the technologies that make it easy for you to make video games. This article is useful for you to have a little knowledge about game developement.
-DirectX is not a graphic library it's a package of libraries inluding Graphics,
Audio...etc
DirectX handle multimedia applications such as games, so it's called Multimedia Librarie it's even wrong to compare it to Opengl.
a simple explanation of a Library is : it's an extension for a programming language to make it have more functionalities.
- The part that handle graphics in DirectX is called Direct3d or Dd3, that part now is comparable with Opengl.
- Opengl is a graphic librariy same as Direct 3D, i can't discuss differences here but mostly Opengl support more platforms and unity uses OpenGl and Diret3d , if you are on Windows it's going to use DD3 by default but you can force it to change to OpenGl, the main difference between OpenGl and directX that Opengl support more platform , it can work on any system you use or even if you build an new machine, opengl will be able to work on it. while direct3d mostly dedicated to Microsoft platforms such as Windows, Xbox.
- C# is a programming language, you use the programming language to develop any kind of computer softwares, the programming language doesn't show graphics or control your hardware, so it need a graphic library to tell the Graphics card how to render graphics ( how to show the graphics in your game). programming language also uses other libraries to get inputs from keyboard, game-pad..other library to play sound ....etc
- Unity 3D , Cryengine , Unreal Engine... are game engines which mean , it's just an integrated development environment dedicated for video games, i'm sure you know some IDE such as Visual Studio, Code::blocks ....etc and yeah you can use them to make games too, but they are general purpose IDE they can do any kind of programs, but Game engine is targeting video games development , so it had many features included to make it easy make video games.
Note : Obviously if you have enough knowledge about game engines, you would say no the game engine is set of libraries to make it easy developing a video game. yes that's 100% true, but nowadays the game engines are tightly built with the Editor so you don't have access to the core engine unless you hack it maybe. so probably when almost people talking about game engines they are talking about the whole binaries you install on your system, mostly about the Editor because almost people who have not try coding low level don't know the difference between the engine and the Editor. so it's easier to explain for newbie this way.
Why the Game Engine ( the Editor ) is an IDE?
game engine provide a 3D render engine which is written with OpenGl or Direct3d and provide many other libraries to handle many other things in video games development, and game engine sometimes provide it's unique programming language to make it easier for developers. game engine provide your with game editor which include the terrain editor and the level building window, in Unity 3d case , The Scene window and the game window , the terrain editor , the light , the waters ....all this stuff is ready made objects to make it easy for you, if you wanted to use Code::blocks for making your game , you would do almost everything with codes, and the game engine also offer a text editor and a compiler for the languages they want you to use. in Unity 3d case it supports C#, Java Script and Boo.
Conclusion : a game engine such Unity 3D , is a huge software that includes everything you need to makes video games , it includes Opengl, Directx(direct3d as a part of DirectX also includes programming languages C# and JavaScript...
So, no more comparing Opengl to Directx , or Opengl to C# or Unity 3D to Opengl because that doesn't make any sense of comparing a desk with the room because the desk is a part of room and can't compare a desk to a chair because you use them both to set and make homework on the desk. and also you can't compare the your room to the neighbors house, just because the house has many rooms and it can't be compared , maybe onlt for the size in this case if you insist to compare it , then yeah compare Unity 3d , Opnegl , directx and C# source codes they are comparable that way, but the functionality is totally different.
Godot Engine the open source commercial quality game engine
Few months ago, when i was browsing GitHub repositories so i might find something interesting, i found this project :
Godot Engine :
Godot is a fully featured, open source, MIT licensed, game engine. It focuses on having great tools, and a visual oriented workflow that can export to PC, Mobile and Web platforms with no hassle. The editor, language and APIs are feature rich, yet simple to learn, allowing you to become productive in a matter of hours. Godot Wiki
Developement History:
Godot has been in development and used in house by OKAM as early as 2001. In February of 2014 the source code for Godot was released to the public on GitHub under the MIT License.
Some of the engine features:
There's some truly exciting stuff to comb through since it's a well-used engine with a lot of history, not someone's hobby hack.
What I've seen so far:
A custom scripting language(GDScript) which is roughly Python-esque. The wiki explains that after trying the other common choices(Lua, Squirrel, Angelscript) over a period of years, they rolled their own solution that could be more closely integrated to the engine.
An in-editor help, it has some API docs
.
Classes for GUI controls, including layout containers.
A fairly rich audio API, including positional audio, streamed audio, common sample playback controls(pan, volume, pitch, looping), and some effects(reverb, chorus, frequency filter).
Some networking functionality, including HTTP, TCP, and UDP mechanisms.
Keyboard, joystick, mouse, and touchscreen input classes.
And of course lots of rendering and physics-related stuff, including various shapes, cameras, meshes, sprites, animation, tilemaps, texture atlasing, internationalized fonts, particle systems, and multiple viewports.
Godot Engine
https://github.com/okamstudio/godot/