Bitcoin Forum

Bitcoin => Project Development => Topic started by: askii on April 13, 2025, 01:10:46 PM



Title: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 13, 2025, 01:10:46 PM
[Edit: You can now try out the prototype on https://proofofwork.gg (https://proofofwork.gg)]


Hey everyone,

This is my first real post here — I’ve lurked for a little bit, but I’m still pretty new to this whole ecosystem.

Recently, I started building a weird little game project that I thought some of you might find interesting (or at least entertaining). Posting it on this board because it seems most appropriate I think.


What is this?

In short, it’s a single-player management/sandbox game that serves as both a tribute to Bitcoin’s legacy and (hopefully) an accessible introduction to blockchain technology, something that actually shows you what goes on behind the scenes, and something like Bitcoin actually is.

Basically, you boot into a Windows-XP style desktop, and from there, you mine coins, trade on exchanges, buy hardware, manage costs, browse forum posts, engage in ‘side’ activities, and so much more. As far as a goal, well, I guess your goal is to accumulate as much money as possible.

As the game progresses, so does the world inside of it. Hopefully you’ll gather some of this from the rest of the post.

https://i.ibb.co/WWNQYyMg/image.png


I felt like just making it a 1–1 for Bitcoin was a bit too on the nose, so the stand in for BTC in this game is Saturn, or SAT (very clever, I know). Anyway, right now, there’s three main desktop applications that you can interface with in the game’s simulated OS environment.


Saturn Core

https://i.ibb.co/qMb8nQSH/image.png

Naturally, very inspired by Satoshi’s v0.1 client  ;D
You use it to keep track of your wallet, send transactions, and view all of your transaction history.

https://i.ibb.co/j9bZF041/image.png

In the above screenshot, you can see all the transactions to your address and open them up to see related details.

Like I mentioned earlier, one of the "software updates" you get after playing the game for a bit is the in-universe BIP32, and eventually BIP173), here’s a screenshot of that below:

https://i.ibb.co/Y4ph1gF3/image.png

A lot of this project so far has been built around the idea that there are many open ended possibilities for gameplay, and it’s something I will have to work on refining.


SATMiner

https://i.ibb.co/4gCJbcsJ/image.png

*You might notice that the hashrates are ridiculously low, this is intentional - I'm still figuring out how i want the progression to work [and if you should literally start the game by clicking like you do in cookie clicker before you buy upgrades] but I'll probably change this to start out more reasonable.

The GUI for this one is a bit of a work in progress, but this is your go-to mining software where you’ll be earning all those "SATs". It serves as the hub to check in on your operation, as well as where you can manage your devices (and temperature/electricity-costs, still working on this) and access the command console.

The command console serves a few functions (screenshots below):

https://i.ibb.co/pvTXWv4g/image.png
https://i.ibb.co/dwMsrd2R/image.png

It allows you to query stuff about the blockchain (a lot of it is just there to make it look and feel like a real console lol) and actually interact with the chain directly.

https://i.ibb.co/0R6zn7xG/image.png

The ENTIRE blockchain is fully simulated, minus some various shortcuts and liberties that I decided to take. Obviously, you can't wait around for a billion hours for your web browser to generate a valid hash under an actual realistic difficulty target, so the hash generation is skewed, with higher probabilities of finding a hash with a number of leading zero bits the better hardware that you have.

Regarding the full simulation aspect — It seems a bit pointless to me to simulate and record every single UTXO that is created and manage scriptPubKeys and scriptSigs, yada yada yada (though, I am still very much open to hearing suggestions about how to incorporate this type of stuff in gameplay). I’ve managed to compress every block into about 16 bytes (though i’ll likely be optimising this further to make space for other stuff), and everything is generated and assigned deterministically to keep the game feeling realistic/immersive but also very lightweight — which is important for the next thing: chain forking.

Still working on this, but from the command console — you can directly manipulate your version of the chain using rejectblock and restoreblock (equivalents to the bitcoin RPC’s invalidateblock/reconsiderblock). This allows you to, say, play out a 51% style attack, where if you have enough hashrate (it is a game after all, so it’s fun to include this) and can cover your costs, it is possible to fork the chain and commit some awesome transaction fraud. Naturally, if you’re not sneaky, this will have repercussions — exchange requiring deeper confirmations, peers ignoring your broadcasts, etc — still figuring this stuff out from a game design perspective.

It’s the little things like this that I think are very cool, and make creating this game worthwhile from an educational standpoint — again, I’d love to hear any suggestions for similar things to incorporate.


Fun little tangent — There are "secret commands" in the console that'll do stuff in the game, but are completely impossible to decrypt from the source code.
It’s an AES-CBC encrypt of the "message" with the key being the SHA-256 hash of the inputted secret, so i think it’s pretty airtight.

Here’s an example of one of them:

https://i.ibb.co/sdNfPGsV/image.png

Maybe a little cheesy but I think it’s fun — definitely looking for suggestions for little secrets to add to the console, really anything to do with early bitcoin culture or just things that are interesting. Obviously, not so secret once it’s posted on a public forum, but I can slightly alter the unlocking commands or something, it’s just for fun anyway.


WebKit Navigator

Okay, so this is a faux internet browser that is your gateway into the "online" world — I think it’s the most content rich and fun-to-add-to thing here.

https://i.ibb.co/HDbfNVKc/image.png

There’s 3 sites right now:

RAMRanch: (it’s stupid but i thought it was kinda funny) It’s an online store where you can buy stuff — you’ll start out with CPUs, fans, then gradually go to GPUs, cooling systems, ASICs, etc, I’m sure you get the idea.


RingNET: This is the stand in for Bitcointalk! I’ve put a screenshot below, it’s obviously all populated with fake numbers and stats, but that’s just to make it look a little bit alive since i haven’t actually made any content/posts for it yet (I definitely plan to though).

https://i.ibb.co/ZpmWTZdj/image.png

But basically, as the game progresses, the forum will start to fill up with various posts that’ll actually make the game feel alive — responses to market fluctuations (I’ll discuss this in a minute) and just other random events.

There’s some obvious legendary bitcointalk posts that I have to create parody versions of — the 10K pizzas, HODLing, consensus debates (the first mention of PoS), etc, but I’m hoping to get input from people who were around, or who know their Bitcoin lore better than I do.

https://i.ibb.co/vCMDCnh9/image.png

Naturally, I’ve made an inbox too where you can get shady messages, or actual "storylines" that push side quests or whatever you wanna call it.


SatEx: This is the exchange site the player will trade on, at least at first. I’m kinda thinking about how I want the Mt. Gox situation to play out in this, I may or may not have to make a few different exchange "sites" but it really shouldn’t be too much effort, just more HTML and CSS.

https://i.ibb.co/S4mRb7rs/image.png

The market is essentially a series of connected brownian bridges. This allows very nice control over how the market will move on a macro scale, in line with halvings and other random occurrences (as I discussed earlier with the forum posts). These occurrences and the time that they occur is generated randomly at the start of every play through - things that will cause either crashes or bullruns, say, like a major exchange getting hacked haha.


Why am I posting here?

The game is very much still early and I’m just building it because I love this stuff. But I figured some people here might have thoughts about what really mattered in Bitcoin’s early years — the kind of stuff that gets overlooked when people just look at charts or headlines.

So, if you have ideas, a post you remember, a story, any technical aspects of Bitcoin that you think should be included — if it belongs in the game, I want to know.
Also, any general feedback - is this something you'd be interesting in playing? Even if you think the whole thing is dumb, I'd still appreciate the honesty.


I know it's a long post and there's a lot of images, but thank you so much for reading this far, and extra thanks if you’ve got any ideas you’d like to throw in. I’ll keep working on this in my spare time.



Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: SFR10 on April 15, 2025, 08:12:21 AM
So, if you have ideas, a post you remember, a story, any technical aspects of Bitcoin that you think should be included — if it belongs in the game, I want to know.
In addition to SatEx, it'd be nice if you could incorporate another exchange that resembles how "New Liberty Standard (http://web.archive.org/web/20091229132610/http://newlibertystandard.wetpaint.com/page/Exchange%2BRate) [first bitcoin exchange]" was calculating the exchange rates back then.

Also, any general feedback - is this something you'd be interesting in playing? Even if you think the whole thing is dumb, I'd still appreciate the honesty.
I'd definitely spend a good hour or two playing this sophisticated game from time to time, and I really don't think it's dumb [it deserves more attention]. Based on those screenshots, I'm guessing a minimum viable product already exists... Can we try it?

*Can someone on my behalf send a lot of merits to the opening post?


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: u0u on April 15, 2025, 11:12:02 AM
Hey everyone,

This is my first real post here — I’ve lurked for a little bit, but I’m still pretty new to this whole ecosystem.

Recently, I started building a weird little game project that I thought some of you might find interesting (or at least entertaining). Posting it on this board because it seems most appropriate I think.


What is this?

In short, it’s a single-player management/sandbox game that serves as both a tribute to Bitcoin’s legacy and (hopefully) an accessible introduction to blockchain technology, something that actually shows you what goes on behind the scenes, and something like Bitcoin actually is.

Basically, you boot into a Windows-XP style desktop, and from there, you mine coins, trade on exchanges, buy hardware, manage costs, browse forum posts, engage in ‘side’ activities, and so much more. As far as a goal, well, I guess your goal is to accumulate as much money as possible.

As the game progresses, so does the world inside of it. Hopefully you’ll gather some of this from the rest of the post.

https://i.ibb.co/WWNQYyMg/image.png


I felt like just making it a 1–1 for Bitcoin was a bit too on the nose, so the stand in for BTC in this game is Saturn, or SAT (very clever, I know). Anyway, right now, there’s three main desktop applications that you can interface with in the game’s simulated OS environment.


Saturn Core

https://i.ibb.co/qMb8nQSH/image.png

Naturally, very inspired by Satoshi’s v0.1 client  ;D
You use it to keep track of your wallet, send transactions, and view all of your transaction history.

https://i.ibb.co/j9bZF041/image.png

In the above screenshot, you can see all the transactions to your address and open them up to see related details.

Like I mentioned earlier, one of the "software updates" you get after playing the game for a bit is the in-universe BIP32, and eventually BIP173), here’s a screenshot of that below:

https://i.ibb.co/Y4ph1gF3/image.png

A lot of this project so far has been built around the idea that there are many open ended possibilities for gameplay, and it’s something I will have to work on refining.


SATMiner

https://i.ibb.co/4gCJbcsJ/image.png

*You might notice that the hashrates are ridiculously low, this is intentional - I'm still figuring out how i want the progression to work [and if you should literally start the game by clicking like you do in cookie clicker before you buy upgrades] but I'll probably change this to start out more reasonable.

The GUI for this one is a bit of a work in progress, but this is your go-to mining software where you’ll be earning all those "SATs". It serves as the hub to check in on your operation, as well as where you can manage your devices (and temperature/electricity-costs, still working on this) and access the command console.

The command console serves a few functions (screenshots below):

https://i.ibb.co/pvTXWv4g/image.png
https://i.ibb.co/dwMsrd2R/image.png

It allows you to query stuff about the blockchain (a lot of it is just there to make it look and feel like a real console lol) and actually interact with the chain directly.

https://i.ibb.co/0R6zn7xG/image.png

The ENTIRE blockchain is fully simulated, minus some various shortcuts and liberties that I decided to take. Obviously, you can't wait around for a billion hours for your web browser to generate a valid hash under an actual realistic difficulty target, so the hash generation is skewed, with higher probabilities of finding a hash with a number of leading zero bits the better hardware that you have.

Regarding the full simulation aspect — It seems a bit pointless to me to simulate and record every single UTXO that is created and manage scriptPubKeys and scriptSigs, yada yada yada (though, I am still very much open to hearing suggestions about how to incorporate this type of stuff in gameplay). I’ve managed to compress every block into about 16 bytes (though i’ll likely be optimising this further to make space for other stuff), and everything is generated and assigned deterministically to keep the game feeling realistic/immersive but also very lightweight — which is important for the next thing: chain forking.

Still working on this, but from the command console — you can directly manipulate your version of the chain using rejectblock and restoreblock (equivalents to the bitcoin RPC’s invalidateblock/reconsiderblock). This allows you to, say, play out a 51% style attack, where if you have enough hashrate (it is a game after all, so it’s fun to include this) and can cover your costs, it is possible to fork the chain and commit some awesome transaction fraud. Naturally, if you’re not sneaky, this will have repercussions — exchange requiring deeper confirmations, peers ignoring your broadcasts, etc — still figuring this stuff out from a game design perspective.

It’s the little things like this that I think are very cool, and make creating this game worthwhile from an educational standpoint — again, I’d love to hear any suggestions for similar things to incorporate.


Fun little tangent — There are "secret commands" in the console that'll do stuff in the game, but are completely impossible to decrypt from the source code.
It’s an AES-CBC encrypt of the "message" with the key being the SHA-256 hash of the inputted secret, so i think it’s pretty airtight.

Here’s an example of one of them:

https://i.ibb.co/sdNfPGsV/image.png

Maybe a little cheesy but I think it’s fun — definitely looking for suggestions for little secrets to add to the console, really anything to do with early bitcoin culture or just things that are interesting. Obviously, not so secret once it’s posted on a public forum, but I can slightly alter the unlocking commands or something, it’s just for fun anyway.


WebKit Navigator

Okay, so this is a faux internet browser that is your gateway into the "online" world — I think it’s the most content rich and fun-to-add-to thing here.

https://i.ibb.co/HDbfNVKc/image.png

There’s 3 sites right now:

RAMRanch: (it’s stupid but i thought it was kinda funny) It’s an online store where you can buy stuff — you’ll start out with CPUs, fans, then gradually go to GPUs, cooling systems, ASICs, etc, I’m sure you get the idea.


RingNET: This is the stand in for Bitcointalk! I’ve put a screenshot below, it’s obviously all populated with fake numbers and stats, but that’s just to make it look a little bit alive since i haven’t actually made any content/posts for it yet (I definitely plan to though).

https://i.ibb.co/ZpmWTZdj/image.png

But basically, as the game progresses, the forum will start to fill up with various posts that’ll actually make the game feel alive — responses to market fluctuations (I’ll discuss this in a minute) and just other random events.

There’s some obvious legendary bitcointalk posts that I have to create parody versions of — the 10K pizzas, HODLing, consensus debates (the first mention of PoS), etc, but I’m hoping to get input from people who were around, or who know their Bitcoin lore better than I do.

https://i.ibb.co/vCMDCnh9/image.png

Naturally, I’ve made an inbox too where you can get shady messages, or actual "storylines" that push side quests or whatever you wanna call it.


SatEx: This is the exchange site the player will trade on, at least at first. I’m kinda thinking about how I want the Mt. Gox situation to play out in this, I may or may not have to make a few different exchange "sites" but it really shouldn’t be too much effort, just more HTML and CSS.

https://i.ibb.co/S4mRb7rs/image.png

The market is essentially a series of connected brownian bridges. This allows very nice control over how the market will move on a macro scale, in line with halvings and other random occurrences (as I discussed earlier with the forum posts). These occurrences and the time that they occur is generated randomly at the start of every play through - things that will cause either crashes or bullruns, say, like a major exchange getting hacked haha.


Why am I posting here?

The game is very much still early and I’m just building it because I love this stuff. But I figured some people here might have thoughts about what really mattered in Bitcoin’s early years — the kind of stuff that gets overlooked when people just look at charts or headlines.

So, if you have ideas, a post you remember, a story, any technical aspects of Bitcoin that you think should be included — if it belongs in the game, I want to know.
Also, any general feedback - is this something you'd be interesting in playing? Even if you think the whole thing is dumb, I'd still appreciate the honesty.


I know it's a long post and there's a lot of images, but thank you so much for reading this far, and extra thanks if you’ve got any ideas you’d like to throw in. I’ll keep working on this in my spare time.



Very impressive, it looks like an experience that captures the fascinating early days of Bitcoin in a creative way that is both educational and immersive, is the game going to be browser-based, do you have a working prototype?


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 15, 2025, 11:21:09 AM
In addition to SatEx, it'd be nice if you could incorporate another exchange that resembles how "New Liberty Standard (http://web.archive.org/web/20091229132610/http://newlibertystandard.wetpaint.com/page/Exchange%2BRate) [first bitcoin exchange]" was calculating the exchange rates back then.
Funny enough, I'm implementing the network difficulty as a function of the exchange price - so I guess in some weird inverse way it "appears" that the price is following the cost of mining. With so little other factors influencing price at the start of the game, it already almost naturally feels like the price is following electricity costs lol. You're right though, the more I think about it, the more it makes sense to have multiple exchanges, each reflecting the various eras of bitcoin trading.


I'd definitely spend a good hour or two playing this sophisticated game from time to time, and I really don't think it's dumb [it deserves more attention]. Based on those screenshots, I'm guessing a minimum viable product already exists... Can we try it?

Thanks for the kind words! It's a pretty niche concept, yeah, but I'm hoping to execute it well.

Also, I guess it depends on what you mean by a minimum viable product really - the game is technically "playable" but it's not really fun at the moment. It's more of just a sandbox with no real progression. I’m working on figuring out how to make it feel like a proper game - e.g. determining stats for components you can buy from the store, in terms of hashing power, electricity usage, etc, to name one of many things. Needs to strike that balance of being realistic but also fair.

Naturally, when something that can receive proper feedback is ready, I'll be sure to share it in this thread :)


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 15, 2025, 11:28:30 AM
Very impressive, it looks like an experience that captures the fascinating early days of Bitcoin in a creative way that is both educational and immersive, is the game going to be browser-based, do you have a working prototype?

Cheers!  :D


It's definitely playable in-browser, so unless there's some problem down the line that changes things, I'll opt for just putting it online, or maybe also bundling it using electron or something.

As far as a working prototype goes, technically - yes, but like I mentioned in my other reply it's just not much of a game yet haha. The core fundamentals are all there, at least all the simulation stuff, I just need to go in add put stuff on top of it (and fine tune all that stuff).


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: d5000 on April 15, 2025, 04:45:29 PM
Really cool idea! I definitely would try this out. I'm not sure if I would play this for hours, as I'm currently not so much into gaming (and when I play, I play some old first person shooters ;) ) but I think this should definitely find a public.

I could imagine a thread (or even a "league") of this game here in Bitcointalk where people can compare their highscores ;) I've briefly thought into suggesting a multiplayer mode but (from my understanding) this would be a lot more complex as you would have to simulate blocks and stuff more realistically (if you still want to preserve features like the 51% attack) and add networking features ...


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: Vod on April 15, 2025, 07:11:09 PM
It's definitely playable in-browser, so unless there's some problem down the line that changes things, I'll opt for just putting it online, or maybe also bundling it using electron or something.

As far as a working prototype goes, technically - yes, but like I mentioned in my other reply it's just not much of a game yet haha. The core fundamentals are all there, at least all the simulation stuff, I just need to go in add put stuff on top of it (and fine tune all that stuff).

Nice!   Is this going to be a real time simulation type game?   For example, are you going to require certain things be done in order to advance?  (Like a factory filling up needs to be emptied).  That is a great free to play start, and then you can sell upgrades that eliminate some of those requirements.

I can also offer you a real time view-only "interface" that could show the progress of their bitcoin operation on every page load, launching by end of month.  (They would still need to visit your site for any interaction with the game) Send me a PM if this is something that interests you, as this would introduce friendly competition between your users.   You'll need a completed privacy policy, and a basic API to return up to ten stats for each player. 


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 15, 2025, 11:59:37 PM
Really cool idea! I definitely would try this out. I'm not sure if I would play this for hours, as I'm currently not so much into gaming (and when I play, I play some old first person shooters ;) ) but I think this should definitely find a public.
Yeah, I totally get that - I don’t expect people to sink tons of hours into it. I’m aiming for something that you can poke around in for a bit, maybe learn something new, get nostalgic, and then maybe come back to later when the mood hits.

I could imagine a thread (or even a "league") of this game here in Bitcointalk where people can compare their highscores ;) I've briefly thought into suggesting a multiplayer mode but (from my understanding) this would be a lot more complex as you would have to simulate blocks and stuff more realistically (if you still want to preserve features like the 51% attack) and add networking features ...
Oh for sure, I'll definitely bake in some kind of score/stat export that people can copy/paste (and maybe a global leaderboard accessible in the game somewhere).
I’ve also had a few vague ideas around multiplayer, but yeah, keeping everything fair and consistent across different users gets messy really fast. Maybe later on if it grows, but for now it’s strictly solo.

There's something similar that existed back in the day called VirtualMiner (https://bitcointalk.org/index.php?topic=124208.0), pretty neat product of its time.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 16, 2025, 12:26:40 AM
Nice!   Is this going to be a real time simulation type game?   For example, are you going to require certain things be done in order to advance?  (Like a factory filling up needs to be emptied).  That is a great free to play start, and then you can sell upgrades that eliminate some of those requirements.
Things happen in real time, yep - as long as the game is open. On desktop it runs constantly, but in-browser it only updates when the tab is focused (because of timer throttling).

The idea is that you will have to consistently compete with the rest of the network as you go. For example, you might solo mine 15 of the first 28 blocks with ease, but as more “people” join the network and the total hashrate increases, difficulty adjusts and you’ll start to fall behind unless you upgrade your rig. That loop of scaling, adjusting, and keeping up is the heart of it - along with random events you’ll have to deal with as you go. So yeah, it's real time in the sense that things will happen without you, and you will fall behind if you don't interact with the game, hopefully that answers your question.

Right now block times are around 10s, and difficulty adjustment happens every 32 blocks, though it can be tweaked to offer a slower paced or more hectic experience.


I can also offer you a real time view-only "interface" that could show the progress of their bitcoin operation on every page load, launching by end of month.  (They would still need to visit your site for any interaction with the game) Send me a PM if this is something that interests you, as this would introduce friendly competition between your users.   You'll need a completed privacy policy, and a basic API to return up to ten stats for each player. 
Appreciate the offer  :D!  I don't think it'll be ready by the end of the month (juggling this with uni and other things), but I will definitely keep that in mind and reach out to you at some point.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: Vod on April 16, 2025, 01:30:13 AM
Things happen in real time, yep - as long as the game is open. On desktop it runs constantly, but in-browser it only updates when the tab is focused (because of timer throttling).

The idea is that you will have to consistently compete with the rest of the network as you go. For example, you might solo mine 15 of the first 28 blocks with ease, but as more “people” join the network and the total hashrate increases, difficulty adjusts and you’ll start to fall behind unless you upgrade your rig. That loop of scaling, adjusting, and keeping up is the heart of it - along with random events you’ll have to deal with as you go. So yeah, it's real time in the sense that things will happen without you, and you will fall behind if you don't interact with the game, hopefully that answers your question.

Will this be a single player game, where you are competing against bots, or a multiplayer one?  If you plan for multiplayer, you should ditch all engine development on your app/webpage, and code those to interact with your world server (whatever language, framework and database you are comfortable with) via API, which must be running 24/7 somewhere obviously. 


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 16, 2025, 01:41:45 AM
Will this be a single player game, where you are competing against bots, or a multiplayer one?  If you plan for multiplayer, you should ditch all engine development on your app/webpage, and code those to interact with your world server (whatever language, framework and database you are comfortable with) via API, which must be running 24/7 somewhere obviously. 
It's single-player, yes. You’re competing against simulated peers, it's designed to all be client side. This way, the leaderboard would be about determining the best strategies to optimise your mining operation while having to deal with random factors that are out of your control (market events and such factors are generated at the start of each run with a seed).


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: arabspaceship123 on April 16, 2025, 08:21:16 AM
Games about bitcoin are fun I like your concept. Single player games novelty aren't fun it's important features should be added. More ppl get involved if it's multiplayer allows ppl to play against each other & sharing scores so it's going to be more fun.

Will this be a single player game, where you are competing against bots, or a multiplayer one?  If you plan for multiplayer, you should ditch all engine development on your app/webpage, and code those to interact with your world server (whatever language, framework and database you are comfortable with) via API, which must be running 24/7 somewhere obviously. 
It's single-player, yes. You’re competing against simulated peers, it's designed to all be client side. This way, the leaderboard would be about determining the best strategies to optimise your mining operation while having to deal with random factors that are out of your control (market events and such factors are generated at the start of each run with a seed).


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 16, 2025, 12:29:54 PM
Games about bitcoin are fun I like your concept. Single player games novelty aren't fun it's important features should be added. More ppl get involved if it's multiplayer allows ppl to play against each other & sharing scores so it's going to be more fun.
Yeah for sure, but I do think there is genuine depth to be found in the concept, enough that it goes beyond being a simple "novelty" or throwaway.

Like I mentioned earlier, multiplayer just makes things very tricky. In singleplayer, every run is fresh and immersive, and the experience can be tailored to be educational and fun.

On the other hand, when the game is multiplayer (if it's global multiplayer at least) competition can potentially become pretty intense, and it would potentially be discouraging for players who end up joining later and find it difficult to catch up. Also, it's very hard to tailor the experience (especially the educational aspect, though I guess it's possible). Things would have to be a lot slower and stretched out to ensure the survival of the game - block times would need to be longer, halving intervals would have to be longer, to make sure the game doesn't end up having a short lifespan (there's not really much to do once the last sat has been mined).

Perhaps there is merit to having both a singleplayer and multiplayer mode, and multiplayer definitely sounds like it could be fun, but for now my attention and focus will primarily be on singleplayer.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: r_victory on April 16, 2025, 01:27:36 PM
Congratulations on the initiative, and it seems to be a very fun game, with a nostalgic appeal. Windows XP brings back good memories (although I have used all versions, 3.1, 3.11, Windows 95). I wish you success in your project!


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: arabspaceship123 on April 17, 2025, 10:00:18 AM
You're focusing on single player so sharing scores for a leadership board's useful to keep players excited. It's your game you'll make it how you imagine ppl playing. There's so many games we've got access to on phones & online I don't know how ppl share their time between playing games.


Yeah for sure, but I do think there is genuine depth to be found in the concept, enough that it goes beyond being a simple "novelty" or throwaway.

Like I mentioned earlier, multiplayer just makes things very tricky. In singleplayer, every run is fresh and immersive, and the experience can be tailored to be educational and fun.

On the other hand, when the game is multiplayer (if it's global multiplayer at least) competition can potentially become pretty intense, and it would potentially be discouraging for players who end up joining later and find it difficult to catch up. Also, it's very hard to tailor the experience (especially the educational aspect, though I guess it's possible). Things would have to be a lot slower and stretched out to ensure the survival of the game - block times would need to be longer, halving intervals would have to be longer, to make sure the game doesn't end up having a short lifespan (there's not really much to do once the last sat has been mined).

Perhaps there is merit to having both a singleplayer and multiplayer mode, and multiplayer definitely sounds like it could be fun, but for now my attention and focus will primarily be on singleplayer.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 17, 2025, 10:04:37 AM
Congratulations on the initiative, and it seems to be a very fun game, with a nostalgic appeal. Windows XP brings back good memories (although I have used all versions, 3.1, 3.11, Windows 95). I wish you success in your project!
Thank you! Yeah, just trying to capture the XP vibe has been really fun in itself  ;D


You're focusing on single player so sharing scores for a leadership board's useful to keep players excited. It's your game you'll make it how you imagine ppl playing. There's so many games we've got access to on phones & online I don't know how ppl share their time between playing games.
Absolutely, there's lots of cool stats that can be calculated for the leaderboards.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: Vod on April 17, 2025, 04:10:11 PM
Absolutely, there's lots of cool stats that can be calculated for the leaderboards.

Cool stats that are worthless though - can't even be compared for bragging rights.  I like your idea but I hope you realize the members here like boasting about stats - verifiable or not   :)


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on April 17, 2025, 09:34:55 PM
Cool stats that are worthless though - can't even be compared for bragging rights.  I like your idea but I hope you realize the members here like boasting about stats - verifiable or not   :)
Perhaps I am misunderstanding but I think they definitely can be compared  ::). The game has soft "ending" when the last coin has been mined, and up to that point, there's a ton of performance metrics that you can compare with other players.

E.g.:
  • # of coins created
  • # of blocks solo-mined
  • Longest solo mining streak
  • Chainwork contributed to the network
  • Peak hashrate achieved
  • Peak difficulty achieved (and best block hash mined)
  • Net profits earned
  • etc
These sorts of stats can also be combined into an overall performance grade (e.g., S, A, B, C, D, F).

And, if applicable:
  • # of successful forks (51% style attack)
  • Deepest successful fork
  • More stuff like this

Just to list some ideas.
Unfortunately there is pretty much no way I can think of to fully stop cheating, and all of it would be a hassle - though, I think obvious cheating can be filtered out by statistical improbability - plus, if players provide their seeds (or for competitive purposes, people decide to play on the same set of seeds) results can to some extent be independently verified by replication.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 11, 2025, 11:31:22 AM
A little update on this - I've got a "playable" prototype up and running over on:

https://proofofwork.gg (https://proofofwork.gg)  [a few tiny things don't render properly on FireFox, and Tor doesn't like to load fonts]

"Playable" in quotes because it's still not much of an actual game just yet, but I figured I'd deploy what I have just so people can have a look-see.


Things on my todo list right now:
  • Actual tutorial - I'll admit, right now the game's a bit intimidating and not super intuitive
  • Better balancing/progression
  • Device wear/tear from overheating
  • Mining pools
  • RingNET forum (this will take forever ::))
  • Integrating the progression and components of real bitcoin history
  • Lose condition, probably not being able to pay your bills
  • More things that will probably come up (stats, and so on)
I'll come up with an actual fleshed out roadmap at some point.


What you can do right now:
  • Change your wallpaper! :D
  • Scope out the UI and try mining some coins
  • Take a look at the exchange, try out trading
  • Buy devices to increase your hashrate (4 you can buy at the moment, there's more but they need to be layered into the 'story' and historical progression, GPUs/FPGAs/ASICSs etc)
  • Use the ℹ️ info mode to learn about parts of the system (mostly in SATMiner for now). I will add a Clippy-esque character soon, I promise ;D
  • If you're feeling fancy and are able to figure it out, try to 51% attack the network and pull off a double spend.

Saving isn't implemented yet since difficulty ramps up fast, and without mining pools, you'll probably hit a dead end after like 10-15 minutes. Refreshing will reset everything for now.

Also, I fully expect there to be bugs I haven't noticed, so please let me know if you find anything and I'll fix it as soon as I can. Let me know what you think!



Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: bulleteyedk on May 12, 2025, 10:16:42 AM
This is SO cool!  ;D

Will def. be following this thread, as it seems you have much more in the pipeline in this proof-of-work simulation game...



Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: SFR10 on May 12, 2025, 11:29:19 AM
Also, I fully expect there to be bugs I haven't noticed, so please let me know if you find anything and I'll fix it as soon as I can. Let me know what you think!
I spent a few minutes and noticed that SATMiner sometimes doesn't send mined coins to newly changed worker addresses [the temporary solution seems to be to stop the process, then start it again].

BTW, may I know why the Pay To field on Saturn Core requests clipboard read access, but the withdrawal address field on SatEx doesn't?
- I don't think anyone is fine with giving your platform/website that kind of access, so you should change that part!


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 12, 2025, 12:01:39 PM
BTW, may I know why the Pay To field on Saturn Core requests clipboard read access, but the withdrawal address field on SatEx doesn't?
- I don't think anyone is fine with giving your platform/website that kind of access, so you should change that part!

Whoops, that's my bad! I must've made that field readonly ages ago and just never realised. Should be fixed now, thanks for bringing it to my attention, you're right.


I spent a few minutes and noticed that SATMiner sometimes doesn't send mined coins to newly changed worker addresses [the temporary solution seems to be to stop the process, then start it again].
I'm guessing what's happened here is that you've changed the address on one of your devices while the others are still running? Each device can be configured with unique settings, including being able to send it's coinbase reward to a unique address, as you might want to, for example, run a lucky solo miner while some of your other devices mine passive income through pools.

Anytime you find a block, the game rolls the dice using the hashrates of your devices to figure out which device was the "winner", and the reward is paid out to the address set for that device.

So I think it was just random chance and when you changed it, it looked like it was paying to the wrong address. But correct me if that wasn't the scenario because that seems like a pretty big issue that I need to recreate.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: arabspaceship123 on May 13, 2025, 08:02:21 AM
I've checked it again you've done more work on your proof of work game it's cool. You should register how many ppl visit. I don't understand why you're using windows xp effects. Your program's about bitcoin not Win XP.

A little update on this - I've got a "playable" prototype up and running over on:

https://proof-of-work.net (https://proof-of-work.net)  [a few tiny things don't render properly on FireFox, and Tor doesn't like to load fonts]

"Playable" in quotes because it's still not much of an actual game just yet, but I figured I'd deploy what I have just so people can have a look-see.


Things on my todo list right now:
  • Actual tutorial - I'll admit, right now the game's a bit intimidating and not super intuitive
  • Better balancing/progression
  • Device wear/tear from overheating
  • Mining pools
  • RingNET forum (this will take forever ::))
  • Integrating the progression and components of real bitcoin history
  • Lose condition, probably not being able to pay your bills
  • More things that will probably come up (stats, and so on)
I'll come up with an actual fleshed out roadmap at some point.


What you can do right now:
  • Change your wallpaper! :D
  • Scope out the UI and try mining some coins
  • Take a look at the exchange, try out trading
  • Buy devices to increase your hashrate (4 you can buy at the moment, there's more but they need to be layered into the 'story' and historical progression, GPUs/FPGAs/ASICSs etc)
  • Use the ℹ️ info mode to learn about parts of the system (mostly in SATMiner for now). I will add a Clippy-esque character soon, I promise ;D
  • If you're feeling fancy and are able to figure it out, try to 51% attack the network and pull off a double spend.

Saving isn't implemented yet since difficulty ramps up fast, and without mining pools, you'll probably hit a dead end after like 10-15 minutes. Refreshing will reset everything for now.

Also, I fully expect there to be bugs I haven't noticed, so please let me know if you find anything and I'll fix it as soon as I can. Let me know what you think!




Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: SFR10 on May 13, 2025, 09:29:13 AM
Should be fixed now, thanks for bringing it to my attention, you're right.
You're very welcome and thank you as well for fixing it right away :)

I'm guessing what's happened here is that you've changed the address on one of your devices while the others are still running?
This is what happened the very first time, but the second time, I'm pretty sure I stopped the mining process on all of the miners... Having said that, I had no luck in reproducing it today [I'll screencast it if I experience it again].

  • So I think it was just random chance and when you changed it, it looked like it was paying to the wrong address.
    I monitored them for a few minutes [I also restarted the page to make sure difficulty was low] and strongly believe rewards weren't going to any address at that time. The first address that I set was from the Saturn Core and the next one was from SatEx [I had to do it due to the clipboard issue that was present at that moment].


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 13, 2025, 12:21:41 PM
I've checked it again you've done more work on your proof of work game it's cool. You should register how many ppl visit. I don't understand why you're using windows xp effects. Your program's about bitcoin not Win XP.
Well, it's nostalgic right? It's supposed to take you back in time to the early days of bitcoin, outdated, clunky software UI and websites... It's also part of the "aesthetic", I think it's nice eye-candy personally at least.

Hit counter is cool, I'll see if I can do that some way without needing to use some sort of third party api or something.



This is what happened the very first time, but the second time, I'm pretty sure I stopped the mining process on all of the miners... Having said that, I had no luck in reproducing it today [I'll screencast it if I experience it again].
I monitored them for a few minutes [I also restarted the page to make sure difficulty was low] and strongly believe rewards weren't going to any address at that time. The first address that I set was from the Saturn Core and the next one was from SatEx [I had to do it due to the clipboard issue that was present at that moment].

Thanks for taking the time to try and recreate it regardless. I must admit it is very odd, as I've never experienced that happening even once (I almost always split addresses between workers when I'm testing stuff, out of habit). Do you recall if the SATMiner actually showed that you had mined the block in the output log? Example:
Code:
[INFO] (SOLVED) #295      | 0000001f41ea7c44b0cfa7eb92a5fb8730beadcf7fe581d7359a7aa909d13170

Either way I'll be on the lookout for it happening ;)


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: arabspaceship123 on May 13, 2025, 05:02:22 PM
For eye candy your Proof of Work project's fun because it's a reminder of early years. If ppl mined bitcoin at home they'll like your aesthetic honesty. How many ppl using crypto today knew about bitcoin in 2010 ?


Well, it's nostalgic right? It's supposed to take you back in time to the early days of bitcoin, outdated, clunky software UI and websites... It's also part of the "aesthetic", I think it's nice eye-candy personally at least.

Hit counter is cool, I'll see if I can do that some way without needing to use some sort of third party api or something.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: NeuroticFish on May 13, 2025, 05:58:53 PM

I like the idea a lot and I wish you get real traction with this game. The idea is cool, you seem very active and wanting to do the right thing. A great combo that deserves success.
I've bookmarked it and I will most probably try it out when I'll get a bit more free time.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: stwenhao on May 14, 2025, 03:32:11 AM
Quote
there's not really much to do once the last sat has been mined
Oh, there are many scenarios, which could happen in theory in that case.

1. Constant block reorganizations, to grab the last "new" satoshi, which didn't have any previous owner.
2. Changing the model of the coin, to synchronize from the point, where all coins are already pre-assigned, and only change hands.
3. Using the chain as a notarization platform, to commit to some data, even without moving any coins.
4. Moving the chain forward, to unlock some timelocked transactions or coins.
5. Working on some puzzles, if it would be more profitable to break a puzzle, than to mine a new block.
6. Introducing any coin-in-a-coin scheme, where you peg another coin to the chain, and exchange between the mainchain, and the sidechain.

And probably much, much more. You can see, what is going on with testnet3, where almost all coins were mined. You can see, how testnet miners can get a lot of coins, for confirming a lot of spam on-chain. And you can also see, how some sidechains create no coins out of thin air, and which strategies they picked, to make it stable, when they have to focus only on transaction fees.

Quote
for now my attention and focus will primarily be on singleplayer
Then you can try to build your game on top of regtest. In this case, each player starts from the Genesis Block, and can test a lot of strategies, without disturbing other players.

Making it multiplayer can be hard, because many test networks failed to keep being worthless. Now, testnet3 and testnet4 coins are traded, and new testnets may also be. Signet is another option, but then, players won't be able to mine blocks by themselves. Also, there already are some multiplayer games, like RollerCoin (https://rollercoin.com/) and, as you can see, real coins are involved. And if you want to avoid that, then it is hard to make a good, multiplayer game, where coins will stay worthless (because even Bitcoin Core developers failed to do so, and there are still some discussions, how to make a better testnet).


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 14, 2025, 06:18:46 AM
Quote
for now my attention and focus will primarily be on singleplayer
Then you can try to build your game on top of regtest. In this case, each player starts from the Genesis Block, and can test a lot of strategies, without disturbing other players.

Making it multiplayer can be hard, because many test networks failed to keep being worthless. Now, testnet3 and testnet4 coins are traded, and new testnets may also be. Signet is another option, but then, players won't be able to mine blocks by themselves. Also, there already are some multiplayer games, like RollerCoin (https://rollercoin.com/) and, as you can see, real coins are involved. And if you want to avoid that, then it is hard to make a good, multiplayer game, where coins will stay worthless (because even Bitcoin Core developers failed to do so, and there are still some discussions, how to make a better testnet).
Just to clarify - I'm not building this on top of the real bitcoin network or regtest/testnet(s). it's a faux chain in a self-contained JS simulation, in which I'm trying to capture all the important and interesting things about the blockchain without the complexity of it being tied to actual Bitcoin (and also doesn't require you to actually run a real miner :D). As previously linked, it's up on https://proofofwork.gg (https://proofofwork.gg) if you want to give it a quick spin to get a better idea of what it is.

My goal ultimately for this game is probably to be somewhere like 70% between something super casual and idle like Rollercoin, and something real like regtest(leaning towards realism and regtest), to where the player can actually learn about proof of work mining in a hands on, but approachable (and appealing) way, where they might learn about the inner workings of a blockchain without even realising it ;).

And as you said, multiplayer is hard but it's okay because I can postpone that indefinitely at least for now ;D.


1. Constant block reorganizations, to grab the last "new" satoshi, which didn't have any previous owner.
2. Changing the model of the coin, to synchronize from the point, where all coins are already pre-assigned, and only change hands.
3. Using the chain as a notarization platform, to commit to some data, even without moving any coins.
4. Moving the chain forward, to unlock some timelocked transactions or coins.
5. Working on some puzzles, if it would be more profitable to break a puzzle, than to mine a new block.
6. Introducing any coin-in-a-coin scheme, where you peg another coin to the chain, and exchange between the mainchain, and the sidechain.

And probably much, much more. You can see, what is going on with testnet3, where almost all coins were mined. You can see, how testnet miners can get a lot of coins, for confirming a lot of spam on-chain. And you can also see, how some sidechains create no coins out of thin air, and which strategies they picked, to make it stable, when they have to focus only on transaction fees.
This is actually really interesting, and I was probably too short sighted in my original statement. Like I said multiplayer is still definitely out of scope for me right now but some of these ideas hold some pretty convincing arguments for a multiplayer game like that having an afterlife!


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 14, 2025, 11:16:32 AM
You should register how many ppl visit.

Just added this, you can see it at the bottom of the home page of the WebKit Navigator (the 'UsersVisits: x' field). It counts page loads, not unique visits, for the sake of simplicity :)


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: DookieMcSniffer on May 16, 2025, 04:07:56 AM
This is a sick concept! I'm def going to give it a play this afternoon! Do you think it's intuitive enough for me to show my kids (12 & 14) as an intro to btc history?


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 17, 2025, 02:08:23 AM
This is a sick concept! I'm def going to give it a play this afternoon! Do you think it's intuitive enough for me to show my kids (12 & 14) as an intro to btc history?

I mean it's probably too incomplete right now for that to be worthwhile for them, but it's up to you  :P
I'm working on adding more content in the background and crossing stuff on my to-do list but it'll be a while before a real demo is ready.

Long term though, my goal is to make exactly that. Blockchain education is something that's become really important to me, and making a fun game about it is exactly what I want to do - maybe this can be the "Kerbal Space Program" of Bitcoin  ;D


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: joniboini on May 17, 2025, 04:26:49 AM
Nice project. I visited your website with a dark reader extension enabled, and it seems to make the background black. If I disable it it shows just fine but the "app" window is too bright to my taste. Is there any plan to make a native dark mode or something similar in the future? I don't think it is a priority, but it would be nice if I could see the page in dark mode comfortably. Sorry if I missed that.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 17, 2025, 07:58:55 AM
Nice project. I visited your website with a dark reader extension enabled, and it seems to make the background black. If I disable it it shows just fine but the "app" window is too bright to my taste. Is there any plan to make a native dark mode or something similar in the future? I don't think it is a priority, but it would be nice if I could see the page in dark mode comfortably. Sorry if I missed that.
I've fixed the background not showing up, but I guess DarkReader is somewhat limited in what it can do because brightness/contrast changes seem to not impact some UI elements including the wallpaper.
I'll add a native darkmode to my list of things to do, I'll probably push a version in the next few days with a proper settings menu to also adjust volume and stuff as well.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: stwenhao on May 18, 2025, 09:54:42 AM
Why sending to myself is "invalid transaction"? It is a normal thing in Bitcoin, and it may be profitable to consolidate UTXOs, by sending your coins to yourself, to avoid higher transaction fees in the future.

Edit: By the way, the original client created a different address for each and every coinbase transaction, so it was not that obvious, who owned what, if you analyzed the chain. And in general, a single user had a lot of addresses.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 18, 2025, 11:22:41 AM
Why sending to myself is "invalid transaction"? It is a normal thing in Bitcoin, and it may be profitable to consolidate UTXOs, by sending your coins to yourself, to avoid higher transaction fees in the future.

Edit: By the way, the original client created a different address for each and every coinbase transaction, so it was not that obvious, who owned what, if you analyzed the chain. And in general, a single user had a lot of addresses.

Yeah, I'm aware. There's just no point in spending to yourself right now because individual UTXOs are not simulated (there is nothing to consolidate), I mentioned this somewhere in the original post:

Regarding the full simulation aspect — It seems a bit pointless to me to simulate and record every single UTXO that is created and manage scriptPubKeys and scriptSigs, yada yada yada (though, I am still very much open to hearing suggestions about how to incorporate this type of stuff in gameplay). I’ve managed to compress every block into about 16 bytes (though i’ll likely be optimising this further to make space for other stuff), and everything is generated and assigned deterministically to keep the game feeling realistic/immersive but also very lightweight
What I also mentioned in the post is BIPs being introduced as you play over time (e.g., an HD address update to your wallet, consensus softforks with new address types, etc).

Anyhow I think there's a spot for a higher level simulation of UTXOs somewhere (as you mentioned, privacy and such). I'm going to add a 'coinjoin' mechanic in future versions and this will pair nicely with that, but at the moment it wouldn't make a lot of sense to the average casual player. In the final game, things will more than likely be a lot more accurate to the real thing (including what you've described), right now this is something of a test run/proof of concept.
You might've also noticed the coinbases don't include block fees yet (and also transactions incur zero fees), that's something I want to soon implement/model with real bitcoin historical data.


Also, on a side point, I've added this now, it's in the start menu.
I'll add a native darkmode to my list of things to do, I'll probably push a version in the next few days with a proper settings menu to also adjust volume and stuff as well.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: stwenhao on May 18, 2025, 01:16:46 PM
I wondered, why there are around 300 blocks initially mined. Now I think I know why: because when I reorganized the chain, and my minority fork won, then it was no longer possible to buy any coins from the exchange, and it failed with "Unknown Error: Transaction failed".

Now I am trying to test some edge cases, like "what happens, when I will keep reorging everyone else's blocks all the time, and all coins will be mine". But as I can see, the rest of the network can catch up quite quickly, because the best miners have only 54 MH/s, and the network can grow faster, than I can purchase and run them.

I also wonder, if the exchange rate should always go upwards in the long-term. Because if 300 initial blocks are reorged with 100 stronger blocks, on top of the Genesis Block, then I guess it would affect the prize as well (and I would rather expect something like miner exodus, rather than constant growth, and ignoring the attacker, as if nothing happened).

Quote
There's just no point in spending to yourself right now because individual UTXOs are not simulated
Well, in general, if this exchange is trustworthy, and you can send coins only between yourself, and the exchange, then there is no point in having your own address at all. Mining on exchange's address works much better in that case, because you can do everything, without touching the Core client, and there are no problems like "exchange hack".

Quote
higher level simulation of UTXOs somewhere (as you mentioned, privacy and such)
Not only that. Some BIPs, like P2SH, introduced sending to Script-based addresses. Which means, that you would need some kind of Script implementation (which is hard by the way, and even in the official client, you don't have GUI-based scripting, but only some console-based stuff).

Quote
I'm going to add a 'coinjoin' mechanic in future versions
Well, as long as this game is single-player (or as long as you are playing only against single exchange, and nobody else), there is no need for any kind of CoinJoin. If you have two users (you, and the computer), then everyone knows, who owns what (if a given coin is not mine, then it belongs to the bot; and if the bot would be "aware", then it could use the same reasoning).

Quote
right now this is something of a test run/proof of concept
Yes, for version 1.0, I think it is very impressive. I am still trying to test some edge cases, but in general, it works much better than I expected.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 19, 2025, 09:15:11 AM
Now I am trying to test some edge cases, like "what happens, when I will keep reorging everyone else's blocks all the time, and all coins will be mine". But as I can see, the rest of the network can catch up quite quickly, because the best miners have only 54 MH/s, and the network can grow faster, than I can purchase and run them.
Yeah, I'll add more devices soon, mirroring the dawn of FPGAs and ASICs.

I also wonder, if the exchange rate should always go upwards in the long-term. Because if 300 initial blocks are reorged with 100 stronger blocks, on top of the Genesis Block, then I guess it would affect the prize as well (and I would rather expect something like miner exodus, rather than constant growth, and ignoring the attacker, as if nothing happened).
It doesn't always go up in the long term, it just does a lot at the start to make the introduction more engaging, allowing you to buy devices and stuff. The price broadly follows a set of milestones right now, like this:
Code:
[
    {
      'time': 0,
      'price': 0.05
    },
    {
      'time': 100,
      'price': 0.08
    },
    {
      'time': 240,
      'price': 0.6
    },
    {
      'time': 700,
      'price': 2.5
    },
    {
      'time': 2038,
      'price': 20
    },
... etc]

It can be tweaked in the short term to briefly respond to player actions (like a successful attack) which is something I will be adding moving forwards, in addition to, for example, exchanges etc increasing their deposit confirmation time, and even community hardforks if you pull off attacks enough times.

Well, in general, if this exchange is trustworthy, and you can send coins only between yourself, and the exchange, then there is no point in having your own address at all. Mining on exchange's address works much better in that case, because you can do everything, without touching the Core client, and there are no problems like "exchange hack".
-
Well, as long as this game is single-player (or as long as you are playing only against single exchange, and nobody else), there is no need for any kind of CoinJoin. If you have two users (you, and the computer), then everyone knows, who owns what (if a given coin is not mine, then it belongs to the bot; and if the bot would be "aware", then it could use the same reasoning).
Well that's the thing, SatEx mirrors MtGox, I think you can predict what will happen in game...  :D (when I implement that hack/crash and more exchanges). So what I mean by coinjoin is purely for gameplay purposes - e.g., as you're playing in the later stages, governments will try to track you and "confiscate" your coins, so you buy a coinjoin upgrade to cover your tracks and mix up your outputs. At the bottom of the core client, you can also see the number of connected peers, later on, this will be relevant when "attackers" spam your node with bad information and try to DDoS you, and you need to go into the console or what have you and block/ban those peers. These are all mini games basically.

Not only that. Some BIPs, like P2SH, introduced sending to Script-based addresses. Which means, that you would need some kind of Script implementation (which is hard by the way, and even in the official client, you don't have GUI-based scripting, but only some console-based stuff).
Yeah this could be quite cool, I think more on the other end though, instead of letting the player create p2sh transactions, perhaps they can find some mysterious p2sh transactions sitting in blocks like little puzzles that they can claim the outputs of if they can solve it. E.g., they might get DMs from a user on the RingNET forum telling them about a suspicious transaction they spotted on the chain and its TXID, and that's kind of like a clue to look into it further.

Yes, for version 1.0, I think it is very impressive. I am still trying to test some edge cases, but in general, it works much better than I expected.
Yeah cheers man, I appreciate all of your insight and feedback!


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: joniboini on May 20, 2025, 02:19:07 AM
I've fixed the background not showing up, but I guess DarkReader is somewhat limited in what it can do because brightness/contrast changes seem to not impact some UI elements including the wallpaper.
I'll add a native darkmode to my list of things to do, I'll probably push a version in the next few days with a proper settings menu to also adjust volume and stuff as well.
That's good to hear. Yeah, they have other algorithms to filter which things to filter (in the theme generation part), and users can customize it with CSS, but I believe most of them won't bother with it. A native dark mode would be much better for them. It's hard to expect them to stay and try things out if they can't see some parts of the UI.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: stwenhao on May 20, 2025, 03:44:48 AM
How to save a game, to load it later?
https://talkimg.com/images/2025/05/20/UaR6Gg.png
Reaching 3k blocks again, and waiting for 6 halvings, will take some time.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 20, 2025, 08:48:26 AM
How to save a game, to load it later?
https://talkimg.com/images/2025/05/20/UaR6Gg.png
Reaching 3k blocks again, and waiting for 6 halvings, will take some time.
Dang, sorry, there's no way to save right now :'(

I honestly didn't expect anyone to leave it running or play for that long haha. I've just added a little "dev tool", if you go to the SATMiner console and enter:
Code:
pre_mine <N>
where N is the number of blocks, it will pre mine those number of those blocks (after you refresh the page) so you don't have to wait that long again. It's a bit janky in that you'll need to let the network difficulty calibrate for maybe a minute (the blocks are pre mined instantly, so they don't impact difficulty) but I think it should work fine other than that.

When I have some time I'll implement saving.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: stwenhao on May 20, 2025, 11:43:10 AM
Quote
I honestly didn't expect anyone to leave it running or play for that long haha.
Oh, there are many things to test, if you keep it running. For example: the original client halts the chain, if timestamps will overflow. But: if hashrate will keep growing, then uint256 values can overflow, which will also halt the chain. And there are other edge cases, for example to see, if satoshis are halved correctly (or if someone used some floating point values, and will suddenly introduce fractional satoshis; or if things are always rounded down).

Also I noticed, that $0.01 is probably not the smallest indivisible unit, because I saw $0.00 in one box, while seeing $0.01 in another, so I expect some floating point data types.

Another thing is that as long as the price is constantly going up in the long-term, the best strategy is to simply mine the first coins on CPUs, wait for the value of them to raise (because having negative balance in dollars have no consequences), and then trade the rest of the coins from the exchange, when they will mine everything, and happily sell all of that, without asking any questions. Also, when it comes to trading, it should probably allow putting some order into some kind of orderbook, instead of allowing only buying and selling things on-the-spot.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 20, 2025, 01:56:55 PM
Oh, there are many things to test, if you keep it running. For example: the original client halts the chain, if timestamps will overflow. But: if hashrate will keep growing, then uint256 values can overflow, which will also halt the chain. And there are other edge cases, for example to see, if satoshis are halved correctly (or if someone used some floating point values, and will suddenly introduce fractional satoshis; or if things are always rounded down).
Amounts are stored internally as satoshis (integers) in the game, halving follows the same logic as the core client, and you're not allowed to send fractional satoshis, so fractional satoshis are impossible, or should be at least. And unless you leave the game running for the next hundred years, I don't think timestamps nor chainwork will overflow :D

Also I noticed, that $0.01 is probably not the smallest indivisible unit, because I saw $0.00 in one box, while seeing $0.01 in another, so I expect some floating point data types.
This is less likely a floating point error and more likely a rounding error on my part, I must've made the mistake of rounding numbers inconsistently somewhere, I'll go have a look. But floating points are generally only used for fiat anyways, not chain logic (except calculating certain probabilities).

Another thing is that as long as the price is constantly going up in the long-term, the best strategy is to simply mine the first coins on CPUs, wait for the value of them to raise (because having negative balance in dollars have no consequences), and then trade the rest of the coins from the exchange, when they will mine everything, and happily sell all of that, without asking any questions.
Kind of like in real life! If only I could rewind time and get 50 BTC for nothing... But yes, going into debt will most likely have to be a lose condition to encourage the player to keep up. Things will become slightly more nuanced when I add mining pools and all the other features, I think there will be strategies that prove to be much better.

Also, when it comes to trading, it should probably allow putting some order into some kind of orderbook, instead of allowing only buying and selling things on-the-spot.
Good idea, I'll add this to my list. Maybe even derivatives, long/short trading.


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: stwenhao on May 20, 2025, 03:25:55 PM
Quote
But yes, going into debt will most likely have to be a lose condition to encourage the player to keep up.
Maybe not a losing condition, but rather keeping the positive balance should be required to keep mining. Which means, that miners could simply stop, and you could be forced to pay for electricity, to mine new coins. Or: payment could be deducted upfront, and then miners will run for upfront agreed period of time. And also, selling old miners could be possible, to get more funds when needed.

Quote
Maybe even derivatives, long/short trading.
For the start, a simple thing like one more field will do. Instead of having an option to "sell 1 SAT here and now for $0.89", it should be possible to put an order, to "sell 1 SAT for at least $1.23, unless it will be filled or cancelled". If there are no other players, you can start from a single buy order, and a single sell order, and improve it later, when you will add more parties to the simulation.

By the way: initially I thought, that I can mine more blocks, but the counter seems to be stuck at 3066 total blocks for some reason. So, the status from the screen is not just a snapshot: the network cannot produce block number 3067 for some reason (maybe because of integer precision?).


Title: Re: "Proof of Work" - A game about the history of Bitcoin
Post by: askii on May 20, 2025, 11:21:26 PM
By the way: initially I thought, that I can mine more blocks, but the counter seems to be stuck at 3066 total blocks for some reason. So, the status from the screen is not just a snapshot: the network cannot produce block number 3067 for some reason (maybe because of integer precision?).
Yeah there was an integer precision bug before I added the pre mining. If you refresh the page it should be fixed, you can pre mine the same number of blocks or more to verify (or wait, but it's the same thing).