The Beginning of the New Year

In recent weeks it was hard to find the time to make a blog post. I had a dream - making games in US, and spent ~10 years to achieve it, sadly I have only an L1 visa, which I should extend, and a corporate lawyer told me there is a chance that the US would not extend it. That was pretty sad news for me. I live in Orlando and visited this place so often, there is some energy, still hoping everything is going to be fine.

Btw I have been working on Lua integration into my project. For a long time, I didn’t want to implement the full engine, but seems like that’s inevitable. So now with all the logic in Lua scripts that seems more like an engine. So far I used CryEngine style with ScriptSystems and Modules, so every module has the metatable on the Lua side, with simple calls like the code below I was able to implement a simple pong game, only physics is not ready completely.

local node = Script.LoadPrefab("name.prefab")
Physics.AddObject(node, mass, tag)
Script.SetLocalPosition(node, x, y, z)
function GameRules:Update()
  if Input.KeyPressed(LEFT) then
    local x, y, z = Script.GetLocalPosition(paddle)
    Script.SetLocalPosition(paddle, x - 0.2, y, z) 
  end
  -- etc
}

Besides the code, I found while I know quite a few things about coding and engines, I could not find good inspiration on how the separation of modules should look, so I started reading the Game Engine Architecture book. The last edition is really a gem - most of the things are really familiar, but I found a few new ones. And it’s written so well - it’s really hard to stop reading it.

I will continue posting in the usual manner, next steps would be more interesting, I have to finish my demo app, convert the old facade-renderer to an engine, and start my work on the export, streaming/memory, and different modules with runtime linkage and audio.

I wish you all the best, good luck