Anonymous
11/1/2025, 10:07:03 AM
No.107070562
I come from the C#/Java world for work, I'd like to venture into low level development in my own free time by working on a project that'd be interesting to me. I settled on a visual novel engine, using C++ (I'd be learning it as I go).
I don't have any nothing of what a proper C++ architecture and memory consideration entails but my hunch is that I'll need a runtime that handle all the visual novel engine logic itself:
- interpreting scripts files, either a DSL of my own making or maybe using lua/lisp?
- save/load
- managing states, branching story paths
- Internal abstractions like "Texture, Sprite, Bg, Song, Sound"
and a separate backend interface, that is linked to different modules for platform specific code.
For exemple
platform/desktop −> using SDL, concrete implementation to load textures, sounds, handle inputs
platform/psp −> using pspsdk for exemple
They'd all expose the same functions, and the runtime would be able to work with them for the platform I'm targeting.
I do have some questions and concerns, if I make my own DSL and interpreter I bet it'd be a security nightmare...
And if I'm targeting old consoles, am I forced to use an older C++ standard for my runtime? So no RAII, no unique_ptr and what not. Isn't that overkill to gimp yourself because of one platform.
I've read you could do shit like #ifndef "target_psp" but that seems like it'd clutter and bloat your code immensely. Is there another way to do it ? Do I simply not know enough to reason about it. I don't want to program myself into a corner down the line. I'd appreciate anon's input.
I don't have any nothing of what a proper C++ architecture and memory consideration entails but my hunch is that I'll need a runtime that handle all the visual novel engine logic itself:
- interpreting scripts files, either a DSL of my own making or maybe using lua/lisp?
- save/load
- managing states, branching story paths
- Internal abstractions like "Texture, Sprite, Bg, Song, Sound"
and a separate backend interface, that is linked to different modules for platform specific code.
For exemple
platform/desktop −> using SDL, concrete implementation to load textures, sounds, handle inputs
platform/psp −> using pspsdk for exemple
They'd all expose the same functions, and the runtime would be able to work with them for the platform I'm targeting.
I do have some questions and concerns, if I make my own DSL and interpreter I bet it'd be a security nightmare...
And if I'm targeting old consoles, am I forced to use an older C++ standard for my runtime? So no RAII, no unique_ptr and what not. Isn't that overkill to gimp yourself because of one platform.
I've read you could do shit like #ifndef "target_psp" but that seems like it'd clutter and bloat your code immensely. Is there another way to do it ? Do I simply not know enough to reason about it. I don't want to program myself into a corner down the line. I'd appreciate anon's input.