Mini-engine progress

The part of Civ4 that does the UI and interfaces with the DLL is the "engine". That's the closed-source bit that needs to be re-implemented.

Certainly not a flashy graphical engine, but any open-source implementation can easily be a stepping stone.
 
A mobile port? I have absolutely zero idea about that. If phones don't have a console, you'd probably have to, like, emulate one with SDL or SFML or something. And the UI is definitely not designed for it. I suppose that would be a fork by whoever knows what to do. A framerate of approximately zero should be fantastic for battery life though.
Oh, I forgot about that at first... But it surly is solvable. At least VCMI works surprisingly well on a mobile.
However I would be totally satisfied if our case was "You can use it on a phone only if you have a Bluetooth mouse. "
I wouldn't mind that and I'm sure that sooner or later someone would come and start working on that part. At least o hope...

However we do need a fancy, 3D engine too. And that raises another issue: modders need to keep in mind that there are two types of engines and simplify certain things that are no issue on a PC. For example: BtS has only 2 types of roads but many mods have 8 or more. Or terrain. Many mods have more terrain types than BtS. How to display them on a TUI? I know these are still questions for the future though.
 
Zooming mega GIF, I guess

Zoom (optimised 2).gif
 
Screeeens

2024y09m28d - Cv4MiniEngine - Civics.png
2024y09m28d - Cv4MiniEngine - Techs.png

2024y09m28d - Cv4MiniEngine - Glance.png


Yes, you get your tech tree in graph form too. Turn count changed to show accumulated turns.
Now I need a combobox for the military advisor.

*Something going on with that advisor though... showing open borders for war...
*Not anymore!
 

Attachments

  • 2024y09m28d - Cv4MiniEngine - Glance.png
    2024y09m28d - Cv4MiniEngine - Glance.png
    53.6 KB · Views: 424
Last edited:
Wow this is incredible... to see it done is something else. The seed of a dream?
Also that post about ABSURDLY HUGE MAP SIZES is hot, so hot. I need tthat in my life.

Flabbert is adamant about making his rewrite in C#. Meanwhile Birth of Cultures dev came back and some may be interested in their fancy indie engine.
If anyone decides to use C#, call me. C# I can help with, and I've been wanting to use my expertise in something big to both practice my skills, add to my portfolio and honestly, do something cool.
 
Military advisor. Using BUG grouping. And a high-definition anti-aliased minimap with culture overlay.
2024y10m02d - Cv4MiniEngine - Minimap.png

And it takes into account the "minimap section" before the world is "centered". Performance note here as the DLL does not really help. The engine has to query almost every plot in the worst case to update the minimap bounds. This could possibly be accelerated in the DLL by tracking row/column reveal counts. Then it should become linear time in map perimeter. Just in case you don't want to loop over a million plots yet again every time your scout moves.
 
Last edited:
Wow! I see that you are trying to make it as easy to read as possible. Obviously it can't be as good as the original but it's still amazing and good enough.
 
Wow! I see that you are trying to make it as easy to read as possible. Obviously it can't be as good as the original but it's still amazing and good enough.
Yes, it looks much more Civ4-like now with the billboards. And because I can zoom, there's more freedom. Chunky billboards, and plot text is auto-shortened (lengthened). Yield display could do with improvement.
 
Hey @snowern, got a question for you. Does your game mini engine accept 2D vector images yet? Like, I wonder if there's any way I could make, like, icons for various stuff like happiness, health, culture, so on. Like, you know what I mean? Want to help you out and make it a bit more real. I can use photoshop to go and create some icons.

I'm actually autistic and I'm all about details. I think I *might* surprise myself with digital art.
 
Hey @snowern, got a question for you. Does your game mini engine accept 2D vector images yet? Like, I wonder if there's any way I could make, like, icons for various stuff like happiness, health, culture, so on. Like, you know what I mean? Want to help you out and make it a bit more real. I can use photoshop to go and create some icons.

I'm actually autistic and I'm all about details. I think I *might* surprise myself with digital art.
For starters, I've already got a HD icon for health to start off with, an original one from scratch (so no royalties/copyright). It's native resolution is 1024x1024, but of course, scale it down as you need to. Thing is, though, with a correct engine, there certainly should be a way to have the ability to scale down images in the in-game resolution and let them adapt to the UI, instead of having to fit a perfect dimension. Hopefully that can be looked at?

Second thing too. What about fonts? We should start to think about how to add them in and all that. Colors, UI, so on. When you get to that.
 

Attachments

  • Health (HD).png
    Health (HD).png
    166.2 KB · Views: 405
Hey @snowern, got a question for you. Does your game mini engine accept 2D vector images yet? Like, I wonder if there's any way I could make, like, icons for various stuff like happiness, health, culture, so on. Like, you know what I mean? Want to help you out and make it a bit more real. I can use photoshop to go and create some icons.

I'm actually autistic and I'm all about details. I think I *might* surprise myself with digital art.
Images? No, not at all. This is purely a console implementation. Hence, TUI. Text. Lots of text. Like Dwarf Fortress (without those fancy tilesets...). The graphical implementation comes after, if anybody is willing to put the time into it. And if that happens, it can just use the original assets and have graphical mod support.

Here's my art palette: https://www.fileformat.info/info/unicode/font/consolas/grid.htm. Courier New is also pretty good, but doesn't have the rounded corners.

Plopping 2D images into a TUI would be possible if I were to implement a TUI on top of something like SFML, but going graphical, I might as well leave that to a future implementation.

And for this TUI, what would be nice is some good bonus and improvement text art. How would I do that. Clusters of pink P's for pigs? Oh. Oasises. Haven't done those yet.
 
What about a new font? Not letters but Civ4 symbols? That would be much prettier but also less modder friendly.
I believe snowern is prioritizing gameplay parity first, once that is done and the exe is ready to be released under a foss license there will no doubt be at least someone interested in submitting a 2D graphics PR
 
What about a new font? Not letters but Civ4 symbols? That would be much prettier but also less modder friendly.
Oh, a new font. That's certainly taking a TUI to the extreme. If I were to let symbol substitutions be configurable, then a font replacement could be used along side that configuration, as a mod.

A bit out of scope for now though. You'd need a whole font too, so you'll have to source various character blocks from elsewhere. And build the font and install it.

Would probably be easier to just use a better existing font that has more character blocks. And Linux consoles can do better out of the box. You can just straight-up print pigs in Ubuntu: 🐖🐖🐖
 
I believe snowern is prioritizing gameplay parity first, once that is done and the exe is ready to be released under a foss license there will no doubt be at least someone interested in submitting a 2D graphics PR
Yes, the console IO could be replaced with SFML, and then you'd use a Unicode private block to reference symbols in existing textures. This also means that text width is no longer string size if symbols are double-width.

And you could go further and just have resource bubbles in the world view.

But full 3D would be ideal. Maybe this could go down a really odd path where somebody implements 3D rendering inside the world view only, keeping the rest of the TUI.
 
Back
Top Bottom