Hello!

Re:creation

You’ve stumbled upon my blog. I’m Elias Daler, though my real name is Ilya Daylidenok (Илья Дайлидёнок). I write code, turorials and make video games!

I’m developing a game called Re:creation. Info/press kit.

This is my old blog and newer can be found here:

https://eliasdaler.github.io/

Here are some things I’ve written and which will be here as an archive.

Dev log

Follow me on twitter! @EliasDaler

E-mail: eliasdaler@yandex.ru. Feel free to write and ask questions.

If you like the stuff I do, check this out:

Donations and ways you can help

I also write articles about Lua and C++.

Using Lua in Practice.

Using Lua with LuaBridge

Using Lua with C++ (writing your own binding with Lua C API).

Other tutorials and articles

Some sprites on this blog are from Legend of Zelda: A Link to the Past by Nintendo.

Advertisements

I’m moving to https://eliasdaler.github.io

Hello, everyone.

Recently I’ve decided to create a new blog which will be cooler looking and easier for me to modify. So I’m proud to present it to you!

https://eliasdaler.github.io

This will be the blog I’ll be using in the future and then maybe I’ll move to some domain like eliasdaler.com or something like that.

You can find all the info about why I’m moving and what I’m planning to write about next here.

See you there. :)

P.S. This blog will remain as an archive of everything I’ve written before that, but I’m probably going to put big notices at the bottom of the pages to go to newer articles or I’ll just remake some parts of the articles which I consider to be out dated.

Re:creation dev log. March-June 2016. Part one. Game stuff and and some awesome Lua scripting

The last few months I was very busy finishing my bachelor’s degree (it’s over, I got an “A”!). But still, I’ve managed to do some cool stuff and improve the engine structure and tools in the last couple of months.

This dev log will be released in two parts. In this part I’m going to talk about game stuff I did and stuff I changed about Lua/C++ integration. In the second part I’ll talk about engine tools I’ve made with ImGui and different refactoring I’ve done.

Game stuff

Here’s one of the latest screenshots of the game. Houses were previously just big sprites, but right now they’re composed out of tiles which lets me reuse them for other houses and build new buildings more quickly.
i2yn8x4

Continue reading

Creating awesome GUI for you game dev tools with ImGui and SFML. Part 1.

This is the first part of tutorial about Dear ImGui (AKA ImGui) and it’ll show you how to set it up with SFML. The second part will be library agnostic and will talk about common ways of doing stuff in ImGui, some awesome widgets and some useful STL overloads.

examples_01

Different ImGui widgets (taken from ImGui’s github page)

Introduction

Having good content creation (level editor, resource editor, etc.) and debugging tools for your game is very important and can lead to productivity and creativity boost.

Here are some examples of tools I managed to make with ImGui for my game:

Level editor:

Animation editor:

(It was possible to add ability to change members of C++ objects with ImGui by doing some template magic, maybe I’ll write an article about that later!)

As you can see there’s a wide range of widgets that ImGui can provide and there are lots of other great examples of how other people use it here. Continue reading

Re:creation dev log. January-February 2016. Better art, sounds, cutscenes and more!

Just a short info for those who have never heard about my game.
Hello, my name is Elias Daler and I’m a solo developer who is making Re:creation in my free time. It’s done in C++ with SFML and Lua!

Re:creation is an action adventure game about the undead knight who wants to free undeads from the humans who use undeads as slaves or practice dummies. The unique mechanic of the game is called recreation which allows you to control dead people with your ghost gaining their abilities to solve various puzzles. Here’s an example of this puzzle.

u9cys5p

Read more about the game here.

 

Back to the dev log…

Two months have passed since the last dev log. I had lots of time to work on the game and here’s what I’ve  managed to work on.

Better art

Yet again, another graphics improvements! Change of the perspective was quite an improvement, but I’ve also realized that I can improve other stuff too.

There’s more depth to characters and surroundings, the colors are used better, etc.
There are more graphics improvements which I’ve done recently (for example, I’ve improved main hero’s sprite a lot), but I’ll show it off a bit later.

Here are some comparison screenshots!
ku1rd35
izcnoc7

There are also subtle things that made game look better!
xdywsa3

rgrbjss

Continue reading

Using Lua with C++ in Practice. Iterating over Lua tables

Hello, this is new part of Using Lua with C++!
This part will be short, but very helpful. It will use LuaBridge and Lua C API, but it’s pretty easy to rewrite stuff for other Lua/C++ bindings.

The problem

Suppose you have a Lua table this:

someTable = { 1, 5, 10, 20 }

Suppose that someTableRef is a LuaRef pointing
It’s pretty easy to iterate over it using LuaBridge:

for (int i = 0; someTableRef.length(); ++i) {
    // note the i + 1 here, it's because arrays in Lua start with 1
    LuaRef elementRef = someTableRef[i + 1];
    ... // do something with the element
}

But what if you have a table like this:

someTable = {
    firstKey = "someString",
    anotherKey = { ... -- some stuff }
}

and want to iterate over it?

This can be easily done in Lua:

for k, v in pairs(someTable) do
    ... -- do stuff with k
end

But how do we do the same in C++? I’ve found no way to do it in LuaBridge (and seems like lots of other libraries don’t include this functionality as well), but fortunately we can use lua_next from Lua C API to do the thing for us!

Continue reading

2015

Hello, I realize that this post may be a bit late, but I was so busy with exams and making of my game that I didn’t have enough time to write this post sooner. But now I’m finally free!
This post will about my life in 2015: the stuff I did, learned and experienced.

ovo5ghf

Playing some SNES games in Console Museum

This year wasn’t as life-changing as the previous one. It’s hard to surpass getting the best girlfriend ever and making an awesome game out of small prototype. But still, this year was a perfect continuation of the previous one. All the things in my life just got better.

Continue reading

Using Lua with C++ in Practice. Getting data from scripts and why globals are evil.

This part doesn’t depend on the others, so you can read it even if you haven’t read previous parts. (I suggest to check them out, though. You may find some interesting stuff!)

This part will mostly use Lua C API only. LuaBridge is used for a small part to show some cool stuff. (Though you’ll be able to follow with most other bindings)

This part contains one of the most important practices in Lua programming which I discovered pretty recently and felt dumb afterwards because for the last two years I’ve been doing stuff wrong.

Today I’m going to talk about storing Lua tables and variables in scripts.

Storing data in Lua is great. You can easily store stuff in neat way and you can also store functions which you can later call from C++. You can store tables (or other variables) in scripts in two ways: as global variables and as local variables. Let’s talk about each one.

Continue reading