Some weeks are great, some less so. Week 4 was a bit sluggish and annoying due to a large number of bugs suddenly plaguing development. But most were slain. Hooray!
Bugs, bugs, bugs
No idea where they came from but I lost a lot of time (well, at least for some of them) getting them under control:
- In week 3 one of my optimizations introduced a memory leak that took me 3/4s of a day to fix.
- My underlying TBRLAPI originally was designed for games based on the Curses API (well, my re-implementation of it). Realms of Ancardia is more and more moving away from the initial Curses-based approach towards a purely graphical implementation. This caused some friction with rendering and update issues. The underlying architecture of TBRLAPI still puts the Curses-approach too much into the forefront and the less it is needed the more I feel I have to introduce workarounds to get my Curses approach out of the way. I do not yet have a good idea on how to fix the architecture but something needs to happen since a number of update and rendering bugs this week were caused by the unholy combination of the formerly dominant Curses approach and the now evolving pure tile based and graphical approach. Birth pains of an API…
- A Rider update wrecked my gut behavior. And while I love version control (and am fine with git generally) I really think that the git command line interface is one of the worst designs ever. Arcane, full of weird special cases (at least it feels to me like that), etc. It probably all makes sense if you manage a project with the size of the Linux kernel but I still feel that the git interface is just lousy for the majority of software development projects it is being used in. The wrong system won the VCS war in my book. Or at least someone should have taken the time to make git a lot more understandable for 95% of the cases. I lost half a day getting git to forget about files it suddenly started tracking and I still don’t know why this happened. What a lousy way to spend time…
- There were some rendering issues where “dirt” is cached somewhere.
Character generation started
It finally feels like the game needs some flesh. So we need to start generating an actual character. I have started working on a primitive character generation screen which will be beautified once the various components of character generation are stable enough. For now it is ugly as hell. But it’s there.
On the main screen you can select the general generation mode (totally random or based on the name of the world and the character are the only two options righr now but a lot more will follow), generate a random world name (later you will be able to enter it yourself but we do not yet have code for text input), a character name (same challenge, but if you have selected a race and a gender then the internal race- and gender-specific name generators are utilized), select race and gender and prioritize talent categories.
The latter is the first major deviation from ADOM: Where in ADOM you have a ton of classes in Realms of Ancardia you can give different priorities to ten areas of expertise (see below for more details).
Each category has up to five levels of expertise (plus “untrained”). If you have at least some expertise you gain attribute bonusses during character generation, skill costs change (for the better the more excpertise you have) and you eventually will get other benefits (like free feats or special abilities).
We also are going to add back the professions from ADOM although they will have somewhat different rules and basically just are prioritized talent category sets. So in the end they will be useful to speed up character generation but you also have the option to kind of “cook” your own profession.
Here are some screenshots from the current state (most beautification still is missing… we just want to get ground by adding content on our race to an alpha release in… months… years… who knows 😉 ):




There is still a lot of work to be done but this IMHO is starting to look decent in a certain old school way I really enjoy.
Talent category system
I have implemented the talent category system. The following ten talent categories exist (taken from the source code):
Wilderness,
Roguery,
Combat,
Religion,
Arcane,
Knowledge,
Skills,
Strategy,
Trade,
Leadership
The general scope is much wider than in ADOM because eventually Realms of Ancardia will allow for a lot of activities besides dungeon crawling and monster killing – like building trade empires, raising armies and more.
Skill system
An initial draft for the skill system has been implemented (but the individual skill functionalities are going to be added over time). Here is the skill list from the source code together with the attributed talent categories (see above):
// Talent category: Wilderness
Survival,
AnimalHandling,
Woodcraft,
Riding,
Pathfinding,
// Talent category: Roguery
Stealth,
PickLocks,
DisarmTraps,
SleightOfHand,
Deception,
// Talent category: Combat
BladedWeapons,
BluntWeapons,
Polearms,
TwohandedWeapons,
ThrownWeapons,
Bows,
Crossbows,
Slings,
Shields,
LightArmor,
MediumArmor,
HeavyArmor,
// Talent category: Religion
Theology,
Piety,
Channeling,
Exorcism,
Meditation,
// Talent category: Arcane
Spellcasting,
Alchemy,
Enchanting,
ArcaneLore,
RitualMagic,
// Talent category: Knowledge
Assessment,
Healing,
Herbalism,
Appraisal,
Navigation,
// Talent category: Leadership
Diplomacy,
Inspiration,
Administration,
Intimidation,
Etiquette,
// Talent category: Strategy
Tactics,
BattlePlanning,
Logistics,
Siegecraft,
GrandStrategy,
// Talent category: Trade
Barter,
Commerce,
Crafting,
Finance,
BusinessAdministration,
// Talent category: Skills
// Provides access to all skills.
Skills are ranked and run from 0+ to 40 and more. Usually they will be in the 0-20 range for normal adventures and might rise above 20 for experienced or highly specialized characters. The following abstract ranks are used (again taken from the source):
Unskilled (0),
Apprentice (1-4),
Journeyman (5-9),
Adept (10-14),
Veteran (15-19),
Expert (20-24),
Master (25-29),
Grandmaster (30-34),
Legendary (35-39),
Mythic (40+)
Miscellaneous minor changes and fixes
- I revised the name generators to create a lot more ADOM-like names. I’m a lot happier with the results and now tens of thousands of beings can have unique names.
- I added special algorithms for shopkeeper names, ratling trader names and dragon names.
- I added dragon personalities tried to unique dragon titles for special dragons.
- Added faith points as a new attribute. While ADOM used power points for priests and wizards, Realms of Ancardia will differentiate between power points (used for arcane magic) and faith points (used for miracles).
- Renamed talents to feats.
- We debugged an annoying memory leak.
- Krys enhanced many tiles making them subtly more beautiful and also added more monster tiles.
- Some bugs were fixed related to combat and actions.
Total size of the codebase after this week
- 28,022 LOC in 440 files for the actual Realms of Ancardia game
- 21,635 LOC in 369 files in my own underlying TBRLAPI framework library supporting my most recent roguelike games
- plus extra external configuration files, images, tilemaps, audio files, etc.
0 Comments
1 Pingback