[email protected]
Guest
|
 |
« Reply #20 on: March 13, 2023, 12:54:42 AM » |
|
I landed in a town and got to walk around, which make the lag more apparent. (In the Unity emulated version.) It feels like the garbage collector doing its thing.  The Unity version also seems to have trouble with departing from towns. I press b after landing in Ikogata and the game freezes. It stayed like that for 3 minutes while my fan spun like it was preparing for a space launch, so I closed it. I know how tricky it is to juggle heterogenous environments with shared code. I ported an engine to 3 different languages, and sometimes there are little bugs here and there.
|
|
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #21 on: March 13, 2023, 01:28:28 AM » |
|
Well that surprises me. Since I get 1200+ FPS in the Unity emulated version. I have all the fancy and useless settings turned off or down to their lowest values in the Unity engine and am employing all the optimisations I can come up with. In order to emulate the terminal: - It is displaying 80x40 quads for the front tiles, with a UV shift for character and colour (i.e. minimal polygons)
- It is displaying 80x40 quads for the background colours, with a UV shift for colour (i.e. minimal polygons)
- It is only updating a quad if it has changed (i.e. no spam)
- It's also only updating the front quads if the front changes, and the back quads if the back changes (i.e. no spam)
- The quads are chunked so there isn't 1 mesh for the entire screen to update (i.e. minimal updated memory)
- The updating of quads does not refresh geometry after the initial mesh generates, only UV (i.e. minimal updated data)
Lighting is disabled, the camera's range is dialled right in, no objects move (I think I've got the meshes toggled as static as it is), the textures have no compression or mipmaps, there are no shaders involved, etc. It even runs relatively comfortably in my old 2020 Ubuntu VM, which is heavily under-powered. I just can't think why it'd be running so poorly unless your specs are low.  What kinda hardware are we dealing with here?
|
|
|
Logged
|
|
|
|
[email protected]
Guest
|
 |
« Reply #22 on: March 13, 2023, 02:00:56 AM » |
|
What kinda hardware are we dealing with here? Dell OptiPlex 5050 with Intel i5 and 16 GB RAM. It runs most games pretty well. While it supports Vulkan, some engines may detect the wrong thing and switch to GL mode. I have had problems with OpenXR software because there were some Vulkan->GL conversions that aren't possible with Intel graphics drivers. In OpenGL, every mesh is a draw call, and 3200 draw calls would be significant bridge overhead, while with Vulkan it wouldn't move the needle. Instancing is the solution if you write your own GL code, but Unity makes decisions for you so idk. I also have a slow hard drive, so it could be hitting the disk a lot. To elaborate on what I think could be the problem: In OpenGL you can't just draw 3200 quads on the screen. Each glDraw* call (in this case each quad) invokes a bunch of error checking and a separate data transfer to the GPU. This is called being bridge-bound, the opposite of fill-bound. Google isn't giving me good documentation on these pitfalls, but it's the kind of thing you pick up on if you write OpenGL code a lot.
|
|
« Last Edit: March 13, 2023, 02:29:47 AM by mse »
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #23 on: March 13, 2023, 03:36:39 AM » |
|
|
|
« Last Edit: March 13, 2023, 04:05:14 AM by Rogod »
|
Logged
|
|
|
|
[email protected]
Guest
|
 |
« Reply #24 on: March 13, 2023, 05:52:42 AM » |
|
I'm still getting the hitching, so at this point I would guess it's not graphics-related. I'm out of ideas.
|
|
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #25 on: March 13, 2023, 07:13:37 AM » |
|
Unfortunately the only thing that'll tell me whether this is an issue with the emulator or something more fundamental with the core game underneath is knowing how it performs running the Linux Native build on your machine. I can understand if it's an unreasonable ask, but if you wanted to give it a go, it might give us the clue we need to solve this odd scenario. (See https://blimdom.neocities.org/support "Running Blimdom on Linux?" section for installation details.) I am restricted to either my Ubuntu VM which runs slowly anyway (although stably from what I can tell) and my Raspi which uses an ARM processor (Unity doesn't support ARM  ). I don't see why all these fancy shmancy operating systems make it so blimmin difficult to put coloured ASCII characters on a screen.  (Side note: we had the same palava trying to get Startron to work on Linux Native in the first place lol)
|
|
|
Logged
|
|
|
|
[email protected]
Guest
|
 |
« Reply #26 on: March 13, 2023, 08:01:07 AM » |
|
All I had to do to get the native Linux version was install ncurses. (I think most people static link their TUI lib when distributing binaries but this is a .net program so I won't get particular about how things are done...) It runs fast! But it still hitches in the town, just slightly faster hitching. My guess is still the garbage collector. It also freezes when I try to disembark, same as the Unity version. Terminal means ascii screenshot.  ▄▄▄▄▄▄▄▄▄ █ ≡≡≡≡█≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ Kirga █ ███ ████ █ ▀▀▀▀▀▀▀▀▀ ███ █████ ████████≡≡≡≡█≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ █▄▄▄████ ▄▄▄█████▄▄▄ █████ ███████████████████ █ █████▄█▄█████████████▄███████ ████████████████████≡≡≡≡█≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ █████▄█████████████████▄██████ █████████████████████ █ ███████████████████████████████ ██████████████████████≡≡≡≡█≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ███████████████████████████████ ███████████████████████ █ █████████████████████████████████████████████████████████████████████████≡≡≡≡≡≡≡ ████████████████████████▄▄████████████████████████████████████████████████ ███████████████████████████▄████████████████████████████████████████████████████ ███████▄██ ████████ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡██████████≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ██████████ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡███▀██████≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ██▀█████▀▄ ███████▀ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡▀███████▄█≡≡≡≡≡≡≡≡≡Food & Co.≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡████▀▀██ ██████▀███ ▄███▄ ██▀█████ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡████▀▄▄█▄▄≡≡≡≡≡≡▄███▄ ≡≡≡≡≡≡≡≡≡≡≡≡≡█▄█▄█≡≡████████ ▀███▄██▄██ █▄███ █▄▄▄█ █▀▀▀▀▀██ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡████████▄▄≡≡≡≡≡≡▄▄███ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡███≡≡≡▄▄▄▄███▄ ▀█████▀▄██ ███ ▄███████▄█▄▄▄███▄ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡▀▀▀▀▀ ███≡≡≡≡≡≡≡███ ≡≡≡≡≡≡≡≡≡≡≡██▀███▀███▄██████ ▌ ▌ ▌ ▌ ▌█ ████ ██ ███ ██████████ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ▌ ▌ ▌ ▌ ▌ █≡≡≡≡████ ≡≡≡≡≡≡≡≡≡≡≡▀█≡███≡█▀▄███▄▄▄▄ ▌ ▌ ▌ ▌ ▌ █ ███ ██ ██ █████▄██ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ▌ ▌ ▌ ▌ ▌ █≡≡≡≡≡███ ≡≡≡≡≡≡≡≡≡≡≡≡≡██≡██≡≡▀▀▀▀▀▀▀▀ ▌ ▌ ▌ ▌ ▌ █ ██ █ █ ▌ ▌ ▌ ▌ ▌█ ██ ██ ██ ███ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ▄▀▄▀▄▀ █ █ █ █ ▄█████▄ █ █ █ █ █▀█▀███ █ █ █ Disembark ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █▀▀▀▀██ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ █ (←) Walk left █████ Walk right (→) █ █ Quit ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ █ █
|
|
|
Logged
|
|
|
|
JobLeonard
|
 |
« Reply #27 on: March 13, 2023, 08:02:29 AM » |
|
On that side note: Some loose inspiration came from Nausicaä of the Valley of the Wind, Dragon Ball, Fallout, Dwarf Fortress (of course) as well as my very own Startron. (Hopefully I can do them all justice.) I dunno, you're setting the bar pretty high there with trying to match Startron  But seriously, this looks great!
|
|
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #28 on: March 13, 2023, 08:50:21 AM » |
|
@msestatic link their TUI lib when distributing binaries Only just now learning that this is possible leads me to an endless Google session where people try to link all kinds of things to all kinds of other things lol. I suspect VisualStudio and .Net are not overly forthcoming with any possible ability to link a Linux library. (Especially given this is all being compiled on Windows, so there is no such thing as apt-get until it's on the player's (Linux) machine.) it still hitches in the town I had a hunch there might have been a timing issue going on (somehow), and this probably proves it. This has definitely been a valuable test, I thank you.  It also freezes when I try to disembark I suspect this difference in our results here is a race condition caused by the above timing discrepancy with Linux machines crashing the game as it's trying to look stuff up in the settlement while also being told the player is no longer in the settlement. I have at least fixed the thread safety here (2 lines should have been the other way around) so this should be fixed in v0.08. Terminal means ascii screenshot. A completely valid way to take a screenshot in my opinion  EDIT:I believe part (hopefully all) of the problem in the Unity versions was the game processing being done on a different thread than the keyboard mapping so I've just reshuffled things so the emulator now uses 1 less thread and performs the game processing on the same main thread that input is handled on. If you could try this second test version out, I'm hoping the results are much better this time: https://blimdom.neocities.org/test/Blimdom_Unity_Linux_v0072.zipIf not, then we're way off in our thinking because that rules out both graphics and multi-threading (at least in my opinion). (This version also contains the fix for leaving towns, so that'd be another good thing to be sure of in our quest here  ) @JobLeonardyou're setting the bar pretty high I think I can do it; the feature list I have planned for Blimdom excites my imagination more than Startron ever did (hence the project switch after 87 versions). Already the automation is far cleaner and easier to understand (and easier to develop) - it just got too clunky to be playable or fun using those silly conveyor belts in Startron - at least the way I had implemented it all.  And thankfully the Blimdom intro isn't a poor-man's version of an outdated meme, as with Startron, so it holds a little more thematic relevance for people - more than one person has told me it's beautiful, so I'll take that. (Startron's theming just seemed too arbitrary for its own good - kinda like No Man's Sky :D )
|
|
« Last Edit: March 13, 2023, 11:42:07 AM by Rogod »
|
Logged
|
|
|
|
[email protected]
Guest
|
 |
« Reply #29 on: March 13, 2023, 12:00:25 PM » |
|
Only just now learning that this is possible leads me to an endless Google session where people try to link all kinds of things to all kinds of other things lol. I suspect VisualStudio and .Net are not overly forthcoming with any possible ability to link a Linux library. (Especially given this is all being compiled on Windows, so there is no such thing as apt-get until it's on the player's (Linux) machine.) Normally one would put the library's source into the parent repo and set it up for an in-tree build, but that's way over on the C/C++ side of the fence and you're wise to avoid it in a Windows/.NET environment. If you could try this second test version out, I'm hoping the results are much better this time Fixed! It runs faster, and no race condition when I disembark. (Still the slightest bit of hitching in the town; sinking the fence or whatever. doesn't matter) Startron's theming just seemed too arbitrary for its own good - kinda like No Man's Sky There are just a lot of space games. Even good free ones. I'm not sure if any capture the "perfect" experience of seamless planetary landing, intergalactic romance, AI-generated stories, VR on your phone, blockchain memes, and the rest of the kitchen sink. It has to be all of space, so there's the problem.
|
|
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #30 on: March 13, 2023, 12:11:07 PM » |
|
set it up for an in-tree build Yea there's no way I ever want to build someone else's code. Been avoiding that rabbit hole for 20 years quite successfully. Maybe I can come up with some kind of accompanying scripty file to go along with the Linux distros to install ncurses. (Maybe  ) Fixed! That's the ticket! I suspect there's probably at least one other thread collision happening as I was able to get a similar stuttering effect with the ARM Native build on my Raspi (so Unity's not involved) but this is a good enough result for now. The code will be iterated on anyway, so if I spot anything, maybe good things will come in the future. There are just a lot of space games. I think that's it right there - there are many games like Startron, but there aren't many games like Blimdom, so I feel a little more secure and less like I'm wasting my time. Startron was a good extreme proof of concept in my eyes and I have no regrets, but I want something that makes a bit of an impact now. :D
|
|
|
Logged
|
|
|
|
[email protected]
Guest
|
 |
« Reply #31 on: March 13, 2023, 12:26:29 PM » |
|
set it up for an in-tree build Yea there's no way I ever want to build someone else's code. Been avoiding that rabbit hole for 20 years quite successfully. Maybe I can come up with some kind of accompanying scripty file to go along with the Linux distros to install ncurses. (Maybe  ) As a Linux user who builds other people's code almost daily and has no problem installing things from package managers, I think you'd be fine just listing the dependencies. It looks like you're shipping a .NET runtime with it now, so just ncurses. I want something that makes a bit of an impact now. :D
EGS just opened the floodgates. There might be a market for an epic ASCII blimp game. If Blimdom started fullscreen and had the right music, it could easily pass for indie-mainstream as it is right now.
|
|
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #32 on: March 13, 2023, 02:49:02 PM » |
|
|
|
|
Logged
|
|
|
|
|
Rogod
|
 |
« Reply #34 on: March 20, 2023, 01:26:35 PM » |
|
|
|
|
Logged
|
|
|
|
mobilelast
|
 |
« Reply #35 on: March 26, 2023, 12:39:28 PM » |
|
Blimdom is an ongoing labour of love; the concept of an "end" does not apply.
I like this approach. I’ve never understood why people complain if, for instance, a game stays in early access for a long time. For many artists, it is hard to finish and publish a work as there’s no way to improve it afterwards. Web developers, on the other hand, curse the fact that products are never ready, but require constant maintenance on features and security (the most boring part of the job). Game development lies somewhere between, so why not take advantage of both?
|
|
|
Logged
|
Avaruustaistelupeli (ATP) - a space combat game- Free download from itch.io or IndieDB- Dev diary here
|
|
|
Rogod
|
 |
« Reply #36 on: March 26, 2023, 03:24:09 PM » |
|
|
|
« Last Edit: March 27, 2023, 12:46:06 AM by Rogod »
|
Logged
|
|
|
|
Rogod
|
 |
« Reply #37 on: March 27, 2023, 12:40:28 PM » |
|
|
|
« Last Edit: March 27, 2023, 12:53:39 PM by Rogod »
|
Logged
|
|
|
|
nathy after dark
|
 |
« Reply #38 on: April 29, 2023, 11:08:03 AM » |
|
I remember seeing this a while back and I guess I hadn't replied/subscribed. Looks cool, hope it's going well!
|
|
|
Logged
|
|
|
|
|
|