Changelog
Current status of the browsergame with code name “Little Goblin”
Little Goblin Browsergame
Testserver: schedim.de
Projekt page: littlegoblin.de
Note: “Little Goblin” is the name for an open source browser game framework. It’s also the name of the reference implementation of a game using this framework.
- refactoring is good and will occur often
- game mechanics are still fluid and subject to change with notice
Current status of project Little Goblin
Version 0.3.2 “Tick-Tock” / 2013-02-12
- Fixed #3: add gameName config parameter as default title to pages.
- Changed: Run game ticks in a background thread (no more need for a cron job to run ticks)
- Fixed #14: Version link in footer was broken.
Version 0.3.1 “Resume” / 2013-01-27
- Fixed: admin can edit ItemTypes again.
- New: admin can assign categories to item types.
- Fixed: inputValidationService no longer croaks on ‘null’-String.
- Cleanup code.
- Added more documentation (items, guilds)
- Project is now language level Java 7
- Grails 2.2.0
Version 0.3.0 “Cleanup” / 2012-11-18
(a lot of internal changes)
- Updated to Grails 2.1.1.
- Fixed session handling.
- Fixed HTML error in /goblinOrder/_order_list
- Refactoring pages to use sitemesh layout instead of using homebrew solution.
- Fixed item filter: remove unnecessary conversion of list to array. (ItemService).
- Removed old prototyps JS-library files since we have been using jQuery for some time.
- Fixed message id in highscore.gsp.
- Added more documentation.
- Added custom equals & hashCode to many domain classes.
- Fixed: do not double-encode chatterbox messages.
- Fixed: textarea in chatterbox.
- Removed redundant “def inputValidationService”, which is inherited from BaseController.
- Started work on extended documentation.
Version 0.2.7 / 2011-10-29
- Fixed cronGoblin and CronController for recurring events (would previously go into an infinite loop).
- Added configurable registration with confirmation mail.
- Added testMode parameter to config file.
- Updated spring-security-core plugin
- Added FeatureAdminController.
- // Note: 0.2.7 will probably not work perfectly due to unfinished Grails 2 transition.
Version 0.2.6 - 2011-10-01
- mproved ItemType admin interface: you can now edit how many equipment slots an item takes.
- Updated french translation.
- Enabled configuration file outside of war: you can now override DataSource and Config by adding a file
"classpath:$ {appName}-config.groovy", or "file:$ {userHome}/.grails/${appName}-config.groovy" or "file:$ {System.env.LITTLE_GOBLIN_HOME}/$ {appName}-config.groovy"
this makes for better control and easier configuration of the database settings.
- Added an example configuration file.
- New install.txt and updated readme.txt
- Added optional Facebook like button (Don’t worry, you can configure it in your own game). (Facebook integration was done by Pauline).
Version 0.2.5 - 2011-08-28
- Fixed equip / remove equipment bug which rendered the main inventory section in the side inventory bar.
- You can now sell part of a stack of items instead of the whole stack.
- You can now define how many pieces of an item you want to buy.
- Items bought in the shop are stacked to existing items in your inventory (if they are stackable)
- ItemTypes have a package size - so it is possible to buy one set of 12 arrows.
- First part of ItemAdminController implementation.
Version 0.2.4 - 2011-08-08
- Refactored Quests, show QuestGivers in town.
- Updated design and layout.
Version 0.2.3
- Updated the french translation.
- Improved design and layout.
- GrandMelee now allows players to use items.
- Database schema changed.
- Removed inventory from several pages where it was not really useful.
- Move items from home to person and vice versa.
Version 0.2.2
- Fixed a little CSS bug
Version 0.2.1 - 2011-07-10
- Upgraded to jQuery 1.6.1.1
- Upgraded to spring-security-plugin 1.1.3
Version 0.2 - 2011-07-10
- Fixed bug in Mob class (Mob.name overwriting Creature.name) which could cause fights to throw a GRE.
- Basic Grand Melee now works (with the limitation that you cannot use items during the melee yet).
- Added CronGoblin module to repository.
Version 0.1.51 - 2011-06-04
- Added MobAdminController
- Added PostOfficeController: basic functionality to send items to other player characters (for a 10% fee).
- Fixed Bug in Puppet quest (would throw GrailsException).
- Added MeleeController - fight other players in a big melee. [This is not finished yet]
- Advanced french translation by keyznotized and jellina
Version 0.1.50
- Fixed bug in canEquipItem check: the code did in some cases return false even though an item was “equippable”.
Version 0.1.49a - 2011-05-10
- Fix for QuestController (did not work with new EncounterMob)
- Fix for mob images (did not work correctly with MobImage)
- Fix for quest steps (StepChild class not used correctly in some places)
- Fix for test quests: orc.encounter was assigned to other quest steps.
Version 0.1.49 - 2011-05-09
- Started translation to French (by keyznotized)
- New: You can manage reputation message maps in the administration section.
- AdminController for products (including ComponentAdmin and SkillRequirementAdmin). You can now create products for crafting which need components and require specific skills.
- Added AdminController for ProductCategories.
- Added ShopAdminController so it is now possible to create shops complete with inventory and owners.
- Added QuestGivers
- Added AdminController for QuestGivers and QuestTemplates.
- Added AdminController for Encounters
- New classes: EncounterMob, GoblinScript
- Fixed bug in admin controllers where single value selections in multiple-select fields were handled incorrectly.
- Added AdminController for QuestSteps
Version 0.1.48 - 2011-03-06
- Fixed NPE on some controllers (moved springSecurityService to BaseController) - reported by ra-hoor-khuit https://sourceforge.net/tracker/?func=detail&aid=3200353&group_id=317345&atid=1334694
- Upgraded to Grails 1.3.7
- Fixed NPE when removing equipped items. - reported by ra-hoor-khuit https://sourceforge.net/tracker/?func=detail&aid=3200354&group_id=317345&atid=1334694
- Added a name field to Encounter class to improve reusability of encounter steps in multiple quests. Changed BootStrap to reflect this change.
- Added LicenseAdminController: you can manage licenses for images (and later: other media objects)
- Changed MobImage class to map n:m MobTemplates to MobImages. This is a more elegant solution to have one mob have several images.
- Changed Image class and fight view to use direct URL instead of filename + hardcoded image path.
- Added ImageAdminController: you can now manage images in LittleGoblin.
Version 0.1.47
- Fixed: GetReward-Script croaks.
- Fixed: Create new character fails.
Version 0.1.46 - 2011-02-23
- Added Categories to ItemTypes and Shops.
- Added CategoryAdminController
- You can filter the items offered in the shop by multiple categories.
- Renamed class User to UserAccount because “user” is a reserved word in PostgreSQL (and quoting the table name did not work).
Known Bugs:
- GetReward-Script croaks.
- Create new character fails.
Version 0.1.45 - 2011-01-16
- Added TownAdminController.
- Added ArtistAdminController.
- Global config entries now may have a description.
- Added GlobalConfigAdminController.
- Added link to little goblin image on landing page.
- Removed unnecessary class ShopTemplate.
- Added DiceAdminController.
- Added ShopOwnerAdminController.
Version 0.1.44 - 2011-01-06
- Added GuildAdminController.
- Improved usability on AcademyAdminController.
Version 0.1.43 - 2011-01-05
- Fixed field type in UserProperty.
- Added relation to ItemType in RequiredSlot.
- Improved documentation.
- Added AcademyAdminController.
Version 0.1.42 - 2011-01-03
- Added mapping from image to artist class.
- EquipmentSlots now belong to creatures.
- Added administrative CRUD for EquipmentSlotType objects.
- Fixed relational mapping between Features and ItemTypes.
Version 0.1.41 - 2010-12-05
- Updated security system to grails core security plugin.
- Added administrative CRUD for CombatAttributeType as a first admin-feature.
Version 0.1.40
- Added logging messages during startup.
- Moved highscores from landing page to their own page.
- Added “Enter character name:” to start page so users will know what the text field is for.
- Changed login link so player is redirected to character list after login.
- Added logout link (placement is not optimal, but suffices for the moment).
- Improved player’s starting page.
- Added the basis of a simple help system.
Version 0.1.39 - 2010-10-20
- Academies now only offer skills which are exactly the level of the player character.
Version 0.1.38
- Added first version of crafting system.
- Items have a location (currently: AT_HOME / ON_PERSON)
- Items may be stackable.
- Display stackable items correctly in Inventory
- Improved code documentation
- Fixed bug with logging code in script classes.
- Fixed bug which prevented the “equip” action on items during combat.
- Improved tests (which still fail due to unresolved canoo webtest <=> ajax issues)
Version 0.1.37 - 2010-08-22
- Added API for cron process, which enables learning of skills after a given period of time has elapsed.
- Combat Skills are factored into the fight calculations.
- Show combat skills on character sheet.
- Fixed bug where new characters could be created with arbitrary attribute values.
Version 0.1.36
- Added Skills and SkillSets (which you can learn in the Academies) [working, but has no game effect yet]
- Added LearningQueues for Skills.
Version 0.1.35 - 2010-07-18
- Fixed bug where monster’s combatAttributes were not properly drawn from MobTemplate. https://sourceforge.net/tracker/?func=detail&aid=3027832&group_id=317345&atid=1334694
- Moved from Prototype to jQuery (JavaScript library)
- Added Academies (places to learn new skills)
- Added Guilds (as organisations which grant access to academies and later on may enable crafting abilities)
Version 0.1.34
- Added ChatterBox to Orders.
- Added classes for skills and crafting. (Currently unfinished, but compiles)
Version 0.1.33 - 2010-07-03
- Added MailBoxController and message system: Inbox, Outbox for player.
- Move messages from Inbox / Outbox to Archive, delete messages (still needs a nice icon).
- Added new file release on Sourceforge: https://sourceforge.net/projects/littlegoblin/files/
Version 0.1.32 - 2010-06-20
- HTTP Session now caches PlayerCharacter id which should reduce passing around of the pc.id parameter.
- Added GlobalConfigService: fetch global values (like: email of admin, price of coins, etc)
- Added the concept of coins for Admins who wish to commercialize a game based upon LittleGoblin
- Creatures (and PlayerCharacters) may now be male or female (or none).
- Added Guilds, which are called Orders in LittleGoblin. Players can join/leave/create etc a guild.
Version 0.1.31 - 2010-06-15
- Added PlayerMessages: Show the newest game events to the player.
- Added reputation system. You can now gain or lose reputation levels with a faction.
- Display reputation score and description on character sheet.
- Added test factions dwarves and elves.
- Added demo quest “A walk in the forest” to test reputation system.
Version 0.1.30 - 2010-06-12
- Added DamageType “normal” to the short sword and long sword.
- Added 2-handed Weapon long staff.
- A user can create new characters.
- New page: Character Sheet, available from town view.
- Characters may have descriptions.
- Fixed bug in Healing Potion.
- Items may be used again.
- First release of war file on Sourceforge.net for download.
Version 0.1.29 - 2010-06-12
- Introduced AJAX: Shopping and equipping your character is now a lot easier.
- Inventory and equipment is shown outside of combat.
- Removed empty “Background” element on start page
- Implemented option to sell items in the shop.
Version 0.1.28 - 2010-05-31
- Fixed some HTML issues
- Moved links to game status and imprint into left column to simplify layout
Version 0.1.27 - 2010-05-26
- Filter solved quests from town view.
- Reloading after server restart can lead to NPEs. Fixed some of those.
- Added CombatAttributes: a weapon or creature (or PlayerCharacter) may have attacks modifiers now like a fire or cold attack.
- CombatAttributes also are used to the enable resistance modifiers to specific attack types.
- Added straw man quest
- Added some weapons (torch, toothpick of death, fire whip, short sword, long sword)
- Fixed StackOverflowError in equipItem action
- Added WebTest for equipItem
Version 0.1.26 - 2010-05-24
- Fixed HTML code
- Fixed StaleObjectStateException bug (hopefully)
- Added login name and password of test account to login screen.
- Added new 3-column css layout, which looks ok (except on IE).
Version 0.1.25 - 2010-05-16
- Added functionality for quests with branches.
- Quests may have rewards.
- QuestsSteps may allow the player to pick up items and deliver them.
- Added link from shop back to town.
- Added ugly crone quest.
- QuestSteps may have EncounterScripts which are executed when the player has an encounter.
Version 0.1.24
- refactoring of Item classes: moving them into their own package.
- refactoring of Feature class: item features are no longer scripts (which are ugly to debug) but classes.
- Test-Char Gobi starts the game with 20 gold.
- ItemTypes have an availability (= chance of appearing in a shop)
- added first webtest: ShopWebTest (which logs in and tests if it is possible to buy an item)
- PC is resurrected when he re-enters the town, not upon starting a quest.
- fixed layout on death page slightly.
- added some more quests for testing.
- improved layout of fight page (event messages do no longer fill up the whole screen).
- fixed GRE when fleeing
- fixed “combat unfinished after flight” bug (after login, user would be returned to the combat from which he ran away)
- added info text on landing page (currently for schedim.de, where the test server is running)
Version 0.1.23 - 2010-04-19
- added the first simple version of a shop. No inventory yet, but it can be selected in the town overview.
2010-04-18 Little Goblin goes to Sourceforge
Little Goblin is now a Sourceforge project
Currently I am setting up the project, importing the source code from my private Subversion repository and so on. v 0.1.22 - 2010-04-13
- Show PC base data (HP, XP, Gold) in Town & Fight controller.
- Render character and mob data from a template.
- Added artist’s name and a link to the artist’s website for monster images.
- Added: quest.description
- The player is shown the quest description before he starts the quest.
- Static images are now served from images.schedim.de (and are no longer included in the goblin.war)
Version 0.1.21
- Changed to versions instead of iterations. Its more natural.
- Quests have a level. A player is shown the top 10 quests for his current questlevel.
- Changed from in-memory database to MySQL (Postgresql could not be installed on the server…)
- Added Artist class + first image by Lucas Pandolfelli
- MobImages may have height+width attribute set
2010-04-11
Wrote down some thoughts about where this games is going - something like a roadmap
;)
Iteration 20 - 2010-04-06
- Added (very simple) town page
- Added (very) basic quest infrastructure - it’s not much, but should work for the moment. You can start the (only) quest, fight the orc and return to town.
Iteration 19 - 2010-03-21 / published: 2010-04-06
- A resurrected character is now restored to full health (instead of 10 HP).
- Count a characters victories.
Iteration 18 - 2010-03-20 / published: 2010-04-06
- MobTypes may have images.
- Monsters get one random image on creation. If a creature has no image, a help message is shown.
Iteration 17 - 2010-03-16 / published: 2010-04-06
- Creatures may have gold.
- Items may have a gold value which is initialzed from the item type’s base value.
Intermezzo - 2010-03-26
no update for some time - system is currently being refactored to use towns and quests.
Those changes need to be in place all at once, because for example a town without a way to start a quest or a quest without a goal and some reward would not be very useful or no fun to playtest.
But to use Granny Weatherwax’ words: It ain’t dead.
Iteration 16 - 2010-03-15
- Added death count to PlayerCharacter (and show on Highscore).
- Fixed HTML on some pages (missing closing tag).
- Adjusted CSS / layout on login page.
- The effects of the healing potions now appear in the list of combat messages.
- (config: visiting schedim.de does no longer present you with a login screen (i hope))
Iteration 15 - 2010-03-14
- Fixed broken HTML (missing ‘body’ tag on some pages).
- Added basic CSS stylesheet.
- Added landing page.
- Added ACEGI security plugin with registration & login.
- Added EquipmentSlots (still without function, but initialized for each player character).
- Added equipment - it is now possible to equip items (if appropriate).
- Added Item “Leather cap” (currently without function except to test equipment).
Iteration 14 - 2010-03-12
No code update, but I created a couple of tasks and wrote a post about Artwork needed for Little Goblin
Iteration 13 - 2010-03-09
- Creatures now have maxHp (before, there was only one variable “hp”)
- Added a new Item: Potion of Healing
- Items can have features now (which are little Groovy scriplets)
- Items can have a number of uses.
- Items may be rechargable (otherwise, they are destroyed once they have been used).
- Items have a type (before, each user would have received the same items. Now, new items are instantiated whenever treasure is found).
- Added an imprint page (for legal reasons)
Iteration 12 - 2010-03-07
- Added 6 Monsters for a little variety.
- Show combat messages on death and victory screens so you can see the last event of a fight.
- Fixed bug where combat messages were saved out of order which made it look like a dead char was still fighting.
Iteration 11 - 2010-02-28 - inventory
- user now starts with a list of characters and may choose one of them to fight. Currently: 1 available.
- show inventory during fight
Iteration 10 - /2010-02-24/ item
- added the first test item
- added TreasureService class, which will return a list of items for a mob. Currently: always return the one and only item available.
- use Subversion for Version Control.
Iteration 9 - /2010-02-24/ fix db
- show current iteration # on each page
- cleaned up domain classes (Dice is no longer serialized but a proper domain class now)
Iteration 8 -/2010-02-23/ configure
- Configured logging correctly. Debugging is much easier when you can actually see what happens.
- Added this page.
- Configured apache for new domain (schedim.de). As soon as the DNS records are updated, it should function as a reverse proxy for the Jetty server on this machine.
Iteration 7
- Installed Jetty6 on dewarim.com
- Uploaded goblin.war - though it does not redirect properly yet. Probably needsd mod_jk
Iteration 6
Groundwork: added classes:
- Item, ItemType
- Character.slots + EquipmentSlot
The new classes are currently without functionality.
Iteration 5
- added cause of death to highscore
Iteration 4
- moved CombatMessages relation to Combat class.
- CombatMessages are displayed in i18n-version
- unsolved: logging does not work.
Iteration 3
- Added MobTemplate so it’s possible to have more than one Monster of a given type. Also, it is now possible to individualize monsters.
- Added relation Character - 1..n - CombatMessages to store CMs along with the character.
Iteration 2
Automatic refresh of fight-page. Problem to solve:
<meta http-equiv="refresh" content="5;URL=/goblin/fight/fight?pc=${pc.id}&mob=${mob.id}"/>
does work,
<meta http-equiv="refresh" content="5;URL=/goblin/fight/fight?pc=${pc.id};mob=${mob.id}"/>
does not work - error message: (Provided id of the wrong type for class de.dewarim.goblin.Character. Expected: class java.lang.Long, got class java.lang.String)
Iteration 1
Basic Functionality
- You start the game with a goblin. You can fight one monster, Ork.
- Both you and your opponent have the same chance of winning.
- You can flee at any time, in which case you will be send back to the start page, where you can start a new fight, being completely healed.
- Winning a fight will net you 1 experience point.
- Loosing a fight will gain you an entry in the highscore list, which is sorted according to experience points.
- No matter if you loose or win, the game will start over and you can gain more experience points. Between fights, both combatants are set to 10 hit points.