Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - NeroGames

Pages: 1 2 [3] 4 5 ... 7
SFML projects / Re: Nero Game Engine
« on: May 25, 2020, 02:45:29 am »
Nero Game Engine d2.0.1 Released

Hi everyone ! how do you do  :D, I am happy to announce the release of the Engine Demo version 2.0.1  8)

The Engine is provided with a BSD Licence

You can download it here : https://nero-games.com/download

It's my first time releasing an installable software, if you find any problem please let me known.

The Configuration Wizard

When the Engine starts, it checks that everything is ok before you can use it. When something is not ok the Configuration Wizard will help to configure it.

Configure a Code Editor

You can choose between Qt Creator or Visual Studio 2019

Visual Studio 2017 will not work, only the latest versions of Visual Studio 2019 are compatible.

You can download Qt offline with the link provided by the wizard or search "qt online installer" on the internet.

Configure Texture Packer

Configure a Workspace

The Engine needs at least one Workspace. If you already have one you can import it, if not, you need to create one.

All inputs are checked against a regex and need to match a certain pattern. For example, the namespace should only have 2 to 10 characters and only use letters (regex = ^[a-zA-Z]{2,10}). I will explain everything in detail later.

Here is an example of input
  • Location : use the browse button and select your Desktop
  • Workspace Name : My Workspace
  • Company Name : Nero Games
  • Project Lead : team-lead
  • Project Namespace : ng

SFML projects / Re: Nero Game Engine
« on: April 06, 2020, 08:14:38 pm »
Hi everyone! how to you do  ;D ;D ;D

I have been busy the last couple of months, but I manage to get some time and progress with the Engine

Release of a Demo Version on May

I will release a reduced version of the New Engine around mid-may, Many features currently in development will be disabled for the demo. The core features of the New Engine Editor will be available  :), you will able to create projects and code in raw SFML. I will give more details on my next post.

Nero Game Engine 2 : Engine Update

Now let's do a regular update  8)

Introducing the POCO library

I have been looking for a Network Library for a while now. I came across POCO recently and I was amazed by the features it provides. It's a pretty huge library like Boost. I integrated it into the Engine.

Also, the Engine now use C++17 Experimental. All the Boost libraries that need to be compiled as been removed.

Download Files with the Engine

Thanks to POCO you can now download files with the Engine. I begin building a Network Module for the Engine. The most interesting Class for now is the nero::DownloadManager. It provides two features.
The first feature is to retrieve the size of a file on the internet using a HTTPS request.
The second feature is to download a file on the internet and monitor the download progression.

//get a file size
float bytes = nero::DownloadManager::getFileSize("https/my/file/url");
//the pretty_string method print the size in a readable format like 600 KB, or 8.6 MB etc

nero::DownloadProgression::Ptr progression = nero::DownloadManager::downloadFile("https/my/file/url", "local/path/destination");

        //print the percentage [0 - 100]

A New Logging API

With the introduction of POCO, I removed the Easyloggingpp Library. The Logger offered by POCO is more flexible and adapted for the Engine needs.

As a user of the Engine, nothing changes for you, the macros nero_log and nero_log_if are still available and work the same.

Background Task Management

The New Engine will be using a lot of threads to perform tasks in the background. The Engine now offers a new class called nero::BackgroundTaskManager or simply nero::BTManager. The class is used like that nero::BTManager::startTask(callable, task_name, task_category), The callable can be a function pointer, a lambda or a class method.

class MyClass
        void helloWorld(nero::BackgroundTask::Ptr task)
                task->addMessage("starting project compilation");

                //to something

                task->addMessage("compilation, completed");

MyClass instance;

nero::BTManager::startTask(MyClass::helloWorld, &instance, "compile_project");
auto my_task = nero::BTManager::findTaskByName("compile_project");


That's all for this post !

There are many other features in development, I will talk more about that during the summer. Here is what the Editor currently looks like. There is now a nice Toolbar, a Menu Bar, the Logging work perfectly. As with the Nero Game Engine 1, you have the mouse position on top of the canvas and the four buttons to change the canvas color  8)

SFML projects / Re: Nero Game Engine
« on: December 28, 2019, 02:08:50 am »
Nero Game Engine 2 : Engine Update

Hi everyone how do you do?  ;D

Playing With Light

I have integrated Let There Be Light into the Engine. For now, it is a partial integration. It's possible to add Point Lights into the Game World and Static Physic Objects can block light;


CPU Profiling

The Engine now has a CPU Profiler integrated, the one I've chosen is Easy Profiler(https://github.com/yse/easy_profiler). It is very simple to use and can become very useful if you decide to build a pretty large Game.     


What's Next ?

The next release of the Engine will be the Nero Game Engine 2 . It will be available somewhere during this next summer. Up until now, I was mostly experimenting with new features for the Engine. The code is currently a big mess  :o :o. Now that I feel I know what am doing, I have decided on the new features that will be on the next release. The release will focus on the Engine new Interface,  a New Scene API, and the Deployment of Games on Android. I had planned some features like Lua Scpriting, Shaders, Particle System, but that will be for the version 1.2.0.

Back to the Website

Now that I am confident with the development of the New Engine, It is time to return to work on the Engine Website (https://nero-games.com). I will continue the tutorial for the Nero Game Engine 1 and maybe write some random articles on game programming.

Until next time, have a good day  :D!

SFML projects / Re: Nero Game Engine
« on: December 21, 2019, 03:12:14 am »
I plan to diversify the game genres the Engine is able to handle. What I have in mind is
  • Platformer : action, shooting, adventure
  • Top Down : RPG, Scroller
  • Fighting Game : like Street Fighter
  • Card and Board Games

I have been playing with Unreal Engine and Unity lately, I took ideas from them and begin designing a new game development API for the Engine. the new API will make the Engine flexible on the type of game it can handle.

For now I'm focusing more on the Engine core, I believe if I get it right, adding more genre-specific features in the future will be pretty easy.

SFML projects / Re: Nero Game Engine
« on: December 03, 2019, 07:46:25 pm »
Nero Game Engine 2 : Engine Update

Hi everyone, how do you do?  ;D I have been working on the Engine over the last couple of weeks, I made a lot of progress.

Coding with Visual Studio

Visual Studio is now integrated into the Engine, When you create a new Project, you can choose between Visual Studio and Qt creator for the Code Editor. You can compile the code from Visual Studio or the Engine Editor seamlessly.


Playing with the new Canvas

I begin transferring the features of the Nero Game Engine 1 to the new Engine and it works perfectly.


Designing the new Scene API

I am currently designing the new Scene API, with the Nero Game Engine 2, I introduce the notion of Game Level, World Chunk, and Scene Factory.
To put things simply, a Game is made of a unique Game World that is divided into Game Levels, each Game Level will be divided into several World Chunks. World chunks are small parts of the World that can be loaded or unloaded during Play Time.
The Scene Factory will be a new feature that allows you to create Game Objects at Play Time. Those Game Objects can then be spawned into the World.

The main challenge with this new API will be on Resource Management. When World chunks are loaded or unloaded the Engine will have to automatically load or unload resources from memory. I am currently thinking of a way to keep track of used and unused resources.

That's all
There are more new features to present, but that will be for another post. have a good day  8) 8)

SFML projects / Re: Nero Game Engine
« on: October 19, 2019, 09:22:11 pm »
Nero Game Engine 2 : Engine Update

Hi everyone, how do you do ? Today I am happy to announce that I started working on a regular basis on the Nero Game Engine 2. In this first update post, I will present the scope of the project and some new features.

The Project

The objective of the project is to build a Professional 2D Game Engine based on SFML. The first release of this new Game Engine will provide the possibility to deploy your Games on Windows, Android, and Steam. The Engine will try to consume all the SFML API and go further. It's a pretty big project, but things will be done one step at a time, little by little. As you already know, a major difference with the first Nero Game Engine will be the new Interface.

A New Approach to C++ Project

Unlike the first version of the Engine, the Nero Game Engine 2 will be available as an Editor like Unreal Engine or Unity. On Windows, you will just have to download and install the Engine like any other software. With this Engine you will be able to choose between three types of projects depending on your skill with each language : C++ only Project, Lua only Project, and C++ & Lua Project.

Here is a question : How do you build your game in C++ if the Engine comes as an Editor? The answer : Shared Library.

With the New Engine, It is now possible to create and compile your C++ Project from the Engine Editor as Unreal Engine does. Each C++ Project is compiled as a Shared Library that is then loaded at runtime.

Choose your Code Editor

The Engine does not have an built-in Code Editor, so you will need an external one. The Engine will support two Editor at launch. Qt Creator and Visual Studio
Right now the Engine is being developed with Qt Creator, so it will be the default Code Editor. The External Code Editor you choose will be seamlessly integrated into the Engine. That means you will be able to open the Code Editor from the Engine Editor.

Let's see the new Engine at work

Create a C++ Project

In the video below, I launch the Engine Editor, after a nice Loading Screen, the Engine new Interface appeared. I then proceed to create a new Workspace called "My Workspace" on my Desktop. I will talk about workspaces in a later post. When the workspace is ready I create a new C++ Project (CPP Project) called "My First Project" in that workspace. When I click on the button "Create", the Engine Generates my project files and Compiles them.

Open my Project

When the compilation is completed the Engine asks me if I want to open the Project, I click on "Open Project", the Qt Creator Code Editor is automatically launched. Since it is the first time I open the project with Qt, it asks me to choose a Kit or Import a build.

Import my Build

The Engine already compiled the project, so you just have to import the build generated during the compilation. Qt creator detects automatically the build done by the Engine, In order to import it, I select " Imported Kit - temporary" then I select  "Build (my/desktop/path/My Workspace/my_first_project/Build)",  Then I click on configure project.

Start coding

Like in the first version of the Engine, the base Class of your game is the nero::Scene Class. The Engine generates a Scene class base on the name of your project In this case "MyFirstProjectScene";
I go to the render() method, I draw a simple SFML Circle and compile the project. I can compile the project from Qt Creator or the Engine Editor. When compiling from the Engine Editor there is a little Orange and White box on the bottom right indicating the status of the build. When the build is completed I reload the code.


What Next?

In my next post, I will talk about Workspaces and Project directory Structure. Also, I will present the Engine new Resource Browser and Resource Manager features. until then have a good day.

SFML projects / Re: Nero Game Engine
« on: September 14, 2019, 06:51:36 pm »
Project Status

Hi everyone ! How do you do. :)
I've been silent for the last few months, I've been really busy. I recently moved to Montréal in order to complete a degree. this took off all my free time. The good thing with that is that I will be following a class on Video Game AI. The class is offered by people from Ubisoft. It's my chance to learn Unreal Engine and Video Game AI.

Nero Game Engine 2

I've made some progress on the Engine new Interface. Here are a few screenshots. The Interface is at a very early stage, but it will evolve quickly.

Engine Forum

The Engine Forum is now open. It's a great place if you want to discuss a particular feature or if you have an issue with the Engine.

The default registration link available on the Forum page will not work. I've received many spams since the Forum has been online. Since I don't have a lot of time to manage the Forum and remove spammers, a Registration Form as been made availabled on the Website [link here].

What will I be working on now ?

I will be working on the Nero Game Engine 2. In my next post, I will probably be talking about the Nero Game Engine 2 key Concepts and its new Resource Manager.
I had planned to make Video Tutorials on Youtube, but that will have to wait the next summer, I don't have a lot of time to record and edit videos and I need to focus on my studies.

That's all for this post, have a good day!  8) 8)

SFML projects / Re: Nero Game Engine
« on: July 23, 2019, 03:13:01 pm »
Hello everyone !  :)

Engine Update 1.0.2

The Update can be downloaded from the Website Download Page

To install, copy the content of the Update Folder into The Engine SDK Folder and overwrite the current files.

The update replaces the files Library/bin/libnero.dll and Library/lib/libnero.dll.a

List of changes
  • Bug: Fix Texture Packer Sprite Sheet Loading.
  • Auto save : remove auto save log message.

SFML projects / Re: Nero Game Engine
« on: April 21, 2019, 01:05:17 pm »
Hi everyone how do you do ! :)

Engine Update 1.0.1

The Update can be donwloaded from the Website download Page

The installation is pretty easy. Just copy the content of the Update Folder into The Engine SDK Folder and choose yes when asked to overwrite the files.

**Important : The Update contains a file called Release. This file describes all the changes, please read this file before to install the Update.

This update is mainly a bug fix

When you render a Scene from the Dev_Engine using the [Render_Button] on top of the Canvas, a new Window opens up with a certain size. This size is specified in your Scene with the code below

void MyScene:init()
  //set the Scene Renderer Window Resolution
  setResolution( width, height );

The problem ? it does not work   :o  :P

The Update removes the two methods

//Methods removed.
setResolution( width, height );

The Scene Renderer window Resolution is now manage by a new method

sf::Vector2f MyScene::getSceneResolution()
  //return the resolution size you want
  return sf::Vector2f( width, height );

void MyScene:init()
  //nothing to put here. the configuration of the resolution is no longer done in the init() method

Engine API Documentation

The Doxygen documentation is now availabled on the Website Documentation Page.
This page is accessible via The Dev_Engine using the button [ Engine API ] on the left.

Nero Game Engine 2.0 Github Branch

A new branch as been created on Github for the Engine second version. While the development of the second version is not a priority now, its design has already begun. You can stay updated to the progress by checking this branch from time to time.

SFML projects / Re: Nero Game Engine
« on: April 01, 2019, 11:07:49 pm »
Hi everyone, hope you are doing great  ;D

Nero Game Engine 1.0 released

The Engine first version is now released. The SDK can be downloaded on the Engine Website. It was fun to develop the Engine. There are many features that was planned that did not make their way into the first version, But there are also other that was not planned that endup in the first version. I guess  it's how projects work  :)

Website & Tutorials

From now on, I will focus on building the Website, I plan to do some videos tutorial and maybe write some articles on game development.

Nero Game Engine 2.0

Developing the Engine was pretty cool, so I plan to continue with a second version more powerfull. The second version will focus on three things

   1- Cross platform with focus on Androind, IOS and Nintendo Switch (or its successor);
   2- Introduction of Lua as scripting lauguage
   3- A more powerfull Editor and more features in a Scene

SFML projects / Re: Nero Game Engine
« on: February 23, 2019, 03:49:54 pm »
Hi everyone, hope you are doing great ! :)

Engine Update

Bug fix : Physic Objects Center of Mass

In the current version of the Engine, Physic Objects (Box2D bodies) don't have their center of mass at the right place. The bug exists since the early versions of the Engine. I did not bother to solve it until now. It's a good thing to have this bug solved because now it's more easy to play with Box2D Joints.

Physic Objects new methods

With the center of mass bug fixed, it's now possible to retrieve the size and the bounds (AABB) of a Physic Object.

vector2f size = physic_object->getSize();
sf::FloatRect bound = physic_object->getGlobalBounds();

Physic Objects Joints

Here is a feature I did not plan to add in the first version, but after I solved the center of mass bug, I said why not ?  ;D

11 Joint Types have been integrated in the Engine API

01- Distance Joint
02- Friction Joint
03- Gear Joint
04- Motor Joint
05- Mouse Joint
06- Prismatic Joint
07- Pulley Joint
08- Revolute Joint
09- Rope Joint
10- Weld Joint
11- Wheel Joint

Create Joints is pretty easy. For each Joint you have a JointProperty object that describes the Joint parameters. The code below shows how to create a Distance Joint between two Objects.

//Retrieve Objects (Physic_Object, Solid_Object or Aniamtion_Solid_Object)
auto object_A = getObjectManager()->findObject("object_a");
auto object_B = getObjectManager()->findObject("object_b");

//Create a Distance Joint
nero::DistanceJointProperty property;
getObjectManager()->createJoint(object_A, object_B, property);

Most of the parameters in a JointProperty depends on of the Joint Type. But all JointProperty has a parameter for the Joint Name.

nero::DistanceJointProperty property;
property.name = "distance_joint_01";

Find Joints

A Joint can be found using its name. The find method return a generic nero::PhysicJoint object. For each Joint Type you have a static Cast() method.

nero::PhysicJoint::Ptr my_joint = getObjectManager()->findJoint("distance_joint_01");

nero::DistanceJoint::Ptr distance_joint = nero::DistanceJoint::Cast(my_joint);

Remove Joints

A Joint can be removed using its name. If the deletion succeed the ObjectManager will return true.

bool removed = getObjectManager()->removeJoint("distance_joint_01");

Release of Version 1.0.0

Seems the time to wrap up the Project and deliver a first version has come. The version 1.0.0 will be released on April the first. Until that I will fix all bugs I can found. Most important I'll need to resit to the desire of adding new features  :o :o :o.

Website and Tutorials

I don't have much time to work on the Engine and the Website now. So I'll focus on the Engine and begin to work on the website after the first version is released.

That's all, have a good day ! 8)

SFML projects / Re: Nero Game Engine
« on: February 10, 2019, 03:13:11 pm »
Engine Update

Hi everyone, how do you do ! here is an Engine update  :).

Bug fix 1 : Duplicate collisions

If you've tried the Adventure Scene, you might have encountered a bug when collecting coins. Some coins can be collected more than once. That's because when a Physic_Object is removed by the Object_Manager, the Physic_Object is not destroyed directly, instead it is marked as dead and removed only when the Engine thinks the time is right. Now there is a control that prevent dead objects to generate a collision.

Bug fix 2 : Crash at Scene Renderer exit

The Scene Renderer crashes sometime when you exit it. This was due to the way resources are shared between the DevEngine and the Renderer. Now the resources shared as been reduced to the strict minimum and the Renderer will run on its own thread.

Bug fix 3 : Player flickering in Scene Renderer

There was a kind of flickering on the player when it moves in the Scene Renderer. It seems the Engine has some trouble rendering the DevEngine and the Renderer at the same time. Now when the Renderer is launched the DevEngine will stop its rendering (only a gray screen will be visible). The DevEngine rendering will come back automatically when the Renderer is closed. With that change the Scene Renderer now performs with the same quality as the nero::RenderEngine.

Download the Update.

You can download the update with the link below. The download contains a folder named Library. Just copy this folder into your current SDK folder and replace all files. The files that will be replaced are the following

   Library/include/Nero/[all files]

Download Engine Update 0.9.01

SFML projects / Re: Nero Game Engine
« on: January 21, 2019, 11:25:36 am »
Nero Game Engine 0.9.0 Released

Hi ! everyone. How do you do. I'm happy to announce the release of the  Engine SDK version 0.9.0

You can download it from the website www.nero-games.com

I tried to upload it several times, my internet connection failed me. But it succeed in the end  ;D.

The Website is still in construction I will work on it on the upcomming weeks and months

Test Scene : The Adventure Scene

In the package there is  a Project called Adventure Scene you can use it as a reference. It's a simple game where you have to collect some coins and some stars.
If you've already tried the version 0.7.1 there are many changes. I have commented the code, so it should be easy to understand what is going on.


In the upcomming weeks I will write some new tutorials. I will upload them on the website in a structured manner.

Nero Game Engine version 1.0

The version 1.0 is comming soon. There are basically three things to be done before to reach that release

   1- Add some game related features (camera shaking, bullet firing and maybe more)
   2- Build a complet game that will serve as a Demo
   3- Run a complet test of the Engine. Track bugs and solve everything that can besolved

That's all, hope you'll enjoy the new SDK. Have a good day  :D

SFML projects / Re: Nero Game Engine
« on: December 29, 2018, 11:12:30 am »
Engine Update

Hi everyone, how do you do.
Last week I was about to continue working on the Adventure Scene, but something stoped me. I felt that the Engine was missing some key features. So I went to add some features that wasn't in the schedule.

The Scene Renderer

It is now possible to see the final result of your game without leaving the DevEngine. The Engine now has a feature call the Scene Renderer. The Renderer simulates the behavior of the RenderEngine from within the DevEngine.

How to start the Renderer ?
Above the Canvas, along with the buttons Play, Pause etc, there is now a button called Render. Click on this button will launch the Scene Renderer.

Window resolution
From your nero::Scene you can now set the resolution of your game with the method below. This resolution indicates the size of the Window used by the Scene Renderer.
setResolution(1024.f, 600.f);


The Color Picker

The last week I tried ImGUI for the first time, and I was like : ooooooooooooh, waaaaah !!!, this is too too powerfull !!. So I quickly start to learn how it works and decided to integrate its Color Picker in the Engine.

Yeah, now there is a Color Picker  8) . By default the Color Picker is Hidden, but when you go to the Color_Tab it appears automatically.


CodeBlocks Integration

Since the Engine uses CodeBlocks, I thought it would be great if CodeBlocks could generate a sample project for the Engine. So I went to learn the CodeBlocks scripting API, and I created a script that generates a Nero Game Project. Just for info Codeblocks calls that a Wizard, and it uses the Squirrel scripting language.

In the video below you can see the Nero Game Project Wizard in action. There are three types of samples you can generate. The coolest one is called Full Project. When you choose that, you can indicate a Namespace, some Class Names and CodeBlocks will create a complet project to start with.


Release of Version 0.9.0

In two or three weeks I will release a new version of the SDK, it will contains all the updates since the last one (version 0.7.1). The Adventure Scene will be included as an example.

That's all for this post. I think it will be my last post for 2018. So see you in 2019. Have a good day  :)

SFML projects / Re: Nero Game Engine
« on: December 12, 2018, 11:33:18 pm »
Hi everyone! Hope you are doing great.  :)

In this post I will present more stuffs concerning Screens, and review the state of the project.

Screens and Render Engine

While the DevEngine Interface allows to build Screens, the DevEngine is not able to render those Screens. Screens will be rendered only when the Scene is run within the RenderEngine. The reason for that is simply because the Screens are built arround a specific resolution. If you build a Screen with a resolution of 1028 x 800 by example, the Screen will not fit in the DevEngine Canvas.

Push and Drop Screens

The first thing to do when we want to use some Screens is to push them on the Screen_Stack. The methods pushScreen(screen_name) and dropScreen(screen_name) are there to manage the Screen_Stack. The only purpose of the Screen_Stack and those methods is to provide a way to order the rendering of the Screens. Also this allows to use only the Screens you need. You can create 10 Screens from the DevEngine but only push and use 3 of them.

Show and Hide Screens

Push a Screen into the Screen_Stack will not make the Screen visible. Pushing is just a way to order the Screen. Any Screen on the Screen_Stack can be make visible or hidden with the methods showScreen(screen_name) and hideScreen(screen_name).

Hide and Show the Game World

The Screens are rendered on top of the Game World, but if you want to show a Screen but not the World like for a Game Main Menu, it's possible to hide and show the Game World with the methods hideWorld() and showWorld().

Find Objects in a Screen

There are two methods to find Objects in a Screen
  • The method findScreenObject(screen_name, object_name) will retrieve any Object that is not a UIObject (Sprite, Animation, Text).
  • The method findScreenUIObject(screen_name, ui_object_name) will retrieve only UIObjects (Button);

Button Object

In addition to the Screen System the Engine now has a little UI Management System. On each Screen it's possible to add some nero::UIObject. Currently the only available UIObject is the ButtonObject.

In order to add a ButtonObject just hold the Shift Key and click on a Sprite_Button. In the DevEngine a Button is simply a Sprite, so you can apply any Sprite transformations on it.

In the future it will be possible to create ButtonObject from Animation and Text. And there will be more UIObject like TooggleButton, CheckBox etc.

A ButtonObject offers three callBacks.

button->setOnMouseEnter( [](){   a lambda function here  });
button->setOnMouseLeave( [](){  a lambda function here  });
button->setOnMouseClick( [](){   a lambda function here   });

By default the opacity (color alpha) of the Buttons change when the mouse comes hover them.

Scenes Util methods

the nero::Scene now offers some cool new methods

//Manage the Scene lifetime

//Play with the Canvas Color

//Manage Logs
log(message, level)
logIf(message, condition, level)
std_function getLog();
std_funtion getLogIf();

isRenderEngine() //Is the Scene running from the DevEngine or the RenderEngine
isScenePause() //Is the Scene in pause state

What Next ?

I updated the Adventure Scene with some Screens. In the following video you can see the Custom Loading Screen of the Scene, and its different Menus. We are now close to the Engine First Version, but the most important thing remains to be done : Build an actual game.

Now that I have the skeleton of the Adventure Scene set up, It's time to comes up with a Game Play. I think it will be the coolest part of the project  8).


Pages: 1 2 [3] 4 5 ... 7