Wednesday, April 30, 2014

April Progress



Dear InifintieSky’ers!

Since putting the code on git hub for anyone to look at and work with we have had quite a bit of interest, feed back and commits. Przemyslaw Walczak has joined us as a developer using the name Ane2 on github. He has quickly picked up how to develop things for the server and has implemented quite a lot of what we are going to show today.


We have prepared couple of screenshots showing things we have worked on this month.
Enjoy!~

Inventory

A lot more of the inventory actions have been implemented such as moving items around and unequip/equip items, putting them on the pill bar. Dropping items on the ground and picking them up again should be finished soon too.



Combining/Enchanting





Storage/Banks





Moving to the pill bar, and from it back to inventory.


Using items is also currently being worked on.


Buying & Selling





The player based shop is also being developed now too.


Enchanting & Combining


We do not yet know the rates of chance for enchant and combine.
So for now they work 100% of the time.





Skills

Although skills are not technically usable we can learn them, and the majority of the buffing skill effects have had their data worked out. Just need to code a way to apply it. And some work has been done gathering packets for the run and jump skills. We still have to learn fully how they work.



Quadtree

One of the biggest changes is the Quadtree implementation, which allows us to spawn monsters, npc’s, items and keep track of the players in the zones in a much faster/optimized way. We could also build on it further to simulate server side movement of characters and monsters. *Currently they teleport instantly to their destination on the server which is bad.

See here for a demo of it. http://codepen.io/LiamKarlMitchell/pen/zImip

A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two-dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This data structure was named a quadtree by Raphael Finkel and J.L. Bentley in 1974. A similar partitioning is also known as a Q-tree. All forms of quadtrees share some common features:
  • They decompose space into adaptable cells
  • Each cell (or bucket) has a maximum capacity. When maximum capacity is reached, the bucket splits
  • The tree directory follows the spatial decomposition of the quadtree.” ~Wikipedia

You might be thinking Twelve Sky is a 3D game why are you using a 2D system to manage 3D objects?
Well the maps are basically flat. You cant walk on top of or under there is only one surface to walk on.
So a Quadtree is fine for checking distances between players and monsters and quickly looking up things in the area you are in. Sure the 3D distance is not taken into account but eh... it is not really needed. We just use X and Z in the quad tree where Y would be checked for the depth on the terrain later.

Other

VMScript got some more work done on it when it has matured more I will be releasing it as its own module. It can handle basic dependency checks to load things in the order required.

Portals are working again.
Monster, NPC and Item have all been moved to their own scripts and spawned in. Further work to be done and there may be bugs which require fixing of course.

Next up we plan to improve/add the following:
  • Trade
  • Duel
  • Party
  • Whisper Chat
  • Items on Ground & Drop System
  • Attacking Monsters & Player & NPC
For full details of what's changed and currently under development - please visit our GitHub page and look at the commits. There is an issues section you can use to see what we are having problems with or to lodge your own issues if you notice something buggy or missing.
If you are a developer come help us :D.
We also decided to commission someone to do some web design work for us and code maintenance so that should be good.
Thanks for your continued interest, please share and stay tuned for more info on our progress.

24 comments:

  1. Oh my good , i love this , i love your work , i hope you will be a millionare after release this ts1 back ;) .

    ReplyDelete
  2. Very happy to see you guys really work on it! :D I hope u guys find few more devs to help :P

    ReplyDelete
  3. very nice i hope one day i wil play this game again. :)

    ReplyDelete
  4. Great work! Will be nice to see pvp working soon hopefully! Isn't M33 armour a bit pointless though since the level cap is stuck at 106?

    ReplyDelete
  5. I am very curious that let's say u open the server how u will try to stop hackers make something like bots/speed hack to not work ofc

    ReplyDelete
    Replies
    1. As ive said many times, speed hack / teleport hack can be detected.
      Time distance speed formular anyone? The server knows all three variables....
      You cant ever stop bots can only get GM to moderate them and players to report. But if we have a server with higher rates why would people bother to bot if we keep them happy? :P

      Delete
  6. Is there something with the server? because it appears to be up but it doesn't let me log in... I know I had that like 2 weeks ago it worked for few days and now it doesn't work again.

    ReplyDelete
    Replies
    1. Same here... After logging in and clicking the start button on the character selection screen, the client freezes temporarily and comes up with the following message - 'An unknown error has occurred'. Anyone know why this might be happening?

      Delete
  7. Because its under development and my IP address changed?.
    Run your own server.

    ReplyDelete
  8. I installed but luncher said 001 error or something like that how I can run luncher?

    ReplyDelete
  9. I meant gameguard 153 problem

    ReplyDelete
    Replies
    1. Run Launcher.exe to patch then use the bat file to run the game.
      Make sure to change PrivateServer.ini to have the correct settings such as
      [PrivateServer]
      BypassGameGuard = 1
      ChangeIP = 1
      ServerIP = 127.0.0.1

      Delete
    2. Same here after i chose character and click start i get not responding. Also i cant find any PrivateServer.ini file, but i created one but this way i see only red at server availability.

      Delete
  10. I tried to run my own server, to see if its doable for me to learn about this coding. However after following most steps from the github tut and the vid, I get stuck at the step "node main". The server starts up all nice and dandy, but it gets stuck at loading packages. A couple of hours waiting wont give me any progress. Do you have a clue what could be the cause of this?

    ReplyDelete
    Replies
    1. did you do npm install
      Make sure you are in the directory of the server. eg c:\users\yourname\documents\GitHub\InfiniteSky\
      I can probably teamviewer sometime to take a look if your still having trouble.

      Delete
    2. I followed all steps, redid them basically but when running "node main", the last lines that were loaded were:

      You can now login to the server.
      Login Server code loaded.
      Trying to load vmscripts from Directory: ./packets/login
      Login server starting listen on port: 11091
      LoginPC loading: ./packets/login/onConnected.js
      LoginPC loading: ./packets/login/onDisconnected.js
      LoginPC loading: ./packets/login/handleManageCharacter.j
      LoginPC loading: ./packets/login/handleGift.js
      LoginPC loading: ./packets/login/handleGameStart.js
      LoginPC loading: ./packets/login/handleLogin.js

      The last lines can be in a different order, but it will still stop after all these lines are done.

      Delete
    3. "You can now login to the server." This line indicates that you are now able to log into the server via our client patch.

      Delete
    4. How silly of me, I thought it just got stuck. But I can actually type.....
      Not used to a blank start of a line, anyway thx alot now I can log in and take a look at all this.
      Hopefully I will be able to contribute to this project.
      thx

      Delete
    5. Yes you can type because it is a CLI (Command Line Interface)
      Type /help for commands.
      Alternatively you can type JavaScript such as
      infos.Item[1].toString()

      or you could type bash/shell commands prefixing with a #
      #ping extendedgames.com
      #ipconfig

      Delete
  11. Dang, i've tried to log in for few days . All is good but after i choose character and click start client freezes then i get 'An unknown error has occurred' same as Martyn Johnson. Can you guys log in or i do something wrong? Anyway i want to congrats you guys for the good work cant wait for open beta to be released .

    ReplyDelete
    Replies
    1. My IP Address changed, I have not paid my ISP for a static IP Address so have to change it in my config file all the time it changes and my modem seems to restart a lot due to problems...

      Delete
    2. You could host your own server with the code on github.

      Delete
  12. This comment has been removed by the author.

    ReplyDelete