Author Topic: Guilder (now at v0.7.1)  (Read 5860 times)

getter77

  • Protector of the Temple
  • Global Moderator
  • Rogueliker
  • *****
  • Posts: 4957
  • Karma: +4/-1
    • View Profile
Guilder (now at v0.7.1)
« on: September 21, 2014, 08:49:26 PM »
http://seregsarn.net/guilder/   Windows   v0.7.0 stealth ARRP 2014
Quote
Introduction

    Finally, after long years of study and hard work, you've completed your final lessons and been recognized as a Candidate in the Collegium Arcanum. Now you are ready to claim your Guilder, a personal talisman recognized the world over as the symbol of a Fellow of the Collegium. With it comes prestige, respect, and— most importantly— lucrative employment opportunities.

    All that stands in your way is what the Collegium masters pithily refer to as the "practical examination." Your Guilder has already been crafted and bound to you, and then placed at the top of the Examination Tower. All you have to do is navigate the hazards, monsters, and failed Collegium experiments of the tower, ascend to the top and claim it.

    If you return alive, you'll be recognized as a full Mage and Fellow, and your services will demand a high price in any nation on the planet. If you don't— well, best not to dwell on that...

Hi! I'm thp, and Guilder was my entry for the 2014 7DRL Challenge. I declared success, because technically the game was in a playable state by the end of the challenge, but it's really more of a tech demo; the vast majority of the grand plans I have for the magic system fell by the wayside as I struggled to get an entire game engine stood up from scratch in seven days. In retrospect, I probably should have gone in with a smaller plan, or prepared some engine code ahead of time.

As the blurb above indicates, in Guilder you play the role of a wizard whose goal is to climb a tower and grab an amulet. WILDLY ORIGINAL, no? Well, okay, not really. But there's a reason for that! I deliberately kept the rest of the game simple (though not simple enough, as it turned out) in order to highlight Guilder's unique magic system. In Guilder, magic spells aren't just buttons you press on the interface. You cast spells the same way a mage does— by speaking the magic words. Magic has its own language, and you use that language to dictate instructions to the universe, which are called "spells". If your spells are properly formed, the universe will respond by generating the appropriate effects. As a result, there are no "fireball" or "magic missile" spells in Guilder. Instead, you write your own spells on the fly, freely specifying their effects and power levels; you are limited only by the resources available to you. You will be able to wrap up your favorite spells in an identifier and invoke them by name, for ease of reuse, although this feature didn't make it into the 7DRL version.

The title screen in the 7drl version was hamfistedly drawn by myself, but the rest of the game's art (The monster portraits, for example) are the work of graa, a highly skilled artist of my acquaintance. My thanks go out to him for the effort he put in— I only thought to add those portraits on day 5, and he not only agreed to draw them in two days, but did an excellent job as well. <3 As of the (upcoming) 0.7.0 release, he's also replaced my awful title screen with a beautiful one, so only a few screens feature my terrible dev art now.

Yes, you read that right. For the Annual Roguelike Release Party 2014, I present you with version 0.7.0 of Guilder!

I didn't get everything done that I would have liked to— I really want to develop a "tutorial" that will walk you through the process of casting a spell so you don't have to read it all in a giant book. But it's not like I'm gonna stop working on it now. There's still so much more I want to do with it, and so much stuff that remains only partially implemented.

I encourage you to download it and give it a whirl, and if you encounter any troubles, crashes, or other bugs (or just want to tell me how great it is), write me at thp@seregsarn.net and let me know what's up. Happy spellcasting!

 Bibliography

Guilder's magic system was inspired mainly by stuff I've been reading lately. As a lifelong programmer, the idea of "truename" magic— i.e. magic as a form of "programming", or "telling the universe what to do", has always interested me. But a lot of the places I've seen it used have been unsatisfying. Most works that use it handwave too much away for my tastes, while others use it as a dramatic and fabulipotent way for the hero to win without a messy wizardy battle: "I know the bad guy's true name, therefore he can't harm me" or some such nonsense.

Lately, however, I've read a couple of really interesting books and things that really nail what I consider interesting about truename magic. When I decided to do the 7DRL, I was inspired to emulate some of these. Notably, I borrowed the names of some of the basic spells (uum, eset, ixuv), and some of the basic spellcasting mechanics and grammar, from Sam Hughes' excellent serial ra; Guilder is obviously playing in more of a traditional-fantasy space, though, whereas ra is a (relatively) hard science fiction setting despite the presence of magic. Guilder is also influenced heavily by some of the other traditional fantasy I'm reading these days; the Kingkiller Chronicle in particular is really great and you should read it. The idea of magicians having a magical medallion/coin that only they can use to prove their qualifications to potential employers, and even "guilder" as the name of that coin, is also borrowed wholesale from TNOTW. So I guess even the name of the game is itself kind of an homage to Pat Rothfuss's work.
« Last Edit: October 06, 2014, 03:41:23 PM by getter77 »
Brian Emre Jeffears
Aspiring Designer/Programmer/Composer
In Training

getter77

  • Protector of the Temple
  • Global Moderator
  • Rogueliker
  • *****
  • Posts: 4957
  • Karma: +4/-1
    • View Profile
Re: Guilder (now at v0.7.1)
« Reply #1 on: October 06, 2014, 03:41:56 PM »
v0.7.1

Quote
I received an email the other day from a player who says he actually enjoys the game, even in its barely-functional state. (Hi Sam.) \o/

Unfortunately, he also found a bug (design oversight,  really) in the magic system that I probably should have detected before release. I was testing at 1:1 conversion between energy types so that I could easily test power levels of various amounts of energy, and only put in the proper conversion factors at pretty much the last minute before release. Alas, it seems I highballed the numbers a little bit-- the conversion factors I guessed at are so high that it's almost impossible to actually generate enough heat to harm a monster even if you dump your entire mana supply into the spell.

Changing those numbers is pretty trivial by itself, but even making them a little more reasonable still didn't make heat as useful as I'd like it to be. So I've been working the last week or so on properly fixing the fluid dynamics and physics that govern the flow of heat and mana in the game world. I've optimized my algorithm to the point where it runs acceptably fast, and although I'm still not fully satisfied with the output it's better than nothing, so I'm going to release it now so that the heat spell example in the ingame manual will work acceptably well again.

Thus: Guilder 0.7.1 is out! :D As before, feel free to email me or comment on this post if you have any issues getting it to run or playing it.

Now that the only really big problem I know about is dealt with, I have a couple of things on my plate going forward:

    Aside from cleaning up the magic system's code a lot, I've also got a laundry list of things to add/fix in it and no particular order to do them in:
        Getting a "spellbook" interface to work so you can "write down" spells for later use is obviously a huge priority, but that will require me to tinker with the internals of the spell lexer, so that will probably take a while to implement.
        I'm also working on ways to update the actual spell language itself; I have a model for letting certain values (notably, truenames) "hang" even when they're already consumed by verbs, so that you can reuse a truename a bunch of times in a spell but only have to speak it once. Doing this naively will be easy, but getting halfspells with hanging values to anneal properly will be a tougher problem, so I want to think this through in detail before I start messing with the code.
        I may take a quick detour to flesh out the implementation of the energy types other than mana and heat. I have some really interesting ideas for how those should all work, and of course everyone wants to be able to wield the power of fus. :D
    There's some minor bugs that need to be worked out of the object system, and in general a bunch of the subsystems in the game that I didn't touch yet in the post-7drl rewrite are in need of refactoring and cleanup to make my life easier maintenance-wise.
    Some of the equippable objects are missing their intended effects, which I should probably implement as well.
Brian Emre Jeffears
Aspiring Designer/Programmer/Composer
In Training