tag:blogger.com,1999:blog-13725000895911316282024-02-19T13:35:19.692+10:30IghalskLukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.comBlogger32125tag:blogger.com,1999:blog-1372500089591131628.post-83767880402886552422012-08-02T20:17:00.004+09:302012-08-02T20:17:45.949+09:30Ighalsk - release 0.1.16I released v0.1.16 of Ighalsk last night. It can be downloaded from its SourceForge project page <a href="https://sourceforge.net/projects/ighalsk/">here</a>. These are the changes since v0.1.15:<br />
<br />
* Attack Powers can now have a radius: that is, they can explode (with a circular area).<br />
* Heroes now gain Powers as they gain levels (currently this process is automatic: a Hero gains every possible new Power as e gains a level).<br />
* Added new Powers: Terrifying Roar and Hurl Rock for Mighty Heroes, Willpower and Divine Light for Blessed Heroes, and Argumentum and Profunde Cogitare for Philosophical Heroes. These are gained at higher levels.<br />
* Can now enter the final level of the Tunnels of Lost Dreams quest. (However, there will be more monsters added later.)<br />
* Can now see the damages and damage types of weapons, and the main resistances of armour, while shopping.<br />
* Can now browse ('consider') the definition of a Power.<br />
<div>
<br /></div>
It's been more than 2 years since the last release, in which time I've been working on From Bear to Phoenix. Something I have to think about going forward is which game to focus on, or somehow try to develop both.<br />
<br />
For the next release of Ighalsk, I'd like to add in final levels for the other two (current) quests. It may or may not also include a major new feature.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com1tag:blogger.com,1999:blog-1372500089591131628.post-51036182124716225002011-09-16T20:20:00.000+09:302011-10-16T19:51:57.798+10:30From Bear to Phoenix - release 0.0.2I released v0.0.2 of From Bear to Phoenix about a week ago. It can be downloaded from its SourceForge project page <a href="https://sourceforge.net/projects/beartophoenix/">here</a>. These are the changes since v0.0.1:<br />
<ul>
<li>Added Augmenter, who can cast the following Augment spells:</li>
</ul>
<ul style="margin-left: 40px;">
<li>Heart of Buffalo,</li>
<li>Skin of Bear,</li>
<li>Strength of Bear,</li>
<li>Strength of Mouse (intended for use on opponents).</li>
</ul>
<ul>
<li>Can now have multiple allies, fighting against common opponents.</li>
<li>Added an initial screen to choose which allies and opponents for a battle. There are currently no restrictions on how many allies or opponents to choose (OK, actually there's a limit of 9 for each type of being, and starting with 0 allies may crash the game); if your first choice of combatants makes for a battle that's too easy, try again with more opponents and/or less allies.</li>
<li>Added Firebugs and Polar Bears, both available as opponents.</li>
<li>Shapeshifters can now change into Wolves and Trees as well as Bears. Wolves are faster and can be sustained longer; Trees regenerate MP quickly.</li>
<li>Added summary of current ally (HP and MP) to the map screen. (This can help clarify which ally is currently active.)</li>
<li>Added a character viewer which shows spells available, cast by and cast on, that mage, if the player clicks on the summary of the current ally on the map screen.</li>
<li>Added A* pathfinding algorithm, used by opponents to find the shortest path to the allies. (This algorithm follows the Wikipedia definition closely.)</li>
</ul>
Screenshots of this release:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ZBYdrrfgMRKfjJx7QnpPkUqoUAVnLDPxMsB6rXMHJHsz91kGJhITOE_ilafqpE_rfjKMpQMz3jbcg1TtFBmF4ssZqUHXFN3iBWnW6k4UlHXqHBPzd5Pfv2xLxp2XC3UrSKcB_8xoAiM/s1600/b2ph_r002_choosing_sides.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="154" ilo-full-src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ZBYdrrfgMRKfjJx7QnpPkUqoUAVnLDPxMsB6rXMHJHsz91kGJhITOE_ilafqpE_rfjKMpQMz3jbcg1TtFBmF4ssZqUHXFN3iBWnW6k4UlHXqHBPzd5Pfv2xLxp2XC3UrSKcB_8xoAiM/s320/b2ph_r002_choosing_sides.png" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ZBYdrrfgMRKfjJx7QnpPkUqoUAVnLDPxMsB6rXMHJHsz91kGJhITOE_ilafqpE_rfjKMpQMz3jbcg1TtFBmF4ssZqUHXFN3iBWnW6k4UlHXqHBPzd5Pfv2xLxp2XC3UrSKcB_8xoAiM/s320/b2ph_r002_choosing_sides.png" width="320" /></a></div>
<i>Choosing sides at the start of the game.</i><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6m7atGbvhU9BP7xIclguAmQ6CCA5kZU-k3FyC3n955H9jnW6ldfpIrGmyW7jrwJyW9FNKSYuYTnljSad3OKHUXXg5EOdJqgIRrC4ewZUJOZONrvA4K_FyJAme5boGsINsnDf4Xz2t8wg/s1600/b2ph_r002_map.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="154" ilo-full-src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6m7atGbvhU9BP7xIclguAmQ6CCA5kZU-k3FyC3n955H9jnW6ldfpIrGmyW7jrwJyW9FNKSYuYTnljSad3OKHUXXg5EOdJqgIRrC4ewZUJOZONrvA4K_FyJAme5boGsINsnDf4Xz2t8wg/s320/b2ph_r002_map.png" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6m7atGbvhU9BP7xIclguAmQ6CCA5kZU-k3FyC3n955H9jnW6ldfpIrGmyW7jrwJyW9FNKSYuYTnljSad3OKHUXXg5EOdJqgIRrC4ewZUJOZONrvA4K_FyJAme5boGsINsnDf4Xz2t8wg/s320/b2ph_r002_map.png" width="320" /></a></div>
<i>Just before first contact with the enemy - Augmenter hanging back, Shapeshifter (in the form of a Bear) braced.</i><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT-4tIQkEhZnJdLYxOWcSQc6asi2UWrZyNfizLFshcjnjwM9Ukg7XvF5YJfc2CdN4GaG8bo8WLNruOiNrUx_cPBkmkCBihPBrYABjjS7WfKPGXhsXIY653iMhKu8WUMmQNyfyKDFdZ5MU/s1600/b2ph_r002_character_sheet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="154" ilo-full-src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT-4tIQkEhZnJdLYxOWcSQc6asi2UWrZyNfizLFshcjnjwM9Ukg7XvF5YJfc2CdN4GaG8bo8WLNruOiNrUx_cPBkmkCBihPBrYABjjS7WfKPGXhsXIY653iMhKu8WUMmQNyfyKDFdZ5MU/s320/b2ph_r002_character_sheet.png" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT-4tIQkEhZnJdLYxOWcSQc6asi2UWrZyNfizLFshcjnjwM9Ukg7XvF5YJfc2CdN4GaG8bo8WLNruOiNrUx_cPBkmkCBihPBrYABjjS7WfKPGXhsXIY653iMhKu8WUMmQNyfyKDFdZ5MU/s320/b2ph_r002_character_sheet.png" width="320" /></a></div>
<i>Augmenter character sheet showing available spells, spells cast so far, and spells cast on this mage. Note that an Augmenter can cast one spell multiple times on different beings. Augment spells cost MP to maintain as well as cast.</i><br />
<br />
Again, see the original From Bear to Phoenix <a href="http://ighalsk.blogspot.com/2010/07/from-bear-to-phoenix-introduction-to.html">post</a> for image credits.<br />
<br />
It was 5 months from v0.0.1 to v0.0.2, which felt like too long. I was too ambitious in what I wanted to fit in before releasing; for the next version, I'm scaling back the list of features to include. I definitely want to include saving and loading games and new monster types (naturally). And of course a new type of mage, but I haven't yet decided between Lifegiver (healer) or Architect (stone mage). Anything after that is a bonus.<br />
<br />
From Bear to Phoenix is beginning to feel more like a game now. It's possible to easily experiment with the number and type of good guys and bad guys, which is necessary for balancing, and the potential of the magic system and the variety of spells and mages is starting to become clear. With the next release, even more pieces will be added to the puzzle.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-40018340799433324342011-06-12T21:50:00.000+09:302011-06-12T21:50:18.605+09:30From Bear to Phoenix - On cooperation (part 1)I want "From Bear to Phoenix" to be not just a game about mages, but a game about mages cooperating. Yes, even about synergy - if we can reclaim that word from management-speak.<br />
<br />
It occurred to me that one way to do this would be to introduce more character traits for mages, each of which has a positive effect on nearby allies.<br />
<br />
Leadership would improve their (the nearby allies') accuracy, and perhaps their rate of magic point recovery. Companionship would add to their strength, and hence damage dealt. Nurturing (or compassion) would improve their regeneration of hit points.<br />
<br />
Some mages would have these traits, though not all. Shapeshifters would have high leadership and medium companionship when in human form. Their other forms would have different traits: Wolf would have high companionship, Bear medium nurturing, Tree perhaps high nurturing. Proximas would also have high companionship, Lifegivers would of course have high nurturing, and Augmenters might have medium levels of all three of these traits.<br />
<br />
But there's more. There could also be spells to affect these traits: Augmenters could cast spells to improve them, such as "Heart of Wolf" to increase companionship or "Leaves of Tree" to increase nurturing (as well as the hit point and magic point regeneration of the recipient). And Illusions could cast spells to decrease them, or indeed reverse them entirely: despair as the negative of leadership, mistrust or paranoia as the negative of companionship, hostility or hatred as the opposite of nurturing.<br />
<br />
This makes the following scenario possible. An Illusion casts "Hostility" on a mage - perhaps a Shapeshifter or a Proxima in hand-to-hand combat with allies of the Illusion. Illusions are invisible, so perhaps the player of the mage doesn't realise at first that any spell has been cast on the mage.<br />
<br />
Damaged from combat, the mage retreats to huddle near a Lifegiver: she's currently too busy healing others to attend to him, but he can still benefit from being near her. Which he does, until suddenly the player realises that the Lifegiver has been losing hit points from the poisonous Hostility of the Illusion's spell.<br />
<br />
The tradeoff then becomes, sacrifice the Lifegiver's hit points for the other mage's? And during and after the battle, the (magically) Hostile mage is shunned by allied mages until they can find a way to dispel the Hostility ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-85079336585946764432011-04-16T00:10:00.004+09:302011-04-16T00:31:41.104+09:30From Bear to Phoenix - release 0.0.1 (Windows extras)I recently realised that if you downloaded the Windows executable of From Bear To Phoenix, you may also need to download and run another file. That is, you may need to download and run vcredist_x86.exe from <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en">here</a> if MSVCR90.dll is missing: note that the SP1 version should not be used.<br /><br />See <a href="http://www.py2exe.org/index.cgi/Tutorial">the py2exe tutorial</a> section 5.2.2 for full details.<br /><br />Yes, I used py2exe to create the Windows executable. I've used pyinstaller for creating Windows executable for Ighalsk, but pyinstaller just could not bundle pygame correctly (I'm sure it's possible, but after wasting 2 or 3 calendar days trying, I gave up). There's a great sample script for using py2exe with pygame <a href="http://pygame.org/wiki/Pygame2exe">here</a>, which I customised slightly but largely worked out of the box. I'm deliberately not bundling the data files inside the executable, since I want it to be possible to edit them and then run From Bear to Phoenix using the new data files. All of which will become more interesting when there are multiple allies :)<br /><br />EDIT: Forgot to mention that From Bear to Phoenix release 0.0.1 is available <a href="https://sourceforge.net/projects/beartophoenix/">here</a>. If the Windows executable still doesn't work or is too large and you have Python installed, the source code is also available from <a href="https://sourceforge.net/projects/beartophoenix/files/release-0.0.1/">here</a>.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-79525617598193454942011-04-04T21:26:00.012+09:302011-04-04T21:55:31.397+09:30From Bear to Phoenix - release 0.0.1I've just released From Bear to Phoenix v0.0.1! You can download it from <a href="https://sourceforge.net/projects/beartophoenix/">here</a>. As the initial release, this version contains a prototype GUI and basic gameplay. Specifically:<br /><br /><ul><br /> <li>You can play as a Shapeshifter, who can change into a Bear. Naturally the plan is to add other forms, including Wolf, Tree and of course Phoenix; see <a href="http://ighalsk.blogspot.com/2010/07/from-bear-to-phoenix-introduction-to.html">my earlier post</a> for more.</li><br /> <li>Shapeshifters have MP as well as HP. (Do I need to explain HP and MP? Doesn't every CRPG have at least HP and most fantasy RPGs have MP?)</li><br /> <li>Spells (including changing to a different form) cost MP each turn to maintain; when the caster's MP is exhausted, all spells are dispelled.</li><br /> <li>The opponents are GULBs (Giant Undead Lady Bug). Again, there will be more added soon.</li><br /> <li>The screen includes a map, a mini-map (showing all allies and opponents) and a status line (showing messages).</li><br /> <li>You can recentre the map.</li><br /> <li>You can left-click for actions (including casting spells, moving and attacking) and right-click for information (current HP and MP).</li><br /> <li>The map has obstacles which block squares and tiles which don't. (Tiles are there to add atmosphere.)</li><br /> <li>Opponents move around obstacles. (So far, the path-finding algorithm is quite primitive; it will need beefing up to cope with lines of obstacles and dead ends.)</li><br /></ul><br /><br />Here's a couple of screenshots:<br /><br /><img src="https://sourceforge.net/dbimage.php?id=301029" border="1" width="640" height="307" alt="Screenshot of Star Mage Girl" /><br /><em>Shapeshifter at the start of the game.</em><br /> <br /><img src="https://sourceforge.net/dbimage.php?id=301033" border="1" width="640" height="307" alt="Screenshot of Bear" /><br /><em>Bear form, also showing an information window with current HP and MP.</em><br /><br />Again, see the original From Bear to Phoenix <a href="http://ighalsk.blogspot.com/2010/07/from-bear-to-phoenix-introduction-to.html">post</a> for image credits. (I drew the grass/weeds and rocks.)<br /><br />Where next? The plan is to add the following features for v0.0.2 (unless there's an intermediate release):<br /><ul><br /><li>Augmenter, who can cast spells that enhance or degrade bodies (maybe not minds just yet);</li><br /><li>Multiple allies fighting together (defending and helping each other);</li><br /><li>Being able to choose both the allies and the opponents for a battle;</li><br /><li>Polar Bears and Firebugs available as opponents;</li><br /><li>Possibly a character viewer that can show some or all of spells available, spells cast by this character, and spells cast on this character;</li><br /><li>Hopefully more Forms for Shapeshifters, at least Wolf and Tree.</li><br /></ul><br /><br />You have not seen anything yet!Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-64849756375133073472011-01-12T20:40:00.003+10:302011-01-12T20:47:06.432+10:30From Bear to Phoenix - on being a RockBalance is vitally important for making "From Bear to Phoenix" tactically challenging. So the cool ideas that I have for spells, or classes of mage, or whatever, ideally would be carefully reviewed and play-tested in case they would unbalance the game. (I guess there's an alternative - "throw them all in together and see what people think" :)<br /><br />For example, I would like to give a Shapeshifter one or more "emergency" Forms that they could shift into if a battle was going badly. I thought of two such: Tree and Rock. Of these, a Tree would offer rapid regeneration of HP and MP (due to sap and photosynthesis), but would be vulnerable to most attacks, in particular blade and fire. A Rock would also regenerate HP and MP, both somewhat slower (I claim that a Rock is naturally slower than a Tree), and would be highly resistant to most attacks except blunt attacks (possibly also lightning and a few others). Both would probably cost 0 MP to change to; this is part of the nature of emergency Forms, that they can be selected if the Shapeshifter has low MP. Both would not be able to move or attack. Both might also have some Stealth: for example, opponents would still see a Tree, but might not be able to tell that it is a Shapeshifter in the Form of a Tree rather than a natural tree.<br /><br />The question is, what if the opponents don't have any blunt weapons or attacks? The Shapeshifter could be unbeatable in such a battle: it could attack, change into a Rock when damaged, regenerate while ignoring attacks, change back into an offensive Form when it has regained HP and MP, and repeat as necessary. Trees don't offer the same problem, since they are vulnerable to most attacks (in fact, it might still be risky to turn into a Tree if you don't have allies nearby to cover for you).<br /><br />There are a few possible solutions that I've come up with so far: having a non-zero MP cost to becoming or remaining a Rock (a cost per turn would make Rocks much less attractive as emergency Forms), or limited or no (MP?) regeneration while in Rock Form (in which case they'd only be useful for prolonging battles, or perhaps stalling while allies regroup).<br /><br />Maybe the best approach is just to try out possible solutions: to implement Rocks on an "experimental" branch and play-test them to see how unbalancing they really are before integrating them into the trunk. It would be a shame if a Shapeshifter couldn't turn into a Rock at all ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-54655820418969948522011-01-12T20:35:00.002+10:302011-01-12T20:40:16.307+10:30From Bear to Phoenix - yoIt's been a long time since the last post, I know. Part of that was due to a 7-week holiday with my family around Europe (Germany was great), and part is due to still working on From Bear to Phoenix and not being ready to release yet.<br /><br />I can say that the game now has a Shapeshifter, who can swap between Human and Bear forms; that she can attack Greater Undead Ladybugs, though they can't yet attack back; and that it has menus.<br /><br />I can also say that I'm using Pygame, which I've found easy to learn and use (easier than Tkinter, which I used for Ighalsk), as well as YAML which again is much easier than writing my own code to read in data files, and Nose to run unit tests. Oh, and I am reusing Ighalsk, though more the design than the actual code itself (I think only one module has made it across in the entirety).<br /><br />More to follow.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-48157121368696934042010-07-31T20:34:00.015+09:302011-04-04T22:07:44.603+09:30From Bear to Phoenix - introduction to a planned new open-source CRPG'From Bear To Phoenix', the new project I have begun working on, will be an open-source fantasy turn-based RPG, with two key features:<br /><br />a) tactical combat centered on magic and co-operation between mages;<br />b) strategic planning and interacting with a dynamic world.<br /><br /><span style="font-weight: bold;">Magic</span><br /><br />In particular, all the PCs in the party will be mages. This means that there's no need to balance mages with warriors or other classes, and end up handicapping the mages; the game can unapologetically be designed so that mages are awesome from the start. There will also be a wide range of possible types of mage, and hence a large number of possible combinations; indeed, experimenting with different ways to build a team, play off strengths and compensate for weaknesses will be an important part of the game (and should be fun :).<br /><br />Here are the types of mage I'm currently planning to include:<br /><br /><ul><li>Shapeshifter: can shift into Bear, Wolf or Phoenix forms for combat, but only for a short time; Cat, Mouse or possibly Hawk for stalking, hiding and searching; Tree or Rock for regeneration and defence.</li><li>Lifegiver: can provide physical and magical healing.</li><li>Proxima: skilled at martial arts and short-range elemental attacks (such as ice touch).</li><li>Scout: stealthy, quick, can turn invisible - possibly can teleport short distances.</li><li>Augmenter: Enhances magical power, improves (or degrades!) bodies and minds.</li><li>Enchanter: Improves equipment for limited periods or more permanently.</li><li>Elementalist: Long-range, area elemental attacks and shields.</li><li>Heartguard: Specialises in shields, counterspells and dispelling.</li><li>Seer: Counter to a Scout; provides intelligence on the enemy's location and movement.</li></ul>Other possibilities are Disruptor; Weathermaker; Harpist; Balancer; Sleepweaver.<br /><br />Typically a party would consist of 6 mages, and possibly some (mundane, non-magical) mercenaries.<br /><br /><span style="font-weight: bold;">Sample PC and monster icons</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWQXd5pYvVKu2YMO0skLrsskAQsP-s9fcgbLI5rrv8AEghYdvXl11R3IkdzJUaLcxn7Gxv3TFGMtEGTbDCgxYNbARbtACEgccKNq4VRNvrXMbMbDa4IvlQWUTAwu_BbE1hGzfL8_oXzww/s1600/138255053.png"> <img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 271px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWQXd5pYvVKu2YMO0skLrsskAQsP-s9fcgbLI5rrv8AEghYdvXl11R3IkdzJUaLcxn7Gxv3TFGMtEGTbDCgxYNbARbtACEgccKNq4VRNvrXMbMbDa4IvlQWUTAwu_BbE1hGzfL8_oXzww/s320/138255053.png" border="0" alt="From Bear To Phoenix icons" id="BLOGGER_PHOTO_ID_5591706328245171938" /></a><br /><br />Here the icons represent, clockwise from the top left, a Lifegiver (healer); an Elementalist; an Augmenter; the Bear form of a Shapeshifter; the Wolf form of a Shapeshifter; a Firebug; and a Giant Undead LadyBird (GULB).<br /><br />Image credits: The Bear is taken from a photo by Alan Vernon, available at <a href="http://www.flickr.com/photos/alanvernon/3200782322/">http://www.flickr.com/photos/alanvernon/3200782322/</a>; the Wolf is taken from a photo by Drew Avery, available at <a href="http://www.flickr.com/photos/33590535@N06/3520737474/">http://www.flickr.com/photos/33590535@N06/3520737474/</a>. Both are licensed under the CC Attribution 2.0 Generic license <a href="http://creativecommons.org/licenses/by/2.0/deed.en">http://creativecommons.org/licenses/by/2.0/deed.en</a>. All other images are originally from Danc's PlanetCute set at <a href="http://www.lostgarden.com/2007/05/dancs-miraculously-flexible-game.html">http://www.lostgarden.com/2007/05/dancs-miraculously-flexible-game.html</a>, under the CC Attribution 3.0 License (see <a href="http://www.lostgarden.com/2007/03/lost-garden-license.html">http://www.lostgarden.com/2007/03/lost-garden-license.html</a>).<br /><br /><span style="font-weight: bold;">Multiplayer Battles</span><br /><br />It will be possible to play out a one-off battle, selecting a group of mages and their opponents and fighting on a chosen battlefield, either playing against a human opponent or an AI; if you've played multiplayer Battle of Wesnoth, you know what I mean. These battles will provide input on balancing the mage types (and indeed calculating relative strengths of mages versus various monsters).<br /><br /><span style="font-weight: bold;">Dynamic World, Non-linear Storyline</span><br /><br />As mentioned, the world will be dynamic; enemies will be modeled independently and will indeed capture villages and towns unless they are stopped. They may also capture and hold to ransom friends or family of the party. Events will happen whether the PCs get there in time or not; so resting enough to fully heal the party and replenish their spells will be a strategic choice, not a free lunch. All this implies a highly nonlinear storyline.<br /><br />Another planned feature is splitting the party. The player should be able to hire mercenaries and send them off on quests, with as many mages as desired. This would again be a matter of judgement; any understrength party would have a greater chance of failing at a quest.<br /><br /><span style="font-weight: bold;">Setting</span><br />The world would probably include standard fantasy features such as elves, dwarves, goblins, trolls and undead, with a few twists. Dragons will be very rare and powerful. There may also be Titans and their allies, very powerful and magical survivors of an ancient war with the elves.<br /><br /><span style="font-weight: bold;">Influences</span><br /><br />Influences of this game include Pool of Radiance (my favourite of the SSI D&D games I played), Wizardry games, in particular Bane of the Cosmic Forge and Crusaders of the Dark Savant, Final Fantasy X, Kingdom Hearts, and Battle of Wesnoth (as previously mentioned).<br /><br /><span style="font-weight: bold;">For More Details</span><br /><br />If you're interested in helping design this game, or just in knowing when releases come out, contact me by leaving a comment on this blog or send me a message via <a href="http://twitter.com/lukeschubert">my Twitter account</a>. I'll post details of a forum and/or mailing list on this blog when I set them up.<br /><br /><span style="font-weight: bold;">Closing Thoughts</span><br />This all sounds ambitious, and it will be a slow process developing this game, but the end result will be awesome.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-88758283560453392942010-05-24T20:35:00.002+09:302010-05-24T20:38:20.100+09:30Ighalsk - release 0.1.15I released v0.1.15 of Ighalsk some 2 weeks ago. It can be downloaded from its SourceForge project page <a href="https://sourceforge.net/projects/ighalsk/">here</a>. These are the changes since v0.1.14:<br /><br /> * Fixed bug in Monster Editor where the resists weren't updated after changing the monster's family. (The new values were present, but the recalculation wasn't occurring in the correct place.)<br /> * Switched to black background and white text, which is a more traditional roguelike design (and has more of an underground feel). Black monsters are now a dark grey colour.<br /> * Can now add monsters to a level using the Level Editor (and delete them if they're in the wrong place!).<br /> * Can now add circular rooms in the Level Editor. (This was something I wanted for the Tunnels of Lost Dreams in particular.)<br /> * Now need to specify a width and height when creating a new level in the Level Editor. (Now tests can use small levels for speed.)<br /> * Added initial (incomplete) version of the final level of the Tunnels of Lost Dreams - can't yet be entered in the game. A screenshot is <a href="http://twitpic.com/1fqz0j">here</a>.<br /><br />There was almost 3 months between v0.1.14 and v0.1.15, and there may well be a similar time until the next release, if not longer. I'd like to work on a game that inspires me more and that I'm more passionate about; I feel with Ighalsk like there's a lot of work to do before it achieves even close to the functionality that other roguelikes have. The next game will be an RPG, and will reuse a lot of Ighalsk's code, but will have a much more graphical interface. It will also be written in Python, and be open-source (GPL-licensed). If you'd like to know any more, there will be sneak previews and further discussion on this blog and/or on my Twitter feed.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-90220916567306464022010-04-15T21:29:00.003+09:302010-04-15T21:34:56.425+09:30Ighalsk - sneak peak of Tunnels of Lost Dreams final levelSo the Ighalsk Level Editor is coming along nicely - recently added options to add circular rooms and monsters. I've posted a screenshot of the final level of the Tunnels of Lost Dreams <a href="http://twitpic.com/1fqz0j">here</a>. The level is incomplete as yet - though since Lord Apathy is the architect, the final version will be incomplete as well.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-52235190943577609712010-03-16T20:51:00.003+10:302010-03-16T21:01:16.596+10:30Ighalsk - release 0.1.14I released Ighalsk v0.1.14 a couple weeks ago; it can be downloaded from its SourceForge project page <a href="http://sourceforge.net/projects/ighalsk/">here</a>.<br /><br />Here are the changes since v0.1.13:<br /> * Simplified controller/viewer swapping for different screens to make it easier (in fact, possible) to generate a Windows executable. I haven't figured out the best way to host this exe yet, since it seems to be too large to upload using the SourceForge File Manager (and SFTP isn't working for me). If you'd like a copy, please email me.<br /> * Added Stealth for Monsters; stealthy monsters will now only be noticed when they are closer to the Hero. There are a couple stealthy monsters to look out for.<br /> * Refactored Monster Editor to simplify it further (separate classes for separate states). This made the next change a whole lot easier.<br /> * Monsters can now have multiple attacks (weapons) instead of just one; this is also supported by the Monster Editor. This is most important right now for the uniques at the end of the first set of quests ...<br /> * Fixed a bug where the keys to move through pages in the Monster Editor (left and right) were the wrong way around. (For a long time, I've been using the buttons instead, and had to look in the code to work out the keys again, only to find that they were wrong.)<br /> * Can now add rectangular rooms in the Level Editor. I plan to also have an option of adding circular rooms, and maybe octagonal, and then there's adding a rectangle and circle of solid walls ...<br /><br />The next release may be in 6 weeks from now and/or may have a small number of extra features, since I've starting working on a new game ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-10920963420453471562010-02-12T22:23:00.003+10:302010-02-12T22:31:17.940+10:30Ighalsk - Thanks for the DownloadsThis short post is mostly to say, thanks for the downloads. I've said <a href="http://ighalsk.blogspot.com/2009/11/ighalsk-and-motivation.html">before</a> how I struggle with motivation when working on my own projects, and knowing that there are people out there downloading Ighalsk releases every month does make a difference.<br /><br />Thanks even more to everyone who's given feedback, both on this blog and in email. It all helps make Ighalsk better one way or another.<br /><br />Onwards to version 1.0!Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-45645532237192906692010-02-07T20:04:00.002+10:302010-02-07T20:12:16.276+10:30Ighalsk - The Nature of a HeroI claimed recently in an online conversation that I was taking a slightly different slant on the Hero in Ighalsk. I was asked for more details, and gave the following response (slightly edited for blog format and where I felt the need for improvement):<br /><br />I'm imagining the Hero as someone more than mortal, with extraordinary gifts and abilities. They are called to fight evil and complete quests. So far this is just expressed in the game as a series of speeches by the Queen who needs the Hero's help, by the replacement of "the dungeon" with a choice of quest dungeons, and by the extra powers that a Hero has that normal warriors (for example) don't have. (As opposed to say Angband, where my Priest might meet a Novice Priest in the dungeon and think hmmm, that priest is almost the same as me ...)<br /><br />The end of <a href="http://ighalsk.blogspot.com/2009/09/ighalsk-release-017.html">this post</a> has got my take on the different types of Hero, though this text isn't in the game yet.<br /><br />At some stage I'd like to link in the history of other Heroes who tried and failed to complete all the quests: to have the Queen refer to them, to have their entries in the high score table, to be able to find the weapons or armour they owned and maybe even their journals.<br /><br />I'd also like the game to show the reactions of townsfolk to the Hero, and to have these reactions change as the Hero grows in power ...<br /><br />This is something that I'm still struggling with and would like to express more clearly in the game. A roguelike in its usual form doesn't offer a lot of opportunities for roleplaying, but there is all the freedom of text (as seen in interactive fiction games) - so I aim to take advantage of that.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-23901779753594751012010-01-26T21:51:00.002+10:302010-01-26T21:53:57.414+10:30Ighalsk - Doom MerchantsWhere there has been a concentration of undead for several years, a strange, inky black substance can sometimes be found, pooled in hollows in the ground. If you picked it up, you would find that it pours and moves like a dark, viscous liquid - but it doesn't feel wet. At first it feels cold, then your hands become numb, then strength begins to ebb from your limbs. The solitary adventurer may be overcome at this point, but if you have friends (or at least companions) with you, a healing potion or power will restore you to health.<br /><br />The unscrupulous soon discovered that this substance, when suitably processed, makes an effective and deadly poison. They called it "raw doom" and set up Workshops of Doom, sometimes even Factories of Doom, to refine and mould it into a more convenient form. A drop or two in a cup of wine induces death while the drinker is sleeping that night. A weapon coated with it strikes through armour and is only stopped by certain white fabrics which have been blessed by sacred rites.<br /><br />The gathering, processing, selling, buying and owning of both raw and processed doom is illegal in all human, elvish, dwarven and goblin dominions. Nonetheless, there are some desperate souls who traffic in it. They call themselves Doom Merchants, or sometimes Merchants of Doom. The Doom Merchants venture deep into necropoleis, cemeteries and ghost towns, wherever they can find undead, and gather large quantities of raw doom. This they carry in large black bags - Bags of Doom. Their customary costume includes thick white gloves and masks for protection, though the black and white vests they also wear are thought to be ornamental.<br /><br />By all accounts they make substantial sums of money plying their trade, but slowly lose all colour in their skin and hair, then within a few years become weaker and weaker until they collapse. Rumour also says that after death, they themselves turn into undead, with a shadowed, striped, spotted form that breathes out thick clouds of doom.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-8390924646348662532010-01-23T20:27:00.008+10:302010-01-23T20:48:07.299+10:30Ighalsk - release 0.1.13I released Ighalsk v0.1.13 last night; it can be downloaded from its SourceForge project page <a href="https://sourceforge.net/projects/ighalsk/">here</a>.<br /><br />Here are the changes since v0.1.12:<br /> * Can now add up stairs and corridors in the Level Editor. Corridors in particular were tricky since the editor (or some other class) needed to store the start point until the end point had been selected. In fact you can add corridors between any 2 points; the editor will add two corridors (one vertical and one horizontal) between those points.<br /> * Walls are now only shown if seen nearby or remembered (if they have been seen before). In the previous release, monsters were only shown if they were nearby; this release is now more consistent between monsters and walls, though all treasures and stairs in a level are visible at all times ...<br /> * Visibility (the Hero's map) is saved to file, so that a loaded game will have the same memory of walls as when it was saved.<br /> * Refactored Monster Editor and Monster to simplify both by removing duplication - Monster Editor now uses the underlying dict that holds monster definitions more directly. Editing a monster's attack and resists are still special cases.<br /> * Started moving methods from LevelViewer to LevelFormatter so that they can be tested.<br /> * Added 15 new monsters, including Doom Merchant, Gloomhound, Lesser Mook, Huntsman Professor and Wool Golem. Renamed Zombie to Zythar Feeder; added Zythar Axeman and Zythar Deathbringer. I picture Zythar as semi-undead, crazed beings with gleaming green eyes; the Axemen wear black ribbons attached to their helmets.<br /> * Added Monsters for level 4 of each quest. There are some monsters in this new batch of 15 that can't be encountered yet - I'm saving them for level 5 of the quests.<br /><br />I've got a few features that I'd still like to add in before v0.2.0, as follows:<br />* Add functionality to the Level Editor to add rectangular rooms, circular rooms and their inverses (filled-in rectangles and circles of walls), zig-zag corridors and a shortcut out of the quest dungeon;<br />* Refactor the Monster Editor further to simplify the code, and extract editing attacks and resists to a new screen; then adding multiple attacks and possibly descriptions to a Monster;<br />* Add new damage types, in particular cold, lightning and poison - at this stage, poison wouldn't have the slow draining of health effect, but would be like any other damage type;<br />* Add Awareness and Stealth attributes and interaction, as a friend of mine suggested, so that some monsters can creep up on you if they've got high enough Stealth and you've got low enough Awareness ...<br /><br />The Awareness and Stealth functionality would also allow invisible monsters, though I'd prefer to wait to introduce them until I've also added some kind of Detect Invisible power, which would have the effect of increasing Awareness for a time - it's only fair to the Heroes.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-2356116831958491542010-01-13T21:12:00.003+10:302010-01-13T21:18:26.994+10:30Ighalsk - Three User StoriesI've been trying to write a decent introduction to user stories, and it hasn't been working. Instead I'll just summarise them as follows:<br />* User stories describe what the software should do.<br />* User stories are written from a user's point of view.<br />* User stories are often used in agile software development (see e.g. <a href="http://www.extremeprogramming.org/rules/userstories.html">here</a> or <a href="http://www.agile-software-development.com/2008/04/writing-good-user-stories.html">here</a>).<br /><br />Here are 3 user stories for Ighalsk.<br /><br /><span style="font-weight:bold;">User Story A.</span><br /><br />Tom feels the need for more, bigger and better monsters. He fires up the Ighalsk Monster Editor and creates a Plaid Dragon and a Blue Orc (starting from existing monsters and modifying stats appropriately). He tries them out and decides that yes, they add something to the game. Maybe Melissa would like them? He knows that she's already got the other monsters that he's created, so he just exports these two using the Monster Editor to a separate text file and emails it to her.<br /><br />Melissa (a friend of Tom's and a fellow Ighalsk player) reads the email, saves the file, and imports the monsters - again using the Monster Editor. Next time she plays Ighalsk, Plaid Dragons and Blue Orcs might be lurking in one of the dungeons ...<br /><br /><span style="font-weight:bold;">User Story B</span><br /><br />The Ighalsk website includes a page for uploading and downloading monsters. Each monster has a summary, a description written by its creator, and reviews posted by others. The Ighalsk community votes regularly on which monsters should be included in the next release, or the next bonus pack of monsters (downloadable separately).<br /><br /><span style="font-weight:bold;">User Story C</span><br /><br />Cass stares blankly at the screen. YASD - those stupid Plaid Dragons of Tom's! Ah well, they're not official - she'll remove them before she plays again. Now, what sort of Hero to play this time? How about a Mighty Hero for a change? The good thing about starting a new game, she thinks, is that all Heroes have plenty of powers right from the start, which gives them lots of options in dealing with monsters. Though they can still die if they make the wrong choices ... And each sort of Hero calls for a completely different playing style, and a different choice of quests.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-301993520770652202010-01-02T00:39:00.003+10:302010-01-07T22:02:06.805+10:30Ighalsk - release 0.1.12 (and 0.1.11)So I released Ighalsk v0.1.12 a few weeks ago (mid-December) but have only just got around to writing a blog post about it. And yes, I messed up again and needed to jump from release 0.1.11 to 0.1.12 almost instantly. (So 0.1.11 appears in the Subversion repository, but there's no separate download - the Level Editor doesn't work for that release.)<br /><br />Here are the changes since release 0.1.10:<br /><br />v0.1.12:<br /> * Added an empty file in data/quests so that this directory will be included in a zip file. :/<br /><br />v0.1.11:<br /> * Updated the Monster Editor to allow deleting when entering names of Monsters, filenames for Monster Dictionaries, Monster comments and weapon damages (dice descriptions). There are different characters allowed for each type of data, with the loosest constraints for comments (where punctuation is allowed) and strictest for dice descriptions (where 0-9, d, and + are the only characters allowed).<br /> * Monsters are now only visible when they are near the Hero, though with no line-of-sight; I'm assuming that the Hero has limited telepathy. Line-of-sight looks hard :/ so will come later. (Need to do more background reading on RogueBasin ...)<br /> * Added lit squares - this shows the limits of the Hero's sight (telepathy), hence the areas of uncertainty (where the Monsters could be hiding). Needs tweaking a little ... Currently all walls on a level are visible - this will change as well.<br /> * Added 9 new, more powerful and more expensive items of Armour - all are available in the Armour Shop. My current favourite is probably the "Hat of Serenity", which increases resistance to fear.<br /> * Removed the dungeon not associated with any quest; this meant that Habitat is no longer used, so removed it as well. Hooray for simpler code!<br /> * Added a basic Level Editor: currently this allows removing and adding walls, saving and loading levels. <br /> * Characters saved with release v0.1.9 *can* be loaded using this release. (Yes, I have tested this.)<br /><br />EDIT: The latest version can be downloaded from <a href="http://sourceforge.net/projects/ighalsk/">here</a>.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-16424431096114761692009-12-13T15:30:00.000+10:302009-12-13T15:31:39.538+10:30Ighalsk - The Nature of IllusionsLord Apathy has a number of different types of illusions serving him - some on loan from other Lords of Illusion. These include "Embarrassment" illusions, so called not because they embody embarrassment themselves (and somehow infect those they encounter), but because they induce embarrassment in others. With disparaging comments, a haughty stare, and eye-rolling, such an illusion conveys a strong impression that your appearance, actions and indeed thoughts and plans are ridiculous, inappropriate and just plain wrong. It is an illusion, but the feelings of embarrassment that it causes are real.<br /><br />Another type of illusion at Lord Apathy's command is "Paranoia". Again, it is not itself paranoid, though it may pretend to be. Instead, it induces paranoia in others. With whispered words, raised eyebrows and significant pauses, it insinuates that you have been betrayed and everyone is plotting against you, waiting for your slightest mistake to pounce.<br /><br />These illusions can be destroyed (unraveled) in several ways; they are resistant to physical weapons, but most vulnerable to a Philosopher's use of reason.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-49766984969212904482009-11-30T21:37:00.006+10:302009-11-30T21:43:40.867+10:30Ighalsk - Tests and TimeAt a recent checkin, there were 486 tests defined for Ighalsk, which took 31.8 seconds to run (on my old laptop: 500 MHz, Win98). I'm happy with the number of tests, but would like to decrease the time somewhat (still too many file accesses).<br /><br />A Google spreadsheet showing some numbers and times for different revisions is available <a href="http://bit.ly/8gNBzK">here</a>. I don't know why the time went down to 9 seconds and back up again almost immediately, but I think the dip from 23.3 seconds to 20.9 seconds was just after some test refactoring to speed up tests - probably replacing file I/O with StringIO (see <a href="http://ighalsk.blogspot.com/2009/07/ighalsk-in-which-i-discover-stringio.html">previous post</a>).<br /><br />Also, I now have a Twitter account <a href="http://twitter.com/lukeschubert">here</a> - any updates to these numbers/this spreadsheet will probably be posted on Twitter first (and possibly only). I'm working on increasing the popularity of <a href="http://twitter.com/#search?q=%23roguelike">#roguelike</a> ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-21282619465998895972009-11-26T21:02:00.002+10:302009-11-26T21:04:46.909+10:30Ighalsk and MotivationIghalsk is not the first software project that I've worked on at home, or even the first game. But it is easily the most mature and furthest along. With earlier projects, I've had a great idea, started working on it, got a few things done, and then my enthusiasm has slowly worn off and I've given up.<br /><br />With all my projects, I've only had an hour or two to spend on them in a night, and some nights that dropped to zero. Often in this time I'd get started on a task, but wouldn't have time to finish it - I might find a bug, or the task might be more complex than I'd planned for. Then I'd need to wait a day or more before I could work on it again. This was frustrating, and it made me feel like I was going very slowly.<br /><br />With Ighalsk, I've generally been able to get something finished each night. Part of the reason is that I'm using Test-Driven Development (TDD) almost all the time. This means that my work cycle is usually: write a new test, run it to check that it fails, write just enough code for it to pass, check the changes in. A lot of the comments that I make when I check in changes start with "Added test + implementation of ..." Similarly when I refactor, each refactoring is small and I test it before I go further, so that when I do make a mistake, I can go back and fix it easily. It helps that the full set of tests runs in less than a minute (though I still want to speed them up further over time).<br /><br />TDD has meant less bugs - or more to the point, that it's quicker and easier to fix bugs - and frequent refactoring (not to mention using Python!) has meant simpler code. Both of these factors have also helped me finish tasks more quickly and feel like I'm making progress.<br /><br />Motivation has been less of a problem lately; I've got to the point that I have a playable game, where it's easy to see how any new functionality can fit in and will be usable immediately.<br /><br />Doubtless it's also helped that I don't have any new games that I want to play at the moment - though often ProgressQuest is running in the background while I work on Ighalsk, and I've started playing FreeCol years and years after I last played Colonization ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-69383628920126758702009-11-20T11:12:00.002+10:302009-11-20T11:38:04.446+10:30Ighalsk - releases 0.1.9 and 0.1.10I've just released Ighalsk v0.1.10: you can download the source code <a href="https://sourceforge.net/projects/ighalsk/">here</a>. This blog post also covers the changes in v0.1.9, since I didn't write a separate blog post about those.<br /><br />Changes in v0.1.9:<br />* Weapons, attack powers and monsters now all do random damage (using a new Dice class). As discussed in <a href="http://ighalsk.blogspot.com/2009/09/ighalsk-release-018.html">the previous post</a>, a Dice object can be created with a string such as "4d5+6". There's a little bit more to it than that; for example, when returning the string (which is used in the character screen or when examining a weapon), zeroes are dropped: "2d3" looks much nicer than "2d3+0".<br />* Savefiles now use compressed versions of the Hero and the current level. This reduces the size of the savefiles by a factor of about 8, and should improve savefile stability between releases (e.g. changes to methods in a class shouldn't affect the savefile). More savings are possible: currently (in v0.1.10, I should say) the walls in a level are saved as a list of booleans, which takes a number of characters per wall. They could instead be packed into 16-bit integers (just for saving and restoring - for speed, they'd still be a list of booleans during play).<br /><br />Changes in v0.1.10:<br />* Refactored Level to use a list of booleans for walls. This speeds up level generation and also simplifies the code: there was a Square object for each square, doing nothing but holding and making available a boolean (whether or not that square contained a wall).<br />* Printing level to screen is now done in 2 passes for speed: the first for walls, the second for everything else. This is because everything else is sparse: that is, stored as a list of objects with positions, while the walls have one value per position. (Checking the list of monsters in a level for each square to see if it has a monster in it was taking some time.)<br />* Extracted resists of Beings, Families and Armour to a separate Resists class for ease of adding resists and returning the resist for a given damage type. This removed duplicate code between Being and Adventurer, and also simplified the size of both classes.<br />* Added BoostPowers which improve resistances temporarily, and Boosts to hold current improvements. Any Being can have boosts theoretically, though in practice only the Hero can, if she or he uses a boost power on herself or himself.<br />* Blessed and Mighty Heroes can now use a boost power: "Tenacity" and "Courage" respectively.<br />* Fixed bug 2889190 where up and down were reversed when using keys on the numeric keypad: thanks to Genosha for raising this bug.<br />* Added 7 new Monsters: Lesser Haunt, Paranoia, Zombie, Ivy, Flatworm, Ghost Spider, and Greater Huntsman. (The Zombie here is a common, stock-standard zombie; variants will be added later.)<br />* Added Monsters for level 3 of each quest.<br />* Characters saved with release v0.1.9 <span style="font-weight:bold;">*can*</span> be loaded using this release! (I've only tested this for one character, but I don't expect any problems for special cases.)<br /><br />I've now implemented most major pieces of functionality that I was planning to add before releasing v0.2.0. The exceptions are adding a Level Editor and special levels (level 5 of each quest) - the plan is to use the Level Editor to generate the special levels :). Of course, there's a bunch of tidying up and refactoring to do, plenty of minor functionality that could be added, content to add (new armour and monsters are the most critical parts) and no doubt bugs to fix.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-7363993332339493222009-09-29T21:18:00.005+09:302009-09-29T21:42:18.638+09:30Ighalsk - release 0.1.8I've just released Ighalsk v0.1.8: you can download the source code <a href="https://sourceforge.net/projects/ighalsk/">here</a>.<br /><br />Changes since the last release include:<br />* Throughout the code, Profession has now been replaced with Epithet. That is, Heroes now have an Epithet, which summarises their powers. This brings out more clearly that the powers and abilities of a Hero are inherent rather than the result of training. It also implies (at least in my mind) that the Hero is unique, and shouldn't expect to run into opponents with similar powers and strengths when following Quests.<br />* The available Epithets for Heroes are now "Mighty", "Philosophical", and "Blessed" (as described <a href="http://ighalsk.blogspot.com/2009/09/ighalsk-release-017.html">here</a>). That is, instead of "Joni the Warrior", a Hero would now be called "Joni the Mighty".<br />* When generating a level, corridors are now checked whether they overlap with existing open spaces before they are placed (and won't be placed if they do overlap). This makes evading monsters considerably easier - previously, the corridors were too tightly packed together and often did overlap; now, monsters often get stuck and have to wait until the Hero comes closer. (Yes, I guess I could implement path-finding (or at least a look-ahead of a few moves) when I get a spare couple of months, but I'm concerned that that would also slow down the game, which seems to have slowed down already over the last release or two for some reason.)<br />* Increased the size and number of rooms and corridors in levels, while keeping the number of monsters the same. This goes with the above change - now there can be more rooms and corridors without them being tightly clustered together. Reducing the monster density also means that there's not such a desperate scramble for survival when the Hero first enters the level. I'm still not altogether happy with how the rooms look on a level - the <a href="http://roguebasin.roguelikedevelopment.org/index.php?title=Basic_BSP_Dungeon_generation">BSP algorithm mentioned on Roguebasin</a> looks like it would generate better-looking levels.<br />* A Hero now has different physical, mental and spiritual strengths, depending on their epithet; a strength may add to the weapon damage, depending on the weapon. In particular, Mighty Heroes have physical strength of 4 and other strengths of 0; Philosophical Heroes have mental strength of 3 and other strengths of 0; Blessed Heroes have spiritual strength of 2, physical strength of 1 and mental strength of 0. So for example, a Mighty Hero using any bladed, blunt or piercing weapon will get 4 extra damage with that weapon; a Blessed Hero with such a weapon would get 1 extra damage, and a Philosophical Hero would get 0 extra damage. The exact values, as with so much else, will get balanced later, when the combat system is stable.<br />* Added a Character screen which displays the Hero's attributes, including the total resists (due to armour worn) for different weapon (damage) types such as fire, blade, or blunt, and the damage that the current wielded weapon will do, due to both the weapon itself and the Hero's strengths. This screen also displays the gold that the Hero is carrying; previously, the only way to know how much gold the Hero had was to try to buy something from a shop.<br />* Added descriptions of quests, which can be accessed from the Palace screen. This involved a few unexpected fixes, in that the description is read in from a text file and reformatted - but then spaces have to occur in the right places, I wanted to be able to have paragraphs in a description, and a couple other minor problems. Still, hopefully I'll be able to reuse the same format in other places (like monster and epithet descriptions).<br />* I also replaced one system test with a unit test for speed and simplicity - the unit test should still catch the same bug that the system test was designed to catch.<br />* Similarly, I refactored the Movement class to simplify it: it now only sends messages to one viewer object, where previously it also sent them to each viewer object in a list. (In the current implementation, there was only ever one viewer object in that list.) If necessary, with the refactoring, the sole viewer object could always forward messages to other viewers on a list - but I doubt that that will be necessary for this game.<br /><br />Next I might focus on monsters again. I'd also like to introduce variable damage for weapons, probably using a Dice class. The constructor method for this class would take a string of the form "4d5+6", which would represent 4 dice, each with 5 sides, with 6 added to the result. (Or if you'd prefer, each die could have 20 sides, and each number could be repeated 4 times.) Each dice object would then have a "roll" method to randomly generate a value.<br /><br />I would like to also introduce monster memory sometime soon - that's memory that the Hero has of monsters, not memory the monsters have of the Hero. It might be helpful to know what a Bladeworm or Nightcat looks like, though hopefully a Vampire Moth is self-explanatory ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-28671544578028617572009-09-01T22:23:00.004+09:302009-09-01T22:35:36.877+09:30Ighalsk - release 0.1.7I've just released Ighalsk v0.1.7 (you can download the source code from <a href="http://sourceforge.net/projects/ighalsk/">here</a>). A lot of little things have changed since the last release:<br /><ul><br /><li>The Monster Editor can now be navigated using buttons as well as keys; it also supports more than 12 monsters.</li><br /><li>The Hero (PC) can now die - yes, this is a necessary feature - perhaps unfortunately; I've been playing "Lego Star Wars" with my son, and it is refreshing that characters in that game just fall apart and quickly come back together again after dying. There have been some interesting discussions of permadeath in roguelikes recently <a href="http://www.gamasutra.com/php-bin/news_index.php?story=24468">here</a> and <a href="http://groups.google.co.uk/group/rec.games.roguelike.development/browse_thread/thread/2d75048abbdc99c1">here</a>.</li><br /><li>After examining an item, the next screen is either the Inventory or the Equipment screen (whichever screen the item was examined from). Previously the next screen had been the map of the current level; I've now implemented a stack of states, pushing the old state onto it every time the state changes, and popping off states after examining an item. This should be useful for other screen transitions as well.</li><br /><li>Treasures are now generated and placed randomly on quest levels, and can even be picked up by the Hero.</li><br /><li>There's also more to buy with treasure: I've added 3 new, more powerful and more expensive weapons in the Weapon Shop, one for each type of Hero (profession).</li><br /><li>I've added 9 new monsters, using the Monster Editor, and 2 new families of monsters (worm and plant).</li><br /><li>This gave me enough monsters to fill in level 2 of each of the 3 quests.</li><br /></ul><br />There were also a couple of small <a href="http://www.refactoring.com/">refactorings</a> that shouldn't affect game play but will make the code easier to maintain and extend.<br /><br />These aren't present in v0.1.7, but here are some draft descriptions of the different types of Hero (originally mentioned <a href="http://ighalsk.blogspot.com/2009/05/ighalsk-invisibility-and-awesomeness.html">here</a>):<br /><br /><span style="font-weight:bold;">*Mighty*</span><br />You were born with strength and athleticism far surpassing those of ordinary men and women. You are trained in the use of an incredible variety of weapons, and in the tactics of war. You have wrestled bears to the ground, defeated a squad of enemy soldiers single-handed, and executed flawless tactical retreats.<br /><br /><span style="font-weight:bold;">*Blessed*</span><br />You are divinely blessed. You have been given the gifts of healing and protection. You are called on to fight evil and bring peace to the land. At your approach, flowers blossom, birds sing more sweetly, and undead gibber in terror.<br /><br /><span style="font-weight:bold;">*Philosophical*</span><br />You have spent many hours studying books and in the company of your own thoughts, and thereby learnt many mysteries. You can influence the universe and shape matter and energy using only the power of your mind. You have also practised the arts of argumentation, and can use them to reduce untrained and unshielded interlocutors to a state of helpless confusion. You know the names of stars, the greater and lesser syllogisms, and the secret delights of pyromania.<br /><br />A friend also suggested another type of Hero, which I'm thinking of calling <span style="font-weight:bold;">*Cunning*</span>, but this type needs more features to support it and so might not make it into Ighalsk for a few releases yet ...Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com0tag:blogger.com,1999:blog-1372500089591131628.post-27790654634712525472009-07-22T22:06:00.002+09:302009-11-30T21:36:56.459+10:30Ighalsk - release 0.1.6I've just released v0.1.6 of Ighalsk <a href="https://sourceforge.net/projects/ighalsk/files/">here</a>. (Yes, I skipped v0.1.5 - I actually made a tag for it in Subversion, but then discovered when I tested the zip file that I'd forgotten to check in a new file ... so it got superseded by v0.1.6 immediately.)<br /><br />As <a href="http://ighalsk.blogspot.com/2009/05/ighalsk-release-013-and-plans-for.html">planned</a>, Ighalsk now has quests. True, each quest has only one level at the moment (there will eventually be 5 for each), but it's a start. One of the quests is to "defeat Lord Apathy in the Tunnels of Lost Dreams". For those who lack motivation for this quest, here's some background.<br /><br />Lord Apathy is the least powerful of the Lords of Illusion. He sits (or, more often, sleeps) in a half-completed maze of tunnels filled with lost dreams, brooding, bitter and unkempt. From here, he spreads despair, hopelessness and, yes, apathy across the countryside. He should probably be stopped.<br /><br />Another quest is "Defeat Elannonen the Lost in the Necropolis of Zezun". Queen Miala points out (will point out), "Why do we keep on building these cemetaries and tombs and graveyards if they just fill up with undead? Why don't we start cremating our dead?"<br /><br />The final quest present in this release is "Defeat the Witch-Spider Skkshryx in Arachnaxos", about which I have little to say except that the witch-spider is not fond of vowels.Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com2tag:blogger.com,1999:blog-1372500089591131628.post-62428889528309982492009-07-07T21:49:00.006+09:302009-07-07T22:13:48.731+09:30My Own Personal Sadness TrollThe inspirational <a href="http://www.fluentself.com/">Havi Brooks</a> has <a href="http://www.fluentself.com/blog/stuff/not-all-monsters-like-cookies/">several</a> <a href="http://www.fluentself.com/blog/personal/the-negotiator-the-monster-and-the-scribe/">posts</a> about talking to your monsters (fears, anxieties, stresses) about what they need and why they're doing what they're doing. She even suggests bringing in an (imaginary) <a href="http://www.fluentself.com/blog/personal/the-negotiator-the-monster-and-the-scribe/">negotiator</a> if that would help.<br /><br />My biggest problems at the moment aren't fears so much as sadness and anger. So I set up an interview with my own personal Sadness Troll. I picture him as huge and hairy, with big, weepy eyes - in fact, he looks a lot like the Muppet who helps to sell used cars in <a href="http://www.imdb.com/title/tt0079588/">"The Muppet Movie"</a>. (Thanks to Wikipedia, I've now discovered that this Muppet is called "<a href="http://en.wikipedia.org/wiki/Sweetums">Sweetums</a>" - more about Sweetums <a href="http://muppet.wikia.com/wiki/Sweetums">here</a>!)<br /><br />This was how the interview went. (I'm not sure exactly what the interviewer looked like, but let's assume he looked a bit like Kerry O'Brien.) There has been some post-production editing, but the basic insights were there at the start.<br /><br />Interviewer: Why do you make Luke so sad?<br />Sadness Troll: I have to keep reminding him that he needs to be successful! So yes, he gets sad when he doesn't measure up, but he needs reminding!<br />Int: Why does he need to be successful?<br />ST: Hmmm ... not sure. Because a lot of his identity has been bound up with that ever since school? Because people expect it of him?<br />Int: Could he try being different instead? "Dropping out" in some metaphorical sense? Become a "virtual" hippy <spelling> or pilgrim? You know, he's got the hair to be a hippy ... What about "be the change you want to see"? How about if he tried to be compassionate instead?<br />ST: Hmmm ... I'll have to think about that, but it might work.<br />(Sadness Troll wanders off, looking less depressed for the first time in a long time.)<br /><br />Another part of the interview that got cut from the program was this:<br /><br />ST: We need to see results, or we'll never know if he's getting anywhere!<br />Int: Isn't that negative reinforcement? Don't you remember that exercise that Luke did where he listed all the positive motivational techniques that worked for him?<br />ST: ... oh yeah. That's right. How about that.<br /><br />Besides Havi, it looks to me like the interviewer also drew on Personal Alignment from the <a href="http://www.mccarthyshow.com/">Core</a> <a href="http://ighalsk.blogspot.com/2009/04/my-favourite-core-protocols.html"> Protocols</a> - identifying a goal, working out what's blocking you, what you'd need to overcome that block, and repeating as necessary. Finally, the exercise that I've done previously to list postive motivational techniques came from <a href="http://www.barbarasher.com/">Barbara Sher</a>'s "<a href="http://www.barbarasher.com/livethe.htm">Live the life you love And Stop Just Getting By</a>". For the record, at the top of the list were:<br /><br />spirituality and praying; competition (including against myself); receiving praise; getting help from friends; starting small; deadlines (if well-defined and realistic).<br /><br />I gave these an A for how well they work for me; shaming got a D, and scolding, built and lecturing got an F.<br /><br />So maybe there are some techniques that the Sadness Troll could pick up ...<br /><br /></spelling>Lukehttp://www.blogger.com/profile/00409309320707978718noreply@blogger.com2