Update 22 - Rendering at scale & Options


Greetings, Hard Chip players!

This update won't bring any new content and not a lot of features. The main point of this update is more about what the game could look like. Let's dig in:

1. Raymarching Voxel rendering: This feature is a try at answering the question: "Can the game renders a very (very) large circuit on screen ?". With the option activable in the Settings menu, I let you answer that question yourself if you are willing to test it with the benchmark. Here's the result on the benchmark, the old technic vs the new one running on an integrated graphic chipset! (if you have a graphic card, it should run way smoother).

Something important is that this new rendering changes the look and feel of everything quite a bit. This is not final but just a try at something different that can render at scale.

 

2. New Benchmark test case: 1024x1024 ByteRegister is a new test with a large circuit that served in the development of the new rendering. It represents a more realistic representation of what a circuit could look like. All screenshots and results in this post use this test. Keep in mind that this test can ONLY run with the raymarching rendering.

3. Minimal Graphics and Audio Settings: the title says it all!

4. QOL, Bug and Crash fixes: 
- 7z zip file fixes extracting the game in Linux (thx @thePalindrome). Theoretically, you could use Wine to play the game on Linux, but sounds might be an issue. Please reach out to me on discord if this is the case;
- Music auto deactivated when the codec is not supported for Linux+Wine user (thx @thePalindrome).
- New rendering method for tutorial instructions modals (allowed me to phase out an entire UI library). Those modals are HTMLs rendered at build time. Giving the opportunity of doing (apparently) trivial things like justifying text AND highlights AND emoji at the same time. I know, crazy, right?!
- Benchmarks cleanup between runs fix

This update changes quite a lot of the look and feel of the game. Without mentioning, how can we make the game fun with that complexity on screen, or how can the game simulation scale as well? There is much to consider; what do you think of this direction?


Thank you for playing Hard Chip, and stay tuned for more updates and new features!

Files

HardChip_v0.0.2.71.zip 98 MB
Aug 21, 2023
HardChip_nodotnet_v0.0.2.71.zip 94 MB
Aug 21, 2023

Get Hard Chip

Comments

Log in with itch.io to leave a comment.

(1 edit)

When you get the chance, could you put out a hotfix that catches the`SharpDX.SharpDXException` when you call ContentManager.Load inside of RandomMusicPlayer.Initialize?

You could specifically catch `HRESULT: [0xC00D36C4]` to filter out the specific issue with running it through wine by catching it and subsequently disabling the music, at least until we can figure out what about those files is not being supported (Although I have a hunch)

You are damn fast Palindrome! :D

I put a large catch as I don't know what C00D36C4 translate to in .net exception. I put a "Palindrome" version on the main page you can test with. If it works for you I'll push a 2.71.

In this version, I just deactivated musics, not sounds as they seem to have a different codec closer to a wave one rather than MP3 one. Let me know if it's enough.

I was looking into the issue once more and I suspect a missing codec for the specific encoding the Monogame content pipeline is using. 

Heh, my itch client just noticed it while I was updating some of my other games!

From what I can assume (I don't work with C# myself), you could examine the exception object to grab the hresult out of it, although a general catch would work fine enough

The sounds do seem to be okay, so this build works great ^v^
I'd be a *bit* surprised if it's mp3, since I swear I have other things that work fine... Then again, there are patents and licenses and junk that cause problems with these things!

Thanks for looking into the issue, I'm just glad we're getting closer to being able to make it "just work" through wine!

Great I'll push a new version 2.71 then!

Could I ask you if you could run the benchmark with the Raymarching rendering enabled and give your result ?

(+1)

Well, the first two are much smoother and better on my system with raymarching than with rasterization!

Sadly after the second one it hits an OOM exception during the AssessAndMoveToNextBenchmark function. staring at "free", I'm not seeing it use almost any memory, which would seem to suggest it either tries to allocate a massive amount in one sitting, or it's leaking so fast the 0.5 second refresh rate I have set isn't detecting it!

Either way, I'm going to have some friends give it a try too, see if it's just my system acting up

I wouldn't have thought that you would get an OOM. This last test is quite large but it should have fit into ram without OOM (takes 1.5Gb of memory). Maybe the .net runtime set a lower threshold of memory pressure for your config, or a memory fragmentation issue (I have a 32GB ram here).

Thank you to have taken the time to do the test!