Looks awesome! I like the original combat approach mixed with the Realms of Arkania style travel.I'm working on this C64 styled fantasy adventure game.
Let me know what you think.![]()
Looks awesome! I like the original combat approach mixed with the Realms of Arkania style travel.I'm working on this C64 styled fantasy adventure game.
Let me know what you think.![]()
Thank you!! Spot on with Realms of Arkania, it's what I liked most about the game (apart from endless character generation).Looks awesome! I like the original combat approach mixed with the Realms of Arkania style travel.I'm working on this C64 styled fantasy adventure game.
Let me know what you think.
I tend to use static builds and LTO which don't have a stable ABI to begin with. They allow for more optimization and overall smaller binaries.What do you think about C standard library / breaking ABI ?
https://thephd.dev/binary-banshees-digital-demons-abi-c-c++-help-me-god-please
-MT
is ABI-incompatible with -MD
when passing STL types across the shared library boundary. So you just learn how to rebuild everything with the correct runtime, then you can do that with LLVM on Windows, on Linux and OSX too with LD_LIBRARY_PATH
and install_name_tool
, respectively. add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE)
add_definitions(-D_ENABLE_ATOMIC_ALIGNMENT_FIX)
// not supported with MSVC v14x ABI, see https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/
#define myproject_no_unique_address msvc::no_unique_address
libc++
with the program binary than make any sacrifices to performance or correctness.How many NPCs can it handle at once?I tend to use static builds and LTO which don't have a stable ABI to begin with. They allow for more optimization and overall smaller binaries.What do you think about C standard library / breaking ABI ?
https://thephd.dev/binary-banshees-digital-demons-abi-c-c++-help-me-god-please
When building with MSVC, using-MT
is ABI-incompatible with-MD
when passing STL types across the shared library boundary. So you just learn how to rebuild everything with the correct runtime, then you can do that with LLVM on Windows, on Linux and OSX too withLD_LIBRARY_PATH
andinstall_name_tool
, respectively.
MSVC is a particular pain in the ass in terms of breaking the ABI, sometimes defaulting to compatible behavior rather than standards conformance:
Code:add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE) add_definitions(-D_ENABLE_ATOMIC_ALIGNMENT_FIX)
Code:// not supported with MSVC v14x ABI, see https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/ #define myproject_no_unique_address msvc::no_unique_address
I'd rather ship my ownlibc++
with the program binary than make any sacrifices to performance or correctness.
No idea yet. Are you talking about A*?How many NPCs can it handle at once?
Some general stats like,No idea yet. Are you talking about A*?How many NPCs can it handle at once?
Once I implement animated looped scenery then I can give you a precise answer.Some general stats like,
How many animated units can be rendered in a scene?
How many animated moving units in a scene?
Although I can have 1000s of animated units standing still, I can't have more than 50 animated units moving at once without frame drop RN due to the way I implemented the shader for isometric drawing.Once I implement animated looped scenery then I can give you a precise answer.Some general stats like,
How many animated units can be rendered in a scene?
How many animated moving units in a scene?
There's still the choice of optimizing for bandwidth (minimizing VBO uploads) or optimizing for the least amount of draw calls. I'm likely going to have lots of static scenery and that means interleaved drawing from multiple VAOs rather than collecting to one big VBO and drawing it all at once. So that's going to optimize for uploads and draw calls of static objects, but drawing too many animations in between them may become a problem.
Depth should be derived from position.Basically I have to calculate on the CPU the depths, and share that information to the pixel shader. I don't really know how I can optimize that into the shaders because the shaders would need to share the information.
For simple sprites like units thats fine.Depth should be derived from position.Basically I have to calculate on the CPU the depths, and share that information to the pixel shader. I don't really know how I can optimize that into the shaders because the shaders would need to share the information.
If you want to look at my code then send a PM.
You can still slice them across tile boundaries. Doing per-pixel stuff on the CPU is too prohibitive in a render loop.For simple sprites like units thats fine.Depth should be derived from position.
If you want to look at my code then send a PM.
But its not so simple in my game because objects can be quite large and complex, this would break any sorting by single coordinates.
So sorting needs to be done at a pixel level.
Ok I will take a look at the code.You can still slice them across tile boundaries. Doing per-pixel stuff on the CPU is too prohibitive in a render loop.For simple sprites like units thats fine.Depth should be derived from position.
If you want to look at my code then send a PM.
But its not so simple in my game because objects can be quite large and complex, this would break any sorting by single coordinates.
So sorting needs to be done at a pixel level.
Congratulations! That must be a good feeling. Your games have a very unique look to them, kind of reminds me of Tron in a way. Just that really old school wireframe look is awesome.Released Der Geist trilogy on GOG, five years after the first game got rejected. This means they're good games now.
https://af.gog.com/en/game/das_geisterschiff_the_ghost_ship?as=1649904300
https://af.gog.com/en/game/der_geisterturm_the_ghost_tower?as=1649904300
https://af.gog.com/en/game/der_geisterjager_the_ghost_hunter?as=1649904300
When I'm bored I also tend to add new features not in the original scope.Implemented a basic crime system over the last few days. Each crime has a victim, instigator and evidence. NPCs can perceive crimes via sight or sound, but also discover evidence of crimes such as blood on the floor or a bashed down door. When perceiving a crime or discovering evidence, they decide whether they actually care by checking the victim's faction and the instigator's faction. Investigation of evidence is done by wandering around the evidence, and making some calculations to decide whether to pin the crime on you or not. Right now investigators can't accidentally falsely accuse other random NPCs for the player's crimes, but that would be a cool extension. Feature creep though, since the crime/evidence system isn't meant to be a big part of this game.
But not motive, means and opportunity?Each crime has a victim, instigator and evidence
Of course these are hacky as fuck, the proper solution would be to implement some sort of global illumination system, but on the other hand they'll run even on an igpu from ten years ago :-P.
Computer graphics is 50% illusion anyways. I'll take a system that uses trickery to look pretty good and run with low requirements over something that does it "the right way" but requires shittons of computing power any day.