Pages:
Author

Topic: Crypto Kingdom Ultima Version Development Thread - page 2. (Read 24680 times)

donator
Activity: 1722
Merit: 1036
I noticed that now when you place ask orders, the appropriate item quantity is reduced from your "available balance". This is awesome!

Is it being considered to also do this with Moneretos on the bid side?

Otherwise someone can place many fake bids that will not execute if they don't have the available moneretos.

Yes, we thought that it might be useful to see both (after some detour of only showing the "available", causing more trouble than good really Wink )

There is currently no intention to do it with the bid side. Reasons:

- Many people/corps in business want to offer buy liquidity for multiple items. It would not be possible if 100% reserve was required. This would destroy the bidside liquidity - the value of non-M items (stuff) in the characters' accounts is 35x the value of M items (money). An obvious mismatch that can be easily remedied by doing what we are doing.

- 100% reserve when placing bids has never been the custom with any reputable financial institution. Even I have used stockbrokers who had this mode of operation prior to the online era starting in late 1990s. The usual reason why online stockbrokers incl. crypto exchanges really want 100%+100% reserve is more sinister than cares to be mentioned. We don't want to even allow ourself the option to do such things and want to have as little customer depository balances (XMR) as possible.

- The practical result of hitting zero funds is that the trade just does not happen, which will be noticeable to the seller, and not cause him any more difficulty than lost opportunity that would never have been there to begin with. A trade cannot make you go negative. Admin command TRANSFER only can make you go negative (and only in M).

=> I will change the policy when it needs changing but going to fully covered bids is so far from rational here that it is unlikely it will happen. Other things that actually improve the system are planned.
legendary
Activity: 1610
Merit: 1004
I noticed that now when you place ask orders, the appropriate item quantity is reduced from your "available balance". This is awesome!

Is it being considered to also do this with Moneretos on the bid side?

Otherwise someone can place many fake bids that will not execute if they don't have the available moneretos.
legendary
Activity: 1610
Merit: 1004
I love the new image on the landing page!!
full member
Activity: 260
Merit: 105
A Lingering Ghost
Sounds great, thanks Jacket & others who are putting a vast effort into this. It's looking good so far.
hero member
Activity: 784
Merit: 501
Just wanted to give a quick update on the progress:

-  We have completed the testing of the new changelog DB format.  All commands have been converted to the new changelog structure.
-  All transactions in the changelog are now used to calculate item balances for players.
-  Admins now have the ability to view/revert previously executed commands and transactions in the overall changelog

The next steps are reverting the DB item counts to a previous date and reviewing post-date transactions to apply to the changelog.  Then the item balances will be spot checked to verify functionality.  We anticipate this occurring today. 

Once it is all verified, HM will be informed to start his processes that have been placed on hold to get 'time' moving once again.

Thanks for your patience.

The New ChangeLog DB is going live soon.  What this means is that you should be able to login and view you item counts and transactions.  Here is an explanation of the changes and how to interpret.

-  The Base Item count has been established from the Oct 14 date where we relaunched.  The Base Item count changelog entry is noted as a Transferfromitemown Command in the History
-  The transactions that occurred after that date will be applied to the changelog.  These will be Buy/Sell/Give/Consume Commands

Once we have imported the transactions, please review your inventory and note any buggy trades that occurred to me with the changelog information and we will review the results.

As of the moment of this post, the DB currently has been restored the the Oct 14 date, but the transactions after that date have not been "replayed" into the changelog.  I will update this thread once that has occurred.

hero member
Activity: 784
Merit: 501
DB structure overhaul

During the phase after release we have learnt that the basic structure of having a large number of commands that double as API methods, is an extremely powerful way to quickly make the game very expandable.

We have also learnt that it is quick to develop the commands so that they are not thoroughly tested prior to releasing them live. Live testing quickly shows if they work properly.

Now, the third thing we have learnt is that such untested commands should not be allowed to directly update the DB values (mainly: item balances). This can easily cause corruption in the values, and finding out the cause and repairing it is difficult.

What we now proceed to do, is:

- Make an inner-core script that calculates the item balances from changelog. This is a log of all changes to item balances from the beginning of the game. For performance reasons, it is milestoned daily so that only the last day changes in practice need to be summed to know the balance.

- The commands and API methods will not have the right to update the DB, only the changelog. All the changes they want to make are publicly visible and take effect immediately, but can also be filtered, sorted and reversed very easily (unlike in the current structure where the information on the effect of various commands is dispersed, and also not master, meaning that even the log can theoretically be wrong).

This further speeds up the testing because all the commands aim to the same thing - make changes in the database. With changelog construction, all they (can) do is to write to the changelog. So debugging can be made live, with instant reversal of wrong effects.

- Malicious corrupting of the DB (by hackers) becomes impossible or at least easy to detect. Comparable situation is an old-fashioned bank where you may have keys to the vault that allows to steal gold directly. But now you don't have them, and instead need to trick the clerk to give the gold to you, and all your personal info is required and stored before writing to the changelog.

It is possible that at some point in the nearest days, the game will be down for maintenance as the change will take effect.

Just wanted to give a quick update on the progress:

-  We have completed the testing of the new changelog DB format.  All commands have been converted to the new changelog structure.
-  All transactions in the changelog are now used to calculate item balances for players.
-  Admins now have the ability to view/revert previously executed commands and transactions in the overall changelog

The next steps are reverting the DB item counts to a previous date and reviewing post-date transactions to apply to the changelog.  Then the item balances will be spot checked to verify functionality.  We anticipate this occurring today. 

Once it is all verified, HM will be informed to start his processes that have been placed on hold to get 'time' moving once again.

Thanks for your patience.




full member
Activity: 260
Merit: 105
A Lingering Ghost
Do you think the authors of Conversion of amino-acid sequence in proteins to classical music: search for auditory patterns will be willing to generate some tracks for the game. You could loop the four tracks attached for hours. Tracks 3 and 4 are with rhythm based on the same amino-acid sequence. We could even ask them if they are willing to give us the generator code to incorporate it in the game with a basic GUI. You only need to copy/paste an amino acid sequence from a biological database, switch a few switches and voila - you have your own classical track generated Smiley

Interesting paper and idea!

Though I must notify as a bioinformatician working with genomics and proteomics, that proteins are much more than just their amino-acid sequence - there's epigenomics (modifications such as phosphorylation) as well as the secondary and tertiary 3d-structures that make them the complex functional "tools" that they are. Bare amino-acid sequence is a very redundant representation of the complexity and diversity that they offer.

It's really hard to replace the talent and experience of an actual 8-bit musician with such Smiley but I can help translate this paper into an actual music tool if it is pursued further.
hero member
Activity: 794
Merit: 1000
Monero (XMR) - secure, private, untraceable
Okay so here's the first track:-
https://soundcloud.com/user-763969972/ckg-01-b

Depending how well this is received I'll see if I can compose the second track later this week.

This is amazing! I love the 8-bit sound. It really reminds me of Final Fantasy 1-esque music. I would love to hear this in the game, HM_The_King, what do you think? 

Yeah Smiley This music is really cool! Now I am wishing the graphics also be from the era as well, but have to acknowledge that having more stuff on the screen and readable fonts is something I am accustomed to in 25 years..
Do you think the authors of Conversion of amino-acid sequence in proteins to classical music: search for auditory patterns will be willing to generate some tracks for the game. You could loop the four tracks attached for hours. Tracks 3 and 4 are with rhythm based on the same amino-acid sequence. We could even ask them if they are willing to give us the generator code to incorporate it in the game with a basic GUI. You only need to copy/paste an amino acid sequence from a biological database, switch a few switches and voila - you have your own classical track generated Smiley
hero member
Activity: 714
Merit: 504
This is amazing! I love the 8-bit sound. It really reminds me of Final Fantasy 1-esque music. I would love to hear this in the game, HM_The_King, what do you think?  

Yeah Smiley This music is really cool!

Cool, thanks for the feedback! Good to know I'm on the right track.

At the moment the first track is about 4.36MB in MP3 format 192Kbps. Musically speaking, I've designed it to loop, however MP3s can be a technical pain in the ass for looping so let me know how you get on with it. The alternative would be WAV which loops seemlessly, but then clearly the data footprint starts to rise considerably for the same quality.

If you PM me an address I can send it over to you, or we can do DropBox or... whichever way you want. Smiley

I'll start work on the second track. I'm thinking similar instrumentation and same kind of feel - possibly interweaving some of the melodies of the first track. That said, maybe something completely different would also work well? I'll do some experimentation and see what it brings. If there's something in particular you'd like to hear in the second track then now would be a good time to mention it.

Now I am wishing the graphics also be from the era as well, but have to acknowledge that having more stuff on the screen and readable fonts is something I am accustomed to in 25 years..

Yeah it would cool for sure. Perhaps it's possible to have era-reminiscent graphics while maintaining high-resolution visibility. I remember Habbo Hotel did a good job of emulating a "retro" colorful pixellated environment, while actually being technically hi-res. In any event, the way you're designing it seems to be modular, so I'm sure there's room for graphical expansion in the future once the logical foundations have been layed... perhaps?

Are you a player in the game yet? If so please let me know your username so I can send you some rewards!

Hah thanks! I recently registered but I haven't been able to log-on yet. Password area says 'Wrong Credentials' and after changing the password using the 'Lost Password' facility, I still am not able to log-on. I'll PM you the details. Smiley
donator
Activity: 1722
Merit: 1036
DB structure overhaul

During the phase after release we have learnt that the basic structure of having a large number of commands that double as API methods, is an extremely powerful way to quickly make the game very expandable.

We have also learnt that it is quick to develop the commands so that they are not thoroughly tested prior to releasing them live. Live testing quickly shows if they work properly.

Now, the third thing we have learnt is that such untested commands should not be allowed to directly update the DB values (mainly: item balances). This can easily cause corruption in the values, and finding out the cause and repairing it is difficult.

What we now proceed to do, is:

- Make an inner-core script that calculates the item balances from changelog. This is a log of all changes to item balances from the beginning of the game. For performance reasons, it is milestoned daily so that only the last day changes in practice need to be summed to know the balance.

- The commands and API methods will not have the right to update the DB, only the changelog. All the changes they want to make are publicly visible and take effect immediately, but can also be filtered, sorted and reversed very easily (unlike in the current structure where the information on the effect of various commands is dispersed, and also not master, meaning that even the log can theoretically be wrong).

This further speeds up the testing because all the commands aim to the same thing - make changes in the database. With changelog construction, all they (can) do is to write to the changelog. So debugging can be made live, with instant reversal of wrong effects.

- Malicious corrupting of the DB (by hackers) becomes impossible or at least easy to detect. Comparable situation is an old-fashioned bank where you may have keys to the vault that allows to steal gold directly. But now you don't have them, and instead need to trick the clerk to give the gold to you, and all your personal info is required and stored before writing to the changelog.

It is possible that at some point in the nearest days, the game will be down for maintenance as the change will take effect.
donator
Activity: 1722
Merit: 1036
Okay so here's the first track:-
https://soundcloud.com/user-763969972/ckg-01-b

Depending how well this is received I'll see if I can compose the second track later this week.

This is amazing! I love the 8-bit sound. It really reminds me of Final Fantasy 1-esque music. I would love to hear this in the game, HM_The_King, what do you think? 

Yeah Smiley This music is really cool! Now I am wishing the graphics also be from the era as well, but have to acknowledge that having more stuff on the screen and readable fonts is something I am accustomed to in 25 years..
full member
Activity: 220
Merit: 100
Okay so here's the first track:-

https://soundcloud.com/user-763969972/ckg-01-b

Depending how well this is received I'll see if I can compose the second track later this week.

This is amazing! I love the 8-bit sound. It really reminds me of Final Fantasy 1-esque music. I would love to hear this in the game, HM_The_King, what do you think? 

Are you a player in the game yet? If so please let me know your username so I can send you some rewards!
hero member
Activity: 714
Merit: 504
Okay so here's the first track:-

https://soundcloud.com/user-763969972/ckg-01-b

Depending how well this is received I'll see if I can compose the second track later this week.
donator
Activity: 1722
Merit: 1036
DIVIDEND recipient_item_id dividend_item_id quantity

The command is used to give amount units of dividend_item_id per each instance of recipient_item_id the recipient owns. (Recipient is only specified indirectly by recipient_item_id.)

if no recipient_item_id is given, print "Command DIVIDEND syntax is 'DIVIDEND recipient_item_id dividend_item_id amount'." and abort
if recipient_item_id is not a valid item_id, print "recipient_item_id is not a valid item to give the dividend to." and abort
if dividend_item_id is not a valid item_id, print "dividend_item_id is not a valid item to give as dividend." and abort
if quantity is not a positive integer, print "Quantity must be a positive integer." and abort
total1 = recipient_item_id:exists * quantity
if active_character does not have total1 units of dividend_item_id, print "Insufficient number of dividend_item_id to pay the proposed dividend." and abort
loop through all characters who have ItemsOwnership in recipient_item_id
  amount1 = quantity * recipient_item_id_owned_by_char_id
  GIVE dividend_item_id amount1 char_id  
  update changelogs
print: "total1 units of dividend_item_id given to owners of recipient_item_id."
legendary
Activity: 1276
Merit: 1001
Sorry to pester, but any way I can sign in? Tried all combinations. 

Sorry, but you just have to wait a bit, some registrations with empty email (which should have been optional) created issues. This bug is highest priority after year change work. We'll let you know when that's corrected and you can try again then. Sorry!


full member
Activity: 231
Merit: 100
I've signed up thrice now. All times I cannot login again. As saddambitcoin said I have also had issues with not receiving any reset mail (I was in contact with him about this).
The error-code is "Wrong credentials".

Try logging in with your email address as the username.  We are working on revamping the registration, but I think currently the username for new signups is the email address entered during registration.



Thanks, but it still says "Wrong credentials".

Sorry to pester, but any way I can sign in? Tried all combinations. 
legendary
Activity: 1512
Merit: 1012
Still wild and free
Bug report:

There is at least one sell order for each of the items BF1500Y and BF1500J, but they don't show up in the "Ask" and "Bid" columns in the table at https://cryptokingdom.me/marketplace.
donator
Activity: 1722
Merit: 1036
Is there a limit on how many API calls can be made in a certain amount of time?

I cannot exactly say what is the limit at present, and how it will be allocated if the number of calls exceeds it.

What I do know is that the cli processor is currently not threaded, and does not have a limit. Once some teenager decides to apply constant load to it in the production system, we will have to instate the limits.

In the longer term, characters themselves will have to pay the (very small) amount that their hosting costs. If you for instance have a cli/API bot that makes 10,000 bids/asks per month in the Agora, it is hardly noticeable in your m balance, but if it makes 10,000 orders per hour, the cost will be considerable, incentivizing to build well-behaving bots. Similarly, new items created will incur a cost. Even a very small cost, when linear, inhibits spam attacks which seek to create billions of rows in itemsOwnership table (this, and Items, are the main bloat attack targets).

The command processor seems to be able to process roughly 20 cps, which indeed became a bottleneck for my larger ladder orders.
legendary
Activity: 1610
Merit: 1004
Is there a limit on how many API calls can be made in a certain amount of time?
legendary
Activity: 1610
Merit: 1004
New API client available for Node.JS!

Includes all these API commands for your trading needs: getStateForItem, buy, sell, cancelbid, cancelAsk, cancelAll, consume, give!

Get it here, with full documentation:
https://github.com/saddammonero/cryptokingdom

OR install via NPM:
Code:
npm install cryptokingdom

Will be adding further methods as they are released.
Pages:
Jump to: