Showing posts with label 2D Game Engine. Show all posts
Showing posts with label 2D Game Engine. Show all posts

Friday, October 7, 2011

Status update - 07/10/2011

Heys,

Been so busy lately, always working in the engine and demonstration/testing of its features. Whenever i'm home from work, i do my best to advance the code a little further. I'm aiming my effort at publishing the engine 1.0 version as something usable to make a full game. I would really appreciate having someone helping me with this task, at least with the testing part, which could help greatly to mantain bugs and create new features.

I'm focusing 50/50 in improving consistency of what is done, while inserting new features whenever they seem relevant.

Since i'm constantly learning to go through difficulties in implementation of so many systems, i feel in the duty to share my experiences a little more. So i will make an effort to build little tutorials to share with the world how to do little things. Then, bigger tutorials may come, which may use little tutorials in the middle, but that's for later :)

One big thing that was implemented into the engine lately is scripting support! AngelScript is integrated in Parabola Engine. What does this mean more precisely? Well, anytime, you can create an "AngelScriptEngine" object. It allows you to hold scripts, compile them into bytecode ( possibly saving to files, later), and running them at a specific entry point. You have the freedom to compile and run a script with 2 lines of code, at a function of your choosing, in the script of your choosing. Once you create a new "AngelScriptEngine", it is pretty much useless, tho, it provides auto-configuration utilities. That means you can limit your scripts access to the engine, to make different kinds of scripts for different ends. You can also configure the engine with everything and have a of freedom. This auto-configuration part is being done slowly as the engine goes further, since its passive to changes any time. There will be a scripting manual for each auto-config "module". Right now, you can print things to the screen from a script and use strings. Also, if the GameCore functionality is added to the engine, its scripts will be able to control the game that it was configured for by referencing the "Game" var. "Game.SetWindowTitle("New title")" is an example of a working function, usable already from the scripts.

Also, i've been writing engine documentation for doxygen api reference, as well as writing a wiki with tutorials for engine usage and general game making.

The physics system, Kinesis, an extension of Box2D is really easy to use, completely controllable as intended by Box2D specification. Besides, the physics world is renderable through the SceneRenderer for debugging the simulation. More importantly, i've written a small file format for handling physics. This means you can specify and configure physics entities through a CSS-like text file. Then, you take a KinesisWorld and tell it to parse and open the file, and everything specified enters immediatly into the simulation already existing. Here's a small example:

- Case Insensitive
- Comments as below are not allowed. You can use # to mark the rest of a line as a comment.

World {
            Unique: yes; // is this world to be added to the destiny KinesisWorld, or completely replace it?
             Gravity: 0,10; //gravity force
}

Body.mybody1{
       Position: 300,400; //where in the world is this body center of mass?
                                    // Position coordinates are converted internally automaticly, for optimal sizes
                                    //(see Box2D manual)
       BodyType: Dynamic; //is the shape dynamic or a static one? maybe  a kinematic?
     
       Shape {
                  ShapeType: Circle;
                  Pin: 0,0; //where to fix this shape, relative to the body position;
                  Dimensions: 20;
                  Friction: 1;
       };


       Shape {
                  ShapeType: Box;
                  Pin: 100,0; //where to fix this shape, relative to the body position;
                  Dimensions: 20, 30; //dimensions of the box
                  Friction: 1;
       };


}

Hopefully, in the middle of everything i will find time to write a proper website with a proper documentation for releasing the engine as it deserves :)

There is more to say, but i will leave it to a next time!

Wednesday, December 1, 2010

HollowEngine

Good morning world!

I am presenting the concept idea and some of the up-to-date work on the HollowEngine i am working on.
This Engine is meant to create games, as you may have tought, obviously ! The engine will have its primary focus in platforming games, but will also support top-down games, along with logic games.

In sum, its a 2D engine to build casual games if not something commercial.
Knowing i am no superhero(yet!) i decided to create the engine on top of a few libraries!
So,
      -SFML is used for graphics, input, sound
      -Box2D provides the physics layer
      -libRocket provides the interface systems
      -SPARK particles provide the cool effect stuff
      -Enet provides the networking capabilities

I am using c++ object oriented design to build this, as you may have noticed :  )

This engine creations won't try to mimic old classic games, instead, it will try to give the best of the modern approaches to the users. It will be physicly oriented all the time. One of the main issues will be creating networked simulations with it because playing alone is long gone in time :)

I am coding a world editor tool, where you can create the maps to use with the engine very easily.
The engine itself is going to be cross-platform , so will the games. About this tool, for now its built on top of .NET, but in future maybe it will have a twin in another platform.

Screenshot of the editor:

More news coming soon along with screenshots : )