Posted February 27, 2023 by gueepo
WNTRMT source code: https://github.com/guilhermepo2/gbgj-2
gueepo2D: https://github.com/guilhermepo2/gueepo2D
WOW! After making a thing called "escape from ganymede" in October, 2022 I finally decided to try and make *another* thing using gueepo2D, my own game library (or is it a game engine?) - It didn't go so well.
Since ganymede I managed to make it so I don't need to ship the finished product with shaders on text files, they are right into the code! And I also got rid of the annoying log window on Windows version, which is a win for me.
The major changes on the engine (library?) since October 2022 are mostly reorganization stuff, there aren't any new big features or functionality, it's pretty much the same engine as it was 4 months ago. That's not necessarily a bad thing, there are still a lot of features missing here but it means that this "engine" is giving its first baby steps into being something stable.
One thing that this "game" made me add into the game engine was the possibility of parsing through arrays in json files, this is an important step towards being more capable of doing data-oriented stuff.
But there's a need to reason as to *why* it is so hard to make a game jam game on my own tech, I'm supposed to know all of it, so it's supposed to be easy, right? Well, I know *almost* all of it, and no, it doesn't really make it easy. Why?
Well, the first difficult and annoying thing is human error. I can't hold myself back, when I first started brainstorming I had this idea of a game in my head. I imagined the title screen, and a cutscene before the gameplay started, in this cutscene, a girl would be putting a VR headset on a dude, and then you would have the option to "flip" (obvious Neuromancer reference) and then you would get into gameplay, which would be (and is?) a basic turn-based strategy game where you have to retrieve certain objects from the level, the catch is that enemies would only react to you after you get the thing, giving it an element of strategy and puzzle. What you can download and play now is what would be the first level of this whole experience.
But that's not all, I intended to have dialogues between the dude and the girl through the levels, which would serve as both storytelling and tutorial, but somewhere around level 5 or 6 someone would get into the frequency and start talking to both of you (that's the dude at the background of the thumbnail for the game, you can barely see it!) and that would add an element of mystery to the game. And I wanted to be doing the pixel art and music for this game as well.
You might say that *I* was the biggest obstacle to this *thing* being a reasonable videogame. And you would be right. But, oh well.
And I have to ask myself *why* if I ever want to improve the experience on using it.
A thing that makes it difficult to work with is the philosophy of the game library itself.
You can make games with it, sure, but I'm designing it to be very minimal and the tech you make game engines with. My whole idea is that I want to make tactics games, so I want to make an engine that is really good and dedicated to creating tactics games, and that engine would be built on top of gueepo2D.
So gueepo2D is just the layer that does what every game needs, gueepo2D is just the common functionality of *any* game. That is rendering, handling input, and being an application loop. There are some data structures, and a lot of utilities too, but that's on the second plan.
Here are some annoyances.
Basically what I'm saying here is that this is a game library where you have to do a lot of groundwork to actually make a game. And that's pretty much by design. I want to make engines specific to the types of games I want to make yadda-yadda. But on a game jam where you have 48 hours to do something, that's not really good, so what's the alternative? What's really the solution?
Is the solution building a general-purpose game engine on top of gueepo2D that I can use on game jams? That would have a general-purpose ECS thing for sure, and I would probably integrate LUA on that as well, I would be basically recreating PICO-8. So why I don't just use PICO-8? :thinking_face:
Is the solution just not using my own game library on game jams? I could use PICO-8 - But where's the *fun* in that? How else would I have headaches with graphics programming?
One takeaway here is that I should really try out PICO-8, and Godot, Godot is good.
Is the solution creating "add-ons" to the engine? That doesn't sound like a bad idea.
Is the solution creating The Gueepo2D GameJam Game Engine?
Is the solution not to use my engine on game jams?
Is the solution just getting good at having game ideas that are simple and fun? That's probably the answer here.
Welp, anyway, this is just a long rant!