Nth Society game engine decided, and discussion on integration

in nth-society •  7 years ago  (edited)


MineTest logo

MineTest engine chosen

After some deliberation there is a moderate consensus to use MineTest as the first game engine to test Nth Society on.

While there are drawbacks to using it, it is great in several respects:

From a development perspective

  • Active development community
  • Already built around extensions and add on modules
  • Client and server code already within same engine framework
  • Written in C++, same as most blockchains

From an graphic / usability perspective

  • While graphics are simple, the are ... simple! So easier to extend instead of rip down
  • Uses standard movement commands, familiar HUD, etc.

Other

  • A clone of MineCraft, which is well known and understood

A look at all the textures that come with MineTest vanilla

How I propose we get involved

In MineTest many even basic features are implemented as "mods". The main game is actually a mod on the basic engine! And it's essentially a big bundle of mods.

This is great for us because it means MineTest is incredibly modular and extendable. I propose we begin tinkering with simple mods on the engine to get a feel for it.

To get to know the core engine there's no better way than to fix some bugs! So I suggest anyone who wants to or might want to contribute to the project considers this. It's also a great way to recognize their work and the utility we will get from it, for free.

Get lost in the woods with us 😇

Early discussion on distributed server architecture

As mentioned in the off-whitepaper, I suggested that the server structure be decentralized and coupled with the client. In other words, everyone who plays the game also runs the servers.

Currently we're proceeding with the working assumption that we'll use a blockchain to store game data. The downside of using a blockchain is that it's slow so we will need to come up with ways to make it faster.

One way is to mirror the game restraints in the game engine and in the blockchain validation code. So, for example, say I want my player avatar to pick up an item. I instruct it to, using game controls, and the game engine will already have a good idea if it makes sense. If the item is too heavy or large, or if it is stuck to something or if my backpack or hands are full, the game won't allow me.

Why then have the same validation rules on the blockchain? Because since the game is open source, there's nothing to stop someone from modifying the game code to allow them to pick up huge items! There is no central authority so we will have to delegate that authority to a blockchain that everyone validates. If a hacker makes code changes also to their copy of the blockchain code the fraudulent transactions will not be accepted by other nodes. Thus the hacker can play in their own little hacked world. But no one else will see their activity once they have significantly diverged from the rules.

Here's a very simple graph showing a sketch of how these different layers in the game code could interact.

nth-society-layer-example-v2.png

You see there is an "intermediate" layer. In discussion on the Slack, the idea was put forward to use a further layer of abstraction so the game could work with multiple game engines. It also makes sense to just keep the translation code between engine and server separate, even if only one game engine is ever used.

Finally

This all needs to be developed but it's a start. In summary, we're looking at both MineTest integration and a separate "intermediate" layer system. Before launching into the blockchain game data aspect there will need to be a lot more research into it, perhaps me or someone else will talk about that next time.

Finally finally

Thanks again to @creativista who designed the Nth Society logo! I have now added the files to my copy of the Nth Society GitHub repository, and added one version to the readme file there.

Please join me in discussion in the comments.

nth-society-banner.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  7 years ago (edited)

C++ with client & server code integration will be useful I hope that this goes well for nth I’m excited to see what is born from this experiment @personz

Absolutely. Thanks for the encouragement 😊

I'm very interested in seeing how development fleshes out once you start implementing some of the economic ideas within the game world. Rock on!

Hey thanks, feel free to join us on Discord to discuss that aspect and share your ideas if you want

waaooww really @creativista done awsome work <3 i love your Nth society logo and your work always exceptional, but the more appreciative thing is your way to explain it, it worth for me, I never listen to this track before, but it made my day thanks for your contributing @personz, keep sharing such stuff with the community, steem on

Hi, thanks! But I think you've shown me that I implied that the MineTest logo was actually the Nth Society logo - because I forgot to add it to the post. Now I have added a banner version I made for the bottom and marked the MineTest logo as the MineTest logo. 😓

I'm still not exactly sure how to format posts so if you have any suggestions please let me know! What I mean is, how to include the logo and that kind of thing.

And thank you for your kind words, I'm glad that the explanations work 🙂 Now your comment has made my day 😉

You have a great idea about the block chain game and I think it will work one of the best project on platform like steemit.
Yes, open source may be vulnerable a bit sometimes but the scope of improvement is higher than others. Also the service and profit will always be on higher end.
Hope your dreams come true and get success in every field..
Thanks.....

Thanks for the comment, I hope you are right, it's certainly what we are hoping too.