Thursday, December 23, 2010

Merry Christmas!

I'd like to wish all roguelike fans in general and Dweller fans in particular a very merry Christmas! I will try and release a new version of Dweller now during the holidays. Stay tuned!

While you eagerly await the new release I encourage you to vote for Dweller as Roguelike of the Year.

Friday, October 22, 2010

A short update

For those of youwho have followed Dweller for some time now know that releases come in bursts of two or three close together, and then periods of no updates. I'm currently really busy at work, but work on Dweller has not stopped. Fear not, a new version will be released in just a couple of weeks. The new release will include a bunch of bug fixes and minor changes but also a virtual d-pad as requested by a lot of touch screen players. Stay tuned!

Saturday, October 2, 2010

Dweller 1.5.1 - the minimap is upon us!

I have received a lot of positive feedback on the last couple of releases, and I must say that it is very encouraging and motivating! Keep the feedback coming!

I frequently get requests to add a minimap to Dweller, but it has not been a top priority so far. Since the amount of feedbacl is increasing and the minimap gets mentioned in quite a few e-mails I thought it was best to finally add one! The minimap is currently only accesible from the action bar at the bottom of the map. This means that non-touchscreen users can't access the minimap. I intend to fix this in a future version, but for now it's touch screen only, sorry!

I also solved a really nasty bug related to the Goblin King and moving back and forth between the level he is at. Thanks to Brooks Ellis and Emil Atras for reporting!

NEW FEATURES
  • Minimap!
  • Added a small '!' emote above a monster that wakes up
CHANGES
  • Damage against sleeping monsters is increased
  • Draining an already drained target has reduced chance of success
BUG FIXES
  • Scrolling a multi-line menu choice on the last line did not show the entire line
  • Some monsters were flagged as unique even though they weren't
  • Monsters were flagged as sleeping even though they weren't, and vice versa
  • The Goblin King would bug out when going back and forth to the level where he was generated

Friday, October 1, 2010

Sweden is finally on the Google Android market radar!

Google has finally announced support for paid Android apps for Swedish developers and users! This is a huge thing for Swedish Android users and developers and I'm sure this addition along with the other newly opened markets will be a boost to the whole market!

What will this mean for Dweller you may ask? At the moment nothing will change. Dweller will remain free of charge. I may at some point try out the market and see if I can attract some attention, but I would prefer to keep Dweller free. My only wish would be that more users who find the game fun would consider donating via Paypal, either in-game or via the link here on the blog.

Thursday, September 30, 2010

Dweller 1.5.0 - sleeping monsters and tile scaling

The latest version introduced automatic scaling of map graphics on high resolution handsets. I thought this was a good feature to add since I had received some feedback that it was hard to play on high resolution handsets. Apparently a lot of people did not agree with this... I've received a bunch of e-mails about it so I decided I had to bring back the scaling option to the menu. I have moved all settings to a separate sub-menu, and you will now be able to access tile scaling (Android only), popup toggling, keybindings and language settings in there.

In this version some monsters may be generated asleep. This means that you have a chance to sneak past them or simply move up close and whack them on the head! I will add a lot more features around the new sleep status. Spells that will make monsters fall asleep, backstabbing of sleeping monsters and so on

Rangers should also rejoice as I've upped the chance of finding a better bow and also added an Elven Bow and a Crossbow to the ranged arsenal.

NEW FEATURES
  • Added Elven Bow. Low weight, high damage.
  • Added Crossbow. High weight, very high damage.
  • Monsters can be generated asleep
  • Added a settings menu and moved key bindings and language settings there
  • Android - Reintroduced the option to change tile size
  • Language settings shown the first time Dweller is launched

BUG FIXES

  • Selected language is now properly saved between games
  • It is no longer possible to kill yourself if a spellcast backfires

Sunday, September 26, 2010

Dweller 1.4.2 - more bugs!

I guess last release didn't really solve all the issues... I did a bit of coding today, and with the use of some autoplay/bot magic I nailed another recently introduced bug caused by monster falling through trap doors. I also made a stab at resizing the UI on highres Android handsets. I've only tried this on an emulator as I don't have a WVGA handset myself. Please let me know how well it works out for you.

CHANGES


  • Android - Graphics is scaled at higher resolutions

BUG FIXES

  • Trapdoors caused unwanted behaviour when a monster fell through it (nullpointers)
  • Spelling errors and formatting
Download and installation instructions from the usual place: http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller

Saturday, September 25, 2010

Dweller 1.4.1 bugfix release

The AARP release introduced quite a lot of bugs due to all the localization support being added to the release. I have now managed to iron out most (all?) of the bugs introduced in the latest release. I'd like to thank everyone who sent me feedback and bug reports!

I also managed to find a fix a really nasty bug which has been in there for quite some time. Sometimes you came across map cells which seemed empty but was not passable ("The stone floor is in the way"). This was actually caused by something as unlikely as the code that handled the Stun effect.

CHANGES
  • Gold does not count towards the final score as much as it did before
  • Android - Increased font size for the unit frame
  • Unit frames have been moved to the bottom of the screen to stop them from being "jumpy" (when they followed the height of the messagebox)
  • Chance of the merchant having better gear is increased with player level
BUG FIXES
  • A lot of typos as a result of the translation support being added in the 1.4.0
  • Buy All and Sell All options did not work after the translation support being added
  • Wands accidently got double prefixes (Wand of Fire of Fire)
  • Dragon Scale Shield, Book of Teleport, Elven Cloak and Leather Cap had incorrect names
  • Fixed so that the merchant won't have a chance of being generated in an unrechable position
  • Solved a nasty bug related to stun effects that caused dead monsters to become invisible "left overs" blocking the player's way
Dowload and installation instructions from the usual place: http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller

Monday, September 20, 2010

Dweller 1.4.0 - amended release notes

I forgot to mention in my previous release post that the new version also features named mini-bosses. You will now be able to encounter beefed up versions of existing monsters. These mini-bosses will have randomly generated names such as 'Vilefang' the Ginat Spider and 'Lûgdûsh' the Orc.

Dweller 1.4.0 Annual Roguelike Release Party version

Wow, with the least possible margin I managed to get a new Dweller version out on the Android market and on the homepage. The localization effort I've been posting about elsewhere in this newsgroup took way longer than expected and it's not finished yet. The current version has support for English and slightly wacky Swedish. I need to work a bit more on the formatting and syntax but I'll get there eventually.

Besides the localization support a couple of new features are in as well:

NEW FEATURES
  • Trap doors that will make you fall to the level below 
  • Added action buttons on the map UI for touchscreen devices to simplify targeting and menu access 
  • Removed the statusbar at the bottom of the map UI and added proper unit frames for the player and the current target 
CHANGES
  • The merchant's inventory should get pruned and updated in a better way 
  • Fog of war ghosts of monsters have been removed. They were more of a nuisance than a help. 
BUG FIXES
  • Potions can no longer become enchanted by the world generator when generated from a predefined spawn point 
  • Saved games are no longer deleted when loaded at startup. The save game is kept until the game is ended to reduce the risk of losing a game to an application crash 
  • Saving redefined keys did no longer work 

Download from:

http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller

Monday, September 13, 2010

Help! Auyuda! Aiuto! Ajuda! Hilfe! Aider! помощь! 帮助!

As a part of my effort to have a new release ready for the ARRP I'm currently adding localization support to Dweller. I'm aware that this is a "nice to have" feature, and by no means a requirement. I still do this now for two reasons:
  1. Dweller runs on Android handsets and that exposes the game to players from all around the world. Players who would normally not play a roguelike and who are more likely to do so if they can play it in their own language. 
  2. The effort required to make the game localizable increases for every feature I add, for every item, monster, spell and so on. The longer I wait the harder it will be. Once in place it will add a slight overhead each time I add more text/content, but that is acceptable. 
My main concern now is how to actually get the game translated to more languages than English and Swedish. I have received offers to help out with localization that I will pick up on, but still, I need to make sure I cover all the big languages. So, if you are able to translate English into Spanish, Chinese (Mandarin), Portoguese, Russian, German, French, Italian or any other language and you are willing to help bring Dweller to your native language please drop me a line!

Apps built using Flash allowed back on the Apple App Store!

A few days ago Apple announced that they have removed the restriction on 3rd-party development tools for creating applications for iOS devices! This is great news for someone like me who works with Flash and Actionscript all day long. It also means that I should start considering a new cross platform game project targeted at Android, iOs and desktops. Right now focus is on the ARRP though...

Tuesday, September 7, 2010

What is going on in Dweller land?

I've been quite busy at work lately with a bunch of deadlines creeping up on me while I at the same time temporarily have taken over management of one of our dev teams... Still, progress is made on Dweller and I think you will enjoy the upcoming changes!

My goal is to release a new Dweller version for the ARRP (Annual Roguelike Release Party) on September 19th. Some of the highlights of the upcoming release:

  • An actionbar will be present while moving around on the map. From the action bar you will be able to quickly fire missiles, use spells or wands, access the inventory and so on. The actionbar will only be visible on touchscreen devices ofcourse.
  • New player and monster "unit frames" showing the essential information about the monster you are fighting
  • Named/unique monsters with themed names (ex Lughdush for an Orc, Vilefang for a Spide) as well as themed artifact names.
  • Language support. Soon you will be able to play in your own language (as long as you help me with translations :-) )
  • I hope to be able to squeeze in one or two new monsters as well

Saturday, August 28, 2010

Dweller 1.3.0 - this time with Cupcake support for real!

Well, what can I say. I failed in adding Android 1.5 Cupcake support even though I claimed doing so in the last release. It all boiled down to the incorrect minimum SDK version specified in the manifest file used when generating the application for the Andoird Market. This is now done and while I was at it I also tried to focus a bit on the Android crash bugs I get reported via the built in Android crash report system (a very helpful feature indeed!).

One of the major gripes some Android players have with Dweller is that when the app crashes an ongoing game is lost. I do realise that this is not good and I have tried to tweak how Dweller behaves during the entire application life cycle. Most of the issues I've seen reported are related to how Dweller handles when the application is paused, most often when an incoming call arrives. I hope that with the changes in this version the game will be more stable and lost games will be much fewer. Please report your experience of the stability of the game here or via e-mail. Your feedback is invaluable to me!

Get the latest version via the Android Market or via the instructions here.

NEW FEATURES

  • Added an option to Use All (for instance use 3 Mushrooms of healing in one go, without having to go in to the menu between each use)
  • Added Potion of Mutation
  • Pushable stones
  • Some rooms within the dungeon have predefined spawn points for items and monsters when the map is generated

CHANGES

  • Game is now saved when moving between levels. This will prevent complete loss of your character if the game crashes

BUG FIXES

  • Floating damage text was not shown correctly for ranged attacks
  • J2ME and J2SE - Floating damage text was clipped
  • Almost insta-death by draning bug solved (Vampire bats were lethal)
  • Android - Crash bug on app exit
  • Android - Cupcake was not supported afterall due to an incorrect minimum SDK version

Tuesday, August 24, 2010

Dweller 1.2.1

I found an issue with screen clipping on the latest release when drawing floating combat text on Android handsets. This was a minor issue, but annoying enough that I decided to make a patch release to fix it. I also added a couple of small features as well, but this should still be considered a patch release.

Download instructions here.

NEW FEATURES


  • Added a Buy all/Sell all command
  • A message is shown when you do not have enough money to buy an item
  • Added a low hitpoint warning message

CHANGES

  • Adjusted font height to work better in both landscape and portrait mode


BUG FIXES

  • Android - Floating damage text was clipped

Monday, August 23, 2010

Dweller 1.2 released - now with support for cupcakes

It is time for another Dweller release again. This release adds backwards compatibility for Android handsets (Cupcake through to Froyo). The release also contains some highly anticipated bugfixes for the J2ME version, some new features, a couple of changes and a bunch of minor bugfixes.

Download Dweller here.

NEW FEATURES

  • Version check at startup to avoid loading invalid saved data
  • Floating text animations above monsters and player when taking damage and upon xp gain
  • Added some stat gain potions
  • Amount of gold shown in the bottom status bar when interacting with the merchant

CHANGES

  • Added some extra info to the saved scores (char level and max depth)
  • Chests, stairs and traps will no longer be created in water
  • Updated the splash screen logo
  • Improved scrolling in menues, especially when using a touch screen

FIXES

  • J2ME - Exiting the app in any other way than from the game menu did not save any ongoing game
  • J2ME - Some of the default keybindings for navigation conflicted with keybindings for inventory and main menu on some handsets (SE C702 among others)
  • Worg graphics was still incorrect - doh!
  • The game over screen was shown multiple times which caused weird behaviour and multiple score entries
  • When enchanting a wielded weapon it gets unwielded but not wielded again. This was unintentional and has been solved.
  • When enchanting an item you have more than one of the whole stack got enchanted. Only stacks of ammo can get enchanted now
  • It is no longer possible to enchant a quiver of normal arrows as those are of unlimited supply
  • On really rare occasions the game crashed when entering a new level
  • Infrequent crash bug when dying

Tuesday, August 17, 2010

Javascript Magic - The JS1K compo

I really dig coding competitions, especially when the rules of a competition give limitations on the contestants and their competition entries. The limitations could be things like thematic (write a shoot 'em up game), input limitations (write a one button game), time limited (within 24 hours), language limited (Javascript only) or size limited (number of characters).

In the roguelike world we have the 7DRL annual competition. Write a roguelike game in 7 days. There has also been 1K competitions with really good roguelike entries.

The most recent competition I came across was the JS1K competition where you have 1KB of Javacode to do something really cool with (minified and all ofcourse). Some of the stuff is truly amazing (there is so much to link to... this one is nice as well, and this and this and this, oh I better stop). There is also at least one roguelike entry, Yellow vs Red.

Friday, August 13, 2010

The next Dweller release and the future

Now that I (hopefully) got rid of most of the serious bugs introduced these last couple of release I hope to be able to work a bit more on (re)playability. I want each Dweller session to feel unique and fun, and the gameplay throughout a game should not be too repetitive. I've learnt over the years that writing new features is not the hard part. The hard part of writing a game is to make the game interesting and fun to play. I have a list of things I'd like to do in future versions of Dweller, but it is far from complete and I am by no means a game designer. Things I'd like to do:

User experience
  • Add more in-game help
  • Make Dweller translatable
Inventory
  • Add an option to Use Many (for instance use 3 Mushrooms of healing in one go, without having to go in to the menu between each use)
Map
  • Place stairs further apart
  • Perhaps add several stairs up/down, possibly to different branches ("You see a staircase leading down to the sewers", "You see a staircase leading down to a dungeon")
  • Sewers: Add junk that can be searched for items (can spawn monsters and/or cause disease)
  • New map type: Catacombs. Undead monsters mostly. Coffins that can be opened for loot/monsters
  • New map elements: Altar (sacrifice items to gain favors), Teleporter, Fountain (healing, antidote, mutation, poison)
  • Minimap
  • Evaluate Fog of War monster "ghosts" - remove monsters and keep only items?
Monsters
  • Add some kind of danger assessment to monsters (Harmless, Weak, Even, Dangerous, Deadly etc)
  • Named monsters (mini bosses)
  • Immobile monsters: Statues, Deadly plants
  • Show monster description at first encounter of a new monster
  • More monsters!
  • Monsters should avoid undiscovered traps (they already avoid discovered traps)
Items
  • Other lightsources (fires, torches)
Spells
  • Curse (decreases chance of attacking/casting spells or maybe preventing items from being removed)
  • Acid (damages inventory and/or equipment)
Death/Win
  • Improve "game over" screen
Gameplay
  • Investigate if a Rest command should be added (regain HP with the risk of monsters ambushing)
  • Possibly add difficulty levels (Easy, Normal, Hard). Maybe prevent use of stairs up on Hard or something? No starting inventory? Separate highscore tables (or a single one with a score bonus depending on difficulty).

I am very interested in hearing some player feedback and suggestions on how to make Dweller even better. Do you have an idea how to improve Dweller? Please let me know!

Dweller 1.1.3 released

Time for another update. This time it's a mix of bug fixes, graphical tweaks and some changes to the save/load code in the Android version. Changes:

NEW FEATURES

- Monster descriptions are shown upon first encounter

CHANGES

- Underlying floor tile rendered for traps, doors and chests
- Android - save/load code reworked. Should work on 2.2 devices now
- When selling an equipped item you have more than one of you no longer un-equip the item first


BUG FIXES
- Solved a recently introduced bug with the map generator that could cause disconnected levels

Download and installtion instructions at http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller#Download_and_Installation_instructions

Tuesday, August 10, 2010

Dweller 1.1 bugfix release

The 1.0.2 release was unfortunately a bit buggy. I didn't have enough time to test all aspects of the release and had to release too early due to my vacation plans. Well, now I'm back and ready to release version 1.1 of Dweller. The new release is mainly a bugfix and balancing release with the following things done:


NEW FEATURES
- The merchant will be named after player who have contributed to the game by submitting bug reports or giving feedback

CHANGES
- Adjusted item prices. No more arrows being worth thousands of gold.
- When you sell something to the merchant you won't get paid the full price of the item

BUG FIXES
- There was an issue with Scrolls of Recall that left a player ghost on the level you travelled from
- Game over crash bug
- Crash bug when redefining keys
- Some monster graphics were wrong
- Traps and secret doors in the caves are no longer clearly visible even when not found
- Android - Cycle Target set to Menu key
- Going back from the Buy/Sell item list takes you to the correct screen
- Improved touch screen srolling in menues
- It was possible to kill the merchant with ranged attacks

Download and instructions here:

http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller#Download_and_Installation_instructions

Sunday, August 8, 2010

A new version o Dweller incoming soon

I've had two busy weeks with a lot of summer activities that have prevented me from working effectively on a bug-fix version of Dweller. Some work has been done, and I expect to get a lot done next week with a goal to have a new release out before the end of next week.

I would like to thank everyone who have sent feedback on the latest release. Your feedback is invaluable! As a token of my appreciation everyone who have given feedback or will give feedback in the future will get their name into the game. The merchant on level 1 will be randomly named each game from a list of people who have given feedback. You will come across merchants like Jeff the trader, Mateusz the merchant and so on. Thanks again!

Monday, July 26, 2010

Dweller bugfix

It turned out that there were problems with the sewer level that I did not catch when testing... how sloppy of me... :-( Since I'm on my way on a one week vacation I had to release a patched version (1.0.2) with the sewer level disabled. I'll release a proper bugfix next week. Sorry for the inconvenience...

Dweller 1.0 released

I released a new version of Dweller today. The new version comes packed with goodies, most notably a well deserved graphical overhaul, courtesy of Oryx. The graphics also comes with simple idle animations. In the next version I have plans for things like attack and spell animations.

In this version I have also decided to remove the ASCII version of the display completely and make the game more accessible to new players outside of the roguelike scene.

Another brand new feature is the merchant on the surface from whom you can buy and sell items. This should increase survivability quite a bit and make the game easier.

Download from:
http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller#Download_and_Installation_instructions

Change log:

NEW Brand new graphics
NEW Simple idle animations
NEW Merchant on the surface to buy and sell from
NEW Scroll of Recall to move between surface and deepest dungeon level visited

CHANGE ASCII mode removed

FIX Null pointer on rare occasion when switching level
FIX Null pointer when viewing an empty inventory/ability category
FIX Runetime exception when restarting the game after it has been halted (Android)

Friday, July 16, 2010

New graphics for Dweller

hSince the initial release of the Android version of Dweller I have come to realize that the current graphics for Dweller simply wont work on higher resolutions. The 8x8 tiles will not look good when scaled to above twice their size and I need at least 24x24 pixel tiles for high resolution devices.

I decided to make a post on a few pixel artist sites like Pixel Joint and Pixelation. I was surprised by the number of replies I got and the quality of the sample artwork many of the pixel artists sent me. I finally made a decision to work with a really talented US based pixel artist who goes by the handle Oryx. I first saw Oryx work at TIG Source a while back and was struck by the retro style and the crispness and overall coolness of the graphics he makes. I'm happy to be working with him and hope to have a new version with Oryx' graphics ready in a week or two.

Here's a few screendumps from a dev. version of Dweller showing the new graphics:

The guy next to the warrior with the sword is a merchant. In a coming version of Dweller you will be able to buy and sell things to the merchant to get upgrades and means of improving your survivability in the dungeon.

Tuesday, June 29, 2010

Dweller for Android released!

I'm happy to announce my first release of Dweller for Google Android! The version is a bit of a beta version, but is perfectly playable. I want to improve the UI and graphics much more before I can say that I have a proper version for Android.

Dweller for Android can be downloaded for free from the Android marketplace (do a search for Dweller and you should be able to find it), via this direct URL: market://search?q=pname:org.roguelikedevelopment.dweller.android or using the QR-code on this page.

New versions for J2ME and J2SE have also been released, but not much has changed since the last release. Changes and additions:

NEW All text now has a small drop shadow

CHANGE Locked the navigation keys completely from being redefined as it risks screwing things up if redefined the wrong way

CHANGE Added left/right commands as valid ways of navigating back and forth in menues (this used to work in old versions and is now back on player request)

Download from: http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller

Tuesday, June 8, 2010

Dweller on Android coming soon

I got my HTC Legend a couple of days ago, and I immediately started coding on the adaptation of Dweller for Android handsets. The process is a fairly simple two step process:

1) Create a main app and implement an interface for providing the core game code with a means to load files, get default keys etc.

2) Create a view/gui class and implement an interface for providing the generic UI code with a way to draw tiles, text and primitives

The above is already done and Dweller is running on my Legend, BUT the much bigger resolution paired with the less-accurate-than-mouse touch screen (or do I have huge hands?) makes it hard to interact with the game in a good enough way. The graphics I use is simply too small, even at 16x16 it is hard to tap on the exact item/Monster/dungeon feature on the map you want to interact with. I am currently working on a context sensitive action bar that will show available game actions such as a Pick Up icon when standing on an item, an Open/Close icon when standing next to a door (problem is how to solve the case where you're standing next to more than one door), a Menu and an Inventory icon to open the main menu and inventory respectively and so on. I am also looking into changing the graphics and possibly ripping graphics from somewhere until I find someone who can help me do some larger graphics of my own. Any takers? :-)

Monday, May 3, 2010

Problems with the latest Dweller release...

The latest Dweller bugfix and stability release went out the door a little too fast. Unfortunately it contains an issue when saving highscores... so much for a stability release, hmm. The game is still fully playable, but no scores will be recorded. I'm away on vacation and won't be home until the 12th of May, so I can't get a bugfix out of the door until then.

Thursday, April 29, 2010

Dweller 0.15.1 bugfix and stability release

I have recently run into a couple of weird bugs when playtesting Dweller. One time I after loading a saved game I came across a map cell that looked like a normal floor tile, but it was impossible to move there. After some inspection and hacking I came to the conclusion that it had contained a dead ooze, that for some reason left it's id on the map cell, but was removed from the main list of monsters. I think the problem was caused by killing the monster with a weapon of displacement/knockbacks, but I'm not sure yet. I've also come across an irreparable save game...

I've improved the error handling drastically to help me catch weird situations like the ones mentioned above. If you come across a Dweller error screen with some log output and an error message please let me know!

Get the new release from:

http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller

or try the desktop version straight away:

http://www.roguelikedevelopment.org/dweller/DwellerJ2SE.jnlp

Change log:

NEW Dweller Desktop now properly resize the drawing area when the window is resized
NEW Greatly improved the error handling when loading/saving data
NEW Added a loader/progress screen when starting Dweller to give feedback while waiting for the game to start

CHANGE The bottom bar is now hidden when showing item categories
CHANGE Additional drops from dead monsters favor the cell the monster was in if it is empty, instead of spreading it to adjacent cells

FIX Some key codes on some handset models did not show correct key names in the Commands menu
FIX It was not possible to close an opened gate
FIX The Dweller Mobile code to properly resize when the canvas was resized (not sure if/when that ever happens) did not work

Wednesday, April 14, 2010

Dweller 0.15.0 released - desktop support added

I have released a new version of Dweller. The new version features a couple of bug fixes and some new features. Most prominent are the progression/kill tracker that lists slain monsters and J2SE dekstop computer support. The purpose behind the desktop version is not to compete with PC/Mac/Linux roguelikes. I view it as a way to try Dweller on a desktop computer before dowloading it to your mobile.

Download and installation instruction:
http://roguebasin.roguelikedevelopment.org/index.php?title=Dweller

Try the desktop version straight away (or download from link above):
http://www.roguelikedevelopment.org/dweller/DwellerJ2SE.jnlp

Changelog:
NEW Desktop J2SE support
NEW Improved feedback from charmed monsters
NEW Added a monster kill tracker to the character menu. First time kills reward double the amount of xp
NEW All items now have a value in gold, in preparation for features to come...
NEW Monsters, primarily humanoids, now drop gold in addition to other loot
CHANGE Made targeting a bit more intelligent. If no previous target exists it is always the closest one that gets picked first
CHANGE Some keys are now locked so they can't be redefined. This is to prevent a user from redefining keys and completely block navigation within menues
FIX Targeting no longer incorrectly cycles through items when it isn't supposed to
FIX It is now possible to exit the hiscore and game over screen by pressing center/select, not only menu and exit
FIX Selecting an inventory category other than ALL sometimes caused the incorrect category of items to show

Flash for iPhone? Apple says no!

A million people have already blogged about this, but I would still like to chime in on the matter. As most of you are aware Apple updated their already pretty strict License Agreement for the SDK to read:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).


This could potentially mean that use of 3rd party tools such as Flash CS5, Unity 3D, MonoTouch and PhoneGap to create iPhone/iPad application would be a breach of the license agreement. ArsTechnica have wrapped it up pretty well, and I agree that the real reason for this is to target both Adobe (Flash) and Google (Android). We know for a fact that Steve Jobs doesn't have any nice things to say about Flash and it is pretty obvious that the biggest competitor to the iPhone is handsets running Android OS.

Additional reading:

http://techcrunch.com/2010/04/10/steve-jobs-responds-to-iphone-sdk-complaints-intermediate-layers-produce-sub-standard-apps/

Wednesday, April 7, 2010

Single Malt de Bretagne?

When I visited my local Swedish monopoly liquor store (yes, you can only buy beer, wine and other alcoholic drinks at government controlled stores in Sweden) the other week to buy a new whiskey for Easter I came across a French whiskey, Armorik. I've heard good things about French whiskey and I believe in stepping out of  ones comfort zone from time to time so it was a natural choice to put it in my shopping basket on my way to the Scottish section. The next evening I decided to give my new French acquaintance a try, and I must say I enjoyed it very much! The whiskey had a nice peatiness, with cask notes, barley and dried fruits.

Wednesday, March 31, 2010

Dweller is running on Blackberry devices!

Previous versions of Dweller have unfortunately not run on all Blackberry devices. The game used to crash on most models. The cause of the crash was actually a rather interesting one. In older versions of Dweller all game data (monsters, items etc) were compiled into the code through a single auto generated static class. The class was generated by a parser tool that parsed an XML file containing all the game data. Due to the size of this class and all the static data it for some reason caused a crash and the rather cryptic "invalid constant pool index: 0 in " error message.

So, why didn't I use the XML file straight up and parsed it runtime instead of doing this complicated XML to static class thing? I did it for two reasons: 1) File size. The XML file would take up much more space than a compiled (and obfuscated) class file. 2) XML parsing on J2ME handsets is no piece of cake. There are XML parsers out there, kxml for instance, but they aren't very easy to work with.

My solution to the problem was to convert the XML to class parser into an XML to binary data parser. The parser spits out a couple of streamlined binary files, ready to be read back at runtime by the game. And that did the trick! Blackberry users around the world, rejoice, play and have fun!

Tuesday, March 30, 2010

Dweller 0.14.1 finally released!

I am happy to announce a new release of Dweller, my mobile roguelike. Dweller is a fully playable, completable and bite sized roguelike perfect for boring meetings, train rides and any other time when you need a time killer.

The most notable changes are the improved AI, the improved game balance, the introduction of weapon speeds and two handed weapons and items that increase your light radius.

Full changelog at can be found here and download and installation instructions here.

Have fun!

Tuesday, March 23, 2010

Benromach

During my recent visit to Scotland I had the pleasure of visiting Benromach. This beautiful small distillery, owned and operated by Gordon & MacPhail, is located just outside Elgin. The contrast between huge distilleries like Glenfiddich and Macallan and micro distilleries like Benromach (not sure if that is the correct label to put on Benromach, but in terms of production capacity they sure ain't big) is obvious but of no significance when it comes to the quality of the end product. On the contrary it was smaller distilleries like Benromach that surprised me the most. The standard 10 yo was a joy to taste, and I was struck by the complexity of such a young whiskey. It was also a nice surprise to see a distillery doing some organic bottlings, both peated and unpeated.

New Dweller release imminent

I am doing the final play testing for the next release of Dweller. It's been all too long since I released a new version. The list of changes is really long and should result in a much more pleasant and varied experience.

New features
  • A new door type has been added, the gate. It blocks movement but not line of sight.
  • I have received a lot of help over the years. People that have assisted me in one way or another are now acknosledged in the new Credits & About screen, reachable from the main menu.
  • Added a couple of items that increase the light radius
  • Added two handed weapons that prevent the use of a shield
  • Added items of better or worse than average quality, prefixed "Fine", "Worn", "Strong" and so on
  • Introduced weapon speed to allow for different playstyles using either hard hitting and slow weapons or fast weapons that hit for less
  • Some monsters can now be generated in packs
  • Improved fleeing and pursuing AI behavior
  • Monsters no longer step on known traps
  • Flying monsters (bat, wraith and beholders) are no longer affected by traps on the ground
  • Only intelligent monsters can open doors and pick locks. Stupid monsters need to rely on brute force to get passed a closed door.
Changes to existing features
  • Bashing open a door varies in difficulty depending on if the door is locked, jammed, or if it is a gate
  • The ranger has an increased light radius
  • Hitpoints are always increased by 1 when gaining a level
  • Visibility in the starting forest is no longer limited by the player's light radius
  • Weapons with an added effect (Fire, Poison etc) no longer rely on the player's Magic stat when determining effect
  • The bottom stats bar area is no longer taking up screen space on views that doesn't use it
  • The damage from attacks and spells is now determined using a slightly skewed gaussian distribution instead of a linear
  • Wands now have a limited number of charges. There is currently no means of recharging a wand
  • Items are now ignored when cycling through targets
  • When having an item with a beneficial effect selected in targeting mode only friendly creatures will be cycling through targets
  • When having an item with a harmful effect selected in targeting mode a hostile creature is selected by default instead of starting centered at the player
  • Targeting mode automatically targets an enemy if none is already targeted (previously the player was targeted)
  • Minor change to the Drop one/all menu. If a single item is selected the Drop one/all will be replaced by a simple Drop command
  • Damage done and taken is no longer linear. There is less probability to do max damage.

Bugfixes
  • Solved a fatal bug in monster movement code that could move the monster out from the map (and crash the game)
  • Ammo with a limited amount is no longer kept equipped when depelted
  • Removed double "You are no longer poisoned" messages when leveling up while poisoned
  • Removed double death messages when killing a creature with a ranged weapon using enchanted ammo
  • Made sure that tiled levels (the dungeon and sewer) are surrounded by an impassable border of wall tiles
  • It is no longer possible to go back to a finished game after killing the Goblin King
  • You will now get a proper win if you return to a saved map with the Goblin King on it and you kill him
  • Solved the problem with text flooding the bottom edge of a text box
  • Solved a crash bug when explicitly saving a game with persistent maps, leaving the level, coming back and loading again
  • You can no longer save scum chests. A chest will always contain the same item, no matter when you open it
  • You can no longer save scum scrolls of enchants. The result of a particular scroll of enchant applied to a particular item will always give the same result
  • Solved a potential problem when dropping parts of a stack of items or when cloning a monster
  • It is no longer possible to resist magic cast by yourself on yourself (for instance resisting own teleports)
  • Damage caused by displacement/knockbacks no longer reduce max hitpoints
Stay tuned for a release message here and on rec.games.roguelike.announce in a couple of days!

Monday, March 15, 2010

The 2010 Seven Day Roguelike competition has ended

This years seven day roguelike (7DRL) competition was recently ended with a record number of participating entries. I am really impressed by the number of entries that actually ended in success and playable games. I haven't had time to play them all yet, but I hope to do so in the coming days. I'd like to congratulate everyone that participated (success or failure alike). Well done guys!

Itemization woes pt.2

My quest for well balanced weapons (and in the long run armor and other items) is well under way, and I hope that the next release of Dweller will give the player a lot more choices and allow for different play styles combat wise. The most recent addition after differentiating item attack speeds is the introduction of two handed weapons. Two handed weapons will of course prevent the use of a shield while wielded, but will do slightly more damage and/or have an added effect such as a knock-back or stun effect. Other things I have thought of adding would be class restrictions, but I'm not so sure if that is a good idea. I'm leaning towards simply giving weapons and items stats that make them more attractive to some classes while being shunned by other classes. I'm interested in hearing fellow game developers experience with item balancing. Where to draw the line?

I have also added two basic weapon qualities besides the normally generated weapons. In the next version you will have a chance to come across weapons of a better than average quality, prefixed with "Fine" or similar attribute and weapons of worse than average quality, most likely prefixed with "Worn", "Dull" or similar.

Saturday, March 13, 2010

Itemization woes

In previous releases of Dweller there has been little reason to pick up and use a lot of the items available in the game. A lot of items were not balanced and almost no situation in the game justified use of them. I am trying to rectify this problem in the upcoming release, but even with such a simple game as Dweller it makes for a hell of a challenge. I can really picture the nightmarish endeavour of balancing a game such as World of Warcraft with thousands upon thousands of items, loads of stats, ten different player classes, a multitude of talents and spells. No wonder Blizzard has decided to simplify item stats in their upcoming major content release Cataclysm, due sometime late this year.

In previous releases when I have added weapons and other items it has been done without much thought. I've simply tried to assign stats that I thought might be representative of the item in question. A lot of times this has gone wrong and the item was rendered mostly useless. This time around I'm taking a much more pragmatic approach, using spreadsheets and graphs to try and balance an item in a way that doesn't make it the best item in the game, and everything else becomes useless. It's challenging and fun, and already after only a few hours of tweaking I think I have something much more balanced.

The whole process has had a side effect as well. The game has become slightly more complex. Dweller is meant to be a simple game without too many paramteres to care about, but when it came to balancing out items and allowing for different play styles it was too simple. The Broadaxe was the weapon of choice if you were a warrior. Nothing else could beat it. Now I've introduced an attack speed as well, and by doing so I have opened up for more variation. Now you can either go for big, heavy, slow weapons that deal massive damage, but at the same time gives your opponent more shots at hitting you, or you can go for light and fast weapons that deal less damage, but allows you to hit more often.

Friday, March 12, 2010

To open source or not, that is the question

I have recently been debating with myself wether to open source my roguelike game, Dweller, or continue keeping it closed source. Don't get me wrong, I think open source is good in so many ways, but I've grown very fond of my project and it feels as if I would lose some of the control of the code when opening it up to the public. It's a bit like when your kid starts kindergarten or fist class in elementary school. It's about cutting the umbilical cord and accepting that you won't be the only one for your little project anymore... silly, but still, that's how I feel. I think I need to go ahead with it and I have already started a Google Code project and checked in auxillary code (map and game data parsers). I just need a little more time to clean up some stuff so I don't look like a complete noob when I do my first proper commit of the game code :-)

Thursday, March 11, 2010

FlashPlayer 10.1 and it's implications

I had an interesting read the other day when I read Tinic Uros interesting blog post Timing it right. First of all it was very interesting to get a confirmation of how the Flash Player main loop works. It is basically a polling loop run 120 times per second. It checks timers, local connections, video, audio, frames and actionscript and handles each of them in sequence before doing an update of the screen if necessary. I'm still not 100% clear on how this ties into the FPS you set in your movie. Does it still poll 120 times per second even if you run your movie on 2 FPS?

Anyway, what really caught my attention and got me worried is the way the new Flash Player handles SWFs on hidden broswer tabs/windows. It basically puts hidden SWFs into hibernation by limiting FPS to 2(!), decreases timer intervals and local connections and video. The thought behind all of this is basically sane. There are way to many sites that are massive resource and CPU hogs just because they are running badly written Flash banners or apps. It is not sensible for Firefox (and other browsers) to take up 30-40% of the available CPU time just because it is showing (or rather not showing if the window is minimized or the tab is hidden) a couple of SWFs. What gets me worried though is the implications for applications and games. As one of the comments points out:

"I am thinking about situations where I have an application that is rendering or calculating something in the background that takes longer. Typically it will show a "processing..." progress bar which will make people want to switch over to a new tab to check their mail or browse around to pass the time. Of course with the new timer this will be fatal since the calculation will go to a crawl."

I'm also worried about the limitations put onto the LocalConnection, even when visible. According to the post:

"Local connections are limited and aligned to jiffies. That means a full round trip from one SWF to another will take at least 33 milliseconds. Some reports we get say it can be up to 40ms.".

This will essentially put an end to logging tools such as Arthropod, Alcon and DeMonsterDebugger that make use of local connections to get the log entries out of the door. An application that makes heavy use of logging will push out more logging entries than the local connection can handle. With 33 ms per call it's "only" possible to do about 30 log entries per second, and that may not be enough for some applications. I am very pleased that use a flexible logging framework at work, and for a couple of years now use the SOSmax socket server logger.

Longmorn


I did a trip to Speyside, Scotland a couple of weeks ago. The trip was a massive success and I came home with a couple of nice new acquaintances. I plan to put these recommendations out one by one in the coming weeks and I'm starting off with Longmorn. Longmorn was one of the biggest surprises of the trip. I did not actually visit the destillery (it's only open by appointment and it does not have a visitor centre or shop). I got a taste (or actually quite a few drams) of it from the lovely couple who ran the B&B (Greenhall Gallery in Cragellachie) where I stayed. It was the owners personal favorite, and do understand why. The taste was really rich and complex in the 15 yo that I sampled and I must say I was surprised when I learnt that most of the Longmorn whiskey ends up in blends. Well worth a try and it's a definite buy for me!

In the beginning...

My intention with this blog is to post my observations on all sorts of things I find interesting, annoying or quirky. I do not know what will end up in here, but let me give you a bit of background that will help you and me guess what may end up in here: I work as a professional Flash developer, I play a lot of computer games, I have a love for retro gaming, I'm a father of a small boy and I absolutely love whiskey and good food. Here we go!