I’ve decided to dust out this blog and start using it again.
The long story is that I’m always in an eternal state of either blogging or thinking “I should blog” – and every time that I think about it I ask myself: “But should I use WordPress? Medium? My own Website? or Cohost?”
The reason I like WordPress and why I am here is that this WordPress blog already has some stories. I used to write monthly here since January 24th, 2017. Wow! That’s a long time ago!
This website saw me going from my first weird game idea called “Zelda Souls”, trying pixel art, game music composition, making a weird tic-tac-toe-like thing prototype, making a weird puzzle-platformer prototype called simply “ghost game”, prototyping a bunch of other weird things, migrating from Unity to GameMaker, making my first few game jams, releasing two mobile games, migrating from GameMaker to Unity, making more weird prototypes, going to GDC for the first (and only!) time, moving to the United States, starting Peanut Butter Engine, realiti2D, visions2D, and killing all of them!
And it all pretty much ended when I got a job in the games industry, that’s it, right? That’s what it was all for! Grinding until I get a job and can sustain myself by working on video games!
Anyway, the TL;DR is that there was a lot of chaotic weirdness and experimentation going on here, and I want to add more to that pile! When I look back at all those things I think: “Wow! I used to do things!” – I remember when I used to be excited about doing things and experimenting with game development, good times! Now I am just an old guy burned out who wants to spend all of his free time writing and playing the piano. And watching movies. Watching movies is great!
Yesterday I rewatched this movie called “RRR”, right. It stands for “Rise, Roar, Revolt” and it’s an Indian movie made in Telugu language, right.
This is one of those movies that make you go: “Joder, Esto es cine!” while holding your cigarette.
The short is that it is a movie about two Indian revolutionaries – And what they supposedly did in times when there isn’t a lot of historical information about them.
It’s just a great movie and – Wait a minute. This is *not* what this is all about.
—
Oh boy, I wanted this to be a short post but turns out it’s going to be a long post.
The gist is that I want to use this WordPress blog again for time-based stuff that might not be relevant in a month or two, I used to do that on my website gueepo.me – but the reason I don’t want to do it there anymore is that when I post a link to the website on Twitter or on CoHost it looks weird. Yep. That’s the whole reason. Looks weird when linking to the post. So I’m here.
but what is this about, mate?
2023 RESOLUTIONS, what else would *this* be about?
When I first landed Home I had two things with me. A CyberPunk 2020 RPG book, and the thought that this book would be the key to an amazing year of game development.
The idea was really simple, yet very ambitious and very hard to execute: Create 12 Turn-Based Tactical RPGs based on the Cyberpunk universe using my game engine temporarily named GPG-1 that is built on top of my game library, temporarily named gueepo2D.
It can be done. I even flashed out the entire narrative for the first little game (in a single day!), it has 1,000 words and it’s about two Corporates being ambushed in a random alleyway. The flow would be simple, the game would start with some cutscenes, you would be thrown into a turn-based tactical battle and then there would be a cutscene to end it all. I would do that 12 times. The goal at the end was not only to have 12 small games but to have a robust game engine tailored to create games in that style so that I could use it to create an *actual* video game.
It sounds good in theory, but when I think about it, you know what’s better than creating 12 little games and building a game engine at the same time? Not doing that. I felt better by deciding to not do that.
I want to do *LESS* projects over a *BIGGER* period of time, with more *quality*, less *stress*, and more *passion* (the secret ingredient!) – And I want to make YouTube videos about them. I feel like 3 videos is a good amount to strive for.
The Tactics Project
The first project is the logical conclusion of the whole “1 game per month” thing I have designed and given up on – Just make one little game instead of making twelve. And make the engine at the same time.
The goal here is to have an engine capable of creating Tactics games, the goal is not the Tactics game itself. And I will be doing everything on the game, writing, programming, music, and pixel art. Fun Times Ahead!
It will probably still be based on the CyberPunk 2020 RPG and universe because I like it. I want to write stories about real life, I mean, ha, ha-ha. I want to write stories about dystopic capitalistic societies.
The Chess Project
The other project that I want to tackle is making an AI for chess. That would mean making a simple chess implementation (obviously using my own game library temporarily named gueepo2D), making a headless version of the game, and then working on writing an AI for it.
Do I know how to play chess? No.
Do I know how to write a chess AI? Nah.
Do I know how to write AIs? Well, I’ve done that a few times in the past. You see, when I was more optimistic about computer science (and life) I used to be very passionate about AI and even worked on some AI-related research projects for 3 years or so on my bachelor’s degree. That’s almost the entire degree!
Is this project just an excuse for me to spend a huge amount of time learning how to play chess, get decent at it, and experiment with AI algorithms which were something that I was really passionate about when I had perspectives in life? Yes!
That’s *two* programming projects in a year! That’s enough already. That’s *more* than enough already.
Something that I want to explore and make a video about is DevOps, Automated Builds, etc., etc. – Especially in the context of game development, I feel like this is a weird thing to be *passionate* about, but I enjoy it and I think there’s a severe lack of knowledge about these things on game development, and it’s so important for running smooth processes. We will see!
now what?
Now I hope I don’t give these projects up, which is a real possibility since I’m not really scheduling a consistent day or time to work on them. If you’ve read a few productivity books, first of all, read some actual books, and second of all, you know that’s the first mistake! But I am a burned-out dude after all, and I’m trying to figure out how to *enjoy* something that I have been doing *almost daily* for about ten years now (programming, I’ve been programming *almost daily* for about ten years now *sighs*)
But then we come to the bread-and-butter of my existence, my game library, gueepo2D!
gueepo2D
My goal for gueepo2D in the holy year of twenty twenty-two was very simple and ambitious: Don’t deprecate it and start working on another engine, and I achieved it! Success!
The goal for this year is to Don’t deprecate it and start working on another engine. And change its name. I *hate* the name “gueepo2D” – It’s not even a “game engine” anymore! It’s a “game library” now! (What even is the difference?!) – That’s also something that happened in 2022.
But I’m here to talk about renderer backends.
Windows has DirectX, MacOS has Metal, and they both, together with Linux, have OpenGL and Vulkan – That’s a lot of different ways to create windows, something that is abstracted with SDL2, which is a good thing. But that means that individual graphics implementations are still in my hand. And I’m fine with that, I don’t *hate* doing graphics programming until suddenly I do start *hating* graphics programming.
It’s too much work, there are a lot of things going on, and it is very difficult to do graphics programming correctly and efficiently while also doing a whole engine around the graphics, even if the graphics are simple 2D pixel art graphics. So it comes a time when I just have to decide if I want to really have the graphics APIs on my hands or if I should use something like SDL2 Renderer, BGFX, or Sokol.
And that was a big struggle I had in my mind until today I realized that… Why not both? I mean, the engine already abstracts the renderer in a way that it doesn’t know and it doesn’t care whether it’s OpenGL, DirectX, Metal, or Vulkan. I did that pretty much on purpose, thank you.
So I can just use that abstraction layer to use SDL2 Renderer, BGFX, and/or Sokol – That’s probably not the most efficient thing, and it will be a bit of a headache to write a Sprite Batcher that works on all of these (I’m assuming!) – But ultimately, that’s better.
But I just listed three options, which one am I going to do? SDL2 Renderer is the easiest, BGFX is probably the most robust, Sokol is probably the one with the least amount of dependencies, so the answer to “which” one am I going to implement is: “I don’t know!”. That was helpful.
I will be experimenting with them all in isolation, doing the hard work of drawing textured squares and then I will think about it.
anyway
follow me on twitter because I will be there until the website dies
or follow me on cohost even though I think this website will die because people are going to other weird twitter alternatives, even though cohost is clearly the Better Twitter Alternative
obligatory end-of-the-post music recommendation
make it double!