Skip to main content

Happy with Urho3D

I had this engine in the pending tasks list since a couple of months (couple>4, really), but at some point I was motivated by a project I saw in FreeGamedev forums. Urho3d is a young project, and the first time I took time to look at it, I wasnt too kind with it. The editor was ugly and non intuitive, from my point of view, I didnt spent time looking at the samples, and also experienced troubles when trying to compile it.

Cant say that all the problems are gone, but in the last weeks I have learned to appreciate Urho3D, despite the lack of certain features, like terrain edition tools. Or (I really miss this) having the editor integrated into the engine itself, like Unity3D and most ocmmercial engines. Being able to run the game, see how it looks, and go back to edit the scene is something really useful.

But something in Urho3D got my attention: it is really easy to learn. Even when I still far from mastering all the engine, I have achieved in a week much more than I had with any other engine.

In the previous images you can see my usual test prototype in action. The rendering quality is not good, but consider that I dont have a decent graphic card, what you see is running on an Intel GMA 4500 gpu, under Linux, with OpenGL 2.1. Currently, it implements isometric like camera, with rotation, scrolling and zoom, character movement with path finding using navigation mesh and probably will add animation support today or tomorrow. All that, in a week, just asking in the forums and studying the samples.

Considering this fast rythm, I can start working seriously on my next project next month, instead of January as I expected.


Popular posts from this blog

Unity3d isometric camera tutorial

I had pending this since a month ago, so Im forcing myself to post it today. The goal is to provide a fully functional isometric like system that you can use with few or none modifications in your own game. So, lets get started.

Start Unity3d and in your scene, add an empty GameObject, we will call it target. Create a camera object and drag it to target to make it child. The result looks like this:

Now select Camera and set the values to this:

For a true isometric like feeling, ortho projection is essential. You could use perspective, but it is not the same. Play with Size to suit your needs (we will be using this later, when implementing zoom).

Now, lets create an script named CameraController, or whatever, and drag it to target GameObject. Lets implement scrolling, the easier part: go to Update() and add the following code:

if (Input.GetKeyDown(KeyCode.W)) {
            dir = UP;
        } else if (Input.GetKeyDown(KeyCode.S)) {
            dir = DOWN;
        } else if (Input.GetKeyD…

TPS with free look tutorial, version 2 (and bugs)

After working a bit to improve the third person camera system I mentioned a couple of days ago, I found a few problems that I could fix, and other I cant. Here is the updated code:

public class PlayerControl : MonoBehaviour {

    public GameObject pivot;
    Animator anim;
    int direction = 0;
    int FORWARD  = 1;
    int BACKWARD = 2;
    int LEFT = 3;
    int RIGHT = 4;

    // Use this for initialization
    void Start () {
        //cam = gameObject.GetComponent<Camera> ();
        //Cursor.visible = false;
        //Cursor.lockState = CursorLockMode.Locked;
        anim = gameObject.GetComponent<Animator> ();

    // Update is called once per frame
    void Update () {
        Vector3 rot;

        if (Input.GetKeyDown (KeyCode.W)) {
            direction = FORWARD;
        } else if (Input.GetKeyDown (KeyCode.S)) {
            //go back
            direction = BACKWARD;
        } else if (Input.GetKeyDown (KeyCode.A)) {
            direction = LEFT;
        } …

Tutorial: building a modular character

Building character models with body parts have been an obsession for me in the last weeks. I have googled, asked, googled, and asked again, played with Unity3d editor, tested code, and so on. You can see the result of my work in the previous post. First of all, I have to say that what I achieved is mostly derived from this thread and the sample posted there. My code is a copy&paste of that sample. Also, you can find a more extense solution in this forum thread.

First, lets start with the model, which obviously, is divided in the required sections. Lets say we have head, torso and legs. Each part must be exported to a separate fbx file, but it must include the skeleton. Then, export the skeleton without geometry to another fbx.

Im going to assume that you want to instantiate all components, and even player, at runtime, from a  C# script (no Unity editor involved, except for creating prefab an position marker), so, we will place the sections, the skeleton and everything…