Page 1 of 2

Rebuild from scratch on Xamarin, different engine...

Posted: Tue Mar 28, 2017 09:20
by Vibrocil
Dear readers,

As I have children with cheap chinese tablets who want to play minetest and could not connect to my server due to memory limitation (512MB) I decided to rewrite the minetest client. Right now I'm in alpha stage, only very basic functionality works and only the "default game" and "minimal_test" is supported. I'm able to connect to existing minetest servers and walk around on them for now. My code loads the mapblocks it needs and removes them when not needed and so saves memory. As it is build on Xamarin and uses the Urhosharp game engine it runs on Windows, Mac, IOS and android. My goal is to be able to make it work with heavily modded servers and only use low ram to be able to spread the game to people with low-ram devices as people with iphones. For now I won't be releasing anything as I don't fully yet know about licences, the game is not yet functional and still contains many bugs.

Why I made this thread? I would like to know what everybody's thoughts are about it, what is allowed and what isn't, and if there is demand for a new client as one already exists.

Proof of concept video:
https://www.youtube.com/watch?v=kX8gGS6w3n0
-> fov is only 32 blocks for now, just to make a quick video.

Not to repeat myself, but to keep this topic a little clean: Yes it still needs work and yes, there are many many bugs.

Update 31/03/2017
Working import of B3D & Wavefront models by code:
https://www.youtube.com/watch?v=h5e3NYf0M7g

Update 04/04/2017
Reworked kernel for handeling more nodes, models and media from server -> Now working on modded servers
https://www.youtube.com/watch?v=SDGA18Eh7qI

Update 07/04/2017
Translated nodeboxes to vertextriangles + facedir + completely reworked how mapblocks get drawn for performance :D
https://www.youtube.com/watch?v=kWkMSwPKfRE

Update 24/04/2017
A lot of progress later...
https://www.youtube.com/watch?v=PkpAxVcTLRQ

Update 25/04/2017
Speaks for itself, no video needed...
+ Spoiler
Update 26/04/2017
Worked some more on the formspec's...
https://www.youtube.com/watch?v=iytx6EaYyYQ

Update 27/04/2017
B3D Model glitch solved, moving object problem solved
https://www.youtube.com/watch?v=U-h_8N9jr-g

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Mar 28, 2017 12:26
by texmex
This is interesting! I've not seen alternative clients before. Wish you the best of luck!

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Mar 28, 2017 18:39
by Vibrocil
texmex wrote:This is interesting! I've not seen alternative clients before. Wish you the best of luck!
Thanks, as this is considered a month of work, I hope the rest goes as fast and I'll be releasing public beta's soon...

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Mar 28, 2017 18:43
by Nyarg
Wow !
I see Shadows ! Epic !

What is about not only entity shadows ?

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Mar 28, 2017 20:20
by Vibrocil
This will be settings... In theory everything will be able to have a shadow. I have yet to define sun and moon. Complete support for shadows will be added afterwards... It's just an extra line of code in the entity definition (models) but the complete functionality is definitely coming.. Today's work was all about the actual nodeboxes and textures. Tomorrow I hope to be able to make the engine handle b3d and obj format (which it does not)

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Mar 28, 2017 20:25
by toby109tt
Looks nice so far

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 01:19
by sofar
Vibrocil wrote:For now I won't be releasing anything as I don't fully yet know about licences
This is entirely OK. As a matter of fact, as long as you don't release any code or binaries, you can do whatever you want with GPL or MIT or LGPL code.

Now, if you did use any GPL code or LGPL code in your project, make sure to not violate the licenses of the code that you used. ;)

Another really easy way to solve license issues if you're unsure, or used much code from other projects, is to NEVER release binaries, and only ever source code ONLY. This way you're also complying with almost all open source licenses. And last, never remove copyright notices from source code.

Cheers, and happy hacking.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 06:14
by Vibrocil
As I rebuild from scratch and work in C# instead of C++ I won't be releasing any of my code... The only code (Nuget Packages for visual studio) that I use is for PCL's to work with files and sockets and the urhosharp engine. So I guess I'm not violating anybody's work. Everything else is completely rewritten for C#, even the SRP authentication procedure (which was a big struggle as I could not use GMP Library) Minetest originally sends data Big Endian and c# works little Endian, so I had to code something that could help translating the data as well. Beta's will be released for sure and free, for the end version I still don't know. Apple's Appstore is $100/year so if I want to release it there that would at least to be paid for... But it's all just idea's for now, unsure where I'm going with this...

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 06:33
by sofar
Vibrocil wrote:As I rebuild from scratch and work in C# instead of C++ I won't be releasing any of my code... The only code (Nuget Packages for visual studio) that I use is for PCL's to work with files and sockets and the urhosharp engine. So I guess I'm not violating anybody's work. Everything else is completely rewritten for C#, even the SRP authentication procedure (which was a big struggle as I could not use GMP Library) Minetest originally sends data Big Endian and c# works little Endian, so I had to code something that could help translating the data as well. Beta's will be released for sure and free, for the end version I still don't know. Apple's Appstore is $100/year so if I want to release it there that would at least to be paid for... But it's all just idea's for now, unsure where I'm going with this...
Just remember, if you copied any *(ANY)* GPL code you are required to provide anyone with the source code if you give them binaries.

It's probably a REALLY good idea to state that you didn't read any minetest code and only reverse engineered the protocol. (If this is what you did. Lying wouldn't be smart, either).

While it's entirely legal to reverse engineer the minetest protocol and build a proprietary client, I don't think this is beneficial to the community, and it may violate forum rules if you intend to do it for profit. So, if you really don't want to publish sources, be prepared for people complaining loudly.

Disclaimer: my advice does not constitute legal advice. I could be wrong.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 06:53
by Vibrocil
sofar wrote:
Vibrocil wrote:As I rebuild from scratch and work in C# instead of C++ I won't be releasing any of my code... The only code (Nuget Packages for visual studio) that I use is for PCL's to work with files and sockets and the urhosharp engine. So I guess I'm not violating anybody's work. Everything else is completely rewritten for C#, even the SRP authentication procedure (which was a big struggle as I could not use GMP Library) Minetest originally sends data Big Endian and c# works little Endian, so I had to code something that could help translating the data as well. Beta's will be released for sure and free, for the end version I still don't know. Apple's Appstore is $100/year so if I want to release it there that would at least to be paid for... But it's all just idea's for now, unsure where I'm going with this...
Just remember, if you copied any *(ANY)* GPL code you are required to provide anyone with the source code if you give them binaries.

It's probably a REALLY good idea to state that you didn't read any minetest code and only reverse engineered the protocol. (If this is what you did. Lying wouldn't be smart, either).

While it's entirely legal to reverse engineer the minetest protocol and build a proprietary client, I don't think this is beneficial to the community, and it may violate forum rules if you intend to do it for profit. So, if you really don't want to publish sources, be prepared for people complaining loudly.

Disclaimer: my advice does not constitute legal advice. I could be wrong.
I've been a programmer now for almost 11 years, copying code is just not how I work (Hardcore assembler is how I used to roll -> Would be crazy to make game in this language). I'm also against using libraries out of laziness. People say, don't reinvent warm water around here... I claim, water could be polluted. Making profit is not really the main goal, far from it. Reaching out to people with lower spec devices and devices that the original client does not support (Iphones etc.) is...I'm also very aware that I'm recreating a game that's already great and functional. It's not my intention to draw gamers away from minetest, just to get more people to play the game itself. I have a form of a minetest server as well, but this is just for my testing purposes and this will never be released. The idea is really just to let more people enjoy minetest on minetest servers. Releasing source code would be a waste of my work, time and allow clones with ads to come out. If there would be a pricetag, it would be on the apple store... Windows, Mac and Android version is already free, so why ask money for it...

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 06:56
by sofar
Vibrocil wrote:Reaching out to people with lower spec devices and devices that the original client does not support (Iphones etc.)
The game already runs on iphones... and runs just fine.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 07:07
by Vibrocil
sofar wrote:
Vibrocil wrote:Reaching out to people with lower spec devices and devices that the original client does not support (Iphones etc.)
The game already runs on iphones... and runs just fine.
Which is good than, just low spec devices than :D Although I do suspect (having read a thread on this forum about it) it are clones with adds, if it aren't it's for the best. Like I mentioned, I still don't really know where I'm going with this, the coding itself is just fun for me for now :) And if my kids could play my modded server on their cheap chinese tablets with 512mb Ram that would be even more great. All the rest of the ideas are not really important for now. I'll start with making a working Beta and see where we go from there on. If there is no demand, I won't be releasing anything. :)

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 08:26
by celeron55
I'm going to guess Vibrocil isn't going to make anything worse than the existing apple store ripoffs that sell in-game privileges for money, so I wish the best of luck to this. Minetest doesn't run well on low-end devices so it's a good thing to focus on.

Of course, open source would be very welcome. Minetest wouldn't have become what it is without it being open source, so I would recommend learning about licenses and making sure the source code is publishable, because that way you can get contributors to do development and maintenance when you've gotten bored of that...

So, good luck. Of course, if you are going to sell in-game privileges for money, then just f*ck off (any of those ripoffs listening?). But I trust you won't.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 08:36
by Vibrocil
celeron55 wrote:I'm going to guess Vibrocil isn't going to make anything worse than the existing apple store ripoffs that sell in-game privileges for money, so I wish the best of luck to this.

Of course, open source would be very welcome. Minetest wouldn't have become what it is without it being open source, so I would recommend learning about licenses and making sure the source code is publishable, because that way you can get contributors to do development and maintenance when you've gotten bored of that...

So, good luck. Of course, if you are going to sell in-game privileges for money, then just f*ck off (any of those ripoffs listening?). But I trust you won't.
Ingame purchases will indeed never be done... Takes the fun out of the game completely... Hate those games personally... About open source... Maybe that is considerable when I indeed become bored of it :D. For now coding works, because I can do it alone... Don't have to depend on code that I'm not sure that completely works... And, the stage I'm in right now would even allow people to make a cheatable client, just think about night and day which I don't have yet... Always sunny for now... Thank you for your reply, boosts me up :)

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 08:42
by celeron55
I should add that it would be preferable to make something from the existing codebase though. By making it in a different language, you're going to have to do a lot of work to get future client-side Lua to work and we can't backport your fixes or anything. Also you can't use our updates and have to constantly update your client yourself to keep your users, and as importantly, MT server admins happy.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Wed Mar 29, 2017 09:35
by Vibrocil
celeron55 wrote:I should add that it would be preferable to make something from the existing codebase though. By making it in a different language, you're going to have to do a lot of work to get future client-side Lua to work and we can't backport your fixes or anything. Also you can't use our updates and have to constantly update your client yourself to keep your users, and as importantly, MT server admins happy.
From the looks of it now client-side lua won't be a problem... Updating the client is something I have the time for... Server version I will never release as there is no need for. (so less work for me :D )There will always be a minetest server version I will support, so my client will always come a little bit later. But good notes and something to definitely consider. Love your feedback!

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Fri Mar 31, 2017 15:51
by Vibrocil
Finally finished the coding to load b3d files and obj files. New video in first post!

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Sat Apr 01, 2017 21:11
by TheReaperKing
Looks like an interesting project!! Not sure why there seems to be some hostility from others but I wish you the best!!! It is always neat to see what new ideas people are capable of! Also this might be perfect for our school computers!

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Sun Apr 02, 2017 16:20
by Vibrocil
TheReaperKing wrote:Looks like an interesting project!! Not sure why there seems to be some hostility from others but I wish you the best!!! It is always neat to see what new ideas people are capable of! Also this might be perfect for our school computers!
Thanks! I don't really see hostility, just positive critisicm... You're last sentence is what I'm aiming for.... Still too many low-spec devices out there... The goal is just to broaden the range of minetesters, not to lead them away.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Sun Apr 02, 2017 17:48
by sofar
Vibrocil wrote:
TheReaperKing wrote:Also this might be perfect for our school computers!
You're last sentence is what I'm aiming for....
pfffffft

I just did a minetest programming class with low end computers at a local school

it already works, fantastic even.

the kids were impressed with the 60fps gaming experience. Intel Gfx systems with low end spec.

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Sun Apr 02, 2017 17:57
by burli
I have a "low end" Intel system with an Intel x5-Z8350 QuadCore 1.44Ghz (1.92GHz) . Don't get more than 30fps

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Mon Apr 03, 2017 03:19
by sofar
burli wrote:I have a "low end" Intel system with an Intel x5-Z8350 QuadCore 1.44Ghz (1.92GHz) . Don't get more than 30fps
wow, so you can play the game, then?

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Apr 04, 2017 07:25
by Vibrocil
sofar wrote:
burli wrote:I have a "low end" Intel system with an Intel x5-Z8350 QuadCore 1.44Ghz (1.92GHz) . Don't get more than 30fps
wow, so you can play the game, then?
In my days, low-end was single core :D
Update: Just got into my own (heavy) modded server using 400Mb ram! Still has to go lower, but we're getting there... Cleaning up my sloppy code will definatly work considering there's still lot's and lot's of work to be done...

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Apr 04, 2017 07:44
by burli
sofar wrote:
burli wrote:I have a "low end" Intel system with an Intel x5-Z8350 QuadCore 1.44Ghz (1.92GHz) . Don't get more than 30fps
wow, so you can play the game, then?
My main PC is a little bit stronger. I just wonder how you can get 60fps. Or is it a faster CPU? i3? i5?

Re: Rebuild from scratch on Xamarin, different engine...

Posted: Tue Apr 04, 2017 10:52
by Vibrocil
New video of the connection to my modded server... Still ALOT of work todo as improvement in stabillity and actually handeling custom models. But for me it was a big issue and so a big step forward.