Sunday, November 13, 2011

What's new

Lately, i've been working a lot even though there isn't too much to show. The Parabola Engine is getting better every day, but right now it has one or two issues in the graphics part. Maybe it needs some improvement in design, or just a few more fixes, but i hope i have a confortable rendering system that everyone will like!

Also been working in integrating UI better, the map editor, documentation and an entity component system, which is not so easy task, but will be worth it later :)

Sprite animations are working really pretty, but i will only publish a sample when i implement them in a character controller :)

Besides, i've been drawing a little. I am making a digital painting, which is not even close to finished yet, that i called Phyro. You can see next what it is about, but it should improve a lot with more work, its just a tought i had and decided to draw, learning a lot while making it without any aid except the tools for the job :)



See you.

Monday, November 7, 2011

Trying out the "mood" for the next game

I decided to paint a little scene, just to start fetching the right mood for the next game, I think it starts to capture what the feeling is. Just note that im not an expert in digital painting (yet, ahah ), and the amount of time dedicated to this was really low. More will come, hopefully better, and now back to coding!

Sunday, November 6, 2011

Little sample application

I've put together a really small example of Kinesis, the physics module of the Parabola Engine SDK.

Its pretty much a small sandbox to play with. When you press the R key, circles and boxes appear in the position of the mouse cursor, with variable sizes (actually random).

The simulation is drawn in debug mode, so it is nothing fancy, but should be fun.

To finish, you may drag around the objects with the mouse! I dare you to stack as many boxes as you can !

https://github.com/downloads/DevilWithin/ParabolaEngine/EngineDemo1.rar



Enjoy

Saturday, November 5, 2011

Putting webs into shape!

The engine is being actively developed and improved. A lot of fun things are happening with it, and soon a few samples will pop out!

Anyway, i've been doing some work related to documentation in general and the website. You can visit the latest version on the right link. It is starting to look confortable but is still missing major information. You can also visit the wiki, the center of information on the engine, the goal is to have as much info and tutorials in there as possible :)

Been working into refining the engine current Games interface, better renderization support, and a lot of integrating physics systems.

Also, the side view editor is being worked on!

Soon, a 0.3 version will come, approaching slowly but steadily to the major release 1.0.
Current versions may still have a few bugs, incompleteness or missing features to actually make a full game, but all of that is being taken care of :)

Friday, November 4, 2011

An animation for a friend

Busy weeks lately, and probably that won't change, but i'll try to keep posting!

A couple of friends requested me to make a little video in 3D several days ago, i didn't have a lot of time to make it, but you can see below the work done in like 7 hours work and 20 hours render :)

The video is about encouraging the fresh newcomer students about the academic spirit and so on, shown to them by the veterans of the university. The institution we speak of is IPAM, the Portuguese Institute of Administration and Marketing, near Porto.

Enjoy
Bem Vindos a praxe do IPAM - YouTube

Sunday, October 16, 2011

Birth of Parabola Engine

I should declare my engine as born from now on.

It has a website, linking to a wiki (the manual), a forum for the community, the API reference and a downloadable version 0.2 ready to use.

It is all in its baby steps, but this is the base from where i will evolve the product into something stable and consistent.

This means too that everybody is invited to help testing and improving the engine, i will be supportive as much as i can!

Time will bring wisdom, i hope :)

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!

Saturday, September 10, 2011

Documentating the engine..

I've been into documenting the engine properly, so i can provide a decent first release of my project.

This mainly consists in describing the engine design and functionalities inside the code, so the documentation page can be generated right. I am also writing all kinds of useful notes in the classes as well as mini-tutorials.

Later, better tutorials will be built, hopefully with community help!

I will be telling the news often until the first official release :)

Friday, September 9, 2011

Some words on Indie Development

There are a few things that get me thinking about the solitary kind of work.. I wonder how close to the reality they are, and what other developers think about them, but anyway i think im in the good path ..

As a modest developer, i've never neglected the learning part of the process, so i took the most significant bits i could from every indie developer known to me, from their public domain knowledge, being one of my main inspirations this good man, who does exactly what i plan to be doing in a not too far future: http://positech.co.uk/cliffsblog/ !

So, after taking all these relevant ideas and experiences from the other people, i tried to build my own way of doing this, putting all together in the most consistent way i can..

So, here go a few loose words about the process of making games:

I found that it IS a good idea to build a small library to support the game development, it will only get more mature with time, nothing to lose here if you only put in it the things you WILL use for sure.
In my case, i actually added my foundation library to a bunch of USEFUL third party libraries and made a layer on top of it to put all together, and Parabola Engine was born, but thats another story.

To help the focus, i usually think its better to make feature by feature, breaking through the code to make it work FAST, once your eyes are pleased with a 'cool' result, its a good time to look again at the code, maybe in another day, and refactor anything left behind and then move on to the next!

Also, i really came to notice that i can make good features really fast IF my base foundation code is solid enough to provide a little-high-level code and IF the design of the code is clear in my head. Why is this? Because if there isnt a good design in your head, the fast-feature-making thing won't work, as you probably end up changing everything again. To solve this, when i code and i get to a place i am not sure which path i should take, i just go away from it and relax. Normally, in the next day during the time i can't code, i take on a piece of paper, and start sketching ideas. It is indeed usual that I will be ready to make a great progress when i put my hands on the code!

 So, my advice is, when you are building such a complex puzzle, first picture it done and what pieces compose it, then put it together!

Another idea I try to follow, and that seems to be working just fine, is that Side-Projects are GREAT! To make it greater, my bet was to make my side-project part of my main project. This means that i work on the game as far as i can, then while inspiration comes back, i just code a totally different thing that can be made part of the game itself. This could be a little mini-game, a little feature here and there. An extra menu, an extra setting, who knows! So far, i usually work in making the engine a little funnier and good to use, sometimes coding really important parts of it, others just making things that could be useful, but are actually fun to make!

Sure there would be more to say, but lets skip the talk for today!

Monday, September 5, 2011

Learning Digital Painting :)

I've been just playing around with the graphics tablet, learning how to paint, im working on a little scene for practicing. Here it is, just a little time put in it, but i plan to finish this :


Bye!

ParabolaEngine Introduction

So, today i'm starting to explain the base concept of the ParabolaEngine!

When you start this 2D Game Engine, or, when you instance a ParabolaEngine object, you are automaticly setting a application-unique environment, like a mini operating system where everything will happen!

To be clear, after you instance and initialize the engine, it is a game environment, a bit like iOS or Android, and it can easily manage multiple games running, and dynamic loading of different games. This means you can compile all your games in a bundle with ease!

All your game code will be encapsulated in your game class, which shall inherit the engine's base game class, the GameCore. Right from the start, a GameCore can penetrate the environment and start running. Proper callbacks are set so that you only worry about saying 'what do draw' or what to 'update'.

From within your application, you get a chance to control if the environment will be noticeable or if the game will run normally, so the end-user is never aware that a engine is running in the back-office. Even if the game is taking control of all the execution, there is a chance to bring in engine's features directly on top of your game. This is possible because the engine provides some features a bit like "Windows Live for Games" and will overlay its own stuff on top of your game, if you allow it.

There is also this funny thing in the engine, the SourceBox. Its a pluggable package/directory with all the engine environment resources and it basicly works as a turn on/off feature on your games. If its there, you get some extra ui and features from the environment, if it is not, you get the minimal functionality.

Another funny thing is that any game running is being updated by the environment from a different thread, this means you can make "long lasting code" in your game updates and the drawing will keep going smoothly. Even allowing you to stop your update in a blocking situation, for example waiting for the user to input something in a little animated ui, giving the impression that nothing stoped at all! Of course this is not the optimal use and would block other running games updating too.

Other cool features, but not the only:

- Packages
- Resource Loading
- Localization
- Localized UI with a libRocket full integration
- Configuration files and Resource files
- Dynamic Key Binding
- Animation classes
- And way more!

Feel free to contact me anytime if you need information or if you are interested in using the engine! Stay tuned :)

Sunday, September 4, 2011

Yay, i've got a new graphics tablet!

'Night !

I've been thinking of buying a graphics tablet to assist in my digital art but now i actually bought one!

I got one of these things!

The Wacom Bamboo Pen!

It is really amazing, very precise and everything!

Lets see what comes out of this! Some digital paintings getting ready! Stay tuned :)

Friday, September 2, 2011

Long time away! Sorry for that..

So, I started working full.time a few months ago, and it really narrowed down my time! Still, i never stoped working on my projects, and now i think i can mantain this blog better than ever!

Big things should be coming in the near future, if nothing happens in the middle!

From now on the blog will have a decent activity and will hopefully start to become something worth to read!

As for a first update on whats happened lately:

- There is no more HollowEngine, its now ParabolaEngine, and its looking better than ever!
- It is getting closer to an official public release, completely free to use, and with regular support and updates from me!
- It is on a phase of improving consistency, some testing and documentation writing. Anyone interested is absolutely free to contact me about it!
- I will be explaining the engine in more detail for the next days, weeks , who knows!
- Older game projects are stand-by, giving way to the newest codename "Slither" game, which promises to rock a little bit of the earth! :p
- This slither game is being developed concurrently with the engine, so it will be the biggest test for the engine capacities for now!

Thanks to anyone who is still following this :)