I'd like to make more of my projects integrate with the steem blockchain... Posting this as a chance at getting a boost from the community
I post a lot of Unity and Gamedev tutorials. I'd definitely be interested in linking some games into the steem blockchain. Yet, web development is not really my thing. I could spend a lot of time diverting my focus and learning the web code, or perhaps I can write a blog explaining what my needs and the needs of other game developers could benefit from and perhaps some of you already have solutions in place.
This blog post is born....
Needs of the code
In Unity the most popular language to code in is C#. This is simply because, more things can be exposed at a greater level in terms of accessibility. You also can tap into all the various libraries and other things that have been provided to the mono community. I've used things like the 7-Zip C# libraries and many others in my game development endeavors.
If I could get some code to do certain things with the steem blockchain here is what I'd like to be able to do.
TransferSBD(from account,to account,amount,memo,password) with a secure way to transfer SBD. The reason I would use this would be to reward players with playing the game. if the amount is available it can be transferred to the player.
TransferSteem() same as above
TransferSteemPower() same as transfer steem but forced as a power up rather than as steem.
GetBalanceSBD(account) - return how much sbd am account has.
GetBalanceSteem(account) return how much steem an account has.
GetBalanceSteemPower(account) return steem power of an account if you want this to factor into their game experience.
GetReputation(account) return the reputation of an account.
Using these tools it would be possible to power up an account with some SBD and reward players participating in a game.
My plans were to enable a person to specify their steem account in their game profile. If I could verify it was a legitimate account then the master account the game knows about would be able to transfer a % of the available SBD to a player whenever they complete a game.
So people would be rewarded by playing.
Concerns
The transfer is listed as needing a password. This would need to be secured some how. Preferably encrypted within the game. It would need to know the password in order to initiate the transfers for the players. If this password were compromised then the entire reward pool would potentially be vulnerable.
Yet if this could be made to work, then making games and other applications that further interact with the blockchain would be feasible.
Side Chains
I don't know if this would be more appropriate for side chains, or as an alternate implementation. My experience is with game development, and I've programmed other applications. I have not written code for the crypto-currency field, and I have only designed very basic (PERL/PHP) scripts as needed for various web applications. I have written a primitive PERL based ticketing system years ago, but I do not have any delusions about being a skilled web developer.
I could be, but that is not where I prefer to focus my attention.
Do any of you have any ideas about how to make this happen? Are there are already some C# libraries for Steem that would work?
Tutorials
Have any of you considered making some basic tutorials for writing code to interface with the blockchain? I see people making things on steemtools.com. If you want an explosion of applications for steem, perhaps you could consider making a tutorial series of blog posts. I'd follow you and I'd up vote them as high as I can. I'd likely resteem them as well.
Future
Having functions to post, vote, comment, etc would be useful as well, but I could see them easily being abused and spamming the blockchain, so from a game point of view simply being able to READ all information on the blockchain, and pass currency around seems like a good set of functions to have.
Steem On! - all images made by me.
You might consider client-side validation of steem credentials for something like this ... checking out Steem Browserfy might be a good start.
An example of successful unity game with micropayments - hearthstone. I think the most important thing here is the game itself and only later planning to monetize it. Also, in my opinion, c++ match better for game rendering. Just saying.
Language doesn't have much to do with rendering unless you're talking about CUDA or a direct GPU code. C++ and C# both interface with the same libraries. I program in both, but C++ does me zero good for my Unity needs, but if it is a C++ DLL I could interface with it that way. I'm not a fan of that though unless the DLL provides source code. I code in C++, C and many other languages. I am language agnostic other than I am using Unity which means C++ is not a good choice there when it comes to accessibility by the common person within the engine. Yet C++ vs C# actually has zero to do with rendering quality. Overall speed of code for C++ is generally faster though as there is no intermediate byte code based language, yet that doesn't matter in this case as Unity doesn't use C++ and that is the engine that I (and the majority of indies) am using at the moment. If I were using Unreal then I'd be wanting it in C++. Yet once I see some examples of how it is done in either language I could likely convert it to either type easily. :)
Also I am not monetizing my game. I am not using this feature as a way to make money for the game. I was using it as a potential test subject for linking steem into the game. I personally don't like micropayments. It is unlikely I'll ever make a game that does something like that. Yet, I do like the idea of linking it into steem in other ways.
So I have the game and many prototypes... it is already greenlit. My plan was simply to have an account where I posted updates, stories, and other things based upon what players did that day or week, and if the post gets some SBD I leave that in that account and my code would give players a % of that SBD when they completed single player and multiplayer games. Basically instead of monetization bringing money IN. I would use it to encourage game play by sending crypto-currency out. My game the key to enjoying it a lot is really learning how to play it. It plays a bit different than anything out there. So if there is a way to possibly encourage people to play it numerous times and be rewarded then that is positive for the game.
Though the functions I requested in this post could be used for micropayments as well. So you are right that something like that could be done. That would require knowing the players password by the game to transfer the money to a steem account I think (could be wrong). In my case I'd never need the player's password for steem. I'd simply be sending SBD from the main account and never actually need anything from the player other than their account name.
Oh and thanks for commenting. I appreciate it. Was not trying to be harsh. You did state C++ was your opinion. I am a fan of C++ for some things as well. I actually prefer it to C# as I am one of those crazy people who actually really likes pointers. :) Yet, that doesn't matter since I use Unity and my choices there are C#, Unityscript (hybrid java/javascript), or Boo (variant of python). C++ has some speed benefits. I optimize for speed a lot so I am aware of this. Yet it doesn't actually have anything to do with the quality of rendering. If it did then EVERYONE would be using it. Rendering quality doesn't so much matter which language you are using.
Unfortunately it may be a moot point though if no steem blockchain developers respond to my post. This is a WOULD BE COOL for my game, and some additional marketing for steem/steemit thing. It is not something I need. I really don't have the time or desire to stop my work and switch to learning web coding so unless someone that does the web coding side of things decides they want to work on something with me I'll likely not link the blockchain to my game. It does seem like it would be easy to add later if anyone ever gets around to releasing this info.
I am not a steem blockchain dev, but I do build things that interface with steem. Can we set up a time to talk, or can you just contact me with Google Hangouts? [email protected]
I can probably help you with almost anything at this point. Mostly it is a punishing learning curve.
Yes it may not be for a day or so, but I will definitely reach out to you via Google Hangouts. I am [email protected]
excellent post congratulations, thank you for the time dedicated to community improvement efforts congratulations and thanks for sharing
Micropayments in games, e.g, for player-created content or prizes, is one of the ways that blockchain tech could genuinely start to get mainstream traction. Not sure about Steem, but I know that Stratis are building a Unity library for their C# blockchain platform, so they've obviously worked out that it's viable. Stratis is C# native, though, so there is one less hoop to jump through. Most of Stratis's code is still in stealth mode - but it's maybe worth keeping an eye on the project to see how it pans out.
I have a game that was greenlit. I was working on finishing it up when I discovered Steemit back in July. I've been distracted, yet IF what I am requesting exists I was thinking of having it so people completely single player missions, and multiplayer missions could potentially be rewarded SBD from an account I create for that purpose. The Memo could have something descriptive about why the reward was given, and I could look at those daily for that account and put together a post. If people like the post and up vote it then the SBD from such rewards would be used to give more funds to reward players.
Yet that'd simply be a test subject. The game itself is not designed in such a way to give out frequent rewards, but I could easily make it give out rewards for completing missions. It WILL be on the Steam platform by Valve. So we might be able to get Steem on Steam. ;)
I am interested in something along these lines as well. Although I don't now have the skill sets to do so on my own. Thinking that some open source tools may come about in time that will help such games being able to reward players in steem.
Very good post!