Project Hybrasyl: Temuair Reborn

Welcome to Project Hybrasyl! Our aim is to create a well-documented and exceptionally accurate private server for Dark Ages. Look around, make an account, and join us sometime.

Current News

Hybrasyl 0.6.0 / 0.6.1 Released!

posted by Hybrasyl Admin on 2018-03-04

Following the soft release of 0.6.0 (Bruce) in January, the first bugfix series 0.6.1 is here! It squashes a number of bugs related to statuses and casting.

0.6.0 added a huge amount of new features and bugfixes itself, including:

  • Full status support (poison, sleep, buff/debuff, etc) added
  • Castable support is now complete, with the notable exception of scripted castables
  • Loot tables / loot sets implemented
  • NPCs now support learning/forgetting skills/spells, selling/buying items, and sending/receiving parcels
  • Support for elemental damage has been implemented
  • Lua scripting is now supported (IronPython has been removed entirely)
  • Cooldowns for castables have been implemented
  • Many, many, many XSD/XML updates
  • Fix packet throttling implementation
  • Full support for monster spawning with variance (stronger or weaker monster) support
  • Add support for heal/damage modifiers, reflect chance / intensity, element overrides (offensive/defensive)
  • Monsters now support a rudimentary AI for moving and attacking
  • Improved chat command support with a rudimentary plugin architecture. Also, /help now works!
  • Begin to add support for multithreaded game logic / packet handling (controlmessages only, currently)
  • Add a secondary HTTP listener for API calls for service requests (shutdown/restart server, etc)
  • All extant network bugs should be fixed - assail not working, desynched sounds, etc
  • When a significant number of monsters die simultaneously (>15) on a crowded map, a burst of server-wide lag could occur

We will be making a new launcher available in the next few days, so stay tuned (please note: the existing launcher still works for connecting to our staging server).

For the full release notes for 0.6.1, visit the release page: https://github.com/hybrasyl/server/releases/tag/0.6.1


Project Update - August 2017

posted by Kedian on 2017-08-30

Just a quick post to say - we are in fact, still alive!

Work had slowed down significantly since the beginning of the year, with numerous other commitments making it hard to make sustained progress. Marriage, moving across the country, yadda blah. These things occupy time.

But we are indeed, still here and still working.

The release of 0.5.6should happen within the next few weeks, based on testing. We believe we have fixed a serious bug that was making it nearly impossible for the staging server to remain online for long periods of time, and we are very close to having functional, albeit barebones, AI and monster support.

We have also added training (learn/forget skill / spell) support for NPCs. Our hope is to get the server to the point where it will support basic gameplay in the next few months.

The release of 0.5.6 will also be coordinated with a server wipe in staging. Sorry, but them's the breaks. We can't guarantee characters will continue to exist with any regularity until we decide to launch to production. But: staging should be far more stable and regularly accessible than ever before!

Future updates will bring a number of new features:

Hybrasyl Server 0.5.5 released!

posted by Kedian on 2016-12-20

Hybrasyl 0.5.5, nicknamed Devlin, has been released! Spell targeting, cast lines, creature and player death, status support (poison, sleep, etc), monster spawning, spell and skill usage, and more are included in this release. A lot of progress has been made towards making Hybrasyl a viable, playable game!

Hybrasyl 0.5.0 released!

posted by Kedian on 2016-05-25

Hybrasyl 0.5.0 released!

After a significant hiatus - Hybrasyl 0.5.0 has been released! Hybrasyl 0.5.0 brings a number of changes to New Temuair - changes you won't necessarily see, but build a strong foundation for a solid, scalable future.

0.5.0 completely re-implements how Hybrasyl stores its data - instead of MySQL, XML is now used to store world data, and Redis is used to store user data and more. A number of bugs in item display and exchange have been fixed, and support for grouping, forum boards, mailboxes, assail, and citizenship were implemented. Hybrasyl's networking was also completely re-implemented from the ground up, and we have implemented damage, creature support, spawning and more. Hybrasyl also works with all current client versions in the United States (7.41).

For a full list of changes, please check the changelog.

We also have a new launcher which you can download and use to connect to Hybrasyl!

Hybrasyl Project gets Discordant!

posted by Kedian on 2016-05-10

We have set up a Discord server for users and developers of Hybrasyl, to learn more about the project and stay in touch with other members of the community. You can join us at https://discord.gg/0ziUhzij2THyYHXK

Stop by and say hello - and make your ideas heard!

We're still here, and work is still progressing on the 0.5.0 release. Stop by and get a status update!

Hybrasyl is now free software!

posted by Kedian on 2015-03-28

After long consideration and discussion, we have decided to release Hybrasyl's source code to the world. It was always our intent to release Hybrasyl as free software, and we have decided that the time is right to do so.

We have created a new Github organization for the Hybrasyl Project, and we have released several repositories which contain all of the extant code related to Hybrasyl. In addition, we have been extremely careful about securing copyright from contributors; all of the server copyrights are held by the Project, and kojasou has graciously agreed to license both the launcher and the (still in its infancy) Hybrasyl world editor as free software. We believe this will allow the project to thrive and provides a solid foundation for future development - as well as allowing the Project to vigorously defend Hybrasyl's licensing.

Speaking of the license: All of the code produced by the Hybrasyl Project is covered by the same license - the GNU Affero General Public License, version 3 (AGPLv3). We believe this is a perfect license for Hybrasyl, but, a few words about the AGPLv3: it is widely considered to be the strictest free software license in existence. By running any of the code in the Hybrasyl Project, you fall under its licensing terms - meaning, if you download and use Hybrasyl to provide a server to other users, you must make its source available. This also means that any derivative works (changes you make) are also covered by this license, and must also be free. We believe this is fair: it means anyone who writes code for Hybrasyl is helping to build the commons, and advance the goal of Project Hybrasyl: to develop and release a complete and well-documented Dark Ages server emulator. For too long, the projects in this space have foundered, collapsed, and been rewritten over and over - we are seeking to end this cycle once and for all.

It is our intent to release this software to the world in the hopes that it will foster a more rapid development of Hybrasyl and encourage other Aislings all over the world to bring their time, energy, and thoughts to the project.

With that being said, today, we are releasing four GitHub projects to the world:


We have also created two new Google Groups to facilitate discussion:

We can't wait to hear from you! Fork us on Github and start contributing today!

Hybrasyl 0.4.0 released!

posted by Kedian on 2014-10-01

Hybrasyl 0.4.0 has been released to production!

This release implemented reactor scripting, dialog support, natural regeneration, exchange (player trades), fixed (e.g. correct) accessories handling, and contained a number of bugfixes.

For a full list of issues resolved, please visit the releases page.

Hybrasyl 0.3.5 released

posted by Kedian on 2014-08-23

Hybrasyl 0.3.5 has been released to production!

This release focused primarily on a number of bugfixes and new functionality relating to Hybrasyl's ability to scale and implement new features. There have also been a lot of new armor and weapons added. For a full list of issues resolved, please visit our new releases page where we will be keeping track of upcoming and past releases. In the future we intend to be far more open with our development cycles and processes!

Hybrasyl pre-alpha goes live

posted by Heiler on 2014-08-08

We've gotten a lot of questions about whether this project is still ongoing as no major news has been announced. To address your concerns, we've decided to open Hybrasyl up to the general public.
 
In this build you'll notice there is still a lot (read: everything) missing. NPC's spawn, but won't talk to you. Monsters don't spawn. There is no method of getting skills or spells yet. In short, the game is still largely unplayable - but you will be able to log in as you please and see our progress, as well as report any bugs you might stumble across so we can get them taken care of sooner, rather than later.


In order to make the world interactive, we have added simple slash commands to create things, teleport, cause things to happen, and change things about your character. These are obviously things that won't make it into the finished product, but for now, will allow you to have some degree of interaction with the world. See the list at the bottom of the page.

From the launcher, you'll notice there are three servers to connect to. Localhost should not be used, staging is where new changes will occur before going to production, and production is where your progress will save and the game will be played. Both servers are available to connect to for now, but most players should connect to Production by default.

Here is the launcher you will need to use to get in. Please remember to run as administrator.

Once you have created a character, log in, and use the following slash commands:

/gold <amount> - give gold
/teleport <map> <x> <y> - go to X,Y on the given map number
/teleport <player> - Teleport to a logged in player
/effect <number> - Show specified effect on player (e.g. /effect 35)
/sound <number> - Play the specified sound effect centered on current player
/music <number> - Play the specified map music
/mapmsg <msg> - Send a message to everyone on the map
/class <class> - Change class to the specified class
/level <level> - Change level to the specified leve
/guild <name> - Change guild to specified guild name (no real effect yet)
/title <title> - Change title to specified title
/item <item> <count> - Create specified number of items in inventory (e.g. /item Shirt)

Please keep in mind that not all items have been added yet. There are several thousand, so you will generally only find pre-medenia things and accessories, for now. If you run into any problems or find any bugs, please let us know the details via our facebook page, which you can find here.

Hybrasyl 0.3.0 update

posted by Kedian on 2013-12-31

After a long hiatus, work is ongoing on the 0.3.0 branch of Hybrasyl. We thought we should share what we’re working on, to let people know we are still here and still working on it!
Scripting support
In Hybrasyl 0.3.0 IronPython is fully utilized for NPC & item scripting. A generic API has been exposed for script usage and currently supports a variety of API functions for creating dialogs and dialog sequences (groups of dialogs), dialog branching (starting different dialogs based on input or script logic), giving/taking items, gold and experience from a player, and more. Currently, NPCs have handlers for click events as well as when objects (such as players, items, or monsters) enter their area of interest. Still to come are reactors (special tiles that respond to events) and support for items responding to various events (such as being used, dropped, etc).
Live reloading
Progress is ongoing to support live reloading - integrating changes into a live server. At the moment, scripts can be dynamically reloaded with a slash command (/scripting). In addition, a feature has been implemented to get the status of a script (if it had any compilation or runtime errors), which is displayed to a client using an in-game popup window. Hybrasyl will eventually support reloading maps, world maps, and more.
Dialog support
Related to the first item, Hybrasyl 0.3.0 includes full dialog support for option, text input, and simple (just text) dialogs. Work on shops is ongoing.
Dialog scripting
Dialogs can now implement callbacks, generic scripting functions that will fire after the dialog is displayed. In addition, dialog sequences can implement prechecks - a callback that will run before the sequence is actually displayed.
Gold handling
Gold now exists in Hybrasyl, and can be acquired, dropped, and so forth.
Reusable dialogs
Also included in 0.3.0 is the ability to set up and register dialog sequences that can be shared between NPCs. This allows sequences to be easily reused between multiple NPCs.
Minor improvements
Display time since last login for players | use standard folder in My Documents for storing Hybrasyl data | update MySQL Connector .NET to 6.7.4 | better exception handling | better logging support | EF 5 support now uses config files for MySQL connection vs App.Config | lots of bug fixes

Latest and Greatest

posted by Kedian on 2013-05-03

Acht and I have labored to bring a number of new features to production (f147844):

Bug fixes & other work

posted by Kedian on 2013-04-27

A number of bug fixes and other new features have been implemented in master:


Looking forward to the immediate future, we will be starting to implement support for NPCs and dialogs, which will also dovetail with the work to implement full scripting support in Hybrasyl (for those interested, we will be implementing support for Lua using LuaInterface).
 

Confirmed and proposed changes to content development

posted by Heiler on 2013-04-25

Alright, this post is gonna be absolutely huge. As always, any questions, comments, discussions, threats, rants, or free pizza can be directed to our subreddit or our facebook.

As an ongoing part of our work, we are attempting to fix things that are broken in our predecessor and not bring them into our game. This covers a lot more than we had anticipated however, and we continue to conclude that a myriad of gameplay elements are broken. That said, this news post is a culmination of discussion to date about things that are broken and are definitely being fixed, as well as some things that have already been fixed, and some things that are up for debate and/or controversial.

Item changes were listed in a previous news post

General

Dungeons, hunting, and leveling in general

Politics

Religion

The College

Class-specific changes

Warrior

Monk

Rogue

Priest

Wizard

Items now fully functional; ongoing content work

posted by Kedian on 2013-04-15

HEAD on the item-variants branch has fully implemented items: stats now update correctly when equipping / unequipping items, and gauntlets and rings now function as they would normally. A number of bugs have been fixed, and this code, pending testing, will be merged back into master. Hybrasyl continues to grow by leaps and bounds, now containing 575 items with all variant types (tailored, dyed, religious) bringing that number up to thousands. Work continues on mapping out current Temuair with Undine, Rucesion and Abel coming soon.

Noteworthy changes to items

posted by Heiler on 2013-04-02

In the spirit of improving upon our predecessor and not simply replicating it pixel-for-pixel, a lot of changes have been made directly to items - some specific, some general - most of which are worth noting in public format.


All items are now, by default, able to be sold to a vendor. The option to disable that functionality is present, and will only be applied to specific items for which it is appropriate (quest items, etc)


In support of the above change, all items have had a 'proper' value assigned, and a trend has been established for items of a given level/quality/rarity to follow. With these two changes, an actual economy is now possible, and the primary source of income in the early days of the game will no longer be Fiosachd Prayer.


Extensive balancing changes have occurred; too many to list here, and many are forthcoming. From stats on items to weapons to weight to durability, everything has been tweaked such that, ideally, nothing is too overweighted in any one specific area. (Example: Spiked club, a level 66 weapon, now accurately does more damage than wooden club, a level 50 weapon)


Many cosmetic changes to items have occurred, most of which are simple convenience or common sense changes. Examples include; Nadurra necklace no longer shares the same sprite as a wind necklace, songs to different towns are now color-coded (Rucesion scrolls are blue, mileth scrolls are green, etc). Potions now look different based on their effect (ard ioc deum is now a smaller red potion than beothaichs, etc) and generally anything that shares the same sprite as another item has been changed, when appropriate, to more easily differentiate.


Consistency has been established among common 'types' of equipment. Examples; Mythril gear now either adds MP, or consumes vastly less MP than equivalent pieces. Hy-brasyl gear is now heavier, but grants bonus HP. Talgonite gear tends to improve AC more than equivalent counterparts.


Variations of items have been tweaked to be a bit more balanced. good/great/fine/grand weapons no longer add miniscule static additions to a weapons damage, instead adding much larger % bonuses, making smithed weapons a viable subtitute for two handers. A 5th tier of smithing/tailoring has been added - Regal - which conveys exceedingly nice bonuses. Once implemented, tailoring and smithing will no longer have abysmal (read: impossible) chances to actually acquire grand/great/regal equipment.


Moving forward, this is a trend we hope to continue long into development; item balance is atrociously subpar in our predecessor, and is seen as an area where much improvement can be made.


Any thoughts, suggestions, questions or comments are very welcomed and may be directed to our subreddit

Heiler and Kedian conduct advanced item research

posted by Kedian on 2013-04-01

Pushing the envelope, Heiler and Kedian can be seen here trialing any number of new and weird items, while wielding the deadly and very rare "GM Slipper":



On a serious note, however, most items in old Temuair now exist in Hybrasyl, with support being implemented for item variants (automatic creation of things like Magic Boots, Cail This and That, etc.)

Item implementation complete

posted by Kedian on 2013-03-17

73e61b in the quadtree-implementation branch completes the implementation of items, including stacking. It's now possible to drop items, pick items up (i.e. loot), drag items between slots, combine stacks, drop part of a stack, etc. Now you can litter with the best of them! Too bad there's no support for gold just yet.

Items & entity work

posted by Kedian on 2013-03-11

A new branch on GitHub, quadtree-implementation, begins the process of implementing quadtrees (thanks to the handy C3 implementation) in maps for entity (item/player) storage. As a result, most operations for calculating distance, finding nearby objects, or searching, are now far more efficient. This work is also a platform for a general refactoring of Hybrasyl's entity / object inheritance & structure. Items now (somewhat) work - you can properly equip and unequip items which are properly displayed to nearby players. A lot of work remains, however, including stacking, dragging and dropping items between slots, and dropping items on the ground (a classic Temuairan feature, in our opinion). Would you like to be a part of this project? Do you have what it takes to resurrect Temuair? Get in touch with us.

First round of refactoring completed

posted by Kedian on 2013-03-05

PR #1 on Github merged 019723c from the hybrasyl-refactoring-1 branch back into master. This means that the Rails application and Hybrasyl server are now in sync and operating on the same schema and database (meaning everything is now live). Hybrasyl server has been refactored to use Entity Framework 5.0 and now uses EF functionality to access / modify database objects, as part of a larger refactoring of Hybrasyl's object hierarchy. In terms of functionality, however, master now represents the same functionality that was achieved before the refactoring work began! Hooray. Onwards!

Ongoing admin interface work

posted by Kedian on 2013-03-02

665305c on the hybrasyl-refactoring-1 branch adds support for tags, and some nifty autocompletion features. This allows you to quickly define a map as having a certain tag (i.e. "Mileth") and then also allows you to quickly search by that tag. Tag support is now, in general, able to be easily implemented with any object in Hybrasyl, meaning items and worldmaps can also have tags assigned to them.

New website implemented!

posted by Kedian on 2013-02-26

As part of a significant refactoring effort on the hybrasyl-refactoring-1 branch, Hybrasyl now has a webpage that has been reimplemented in Ruby 1.9 and Rails 3.2, along with a modern administrative interface. Whoa. If you're interested in helping make the page look better, or more importantly, "thematically correct" with regards to Temuair, get in touch with us. This is all just some Twitter Bootstrap default stuff with a whole lotta Rails.

World Maps Implemented

posted by Kedian on 2013-02-20

Commit be03f9ac on Github completes support for worldmaps. Here is Kedian, newly arrived in Rucesion, as a result:

World Maps Coming Soon

posted by Kedian on 2013-02-03

Commit c5a817df on Github begins support for world maps. The packet format for this is now well understood, but I felt that there needed to be a really slick way to edit maps. So far, with a little jQuery magic, including the Annotation plugin by Chris Wood, this is what I've arrived at:
As you can see, you can basically point and click to put down points anywhere on the map. Once a point is put on the map, you can drag it around to its final destination, and also, more importantly, set up its destination. The points are saved / retrieved via AJAX.

Whispering Implemented

posted by Kedian on 2013-01-28

Commit 4ef781a8 on Github adds support for whispering! You can now whisper people "huk, huk" as much as you like. In addition, this commit fixes the bug where a user could basically login as many times as they wanted, and adds two new slash commands, /mute and /unmute, which operate about as you would expect.

Welcome to Project Hybrasyl!

posted by Kedian on 2013-01-28

Welcome to Project Hybrasyl! This project aims at producing a production-quality server for Dark Ages. Over the next few weeks and months, you can expect to see this site regularly updated with information on our progress. We are aiming to produce a faithful reproduction of classic Temuair for all to enjoy. Thanks for stopping by!