Saturday, April 20, 2024

April Changelog

 [4/17/24]
- reboot mysql server and reload database from backups
- picked random spot and start fixing translation issues and variable names
- improve the -DWITH_ZLIB = system check
- MySql libraries up to 8.3

[4/18/24]
- fix issue with loading weekly quest strings
- refactor how rows in SQL are iterated through
- fix resources being allocated when not needed on KDA tracking
- spell window translations
- revert to earlier version of MySQL until FORWARD_ONLY ResultSets are fixed

[4/19/24]
- fix issue with fishing times being saved incorrectly

[4/20/24]
- fix training dummies not giving exp to players
- format several quest dialogues
- Loudspeakers can now be used at level 82
- add Bunny Shop Naflin to Giran
- add several items to Bunny Shop
- fix wand of conjure lightning
- add exception handling on server launch
- fix potential NullPointerException in V2MapReader
- remove double checking on mobskill use for skill 7023

[4/21/24]
- upgrade Eclipse IDE to 2024-03
- impossible to find furniture instances can now be found
- remove double checking for a sender on pledge mail
- as always, lots of translations
- double checking of spellbook 3000091
- add stackTracing to several places that needed it. This will make it easier to track down bugs
- improve random number quality for lottery tickets
- synchronized EventItemController to guarantee thread safety
- synchronized NpcChatTimeController to guarantee thread safety

[Performance]
- fix two instances of double boxing
- clean up resources after item loading
- remove excess garbage collection on server start
- remove unnecessary casting toString() in several places
- fix several instances where strings could be parsed directly to int, avoiding overhead of boxing/unboxing

[Security]
- one instances of potential SQL injection

The First Week

 So far so good. My mental state has been really good. Every time I come across something I cant immediately fix, I write it down on a proper TODO list and leave it there.  It's no longer circling in my mind waiting for a solution to manifest itself.  I am more happy to work on the dream of running a server and not actually running it.  No one is breathing down my neck, there are no bug reports, no cheaters, no complaints, just me, my knight and a tiny bit of java code, haha.  I'm also really happy because I am no longer doing a 1 to 1 copy of Live in Korea.  I am going for a more custom/fun way of doing things.  I have a lot of great ideas pop in as I play.  I hope one day people will get to enjoy them.

It's nice to talk to everyone again. Those familiar names and jokes. I kinda forgot that some of these people are like friends to me and put into the server a lot of time and effort in their own way.  I am glad to see most of them are still around in some capacity.  I got a bug report today and that was exciting to deal with.  A simple fix but good practice.  When I am working solo, on no particular area, I can easily get distracted so this is a nice way to focus the mental energy for a few minutes.

The more I play with the new client, the more excited I get. Seeing all the things I struggled with for months, being already enabled and working as intended, is such a huge sigh of relief.  I ran the server through VisualVM and stability is way higher than what I had when I started with L1J for LoA.  However, there are lots of areas for improvement.  I am really wishing I had written those improvements down somewhere but alas I shall hopefully run into them naturally as I continue to poke and prod.

My new method for work, I am calling the ADHD method or the root method.  Basically instead of taking 30,000 lines of text and translating them one by one.  I am finding one specific spot and following its path through the game so for example: I made a level one character and the second quest requires me to use a Haste Potion but its labeled 초록 물약.  So I go into the database, translate the item in etcitem. Translate it in the desc-k.tbl file and check that is works as intended.  If the potion doesn't give me haste for 5 minutes, I branch out and fix the issue.  I'll then check all the other haste potion variants for proper logic and translate them as well.  This is obviously a very basic example but it should convey how my routine has turned more into a root system following a random yet logical path.

I've come across a few event items that'll make it really exciting to play with.  I hope to adopt these to LoA server in the mean time.  There are so many interesting items I have found so far and I have barely scratched the surface. I can't wait to see what I come across.

Friday, April 12, 2024

Vision

This is basically a who/what/when/where and why on the next and hopefully final iteration of L1J.

Why?

Why not? I am addicted to Lineage is one reason. Another is the fact I came across the latest server and client and connector. This package had everything up to the day before Remaster released.  It had most of the bugs I fixed already fixed, content I added already added, client patches I made were already in the client professionally and not jerry rigged into it.  The connector was actually a proper connect that could be properly edited and expanded upon. Not to mention the 100 other features I had been wanting, like Dark Horse for Illusionist was already designed and an actual part of the client it self.  I can't pass up all these features.

TLDR; because I have a new server and client and everything works as intended.

Why not?

Because of the massive list of bugs I would need to cross reference or the idea of having to force players to start fresh after their initial time and financial investment. I am still basically starting from scratch because even though all the new features and content are here, I need to cross reference and test everything. Look at what happened after LoA opened too soon.

TLDR; because of the players.

How?

I had several offers from trusted people and I blew them all off. I was obsessed with my baby and I wouldn't or couldn't risk anyone stealing it from me.  This attitude stretched me too thin and in my opinion hurt the server as a whole.  If I do this, I want a team, I want LinFan, Ohai, Server maybe Legless and a few others.  Everything will be shared with the team and we will work together as one stronger, more intelligent unit.  Not all of the people I have in mind can or will be willing to help, but if I can get at least two others on board, I think we can pull off the next big thing.

TLDR
; with help from friends.

What have I learned?

This is a loaded question and really needs its own post, one day, but for the sake of brevity, I will share a few points on what I learned from the player base.  1) Sieges are king. These should have been ready to go on day one.  2) Exploring base line content, like Claudia and new content, is generally not fun. Custom content is enjoyable but it needs to be rooted in that classic feel of Lineage.  3) Forcing players to play how I want them to play was the biggest mistake by far.  Almost every restriction I put in was met with some sort of back lash and the players were right. It didn't add anything to the game, it only took things away.  4) Tier tokens were generally okay but I feel they left some of the players in the dust. These need to be a one time, permanent, account upgrade. More options, that do not create a pay2win mechanic, need to be available for the ones willing to spend money.  More of that Token/RMT part in a later post.  5) I will not be playing.  This caused too much drama and way way too many accusations that were never true. I know how honest I am but that doesn't translate to people who have never met me so I will not be playing outside of a GM role.  I think we all know I prefer to grind code than to grind Goblins :D

TLDR; My version of fun and the average Lineage players version are not the same.

When?

 I have already put my feelers out and received a few responses from people. As soon as this post goes live, I will start getting my programs and tools in order. The first order of business will be to write up a plan of action.  I won't go in blindly and running to each and every corner this time.  I need proper documentation and I want it shared publicly.  I know most won't read it but for the few heroes out there, I appreciate your commitment and love for the grind.

TLDR; soon

Where?

An active test server will be left open where people can drop in and play to provide feedback. Player feedback is critical to success of the server. Thank you to all that do!

Sunday, January 21, 2024

DevLog 1 - Wild Pets

[Summary]
There is a new pet system in this version of Lineage.  You are limited to one pet at a time. You gain friendship or Trust depending on the translation, with your pet.   Old pets have been retired.

[New Items]
You can also eventually give your pet elixirs, choose its own skills, give it new pet only healing potions and buffs, buy tokens to prevent EXP loss on death and even Candle your pet.  I am so far unaware of the benefits of candling a pet.  I assume if you want to change from an Attack based pet to a Tank?


Four new hunting zones have been added just for pets. They are accessible three hours per day. One zone is strictly for level 1~50 pets and another zone for level 50+ pets.  The new max level for pets in 99.

[Development]
I finally got the new pet UI to accept pet potions.  This wasn't a translation issue but was instead enforced server side.  I really am loving the new pet system so far.  While seeing an Elf running around with 6 Killer Rabbits was certainly funny, this one pet restriction really balances out the whole pet system without completely butchering pets.  It will be interesting to see how players react and use the new pets.


[New Pets]

Here are all of the new pets. Most should be recognizable. The Gryphon, however, is a unique pet in that it attacks with Light based magic. Certain pets are only obtained from Monster Journal quests, or rare drops. Wolf, Fox, Bear, Beagle, Collie, St. Bernard, Cat, Raccoon, Rabbit, Doberman, Shepherd and Husky can be purchased in Orc Town.

[Pet UI]

Saturday, January 20, 2024

First Post

 I have started working on a new client/server. Specifically client 1902.15.1002. This client was released two months before Lineage RM was released. There are many reason I switched over, I guess I have the area to explain myself reasoning as to why I made this switch so here it goes.

1) The server simply wasn't ready in October.  Pressure from the community to have something to play NOW! And my own internal pressure to please everyone, lead to a far too early release. Day in and day out, massive changelogs were posted. Core stats, abilities, zones, you name it, was in some cases completely redone.  This screwed over some players and benefited others greatly.  Creating a huge disparity in items, levels and over all power.  This created some really bad and unfair advantages based solely on luck, forcing many to quit.

2) My vision was to make the server as Live-Like as possible with updates put out daily. But this was fun for no one and put a lot of stress on me.  It also created all the issues seen above.  Instead I will now focus on what is "Fun" and not what is "Correct".  For example: Bone Set gives a set bonus of doubling your undead bonus damage. However, you can be killed instantly if a mage lands a Turn Undead on you. You will also receive more damage from other players using undead weapons.  This is just one example of the more creative and interesting ideas I would like to add.

3) Updating the client from 2014 to 2019, on top of trying to fix an open-source project, on top of trying to be a game-master was just too much work for one person.  With using the new client, it's already setup to use the new spells, zones, UI, items, pet system, etc so all the jerry-rigging hard work has been done for me. This also fixes any of the more difficult spells to implement like Stage 4 Foe Slayer or Dark Horse.

4) The client it-self has other things that were intended to be working but were not on the Void client. For example: Attendance System, Pet UI, Ranking UI, Crafting UI, Monster Journal, various user commands, emotes, KDA window, etc.

5) This client comes with a new launcher. Removing the two step process we had before.

6) I can correct the mistakes of the past and implement game breaking bugs on day zero.

7) All content will be enabled from on day one. This includes ToA, ToD, Rumtis, Snapper, TAM, Attendance, Siege, Mysterious Feather, all new passives, double shoulder slots, relic/insignia, etc.

8) And the final reason, competition. When I started working on this server, there were no other options for NA players for this content level.  I was offering a completely different experience in a familiar game.  However, in the last three months, four different servers have popped up with newer and flashier clients and that has taken even more of the current player base.

In conclusion, client patching took more than half my development time and now its no longer needed.  Outside of translations, which a good chunk has already been done, I can shift my entire focus on to the server code, balancing, adding new content, being an active GM, etc.  If you would like to follow along, you can join my Discord https://discord.gg/r52dDPsgYt

Saturday, January 13, 2024

Update 8

- fix several quest rewards giving the wrong items
- add class specific consumables to new character inventory

Friday, January 12, 2024

Update 7

- fix potions not loading into Pet UI
- add Pet Basket (Wolf), Pet Basket (Fox), Pet Basket (Bear), Pet Basket (Beagle), Pet Basket (Collie), Pet Basket (St. Bernard), Pet Basket (Cat), Pet Basket (Raccoon), Pet Basket (Rabbit), Pet Basket (Doberman), Pet Basket (Shepherd), Pet Basket (Husky) to Pet Seller Manny
- all classes now have proper starting weapons
- ducks will now spawn with their family and respond to players
- fix Spider Cave spawns
- fix wrong Templar Herb being rewarded from Lantern Quest

April Changelog

 [4/17/24] - reboot mysql server and reload database from backups - picked random spot and start fixing translation issues and variable name...