<Encrypted>
3mw0FadnwpBkLLPKfjiWH+LC0l/eNEZq3O34Jq7BT07hlL0xsnLJNENFKpNVByO7nCipvuYypBGCcVxt
Hx0qn2WgHY32ODWsLwSQeeZq650KqTWz8wOo/R/+BMeTGTlgNJqkTVOwax0w/WBBR1clUQ==
</Encrypted>
A blog about TSX a private server/server side emulation project for the game Twelve Sky 1
Tuesday, December 23, 2014
Friday, May 30, 2014
May Update
Hey everyone,
This month we have done some more work on the following:
- Inventory
- Monster Spawns
- Added Combine Chances
- Some Monster Drops have been figured out, Silver, Pills, Rares, Skills, Pet, Improve Stone, Fortune Pouch and such.
- Starting to be able to damage monsters, started a formula for attacking a monster.
- Logged packets for usable item and started creating a script file to code them into.
- HP and Chi pill/tablet are usable.
- HP/CHI Saved on disconnect, (Still not calculated 100% properly though)
- Implemented Translation CSV into the server. View the Spread Sheets Here
- Trade
- Duel
- Party
- Whisper Chat
I am going to meet up with an old work mate who reads/writes/speaks Korean and see if he is able to translate what we have left to translate.
Also thank you to all the people who have donated so far, used some of the funds to get some more accounts for gathering more information :).
Does anyone have a guess at the formulars for player attacking player? :D
What would you like to see done next? I am thinking guild and usable items?
Check out our code on git hub, https://github.com/LiamKarlMitchell/InfiniteSky
Wednesday, April 30, 2014
April Progress
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
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
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.
Thanks for your continued interest, please share and stay tuned for more info on our progress.
Saturday, March 29, 2014
Git Excited
Open Source
After much discussion and thinking on the matter we feel now is a good time to move our project from being closed source to being open source. YAY!!!!
This allows you to check-out our code, and make improvements as you see fit.
And request a pull request of your changes to have them reviewed and added.
You can check out the code here: https://github.com/LiamKarlMitchell/InfiniteSky
We have high hopes that by embracing open source, anyone can help improve the server code and use it as a resource to learn more about the exciting world of mmorpg server coding.
This project started off as an educational project, we wanted to see if we could make a server side emulator for Twelve Sky without the exploits and hacks to bring back the game that you loved. Little did we know just how much efort and work that takes. Totally difficult with 2ish people. So help out, get involved.
When the server is finished enough to be considered playable and enjoyable we will organize hosting servers so people can play. We have a few contacts who have expressed an interest in hosting servers when this is finished. So we will possibly be working with them for sorting something when the time comes.
If you want to talk about server side emulation and development of this project feel free to add me on skype it is mb10241, or to email me at liamkarlmitchell@gmail.com
Donations
Personally, I have been hesitant to accept donations even though quite a few people have offered. Because I did not feel I was providing the community with anything worth while. But since I am now providing all my work/knowldge free of charge, I am okay with this.
Working on a project of this size takes a lot of time and dedication.
The progress has been slow yes, but if you appreciate our work then go for it.
Maybe we could get enough to hire some developers full time wouldn't that be nice?
We are now accepting donations to go towards further development or hosting.
Feel free to leave a comment/request for us to work on.
Things on the way
I will be working when I can such as after work or in weekends to get these things done.
- Implement world server so we can login to world again. (It works in my old code but this new code base solves a slight design flaw that we had.)
- Clean up the code
- Provide Documentation using jsdoc. This template looks really nice
- Provide Launcher and DLL source code and instructions on building them.
- Forums to communicate on better for developers.
- Public read access with (trusted people) write access to our google docs which contain information/research we have done.
- Google hangout talks with lead developers, ask questions, discuss bugs and plan what to work on etc
I suggest you learn to program JavaScript and help us, programming can be quite fun and rewarding.
http://www.codeavengers.com/
http://jessefreeman.com/game-dev/intro-to-programming-for-games-with-javascript/
http://gamedevelopment.tutsplus.com/articles/how-to-learn-three-js-for-game-development--gamedev-11787
http://net.tutsplus.com/tutorials/javascript-ajax/the-best-way-to-learn-javascript/
https://egghead.io/lessons/core-javascript-function-scope-basics
http://codecombat.com/
Or see any more of the learn javascript online tutorials.
Best way to learn is to get in and make something.
A game of hang man or tic tac toe, black jack, guess the number/jackpot etc something simple.
http://www.codeavengers.com/
http://jessefreeman.com/game-dev/intro-to-programming-for-games-with-javascript/
http://gamedevelopment.tutsplus.com/articles/how-to-learn-three-js-for-game-development--gamedev-11787
http://net.tutsplus.com/tutorials/javascript-ajax/the-best-way-to-learn-javascript/
https://egghead.io/lessons/core-javascript-function-scope-basics
http://codecombat.com/
Or see any more of the learn javascript online tutorials.
Best way to learn is to get in and make something.
A game of hang man or tic tac toe, black jack, guess the number/jackpot etc something simple.
Software you might want to get
Software we find great to use for developing a server side emulator: Totally worth the cost.
Sublime Text is A great source code/text editor you can get it here http://www.sublimetext.com/
010 Editor is the best hex editor I have ever used http://www.sweetscape.com/010editor/
Sunday, February 9, 2014
Jan/Feb 2014 Update
Well it has been a while since the last post so thought I should post :P
Holiday was awesome fun!
While I was over in the states with Tri, we managed to get a greater understanding of how the stats are generated from items, statpoints and skills.
So we now know the methods to use to calculate things we definatly need for pvp *with basic attacks*.
We figured out a small trick to improve the lag users were experiencing doing actions like walking or attacking.
We had some more people add and talk to us on skype about assisting our development, one person coded in the inventory action for dropping items.
I started coding a way for developers to connect to the server and edit the scripts for game (whilst it is running) things like actions/packet handling and gm commands can be modified and will be instantly reloaded when saved.
I feel we need ore people to actively help in coding the server as its taking forever :(.
If you are interested in being a scripter/coder for the private server then please contact me via email, liamkarlmitchell@gmail.com knowldge of JavaScript is essential.
Going to try to fix the running and jumping skills and attempt implementing a pvp map.
----------------------------------------------
Holiday was awesome fun!
While I was over in the states with Tri, we managed to get a greater understanding of how the stats are generated from items, statpoints and skills.
So we now know the methods to use to calculate things we definatly need for pvp *with basic attacks*.
We figured out a small trick to improve the lag users were experiencing doing actions like walking or attacking.
We had some more people add and talk to us on skype about assisting our development, one person coded in the inventory action for dropping items.
I started coding a way for developers to connect to the server and edit the scripts for game (whilst it is running) things like actions/packet handling and gm commands can be modified and will be instantly reloaded when saved.
I feel we need ore people to actively help in coding the server as its taking forever :(.
If you are interested in being a scripter/coder for the private server then please contact me via email, liamkarlmitchell@gmail.com knowldge of JavaScript is essential.
Going to try to fix the running and jumping skills and attempt implementing a pvp map.
----------------------------------------------
Whos that "Pokemon"?
I was curious about Three.js and loading binary file formats into a web browser.
So I started making this, TS1 Model Viewer It allows you to view a model from the game in 3D. It currently works in the google chrome web browser.
You can select SOBJECT files from games and it will try to display them. (MOBJECT support to come if im bored)
Later I might try to expand it to load the entire map with objects and textures into a scene.
Next step for this thing would be to get it loading the faces propperly and then textures.
[EDIT]
I got textures working!!!,
Notice the difference in UV mapping coords between DirectX and OpenGL as shown by these sites.
http://paulyg.f2s.com/uv.htmhttp://msdn.microsoft.com/en-us/library/windows/desktop/bb206245(v=vs.85).aspx
Basically gl is fliped on Y axis. So I added 1 as the UV locations were ending up - and it works.
So I started making this, TS1 Model Viewer It allows you to view a model from the game in 3D. It currently works in the google chrome web browser.
You can select SOBJECT files from games and it will try to display them. (MOBJECT support to come if im bored)
Later I might try to expand it to load the entire map with objects and textures into a scene.
Next step for this thing would be to get it loading the faces propperly and then textures.
[EDIT]
I got textures working!!!,
Notice the difference in UV mapping coords between DirectX and OpenGL as shown by these sites.
http://paulyg.f2s.com/uv.htmhttp://msdn.microsoft.com/en-us/library/windows/desktop/bb206245(v=vs.85).aspx
Basically gl is fliped on Y axis. So I added 1 as the UV locations were ending up - and it works.
Tuesday, December 17, 2013
Going on holiday
So im heading over to Amercias after Xmas, will be meeting up with Tri and spending almost 2 weeks solid working on the server.
We have both mostly been busy with our jobs recently as around this time of year things can get very busy due to projects having last minute change requests and such.
Should be fun times :)
Hopefully we get more done wooooo
We have both mostly been busy with our jobs recently as around this time of year things can get very busy due to projects having last minute change requests and such.
Should be fun times :)
Hopefully we get more done wooooo
Saturday, November 9, 2013
No Internet for a bit :(
Due to a stuff up from Orcon (ISP) I won't have Fiber at my new place for a bit...
They sent us two modems, guess what that means? Duplicate install/contract on their end.
We met with someone from Chorus *who actually installs the fiber* and aranaged to have fiber setup on Wednesday last week.
However Orcon noticed this duplicate contract, and deleted/canceled the older record.
So Chorus never came.
A few days later after some serious WTFing we called them *Thats right they never contacted us* and found out about all this. They said the next install date we could have was the 19th. SERIOUSLY...... -_- lame!
Soo we are going to try to get broadband in the meantime untill the fiber people can come and install again. Which means I may be able to open the server again shortly however this may take "4-5 working days'. I have been teathering my phone for basic internet access. Just got 3GB for $50. Rip off right? :D
So I won't be running the server on that but ill probably casually develop whilst I can. I heard back from Tri and hes busy working on the inventory and skills too.
I am rewriting IMGTool in node.js and allowing it to have a better useable workflow.
They sent us two modems, guess what that means? Duplicate install/contract on their end.
We met with someone from Chorus *who actually installs the fiber* and aranaged to have fiber setup on Wednesday last week.
However Orcon noticed this duplicate contract, and deleted/canceled the older record.
So Chorus never came.
A few days later after some serious WTFing we called them *Thats right they never contacted us* and found out about all this. They said the next install date we could have was the 19th. SERIOUSLY...... -_- lame!
Soo we are going to try to get broadband in the meantime untill the fiber people can come and install again. Which means I may be able to open the server again shortly however this may take "4-5 working days'. I have been teathering my phone for basic internet access. Just got 3GB for $50. Rip off right? :D
So I won't be running the server on that but ill probably casually develop whilst I can. I heard back from Tri and hes busy working on the inventory and skills too.
I am rewriting IMGTool in node.js and allowing it to have a better useable workflow.
Subscribe to:
Posts (Atom)












