>Devlair/tags/gamedev_

Viewport letterboxing in Raylib

2 mins

About week ago I started little 2D old school like project in latest .NET 7 just to test some new things I allways wanted to try. For graphic representation I’ve used small library called Raylib. For those who don’t know Raylib is high level OpenGL “wrapper” written in pure C and inspired by XNA - so it works more or less like Monogame or Love2D. I wanted to develop whole project in one native resolution which is small (in my case 480x320) for that desired old school look and feel. Technically it’s pretty simple, we just create render texture (aka offscreen target, render target or canvas) and basically draw everything into it instead of default framework canvas. Then we take our render texture and draw it how we want. That means we can use some trivial math to calculate positon and size when user resize window.

post gamedev

Defold

2 mins

Defold je svým způsobem jedinečný nástroj, který je určen pro tvorbu středně velkých a menších her. Již při prvním pohledu na oficiální stránky si potenciální uživatel lehce všimne, že Defold spíše cílí na mobilní zařízení a web, ale rozhodně to není nutnost protože podporuje výstup pro veškeré mainstreamové platformy a nedávno byla dokonce přidána podpora pro PS4 s potvrzením, že podpora pro PS5 bude následovat. Jako největší výhody oproti konkurenci bych zmínil tyto body:

post gamedev

Project ISO

1 min

Isometric projection is one of my favorite game stylization, and Project ISO was my first attempt to challenge myself and create a custom isometeric “engine”. At the time I only worked with C#, so the obvious choice was to build the whole concept on top of the Monogame framework and it served me well. First project ISO prototype I didn’t really know what challenges awaited me, so I set up the project and started to build the structure. After I created the basic structure of the project, my next task was to write my own system that parses the map metadata from Tiled editor and then render it. Then I figured out how to write a custom abstraction of the map view (camera), how to create an asynchronous resource loading system and how to handle scenes. I spent most of my time testing the rendering itself. In the beginning I was rendering 1000x1000 tiles at 30fps max. Then I ended up using canvas to render the map only if there was a change. This method itself brings many fps, but unfortunately also many limitations. In the end I chose a system where I only render tiles that are seen in the FOV of the camera. Kind of like “occlusion culling” only much simplified.

project gamedev

Why I love fantasy game consoles (and you should too)

2 mins

Fantasy game consoles are “virtual computers” that lets you create and play retro-style software on your PC. But how does it work? Well, it is very simple, users have to download binaries (or use a web version) of the desired console and launch them. The console then welcomes the users with a booting screen and with old school console-like interface which the user uses for “navigating” through all the tools.

post gamedev

Frameworks & Engines

2 mins

We live in such a wonderful age to be software developers. A few decades back, game development was a pretty challenging task even for intermediate programmers. Nowadays it is very easy to get directly into game development. Modern hardware is powerful, and in fact, a moderately powerful laptop is enough for development. Also, indie devs nowadays have access to a rich library of tools. Just choose the right one… yes?

project gamedev