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

Author Topic: Nero Game Engine  (Read 34502 times)

0 Members and 2 Guests are viewing this topic.

Sk Landry

  • Jr. Member
  • **
  • Posts: 69
    • 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: 69
    • 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 them 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: December 03, 2019, 08:00:47 pm by Sk Landry »

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6208
  • 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: 69
    • 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: 69
    • 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 act as Light Blocker;

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 (version 1.1.0). 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: December 28, 2019, 02:26:23 am by Sk Landry »