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

Author Topic: Nero Game Engine  (Read 39917 times)

0 Members and 1 Guest are viewing this topic.

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #75 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.

http://www.youtube.com/watch?v=bZYFphPuRBY

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.
« Last Edit: October 20, 2019, 04:20:02 pm by Sk Landry »

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #76 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.

http://www.youtube.com/watch?v=LkdOYuehylY


Playing with the new Canvas

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

http://www.youtube.com/watch?v=jjc6VaoEsLc


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)
« Last Edit: June 06, 2020, 01:08:03 pm by Sk Landry »

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6226
  • Thor Developer
    • View Profile
    • Bromeon
Re: Nero Game Engine
« Reply #77 on: December 18, 2019, 09:08:44 pm »
I haven't checked this thread for quite a while, but looking at the videos, it seems like you've made quite a bit of progress!

The focus is probably still platform / jump'n'run games? It definitely makes sense to keep the scope not too broad, as building flexible engines can be a massive endeavour ;) also nice to see that you thought about compiler integration.
Zloxx II: action platformer
Thor Library: particle systems, animations, dot products, ...
SFML Game Development: first SFML book

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #78 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.

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #79 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;

http://www.youtube.com/watch?v=j6DbdY4rg-4


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.     

http://www.youtube.com/watch?v=JsdsA00efIo


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-game.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!
« Last Edit: June 06, 2020, 01:14:23 pm by Sk Landry »

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #80 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_log(nero::DownloadManager::getPrettyString(bytes));

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

while(progression->isDownloading())
{
        //print the percentage [0 - 100]
        nero_log(progression->getPercentage());
}
 

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");
                task->setCompleted(true);
        }
}

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)



« Last Edit: April 08, 2020, 03:57:31 pm by Sk Landry »

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #81 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-game.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 : Landry Games
  • Project Lead : sk-landry
  • Project Namespace : ng

« Last Edit: June 06, 2020, 12:21:57 pm by Sk Landry »

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #82 on: June 05, 2020, 09:35:27 pm »
Hi there, how do you do?  ;D

First video tutorial released

I've just released a first video tutorial on the Nero Game Engine 2 Demo, watch it on you Youtube

https://www.youtube.com/channel/UCIR0nDUMGzJ3Pkpa3gDCUeQ

Nero Game Engine 1 SDK Update

I've just released a new version of the Nero Game Engine 1 SDK (r1.0.3). With this new update, you can now change the DevEngine Window size as you want.

The DevEngine has two constructors now
 DevEngine(const unsigned int& windowWidth, const unsigned int& windowHeight);
 DevEngine(const unsigned int& windowWidth);

With the first one, you specify the width and the height you want, with the second one you only specify the width and the engine will compute the height.

Important
There are a min-width (1305.f) and a min-height(670.f). If you set a value below these ones, the engine will ignore your inputs.

Example
nero::DevEngine engine(1900.f, 1000.f);
//or
nero::DevEngine engine(1900.f);

How to update
You can download the full SDK already updated (Nero Game Engine  SDK 1.0.3) or you can download the update only (Engine Update 1.0.3) and copy its content in your current installation

download page here

What next

Build the website and make tutorials
As of now, I will focus on building the Engine Website and making some youtube tutorials. I'll try to make 2 or 3 tutorials per week.

Engine development
I will slow down with the Engine 2 development in order to focus on tutorials. But just for info, the next thing I'll be working on is the Engine Android Backend. Like Unreal on Unity, the Engine will able to deploy your games on android automatically.
« Last Edit: June 19, 2020, 05:35:34 pm by Sk Landry »

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #83 on: June 29, 2020, 09:08:35 pm »
Hi everyone how do you do  :D

Nero Game Engine 1 SDK Update 1.0.4

I've just released a new version of the Nero Game Engine 1 SDK version r1.0.4

I was working on a video tutorial when I found out that I've made a big, really big mistake with the last Engine Update  :o :o :o.
I built the update 1.0.3 on top of the version 1.0.0, by doing so, the Engine lost the updates 1.0.1 and 1.0.2 [software regression ;D]

I just removed the update 1.0.3 from the website.

The first video tutorial should be ready by tomorrow, have a good day  8)
« Last Edit: June 29, 2020, 09:12:16 pm by Sk Landry »

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #84 on: July 01, 2020, 01:15:40 am »
Nero Game Engine 1 Tutorial Series

Hi there, how do you do do, I just uploaded the first video tutorial on the Nero Game Engine 1 on Youtube. The next video should be ready by tomorrow.

I will use twitter to announce new videos, so don't forget to follow me here :  https://twitter.com/nerogameengine

Have a good day ! ;D

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #85 on: July 04, 2020, 05:02:59 pm »
Nero Game Engine 1 Tutorial Series - Part 2

Hi, I just uploaded Part 2 of the tutorial series on Youtube, I got busy on Wednesday and couldn't finish it at time  ;D

Nybble

  • Newbie
  • *
  • Posts: 17
    • View Profile
Re: Nero Game Engine
« Reply #86 on: August 19, 2020, 03:41:21 am »
Man every version just gets better and better, good job on this, this is really cool.

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #87 on: August 20, 2020, 05:22:06 pm »
Man every version just gets better and better, good job on this, this is really cool.
Thanks, I really appreciate  ;D

Sk Landry

  • Jr. Member
  • **
  • Posts: 77
  • Build games is simple
    • View Profile
    • Nero Game Engine
    • Email
Re: Nero Game Engine
« Reply #88 on: August 26, 2020, 05:06:42 am »
Nero Game Engine r1.0.5 Released

I was preparing a tutorial on Physics Joints and I found a bug when creating a Wheel Joint. The new release fixes the bug, there are also other changes, some methods have been renamed, others have been added.

Here is the list of all changes:
Release 1.0.5 [Engine Update]
- [Bug Fix]
    - in method nero::ObjectManager::createJoint, in the case of wheel-joint, fix property localAxisA
    - in method nero::ObjectManager::findChildObject, check if input object is nullptr
- [Enhancement]
    - remove "const" qualifier from method nero::Scene::getContext
    - rename method nero::Scene::enableFollowTarget to nero::Scene::enableCameraTarget
    - rename method nero::Scene::updateTargetOffset to nero::Scene::setCameraTargetOffset
    - add new method nero::Scene::getCamera
    - rename method nero::Collision::isCollising to nero::Collision::isColliding
    - rename method nero::Collision::isObjectCollising to nero::Collision::isObjectColliding
    - add new method nero::ObjectManager::getNewJointId
    - move method nero::Scene::enableLayer to nero::ObjectManager::enableLayer
    - move method nero::Scene::disableLayer to nero::ObjectManager::disableLayer
    - rename all joint property maxMotorForce to maxMotorTorque
    - rename method nero::Scene::followTarget to nero::Scene::followCameraTarget and make it overridable (virtual void)

Physics Joints Tutorial

I have created a project where I experiment with all Joints. There are 11 Joints in total, So far I have implemented 8 Joints, 3 left to go

You can find the project on GitHub : https://github.com/NeroGames/enginev1-physicjoint
The project shows how to build a car with wheel-joints, how to build an elevator with prismatic-joint and many more  ;D

« Last Edit: September 12, 2020, 06:49:18 am by Sk Landry »