done for now


Between work, my personal life, and my waning interest in programming, I really don’t have enough time that I want to dedicate to Twilight development to make it worth keeping up the illusion that anything new is around the corner. It’s not that I don’t work on it anymore (in fact, I’m working on it right now), but it takes an immense amount of time and effort to produce the amount of content that I’m trying to create for the new world.

When I’m done, it will be a different game. There will be different races, different classes, and pretty much everything will function differently in terms of combat. It will have a proper leveling progression with actual quests, and a healthy helping of dungeons. There will be an endgame. I have a good idea of how most of these things will function, it’s just not going to be something I can achieve quickly, and I’m not going to halfass it.

As part of this revamp, there have been so many code changes that the old world content doesn’t even load or function anymore, so I’m not going to mess around with maintaining it. It crashes on a regular basis, but I can’t back-import the stability fixes into the old code. The difference is just too radical.

So, twilight is done, at least for now.

progress is being made…


Alright, so I was hoping I’d be able to put all of this together fairly quickly, but things aren’t coming together quite as quickly as I had hoped. Of late I have been more or less reworking TwilightMMORL from the ground up. I spent a good 2 or 3 days entirely reorganizing the code, then I spend another little while reworking the way item drops work, and now I’m launching into a much bigger reworking of the world…

Read the rest of this entry »

prestige classes revamped


A rather long time ago, I took a brief experimental stab at adding some diversity to the class system, with prestige classes. Each prestige class had a special attack associated with it. I decided I didn’t like that, so I revamped things so there’s no longer any such thing as a “prestige class”. Instead, when you use a rune or other magical artifact, it trains you in a particular spell. The spells may be a tad overpowered, but I’ll have to test more to see for sure.

more skill slots and resistance spells


So, as I talked about previously, I decided to add resistance spells, so wizards and necromancers can protect themselves and their allies from NPC spellcasters. The spells are cheap, so the only reason people would have not to pick them up would be because of the 4 skill slot cap. I didn’t want that to be a problem, so I upped the cap to 8 (in the process verifying that my player file upgrade mechanisms actually work). This may make spellcasters a little overpowered at high levels, because they’ll be able to cast so much stuff very quickly, but I can balance that out later if necessary.

Also, as an unfortunate side-effect of player files being upgraded, all of their keybinds are reset to defaults, so you may log in and discover that your key bindings got broken. It’s easy enough to fix them though, just hit pipe (shift+\) and then i.

Imprisoned Angel quest


I’m finding as I play around with things that making highly flavorful quests is fairly difficult. There aren’t very many ways to really convey flavor to the player at this point. I’ll keep working on that, but in any case, I made the Imprisoned Angel quest. It’s a level 60+ gig. In fact, I tried beating it solo, and was unable to (although my character isn’t exactly minmaxed, so it may be possible). I’m going to keep working toward having bunches of quests for lvl60+ players, but right at the moment work kinda has me burnt out, so it’ll probably wait for the weekends.

I guess while I’m mentioning that I couldn’t beat it solo, maybe I should put out my shingle too:
* Female Human Warrior, Seeking Party. Can modify game to ensure victory 😀

makin them quests


Last night I was laying in bed watching TV (as I often am), and the show was only semi-interesting so I pulled out a notebook and scribbled down half a dozen quest ideas. Today I implemented one of them. The gist of it is that you get to rescue a bunch of captive townspeople. It’s a real low level quest, the enemies you’ll face are xlvl 8-10 (except the boss, he’s 12), so figure that suitable PC levels are 10-15 or so. I think it’s nifty. You can get to it by talking to the town guards where you start out.

My other ideas (some of which aren’t currently feasible, I don’t think):

  • Magic spider queen in a cave
  • Evil tower of evilness!
  • Enemy raiders attacking a town
  • Evil temple
  • Freeing an imprisoned arch-angel

Of those, I have doubts of the feasibility of the tower and having enemies attack a town. The other three are likely to happen soon, particularly the last one, just because it has so much flavor to it. All three of these will be mid-to-high level instances. The arch-angel one in particular is one I could throw in as a quest designed for xlvl 60+ characters, to give them something to do once they’re done leveling up.

evening out OP skills


So, the only thing of any real interest that I’ve done since my last update is that I made it so some spells have “recovery time” during which you will be unable to move. You can still attack and cast other spells during this recovery time, you’re just held immobile. The reason why I did this was because with high levels of the Lightning Bolt skill, there’s a 50% chance that targets of the bolt will be stunned, so they end up walking around in circles. By the time they’re done with that, your LB has already recharged so you can hit them again, or move away if they’ve gotten too close. The gist of things is that it’s possible to run into a crazy-large group of monsters, and just pound them to a pulp with LB without ever really taking any damage. That seemed excessively overpowered to me, so I added the recovery mechanic to balance it out a little. Lightning Bolt is currently the only skill that utilizes it, and only at the higher levels, so it shouldn’t be too drastic of a change.

minor update


So, I have absolutely no clue what I’ve done since the last time I posted. I’m pretty sure there was other stuff that I did that I didn’t write about, but it’s been too long for me to remember what it is.

Skill List

Anyways, what I did today was to rename the “Skill Chart” option of the Help menu (hit ? in game) to “Affinity Chart” because that more accurately describes what it is. That also paved the way for me to add a “Skill List” option. Previously, since the introduction of skills, you could go to trainers, purchase skill training, and then use the skills. But the only method of figuring out which skills you had was to hit @ and look at your character sheet, but this gave no information on what your skills actually DO. The Skill List now enables you to browse through and both see what your existing skills do, and also plan for the future.

SSH Bugfix?

Quite awhile ago it was brought to my attention that Vista users were having issues connecting via SSH. I’m not going to editorialize on why I think that may have happened, but the gist of things is that the (somewhat large) SSH Key-Exchange-Init message was being fragmented into multiple packets, which my code didn’t anticipate. I implemented what I believe is a fix for this several weeks ago, but I don’t have a machine I can test with. If people could let me know one way or the other it’d be appreciated.

My Memory is Gone

Looking back over my previous posts and skimming them, I’m discovering that I have forgotten much of what I did during my last stint of development. I’m going to have to play the game for awhile and reread my old posts to figure out what the current state of the game is. There are good odds that whatever it was I was planning on implementing but didn’t get around to before I got busy with Real Life will get implemented sometime soon. I know that I’m currently in the midst of thinking through/coding out the capability to have extensive flavor texts as you play the game. For instance, you step into an area, and a message pops up describing the surrounding area in detail, or perhaps giving some backstory of what’s happening to Aezora. That being said, looking back over a few comments I made in this post, I may have already done some work on that that I have forgotten about.

Anyways, thanks for stopping by, and I’m looking forward to doing more work on the game now that I’m back into the dev mood.


It would seem superfluous to have two posts on the same day, but in addition to everything I talked about earlier, in the last few hours I’ve also added a screen that lists major areas of interest in the world. You can get to it by hitting ? and then d. Right now the list is fairly brief, it’ll grow as I add more quests.

Default Keybindings


So today I was reminded by a Finnish fan that I neglected to include a list of default keybindings in the walkthrough. That has been remedied.

Sinoth mentioned to me that I should implement a way to spectate as people play the game.  Watching someone’s every move without their invitation seems a little intrusionary to me, but perhaps people wouldn’t mind. Anyone have any opinions?

This morning’s post is brief because I have stuff I need to get done today, but perhaps I will return tonight to add some content of worth.

big yellow Q


Deprecation of the Telnet Interface

So while watching the logs and generally putzing around yesterday, I noticed that someone had connected using the old telnet interface. I also noticed that it was using damn near a megabyte of bandwidth per minute. For reference, the SSH interface uses between 100 and 200 kilobytes. So I made the decision that the telnet interface had to go. It just wastes too much bandwidth. So I shut it down. The telnet interface is officially deprecated in twilight.

Distributed RCS

One of the unfortunate aspects of git (and distributed revision control in general) is that it encourages you to make very atomic commits. Virtually any time you change anything, you should be committing it. With subversion, I’d labor away for most of a day, changing something here, tweaking there, and at the end a finished feature popped out and was committed. With a DRCS, you’re encouraged to make those changes and tweaks, but to commit fairly frequently along the way. The mentality is, most of these changes and tweaks, while they may not implement the entire feature, they DO implement some sort of a useful change. If you change the condition of an if(), that change can probably stand on its own. Maybe it’d be unutilized, but it won’t BREAK anything. And someone else, working on their own tree, may want that same change made to that conditional, because what they’re doing WOULD utilize it. So rather than waiting till the end to commit one huge patch, you’re encouraged to commit as you go along, and people can “cherry pick” your patches as they choose, since most of them stand alone.

Anyways, the downside to all that is that the log gets very very verbose. Dozens of commits even for a single feature. And I don’t feel like digging back through all that cruft, so I’m just going to hit on the points that I can remember.  Read the rest of this entry »