Project MTP (mysterious cat adventure game) dev log #6
Replies: 3 comments 2 replies
-
2023-11-22 You dawg I heard you like games…… so we put a game inside your game. This is an independent small game running inside of the main game. It’s rendered on the TV screen texture. I'll start working on a more non-trivial "inner" game soon as I want to see if I can reuse various ECS/UI/rendering components and have them not affect the main game. I could potentially just expose a very small API to the "inner" games (e.g. just "playSound" and "setPixel"), but that would mean that I'd have to a lot of the things twice (e.g. the dialogue box system, the input manager, NPC interaction etc.). 2023-11-22_13-29-12.mp4 |
Beta Was this translation helpful? Give feedback.
-
Hi, the game looks amazing so far! are you using imgui for your ui or only for the debugging editor? |
Beta Was this translation helpful? Give feedback.
-
2023-12-18_12-28-14.mp4Currently working on resolving technical debt and porting my Ebitengine platformer game to new engine. It’s going great so far! 2023-12-17_13-59-07.mp4(N64/PS1 switch, am I right?) Started using sampler objects. They're fantastic. Previously I used what many people do in OpenGL tutorials, the sampling state was hardcoded into each texture like this: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
... // etc. But sometimes you need to sample it differently. And different systems might want to sample the same texture in a different way (some with linear filtering, some with nearest). Having to manually set nearest filtering for UI textures was also annoying. Sampler objects to the rescue! Now I can just do this: const auto& sm = Engine::getShaderManager();
const auto& nearestSampler = sm.getDefaultNearestSampler();
const auto& shader = sm.getShader(shaderName);
shader.setSamplerUniform("tex", prevTarget.getTexture(), 0, nearestSampler); or create a sampler like this: const auto& sampler = sm.getSampler({
.filter =
{
.min = edge::FilterType::Linear,
.mag = edge::FilterType::Linear,
},
.wrap = SamplerObject::WrapParams::ClampToEdge,
.anisotropy = 8.f,
}); (all sampler objects get cached so that sampler object don't get re-created over and over) |
Beta Was this translation helpful? Give feedback.
-
Finally started documenting my new 3D game dev progress here:
https://edw.is/project-mtp-devlog/
This is a continuation of this previous thread: #4. So, for making "small" games, Lua is nice. But for bigger games (especially when doing non-trivial OpenGL rendering) C++ is important.
I'll post updates here as well so that people can comment and discuss it more easily. If you have any questions about the game or the engine, feel free to ask!
Beta Was this translation helpful? Give feedback.
All reactions