-
Notifications
You must be signed in to change notification settings - Fork 388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[META] Gaming #611
Comments
On a personal note, I plan to work on a Tic Tac Toe demo realm, with a focus on improving my own mental picture of everything that will make sense for gaming on gno in general. Pre-start feeling:
Edit: super WIP -> #613 |
Cool! A tic tac toe would be interesting indeed. For example, a question I have: Can a realm state be modified concurrently by more than 1 tx? If Alice and Bob execute a tx at the same time, competing to change a list in the same leaf of an |
One of the ideas I had in the past few weeks was that of trying to do an implementation of chess as a gno smart contract. At least a version of it as async, ie. correspondence chess, could be implemented without too much trouble, though having it with normal time-controls might be slightly harder. I might try giving it a shot especially if there is a sample tic-tac-toe to base myself on :) |
@thehowl I'm excited to try it out! @grepsuzette By the way, would you be interested in joining us for the next office hour to discuss it? We just opened a new repo where you’ll be able to find the list of upcoming events soon: |
No, it's not currently possible. Transactions (TXs) can arrive concurrently on different validators, which initiates the first round of consensus to determine the order of TXs. After that, TXs are executed sequentially. While we may consider implementing more concurrency features in the future, we will ensure to add all the necessary locking strategies to safely manage them. |
Sort of unrelated to this, but I found it interesting how Solana solved this problem of concurrent transactions (it's about the only part of Solana I actually like 🙃), and it's the key to how they can claim thousands of tps (even though in reality they don't nearly have the throughput). Solana transactions hold additional metadata information that describes how a transaction will modify state. You don't have this moment with Ethereum, where you don't know how your state transition is going to play out unless you run it first. Solana transactions tell you exactly what they modify and how, and based on this information that you have upfront before putting the transactions to the runtime you can schedule them and run them concurrently without an issue. It's powerful because you can now concurrently execute reads, and shuffle in writes as needed. You can learn more about it here, just thought it was cool to mention this if we are not bound by sequential txn execution like Ethereum |
- add p/demo/tictactoe (basically @moul's model gnolang#613) - add p/demo/tictactoe1p (human VS cpu logic, extending the above) - add p/demo/ternary (to cope w/ not having C `a ? b : c` ternary operator) - add r/demo/games (start addressing gnolang#611) - add r/demo/games/tictactoe This last realm is a playable demo against a parrot which, somehow learned how to play Tic-tac-toe. This is a stateless realm which uses gnoweb as a webserver and uses css to offer a game-like experience without javascript. this depends on gnolang#2553 (improved ufmt)
A very simple game as a smart contract. It's possible to play against yourself, or another opponent. UI could be improved. No provision against cheating, no gain or automatic action. Related to gnolang#611.
A very simple game as a smart contract. It's possible to play against yourself, or another opponent. UI could be improved. No provision against cheating, no gain or automatic action. Related to #611. <img width="1003" alt="Screenshot 2024-07-24 at 16 24 28" src="https://github.com/user-attachments/assets/a7c115ae-26c1-4d3b-9446-8571f1d98efb"> <!-- please provide a detailed description of the changes made in this pull request. --> <details><summary>Contributors' checklist...</summary> - [ ] Added new tests, or not needed, or not feasible - [*] Provided an example (e.g. screenshot) to aid review or the PR is self-explanatory - [ ] Updated the official documentation or not needed - [*] No breaking changes were made, or a `BREAKING CHANGE: xxx` message was included in the description - [*] Added references to related issues and PRs - [*] Provided any useful hints for running manual tests - [ ] Added new benchmarks to [generated graphs](https://gnoland.github.io/benchmarks), if any. More info [here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md). </details>
Let's create a space for discussing all things GNO+Gaming!
The use of gaming and smart contracts is already a growing trend, and we anticipate that this trend will continue to increase in the future.
Gaming will be an official incentivized topic of Game of Realms / Phase 2 (#390). Anyone is welcomed to start exploring now.
The text was updated successfully, but these errors were encountered: