Recently, I gave an inteview to a Paraguayan YouTuber lucasmelor who made a great video about my PS1 game development work. The video is in Spanish, but the English version is coming soon. You can find the original inteview (originally done in English) below. P.S. I wish I had more time to do writeups about my PS1 work. For now, I mostly post about it on Twitter! lucasmelor (LM): What was the…
I gave an interview to Lee Cisco for GCORES (a Chinese website about videogames). You can find the article in Chinese here. The inteview was performed in English, so I’m publishing the original here. (LC - Lee Cisco. ED - Elias Daler) LC: Your current project runs on actual PS1 hardware, which is incredibly impressive. What motivated you to develop a brand-new game for actual PS1 hardware?…
Comments (GitHub discussion) Comments (Hacker News) tl;dr: I learned some Vulkan and made a game engine with two small game demos in 3 months. The code for the engine and the games can be found here: https://github.com/eliasdaler/edbr Table Of Contents Preface Learning graphics programming Bike-shedding and how to avoid it Why Vulkan? Learning Vulkan Engine overview and frame analysis General…
This setup only works on Windows with Chrome (might work with Chromium, Edge etc. as well). Enable process injection in RenderDoc by going to “Tools -> Settings” and checking “Enable process injection” option. Restart RenderDoc. Close all instances of Chrome running on your system. Launch cmd.exe and run Chrome like this: cmd /C "set RENDERDOC_HOOK_EGL=0 && "C:\Program…
Related: How to implement action sequences and cutscenes in Lua Making and storing references to game objects (entities) in C++ and Lua LuaVela - the LuaJIT fork I’ve worked on I’ve written many articles about using Lua with C++ on my old blog many years ago. I also worked on a fork of LuaJIT professionally and described my experiences here - this experience made me learn a lot about…
Building C++ projects and managing dependencies is hard. However, CMake makes it a lot more easier. We’ll go step by step and create a simple project which will have SFML, Dear ImGui and ImGui-SFML as its dependencies. The project will clone these dependencies’ source code from Github and build them. You won’t need to use prebuilt libraries ever again. I’ll try to explain…
Recently I’ve ported my game/engine from SFML to SDL. This was not an easy task and took me two weeks of hard work (3-4 hours on weekdays, 6-8 hours on weekends). This article will explain why I did it and which challenges I’ve faced in the process. Table Of Contents Intro Why port my game to SDL? Porting to SDL - the process Results Intro My first SFML project SFML has played a huge…
Recently, IPONWEB open sourced its fork of LuaJIT called LuaVela. The original announcement post can be found here where a lot of details about it can be found. I’ve worked on LuaVela for the last 7 months and now I want to tell about my experience. Table Of Contents Intro LuaJIT’s 2GB problem Forking LuaJIT What I’ve found interesting about LuaJIT LuaVela’s new features My…
Introduction This post will show ways of implementing actions sequences and cutscenes in video games. The code is written in Lua, but the patterns can be implemented with other languages (except the coroutine approach, because not all languages have coroutines). Action sequences frequently appear in games. In cutscenes, for example: a character approaches an enemy, says something, the enemy…
Introduction A year ago I wrote a small library called MetaStuff. It is used to register meta info about classes, which can be later used for serialization, deserialization, making GUI and so on. The cool thing about it is that you can write a serializer for your own data format, be it JSON, Lua or anything else. The library is very small, it uses C++14, requires no pre-build process, RTTI,…
Table Of Contents Introduction shared_ptr and weak_ptr Using unique ids Storing references to entities in Lua Introduction The problem of handling references to game objects (I’ll call them entities) comes up very often. Sometimes it’s child-parent relationship between the entities, sometimes it’s useful to store a reference to an object in event data, some task scheduling class…
Related article: Using Dear ImGui with SFML This is my second article about Dear ImGui! This article is a collection of useful things, hacks and other stuff I’ve found while using ImGui. Mostly it’s focused on using modern C++ and some parts of STL with ImGui. Different Dear ImGui widgets Table Of Contents Labels Getting back to the context of the window, tree, etc. InputFloatN +…
Related article: Using ImGui with modern C++ and STL 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. Different Dear ImGui widgets Table Of Contents Introduction Dear ImGui and…
About me Twitter YouTube itch.io Github e-mail You might know me as the guy who does indie PS1 games. :) I’m a professional programmer and an indie game developer in my free time. I’m a solo developer - I do programming, art, music and everything else. I’ve started programming in 2009 in C++ (and have been using C++ as my “primary” language since then). I’m also…
About this website Welcome to my personal website. “edw” stands for “Elias Daler’s Website”. License All text content (unless stated otherwise) on this website is licensed under Creative Commons public domain (CC-0) license. The attribution is appreciated, but not required. The images and videos/gifs are licensed under CC 4.0 BY-SA. Principles This website represents…
Books Here’s a list of progamming books that I personally enjoyed and consider to be the best. History “Code: The Hidden Language of Computer Hardware and Software” by Charles Petzold “Coders at Work: Reflections on the Craft of Programming” by Peter Seibel “Hackers: Heroes of the Computer Revolution” by Steven Levy “Just for Fun: The Story of an…
Project MTP dev log index Comments (Github discussion) Project MTP dev log (December 2023) December 2023 Currently working on resolving technical debt and porting my Ebitengine platformer game to new engine. It’s going great so far! Sampler objects N64/PS1 switch? Started using sampler objects. They’re fantastic. Previously I used what many people do in OpenGL tutorials, the sampling…
Project MTP dev log index Project MTP dev log (July - August 2023) July 2023 2023-07-09 Learning how to animate It took me two weeks to learn how to rig and do basic walk/run animations. They turned out pretty fine. 2023-07-10 Rigging and animating the cat The cat is rigged and I made a basic walk animation for him. 2023-07-12 Face animations/textures Previously, the cat’s face features were…
Project MTP dev log index Project MTP dev log (March - June 2023) 2023-03-26 Got gltf model loading working again 2023-04-07 Lighting work start Previously, the engine had no lighting at all and I’ve never implemented any lighting/shadow system before. 2023-04-07 Shadow mapping Implemented shadow mapping. However, it only worked for one directional light (point lights were much trickier and…
Project MTP dev log index Project MTP dev log (September - November 2023) September 2023 2023-09-03 HRTF and spatial audio Figured out how to use HRTF support and reverb in openal-soft and this made audio a lot better! 2023-09-05 Multiple shadow casting lights Finally implemented multiple shadow casting lights. Had to learn how UBOs work and rewrite a lot of rendering code, but it was so worth…
Project MTP devlog Project MTP is a 3D adventure game. I’m making it with my custom engine. Source code: https://github.com/eliasdaler/edbr UPD (April 2024): The devlog is currently on hold… I don’t have time to write it. Comments (GitHub Discussion) March - June 2023 July - August 2023 September - November 2023 December 2023 The latest screenshot The game/engine is written in…
Test You’ve encountered my test page! I’ll use it for various experiments with Hugo, HTML and Markdown. Table Of Contents Intro Inner paragraph Basic Lists and tables Image Video HTML Intro Preamble for “blog articles” --- title: "Article" date: 2022-02-28 --- Inner paragraph Hello. Basic Hello. This is a normal paragraph. This goes in the same paragraph. Press F to pay…