Nyctos: Halls of Darkness, a claustrophobic hack-and-slash through a nightmare dungeon ruled by a dark force has been completed just under the wire. The game was coded in Python using PAROLE, a game engine I had previously created. The game heavily revolves around tactical situations related to light. My friend James Madison helped out with game design, prose, and playtesting. Coding finished at 1:40 pm, 7 weeks after starting (including an extra clock-hour for daylight savings time). James is finishing the game FAQ, and I will upload the game shortly.
I should note that the game is really hard and probably unbalanced. I do not know if it's possible to beat it given the difficulty, and we haven't beaten it yet (without wizard mode). We hope to expand it into a larger game in the near future. Unimplemented features to come: weapon brands, weapon materials, item construction modifiers, skills. There are also still some bugs (including some rare crash bugs).
This post is just to announce the cessation of coding. We will upload the game itself (which, on our honor, we will not change in any way after 1:40pm CDT), along with a manual, shortly.
As promised, the game has been uploaded. We're using google code, so the main project page is here: http://code.google.com/p/nyctos/
From there you can download a zip file with the windows binary (compiled using py2exe), or check out the source code from subversion. To run from source, you will also need to check out the engine (a separate project) at http://code.google.com/p/parole/ and install it ("python setup.py install"). Plus PyGame, of course (http:// pygame.org). We expect to post a native OS X app soon, as well, though it should run from source (and the game was in fact developed on a Mac).
"James Madison" here. I just played through the final 7D version and got to D6 but died on the last level. Despite how little time we had to balance things, it's surpringly balanced (though the fact that I understand the mechanics as a developer helps).
For people playing, some advice and a hint:
Use healing potions as soon as soon as you have lost 30-40 hp. Without natural regen, there is no point in saving them. Scrolls of light are slightly helpful, but illumination much more, especially in combination of a potion of perception. Werewolves might be the worst mid game threat, and a potion of speed and/or strength deals with them.
Hint: I figured out a way to beat the game without actually killing the boss. It might even be the only practical way.
It sometimes crashes when you die. But whatever. Also restart the game each time you die; if you press on after death your new character will find the levels your old character found, including the dead monsters so less exp for you.
On Mar 14, 2:37 pm, Mary Haas <mother.musko...@gmail.com> wrote:
> This post is just to announce the cessation of coding. We will upload > the game itself (which, on our honor, we will not change in any way > after 1:40pm CDT), along with a manual, shortly.
Hey nice music during the intro. But man the outdoor exploration is pretty dark. So far I have wandered around, and figured out how to get into the building. I have not run into any battle scenes yet.
On Mar 14, 6:32 pm, legend.angb...@gmail.com wrote:
> Hey nice music during the intro. But man the outdoor exploration is > pretty dark. So far I have wandered around, and figured out how to get > into the building. I have not run into any battle scenes yet.
Yes, it's a dark game :)
You can always 'L'ight your torch, which helps a bit, but try not to waste it, as it will go out eventually.
To get into the real game, just follow the road east to the second dirt trail leading north. The dungeon is through the hatch in the rock outcropping. We originally wanted to have more in the outdoors, but obviously ran out of time :)
Glad you like the music -- it's from the first Castlevania.
> As promised, the game has been uploaded. We're using google code, so > the main project page is here:http://code.google.com/p/nyctos/
> From there you can download a zip file with the windows binary > (compiled using py2exe), or check out the source code from subversion. > To run from source, you will also need to check out the engine (a > separate project) athttp://code.google.com/p/parole/and install it > ("python setup.py install"). Plus PyGame, of course (http:// > pygame.org). We expect to post a native OS X app soon, as well, though > it should run from source (and the game was in fact developed on a > Mac).
> Many special thanks to everyone who makes this yearly challenge > possible, and especially to Jeff Lait for organizing the dates and > announcements!
This is a very cool little roguelike! Thanks for sharing
On Mar 17, 10:48 am, Matthew Allen <msal...@gmail.com> wrote:
> I got a crash before anything started on my 10.4.11 PPC mac. Only > compiled for intel I expect?
Ack, sorry about that! I was under the impression that py2app would produce a universal binary, and that that's part of why the package turns out so much larger than with py2exe on windows. The package works on all my intel macs, though, so I think you must be right. At some point I will try to get my hands on a friend's PPC mac and build it there. In the mean time, you could try checking out the source for the engine and the game (two separate projects), and running from that, assuming you have python 2.5+ on your system.
On Mar 17, 3:39 pm, MaxyB <max.b...@gmail.com> wrote:
> In the mean time, you could try checking out the source for > the engine and the game (two separate projects), and running from > that, assuming you have python 2.5+ on your system.
Don't stress too much over me. This challenge has taught me that my poor little laptop has problems with virtually everything. I installed pygame for another 7drl, so I'll give the source a whirl. I didn't realize I could check it out from the repository.
> I should note that the game is really hard and probably unbalanced. I > do not know if it's possible to beat it given the difficulty, and we > haven't beaten it yet (without wizard mode).
I would like to report that the game is beatable. In a play-through last night I managed to beat the final boss and complete the basic quest. Admittedly, I used a wizmode command to get from d5 to d6 since I couldn't find the stairs. However, in other play runs I've gotten to d6 just fine (though without enough potions and decent gear to beat the boss).
We know that one is encouraged not to add content to a 7DRL, but we designed the game with a broader release in mind. So new features are on the horizon!
A more detailed description of some of the game's mechanics has been added to the wiki Manual (http://code.google.com/p/nyctos/wiki/ Manual). I'm including it here, too, as I figured some of the subscribers to this newsgroup might be interested in reading about yet another combat system :). Sorry for the wikitext format, it should be human-readable.
== Mechanics ==
=== Intrinsic Attributes ===
Your character possesses four intrinsic attributes that can be increased upon character creation or gaining an experience level: * *Strength:* Your strength ("STR" on the status bar) determines the maximum total weight of items that you can carry, and affects the amount of damage that you deal in melee combat. * *Dexterity:* Your dexterity ("DEX" on the status bar) affects how well you evade being hit (your EV score), as well as how likely you are to strike an opponent in melee (your HIT score). * *Constitution:* Your constitution ("CON" on the status bar) affects your maximum hit points, your maximum stamina, and how quickly you regenerate stamina. * *Perception:* Your perception ("PER") determines the maximum radius of your view, and the minimum amount of light that must be present at a tile for you to be able to see it. As a result, a greater perception score increases the effective useful radius of your light source.
In addition, there is a fifth intrinsic attribute, *speed* ("SPD" on the status bar), that cannot be increased when gaining a level -- it can only be affected by items and magical effects. Every action in the game, whether taken by your character or something else, takes time to complete, which is simulated down to the millisecond. Every action has some inherent _energy cost_ associated with it, and your character's speed determines how long it takes to expend that energy, as follows (in milliseconds): {{{ timeOfAction = energyOfAction / (speed / 10.0)
}}}
Thus an action costing 1000 energy will take an average character (with speed 10) 1000 milliseconds, or 1 second, to complete.
=== Derived Attributes ===
Together, the above intrinsic attributes determine a number of derived attributes. * *Maximum HP:* Your maximum hit points are determined by a combination of your constitution, strength, experience level, and dexterity, in that order of importance. * *Maximum Stamina:* Determined in the same way as maximum HP. *Note:* In the 7DRL version, stamina has no effect. * *Carrying Capacity:* Determined by your strength. * *PV:* Your protection value is only affected by worn items. * *EV:* Your evasion value is determined by a combination of your dexterity and speed, in that order of importance. Worn items also affect it. * *Hit skew:* Your hit skew ("HIT" on the status bar) affects how likely an attack of yours is to hit its target. It is determined by a combination of your dexterity and speed, in that order of importance, as well as by worn items. * *Damage skew:* Your damage skew ("DMG" on the status bar) affects the average amount of damage dealt by your melee weapon. It is determined by your strength and some worn items. The final amount of damage dealt is of course also greatly affected by the weapon itself. * *Maximum unarmed damage:* The maximum damage that can be dealt by your character's unarmed melee attack is determined by strength.
=== Combat ===
Simply walk into a hostile monster to attack it with your character's wielded melee weapon (or unarmed if nothing is wielded). The result of the attack is determined in the following steps: # The amount of time the attack takes is calculated. This is determined by the attacker's speed, and the attack energy cost associated with the wielded weapon. A weapon's attack energy cost is listed in its inventory description (e.g., "A:1000"). The attack takes this much time whether it is successful or not. # Whether the attack hits the target is determined. First an "attack draw" is made by drawing a number between 0 and 1 from a [http:// en.wikipedia.org/wiki/Beta_Distribution beta distribution] whose alpha parameter is equal to the attacker's hit skew (HIT), and whose beta parameter is a constant 10.0. Similarly, the defender makes a "defense draw" from a beta distribution whose alpha parameter is equal to the defender's EV and whose beta parameter is 10.0. If the attack draw is greater than the defense draw, the attack succeeds. Otherwise it misses. # If the attack hit, the amount of damage dealt to the defender is determined. Every weapon has an inherent maximum damage and damage skew modifier (written "D:X+Y" in the inventory description, where X is max damage and Y is damage skew). The weapon's damage skew modifier affects the character's damage skew derived stat (DMG). First a number (between 0 and 1) is drawn from a beta distribution whose alpha parameter is the attacker's damage skew (DMG) and whose beta parameter is 10.0. This drawn number is then multiplied by the weapon's maximum damage to arrive at the actual amount of damage dealt. Thus a character with DMG 10 will, on average, deal half of his weapon's maximum damage, with higher or lower values of DMG skewing that in either direction. # Finally, the defender's PV may reduce some of the damage it receives. A number is drawn from a beta distribution with alpha=beta=10, and the result is multiplied by the defender's PV. This value is deducted from the damage received. Thus the average deduction is equal to half the defender's PV.