S.C.O.U.R.G.E. uses SDL
(incl. SDL_net and SDL_mixer), OpenGL
The code is written in C++ and compiles and runs on Windows, Linux and the Mac OS X.
Below is some of the planned work for the game. Feel free to contact me
if you're interested in contributing.
Features for version 0.17:
Features for version 0.16:
- Paperdoll inventory. New inventory slots, etc. See: this post
- Outdoors. This needs a bit of planning... I'd like it to be a non-random world (like ultima IV). Some requested features are: city, smith/armory, tavern, player's own house. Map needs to be persisted.
- Improved method of enchanting items. See: this post
- Separate display name and index-string of items, creatures, etc.
- Move in-code strings to text files
- Default game to en_US locale
SAVE GAME * this is vital imho;
-Fixed Broken for cave-maps
-Done Make sure itemPos is saved correctly
-Done Save extra map data: secret doors, levers, etc.
-Done Do not create npc txt files
-Done Test with storyline levels
-Done Test with edited levels
-Done Instead of current name scheme, create a maps subdir per savegame
-Done: hq is not saved HQ is saved but not loaded... do we need this?
-Done Add code to delete completed map files
-Done Save fog for cave maps
-Done Save deities and pools
-Done Load-game to start on last saved level not always hq
-Done Windows code to make and scan directories (SaveDialog::makeDirectory and findFilesInDir) (Thanks to Vincent)
-Done: tools not built by default
fix tools compilation errors... (http://scourge.sourceforge.net/forum/viewtopic.php?t=105)
I have been unable to make the mousecursor visible correctly. Only a black block with an outline of the hand which itself was 100% transparent. (this could be a video-driver issue)
- ATI video driver issue? http://scourge.sourceforge.net/forum/viewtopic.php?t=103
- .OBJ support for items
- story-modding (.zip files in .scourge_mods/ that contain a whole directory structure. Missing items/textures can be inherited from the default game.)
- modeled walls for dungeons. (I suspect this will go a long way towards making the game look less blocky.)
- Better ui for assigning skill bonuses after gaining a level (only show skills)
- Combine container ui with info dialog
Create licence file for sounds
- update cmake files so it builds again
- resurrect multiplayer code (cooperative mult. on lan)
save high-score/end-game to web
Always show next storyline level on board (on top)
- Add optional "mask" image for window corners (rounded corners)
- In-game ui theme switching
- Use more flexible templating for objects, themes, etc.
- gui theme to also include frame, dragons, progress-bar, etc.
use texture for circle under creatures instead of gluDisk
loaded maps' containers not outlined when containing magic items
- scroll placed by map editor needs spell assigned (right click causes segfault)
New savefile dialog:
-Done screenshot + description of saved games
-Done Delete button
-Done Copy maps around when saving to new location
-Done Hook into main menu
-Done Ability to save/load game anytime
-Fixed Bug: save then complete mission. Map is deleted, party starts in HQ, success message is skipped.
-Done Save date correctly
-Done Some (nearby) creatures don't move on loaded maps
-Done Confirmation dialog when loading or saving over another file
change alpha testing code to "glAlphaFunc( GL_NOTEQUAL, 0 );" everywhere
Magic items can still be used after they run out of charges (when 'stored')
- Configurable right-click menus on objects, creatures, etc. Double-click should be the first(?) action.
Configurable cursor themes
Autopackage to require sdl_net (but disable multiplayer in menu)
New sounds by Lorill
Need graphic for IO button
Fix texture weirdness in TB combat
Two new spells: "Gust of Wind" and "Dori's Tumblers"
Map can be moved with right mouse button drag.
- New class abilities: Undead commander, Accelerated Casting, Planar Assistance
-Done for all professions
New mage specializations (level 20)
- Chapter 10 of the story
"Pretty up" high-score page with tomb stones, stars, 'cause of demise', etc.
Fixed music per mission (by Vincent)
- Unload 3ds object textures in destructor (ref counting)
-Done Fix "Autosave after death" issue
Features for version 0.15:
-Done Fix map::erase() in all instances
-Halved monster level in starting room Mobbed on level start
-Done fix md3shape deletion code (see ~Creature() for an example)
-Done unpause after conversation
-Done character gender (has to be done carefully to not invalidate old saved games)
-Done more portraits, maybe with a better graphic; remove old portraits
-Done, but now levels look sparse reduce the number of chest/bookshelf/crates, it drive me crazy to check every clickable object on the screen;
-Done allow low level quest even when the level goes high;
-Done when a character identify an item, leave the full description if another character get it.
-Done fixed size tooltip text
-Done clicking on a door should move the party to the door if it cannot be opened
-Done thirsty/hungry should flash reminder icon on portrait / eat/drink buttons from inventory / mass starvation fix
-Done caves with less creatures at a time... (battles too hard)
-Done corpses that don't block the path (this might be tricky, currently stuff gets picked up when stepped on...)
-Done, click now moves to location, ctrl+click opens containers "Also in battles, I click on corpses opening their inventories and blocking my view, I wouldnt mind using a combo like ctrl-click to open things with inventories." (what does this mean?)
-Done Floating windows button no longer kills SCROUGE but the character portrait window floats OVER the inventory!
-Done, mouse wheel now works in lists Direction keys no longer scroll the map ( some list must be selected...)
-Done Editor is no longer selectable from main menu. Hitting the "7" key to start it fades then kills SCOURGE (need debug trace for this one, though editor should not be usable unless compiled in debug mode)
-Done characters are overloaded even though they have remaining wieght carrying ability ( wieght carried will change depending on whether the item is equipped or not as well)
-Done Selling a cursed item can unequip it! (doh)
-Will not fix. Too complex for now. Having custom door objects will fix this. you can't click on stuff behind a door-ceiling
-Done casting spells on an inventory item is not possible if you need to scroll (or someone else's inventory)
-Now better characters stand in the way of each other so you have to switch to the front one and move with that one. (need to chain move-away-s; this happens when multiple characters block the path)
-Done Need npc to sell Rings, Amulets, Spears, Javelins, Wands (in HQ, I assume)
-Done PC-s can't pick up chests (relax size requirements?)
- Md3 model support has been added - find a model format that supports different armor / weapons held (this might be a lot of work... both code and art-wise)
-Done character gender (as there are a lot of female 3d model);
-Done ability to specify x,y,z size of model (instead of x1.2, etc.) this is useful when making replacement models of an existing item or creature.
-Done make .3ds models load textures on demand as well as reuse system textures.
-Done don't close spell window when storing a spell
-Done loading a party member with available skill points screws up skill values (they keep increasing)
-Done cancel magic (when targeting) should also cancel purple glow
-Done sometimes pause/unpause is needed to restart npc animation (esp. after a spell or eat/drink action)
-Done sometimes items / corpse placed in air (and walking by causes it to jump)
-Done hitting "accept" in pc dialog should apply skill mods on wandering hero.
-Done Show all skill bonuses on identified items
-Done Hunger/thirst should not kill pc-s, just reduce HP(which eventually kills them). Also after resurrection some hunger/thirst is reset.
-Done add open-container button to info dialog
-Done limit number of times identify can be used in a given amount of time (or gray out button for a while)
-Done Gates to say which level they will go to
-Done Multiple save-games (and UI to load/save them)
-Done Starting mages are too weak: increase basic MP, reduce spell failure, increase damage power
-Done In 'auto-center' mode, centering lost in RT battles
-Done Not allow changing of npc model/portrait/etc.
-Done Scrolls loose their name on game re-start
-Done Save party when quitting. (So HQ changes are saved.)
Better party movement
Features for version 0.14:
-Done Don't loose party
-Done Don't block player with npc-s or party (incl. going thru doors)
-Done In TB combat, don't show movement cost when target is in range
-Done Fix "running in place" animation bug
-Done Highlight target or change cursor when over possible spell targets
-Done In TB combat, don't involve far-away monsters who're just walking around (monsters will fight back when attacked)
-Done Scroll should disappear from quick-spell menu after casting
-Done NPC skill values keep climbing
-Done in RT combat, part keeps fighting when moving player
-Done monsters not in combat should move as before (they stand)
-wall blending wrong for invisible player
-change dialog text when using red teleporter
-return via red teleporter, too close to wall?
-char. editor for level>10 can't show profession
-assertion failure in dungeon-generated map sometimes
-chapter 8 level, special message upon arrival (after red teleporter)
-on this level, some magic should not work correctly
-Done fix play/pause button on main window
-Done? Could be driver bug. outline not drawn behind shape (creatures, items, etc.)
-Make sure OS X app includes needed libs.
-Done be able to run app from same parent dir as scourge_data (ie app parallel to scourge_data)
-balance monster dodge values (see Michi's post "more exciting battles")
-Done Hitting 'g' or 'm' causes segfault. (g is trying to change screen layout.)
-Document build/release process; try to get others to build/upload some versions
-Done Fix monster names (a,an prefix should not be in creatures.txt. Note: this will break map files.)
-Can't unselect spell attack (Besides hitting Esc.)
-Stenciled minimap covers up edges of map
-Map moved with cursor keys sometimes gets stuck in a direction
-Lava field movement thru touching corners
-Done Slowdown in RT combat when too many path calculations (new pathing)
-Fix animation timing to reflect distance traveled (adjust for new speed calculations.)
-when casting spell from an item or scroll, use level of scroll
-Smaller collision radius for friendly creatures
-Save game to save map also
-scroll lists with mouse wheel
-Done character creation: creature only 1, hire/roll others
-Done Re-design character editor (see forum post)
-Done "Mondrian" dungeon generator by Pfeifer.
-Done Chapter 8 of the story
-Done gui update
-Ability to assign a scroll to a quick-spell button
-Drag-n-drop to quick-spell slot
-Done new capabilities
-items that regenerate HP,MP
-maybe: named items with special functionality (scripted items).
-persist the fact if an item was fully identified
-implement Sage functions (id item, recharge item, etc.)
-More sub-professions, and their capabilities
-Armor to influence weapon skill (use armor skill)
-Replace doors with 3ds objects
-Make creatures.txt more dynamic: define creatures with level ranges. E.g.: ogre appears from level 8-12 with variants (lesser, base and greater) that change size and adjust abilities/levels accordingly.
Other stuff (aka. the Heap):
-"Deity points" (like reputation) make pool's effects bigger/smaller
-Add altars, holy areas, etc. with pool-like effect
-Other ideas for pools/altars: empower friends/weaken enemies (nearyby), breed creature, etc.
-Door won't open when player standing next to it
-md3 support (quake3 models, incl. item models)
-Mission-specific npc conversation
-Conversation actions: get item, give item, anger to battle, etc. (driven by squirrel)
-Mission objectives involving npc-s: give item to npc, get item from npc, etc. (Rescue?)
-Npc type: Sage and ui (identify items, etc.)
-Books and notes. (Should they have a theme per edited map? Or just general foreboding texts...)
-Need ability to always be able to return to some locations (Thuzgol). (Maybe via a map in inventory? Given to party by Orhithales.)
-Signs, posts and pointers ("this way to library", etc.)
-Maybe: save map state on enter/exit? Needs to be done for any map that can be re-visited. (merchants still need to be re-initialized)
-Floor/wall adornments: rugs, pictures, etc.
-Radial menus: Right click to open menu, left click for action. Menu leaves fold out when mouse-overed. Context sensitive: locked door has: bash, pick, cast open, monster: attack options, spells, character: healing spells, potions, inventory, etc.
-Invisible creatures should not be attacked until they attack someone.
-Spells in potion form: invisibility, teleportation, remove curse
-Backfire for area spells
-Notebook that's organized into sections: people, places, events, creatures, story, etc. It gets filled in as you play out the story, kill monsters, etc.
-Glowing ball effect
-Light to mission-item pedestals
-Sacrifice items/money to pool
-Correct video defaults (ie. create options file by testing video settings)
-Use beds for resting (should blank screen for a while... it should be annoying)
-Ability to add named item to a storyline mission (These can't appear randomly.)
-New special items (incl. armor... maxSkillBonus?!), spells, skills, etc.
-Next storyline mission to use a special item
-Lighting configurable in map editor (oval shade on/off)
-smooth door movement
-Smaller collision radius for friendly creatures
-Sort items in inventory (show only item-type-X, etc.)
-Roll damage like now, but use skill to push min closer to max. (ie. higher skill means less random damage)
-Done Separate game content into its own cvs module
-Done Move code/data to SVN
-Done Release code and data separately
Revised RPG System:
-Done New professions-tree system
-Done Simplified party editor
-Done Trainers move players to next levels in professions-tree
-Done New item info
-Done Stats vs. skills, stats preset skills
-Done Maps to not contain items and creatures
-Done New combat calculations
-Done Tag-based item access
-Done Item level kept, but has smaller influence
-Done Magic items in combat
-Done Rework creature base armor
-Done Leveling up (distribute skill points)
-Done Update squirrel scripts
-Done revisit potions (use item level)
-Done revisit spells (ac cost, levels)
-Done optimal skill values, skill influence multiplier (see forum)
-Done roll monster skills via stats (like party)
-Done Attack from blindspot (aka. backstab)
-Done Recalc skills when a stat changes (potions, spells, profession-change, etc.)
-Done Take a look at experience gain rate (kills, spells, missions)
New Content: (v0.14 is mostly about new content)
-Done Rechargeable magic items (wands, rings, etc.)
-Done Magic items in quick-spell slots
-Done Ability to right click on quick-spell button
-Done Fix quickspell tooltip going under other window
-Done Move item type to properties file
-Done new creatures
-Done new spells (only one: Blast of Fury)
-Done new storyline chapters
-Done fix spell power levels (now broken past level 10)
-Done New items
-Done When multiple mission objectives, spread them out on lowest levels
-Done Fade effect
-Done Symbolic magic item names (sword of the Frost Giant, etc.)
-Done Sppelchek al tekst (thanks Michael)
-Done New music (thanks Vincent!)
-Done New portraits (thanks Ben!)
-Done change dungeon generator to make them
-Done secret door posts (3ds shape)
-Done roll to see if player detects door
Other stuff (aka. the Heap):
Done Wands, rings and staffs
-Done Fix pathfinding where player moves away from destination
-Done Save game on-demand / print message when game's saved
-Done Make capabilities work again
-Done mouse click should not be handled while in fade-transition
-Done Fix game crash when deleted (last level's) creature's potion expiration event fires.
-Done Show info about "special" type missions in mission info window
Features for version 0.13:
The cool new stuff: Caves
-Done New nicer/faster minimap that shows items, monsters, etc.
-Done Cave: generate cave levels.
-Done Integrate dungeon generation into class hier. (show party, monsters, gates, etc.)
-Done Create cave wall-themes
-Tile variations for caves
-Done River/lava flows in caves
-Done Animate lava (make it flow)
-Done Fix shape generation problems
-Done Extend flat terrain to edge of screen at map's edge.
-Done Contin. texture over walls
-Done Make cave terrain (walls) more interesting by sub-dividing poly-s.
-Done Real fog-of-war (has to be fast) (needed esp. for cave levels.)
-Done Generate smaller caves at lower levels
-Done Realistic monster placement, movement, battles, etc. (adjusted for small caves also)
-Done Make isLocationInLight have diff. implementation for cave and rooms (via MapRenderHelper.)
-Done Some mechanism to see if after movement character is in weapon-range in TB combat.
-Done Somehow show how many AP an attack will cost in TB combat.
-Done Fix bug when monster is unable to reach its target it wonders aimlessly (taking forever)
-Done When monster can't reach target it should choose a new (reach-able) target
-Done Fix TB combat in cave with fog of war (party member stuck in fog)
-Done Highlight/show weapon range in TB combat.
-Pause after each attack in TB combat
-Done Show cost (AP) of attack when moving cursor over creature in TB combat (or combine range and AP cost displays and always show them) This info should take into account AP spent on attack in prev. round (if ran out of AP before attack.)
-Done Show cost of movement in TB combat
-Done, better but not completely fixed Fix party member can't move to selected location (movement and TB combat)
-Done, better but not completely fixed Fix path sometimes not showing in TB combat
-Done Show date somewhere on UI
-DoneAbility to switch weapons (show in ui)
-DoneOnly use selected weapon in TB combat
-Done Highlight selected weapon in inventory
-Done Fix number of items in statusbar when loading a cave map
-Done Show "cave" in mission text for caves
-Done Multiple menu/dungeon musics. Add new tunes
Named items and storyline:
-Done Named items that appear only once (min level and depth).
-Done Script called when named item is: donned, doffed, used (attack, defense)
-Done 'Special' story mission: talk to Sabien (validation in script)
-Done Chapter 6 of the story: Sabien reveals all! (well "some" anyway)
-Done Sabien's portrait
-Done Better range marker graphic
-Done Stencil buffered (if supported) round minimap
-Done (finally) More accurate 3d-map coordinate mapping (like clicking on the map to move players, dropping items,
-Done General conversation should be inherited from level 0.
-Done stuck in 'adding party' when loading map (add timeout)
-Done TB combat, target selected for Stinging Light, but tag says 'Dagger'
-Done Can't shoot arrows over lava
-Done Polearm range too big
-Done Maybe use 'center on creature' in TB combat for monsters?
-Done Script: Orhithales to give diff. answer to 'armor', depending on if mission has been completed or not
-Done Possessed players in TB combat: portrait coloring wrong, turns should be auto-move (treat like monsters)
-Done Party editor hangs on 800x600 resolution
-Done Weirdness in "Ring of Harm" spell effect
-Necromancer model "grows"
-Done Party members can be placed outside walls (esp. maze levels)
-Done Game speed setting is backwards (slowest is fastest game)
-Done "Always center map" movement is broken
-Done Date disappears from minimap when game is paused.
-Done Dragging items can go behind the UI... drag icons instead?
-Done Pathing issues around/to large creatures/objects
-Done Pathing gives up too soon (ie. far-away, reachable places cannot be reached.)
-Done In battle, selecting a far-away monster causes everyone to not move
-Done Speed up game clock (now a day takes a day...) This also means re-adjusting effects, spells, etc.
-Done Minimap monsters should not draw outside of outline
-Done Minimap texture weirdness when map size>texture size
Features for version 0.12:
Squirrel integration / special capabilities:
Basic framework, SOM (Scourge Object Model) objects, life-cycle, etc.
Mission start/end (map enter/leave) events exposed as squirrel functions
In-game squirrel console
Special capabilities (skills.txt) with prerequisites and actions in squirrel (skills.nut)
Ability to add manual capability to quick-spell bar
Detect changes in loaded script files and reload them (unix only)
Manual capability execution as a battle-action (instead of real-time)
Automatic capability execution points (defensive, offen., state mod change, etc.)
Ability to persist a squarrel table (eg.: capability can only be used once a day)
Balance battle system:
Add battle system tests (output html)
Redo attack, ac rolls for combat, balance items, etc.
Fix path calculations finally (only run A* once in TB combat at least)
Misc. problems with party movement (running into each other, anim. while standing)
Slowness in battle with lots of participants (calc. path too many times?)
Error when switching to TB mode in middle of combat
Implement settings for level of combat info (high level, detailed, lots of detail)
Document new battle system
Show attack/damage/defence values when changing skill points in character editor
Handle two-handed weapons in inventory (gray out other hand when equipped)
Show two-handed-ness in info window
Order of combat by initiative (speed) show in char info.
In combat, if ranged weapon is out of range, show warning, not move char.
Show damage caused above character's head
In RT combat don't show red circle cursor (ie. always ok the attack)
Reasonable default party in party editor.
Many other misc. battle fixes
Add them to map
Ability to add a permanent effect to a shape
Squirrel function for pool use
Select random deity for each pool. Color of steam over pool should be diff. per deity
Implement use effects (n times a day, etc.) for player's deity / pool deity combo (some combinations good, some very bad.)
Balance game to level 11.
New chapter of story for level 8: defeat Mycotharsius; he reveals much before he dies.
Allow an edited level to complete mission.
Simpler, shorter levels
Resurrection spell / healer task
Simplify gui themes / new fancier gui theme
Able to load older savegame versions (backwards compatibility.)
Scale male characters to have smaller base
Highlight magic school names with memorized spells
Colored text in ScrollingLabel: don't make purple on mouse-over, keep color from last color-change on (don't change back to white)
Balance monsters up to level 10.
Discount on healing in HQ.
Right click in equipped items list to open item info gui
Button to pool party's money to a single player.
-Done: no change
See if replacing freetype code with OGLFT
speeds up game?
Speed up thirst/hunger events
Regain magic points (MP) over time
Features for version 0.11:
-Done Map editor to save and load levels
-Done "Smart" wall algorithm: blend corners, select right wall shapes, etc.
-Done Auto-add torches on walls (which side of wall?)
-Done Player start position marker (now random)
-Done Create HQ level as an edited map
-Done Create lower level to HQ with (easy) monsters
-Done Extend storyline mission def-s. to load/use a named map (ie. mission to Thuzgol).
-Done Ability to save/load maps
-Done Save/load game data always as big-endian data.
-Done Use zlib to compress map data.
-Done Make game not crash when switching to a different map
-Done Ability to load lower/higher levels on edited map (ie. "down" stairs in hq loads hq1.map) Should also preserve the location (x,y) within map
-Done Show mission's location on map when looking on the board.
-Done Move conversations (and later other map-related texts: signs, etc.) to txt file along map file. (eg.: hq.txt)
-Done Edited maps should show their locations correctly on map on board.
-Done Add new 'special' themes that are only used by edited maps
-Done If level below an edited level is not found, generate it.
-Done Teleporters on generated levels below an edited main level should return there not to hq. (Thuzgol).
-Done Example project using the map-rendering code outside of scourge
-Done Faster compilation (better header file encapsulation: shouldn't compile gui/ when changing scourge.h)
-Done Map rendering classes should be re-usable outside of scourge project.
NPC-s and missions:
-Done Conversations can map multiple key-phrases to the same answer.
-Done Npc type: Merchant and trade ui
-Done Npc type: Healer and healing services ui (resurrect, cure, etc.)
-Done Donate to healer's temple ui with messages from the deity
-Done Npc type: trainer and ui (player can assign skill points but buying training gives more skill points per point used.)
Stuff that would be cool to do...
-More items: (Done)bed, (Done)workbench, tables, chairs, candolabra, globe, (Done)stove, (Done)plants, etc.
-Done Monsters' use of a spell declared in spells.txt (new attribute: friendly,attack,etc.)
-Done Monsters can use friendly spells to heal each other. They use hostile spells to attack.
-Done Text effects for leveling up, character death, etc.
-Done Progress feedback when loading an edited map
-Done Make fullscreen toggle ctrl+f1
-Done Hitting Esc should always close topmost open window
-Done Unpause game after last open window is closed (conversation or other pop-ups)
-Done Item prices are too low for different levels. Esp. for potions and scrolls.
-Done, for me this works with: ./configure --disable-binreloc --disable-binreloc-threads --with-data-dir=/usr/share/test Make binreloc and --with-data-dir play together. (Can't disable binreloc and data-dir value is ignored.)
-Done Running game should not require deleting .scourge dir. However, if deleted, strange behavior with rootDir.
-Done Add configure script fix by Mr. Bones
-Done About screen broken
-Done Flickering flame missing from main menu
-Done Party layout when changing levels in hq. Party lands in wall.
-Done Nicer progress bar (diff. background)
-Done Weird map slowness/flicker when scrolling.
-Done segfault when loading/saving some maps
-Done Quit game on level n, should continue game in hq on level 0.
-Done Canceling "move thru gate" dialog doesn't reset party position
-Done Minimap shows terrain variations as black squares.
-Done Changes to leveling: advance level, don't reset available points and remove "leveled" statemod. This way the available skill points pool until the character spends them (trainer or manually.)
-Done Show somehow on portrait if character has available skill points.
-Done Conversation should recognize keywords regardless of casing.
-Done Crash on windows
-Done Fix slowness on windows (memory allocation). Reduce mem. usage by reusing objects.
-Done Windows crash when clicking "About" button
-Done Projectiles from monsters don't reach party.
-Done Weird blinking of shapes on levels with water (also since mem-reduction) Happens when game is paused. Also happens on location-based spells when rotating screen (like: ring of harm).
-Done Circles under creatures move out of sync with scrolling screen
-Done Portrait for Orhithales
-Done Thuzgol at depth=0 should not have oval shading
-Done Windows get re-ordered when popup is closed.
-Done Explanatory text for: map-widget, multi-click in trade dialog
Features for version 0.10:
New game logo and windowless menu
Make UI theme-able
Offer darker UI theme
Simplify UI (less screen real-estate, hide unimportant things, etc.)
Separate character model from character-type
Spell/UI interaction: select characters, items, etc. via UI also
Quick spell/skill buttons
Quick button icons (spell/skill icons)
Linux binary distribution via autopackage
Improved wall transparency that works with water levels.
Use F1-F12 keys for quick spell/skill button shortcuts
Cursed items that cannot be removed w/o uncursing them first
Make remove curse spell drop cursed items
General npc-s at HQ. Conversation engine.
Storyline npc-s at HQ.
New dungeon themes from Wadfather
Story-npc portraits on conversation ui
Storyline playable to level 6: npc conversation, storyline missions, balanced battle, monsters casting more spells, etc.
More new spells: Ring of harm, Malice storm, Unholy decimator, teleportation
Make decorative gargoyles take up less screen-space.
Make oval cut-out lighting optional.
Add "depth" to items/spells. This is the min. depth at which they appear.
Make magic item's damage multipler select a likely monster. (ie. a level 3 item should not select a level 15 monster.)
Uzudil "reminds" players of mission objectives on level change
Uzudil gives mission success message (carries storyline forward).
Give XP bonus on mission success, display this with success message.
Remove mission items on success.
Update readme file (packaged and website) with credits for latest models, textures, etc.
-Update user guide and api docs
Ideas from rpgcodex:
character creation dialog
TB combat: double click to move, single click to show path
Cursor to change to indicate attack over creature
Implement dragging item to character portrait
5th+ level battles not balanced (weapons ineffective)
casting spells in hq starts battle, targets npcs
main menu animation weirdness
fix black lines on dragon textures
Sometimes (TB mode?) monsters don't move when not in battle
Door should not be stuck on monsters
Fix animation in TB combat
Use default cursor when over UI element
Use descriptive name in magic weapon multiplier, not "vs. /models/modelname"
When moving party window, inventory should also move
teleport spell failure should only move you somewhere else within the same mission (otherwise mission success message may be skipped)
key bindings show different keys from what is used?
inventory button lit when hiding inventory with "hide" button.
same spell added multiple times to quickspell bar
Fix finding mission objectives not ending mission bug
Fix removeEffect crash
Fix segfault in options/controls
Fix text hanging off controls
Features for version 0.9:
-Done Add special handling of tohit <= 0 (hurt self or others) and tohit >= 99 (special skill: see below)
-Done Use magic attributes when calc. item price
-Done Templated missions
-Done Special "storyline" missions (sequenced by level, only 1 at a time, mission success includes storyline info)
-Done Save storyline mission completion state in savegame file.
-Done Show mission creatures somehow (outline, highlight, etc.)
-Done Keyboard toggle of RT/TB combat? (Maybe: unless you're in a battle)
-Done Better item generation. (Item levels, random magic abilities, etc.)
-Done Display 4 levels of magic items with different color outlines
-Done Also use same colors in inventory
-Done Test battle with new item levels (Does +1 to damage make sense when weapon does 140 damage?)
-Done Add level restriction to items (level 4 character can't use a level 5 item)
-Done When creating magic items, use level of creator: 1-10: lesser 11-20: greater, 21-30: champion, 31+: divine
-Done Containers that contain a magic item are outlined.
-Done Dead creature inventory now random (use creature.level to create new items)
-Done Outline magic items when dragging item
-Done Tooltips to objects, creatures, shapes
-Done Support for quake2 model directory (sounds/texture/model w/o renaming). (Simplify creature/shape entries?).
-Done Load/unload sounds with model texture (Shapepalette::getCreatureShape())
-Done Implement unload md2 model code (ugh...)
-Done Command line util pcx2bmp.sh
Party movement enhancements:
-Done Add "Do nothing/End turn" button
-Done Wait for animation to complete before switching to next player in TB
-Done Party should follow leader with a 1-1.5sec. pause
-Done Smooth (sub-tile) movement
-Done Fix combat to work with smooth movement. AP-s should only be used when 1 map unit is moved. (float movement is machine-dependent.)
-Done Time animation to creature speed
-Done In TB combat, pressing 'p' and moving the mouse shows proposed movement path and AP cost
-Done Make AP bar in TB battle a fixed length and show % used up. (This is so it doesn't hang off screen.)
Visual updates, themes:
-Done Faster rendering: display lists, frustum culling
-Done Dungeon wall skinning (themes)
-Done Dungeon wall/floor variety shapes (floor: drain, missing tiles, etc.) (walls: banners, arches, etc.)
-Done knee-deep water (slime?) on some levels (later: draining levels will be a mission obj.)
-Done Fix bug in saving/loading magic items.
-Done Fix crash when loading high (6+) levels. (Dungeon levels should not be equal to mission level.)
-Fix texture blinking bug
-Sometimes creatures "get stuck" and won't move... (this may be because they get shifted out of view if rest of party moves too far?)
-Done Doors should always be able to open (push creatures, items, away?)
-Done Test/fix switching RT/TB in middle of combat round (Maybe disable this.)
-Done Make dungeon generator more deteministic (ie. so it doesn't call exit())
-Done Fix label hiding behind list when assigning key bindings
-Done Mission creatures don't move (not in creatures list)
-Done Fix mystery "missile doesn't hit" bug. (floating point ==?)
-Done Fix monster can't move in battle bugs (pick new path?) Also, clean up battle.cpp
-Done Bug in battle (TB) when party members are separated. (May have to do with isVisible, if one is behind a closed door.)
-Done: scrolling much smoother Fix memory management in map.cpp (slow on windows)
-Done Creatures seems to render into walls partly (when moving close to walls, they seem "off-base").
Features for version 0.8:
Lock/unlock doors with levers.
Show locked doors in minimap.
Locked rooms have higher level objects.
Fix group/single player (0) control not working.
Rooms guarded by Badass monster(tm) contain better loot.
Make RT combat "multi-tasking" (all actions occur at the same time.)
-Done. Tried to smooth out animation of attacks.
Wait for "attack" animation to complete before the turn is over in TB combat
Zoom in/out with mouse wheel. Rotate map with middle button.
Add total-level cap to monsters in room (besides area check)
Music, sound effects and ui controls (volume, etc.)
Make state mods effect battle and spell-casting
-Done, it seems on Mac OS X, glPushAttrib/glPopAttrib is really slow...
Map display cleanup: better multi-texturing, more optimized tile selection, etc.
Spells to set and clear state-mod flags
Invisibility (both state-mod and specially rendered.)
Possession (both state-mod and rendering, battle changes.)
-Done, kind of: deeper levels have higher chance of out-of-level monsters and better loot.
Monster/item placement by depth (diff. creatures/items on story 1 vs. story 3 of same level)
Map F# keys to layouts
Magic items: tohit/attack bonus, damage by magic school, 2x/3x/4x damage, damage by monster type
Add 'enchant' weapon (create magic item) skill/button so players can create magic items.
Add state mod (protect against or set) when wearing magic item
-Done. Increases resist skill of school.
Magic armor should use magic attrib-s differently
Magic attrib-s to enhance wearer's basic (str, speed, etc.) skills (boots of swiftness, etc.)
Test state-mod protections (somehow)
Test that invisibility renders correctly when set by magic item.
Show "protected against" info in skills tab of inventory
More container items (vase, crate, barrel, etc.)
Item info in inventory (use identify skill, Ole' Taffy, etc.)
Item-target spells (e.g. Ole' Taffy's spell)
Figure out model offset and dimensions programatically for md2 models.
Same as above for 3ds models
Implement magic resistances (only some spells work on some creatures, players' ability to equip ring X against spell type Y, etc.)
Prevent putting larger item into smaller one (bookcase into chest)
Revamp user guide
and regenerate the api docs
Detect and update old properties files
Add very basic save/continue game feature. (saves party when entering a level)
Add new game confirmation dialog before nuking old savegame file.
Debug creature sizes (raptor). Maybe do this automatically when loading a model?
Timer for mainmenu animation.
Remove whack, 'reversed-scrolling' in main message list.
Remove generated files from cvs. See this bug.
Look into clear() vs. erase() issue, raised by jrg.
Creature who are waiting for their turn or don't have a target or action appear to 'run' in place. (They should 'stand'.)
Fix attack messages not printing. (Missing or error with action?)
Fix projectile stuck in air after un-pause bug
When changing screen layouts via F-keys while game is paused, monsters become un-paused?
Taking damage animation loops in battle.
Some animations not correctly normalized (creature jumps up or sinks into floor...)
Balance battles (magic items and monsters too powerful? Balance battle to level 10 (for now))
Fix creature not rendering when starting mission.
-Done; not getMapXYZAtScreenXY is only called on mouse-up.
Somehow eliminate extra call to map->draw() in scourge::getMapXYZAtScreenXY().
Scissor to paper doll widget in inventory.
When mouse drag of item pauses, call getMapXYZAtScreenXY to check for drag target? (Here also fix 3ds not coloring green error.)
Dropping some (thin) items on floor makes them disappear. (bow, axe)
Creatures should not move while in MD2_TAUNT
Problems with GLShape::fitsInside(): only B. can pick up wand (mission object). Instead of using item->isBlocking a new flag is needed.
Neural cobra casting curse has no effect on target.
Hitting Esc to close container dialog doesn't free memory. Container can't be opened after this...
-Done: nothing found
Valgrind: segfault in options dialog reported on Fedora, discombobulated visuals on windows xp.
Dropping item when originating from gui, "replace" puts it on top of owner creature
After target is killed, monster stands around
Sounds: dead player "talks" when selected
In TB combat, go to "group" mode after battle is over
Features for version 0.7:
-Done More/higher level creatures.
-Done Move minimap to a window
-Done Multiple layouts in GUI. Create a border for the map.
-Done Misc. ui enhancements: texture for buttons, progress bars, etc.
-Done Keyboard control (focus selection, target window selection) in gui (this is needed for text input widget.)
-Obscure settings implemented Configurable setting for "Keep zoom level in map when making it smaller because of gui layout change". (Translate this message from the Orcish.)
-Done Re-architect code for network play. (aka. secret project. Be able to run a headless server/client.)
-Done SDL_net client/server code and beginnings of multiplayer protocol.
-Done Loosely turn-based combat system (optionally real-time)
-Done Creature speeds (incl. players; Make battles slower)
-Done Projectiles should fire anyway if move away from target cannot be made (To prevent wasting time moving around.)
-Done Occasional segfault in map destructor
-Done: now it's purple... Players offended by girlie-man selection color...
-Done Fix mainmenu: check for misaligned push/pop matrix ops, fix config window popping in back, etc.
-Done Fix windows problems: font corruption, mystery-crash in full-screen mode, etc.
-I can only see this on my windows box... Fix slowness when entering HQ map for the first time.
-Done Fix slowness when running with stencil buffer off.
Features for version 0.6:
Potions: HP, AC and skill-enhancing potions.
Party summary window (party member info: mods, hp, armor, etc.)
Add a min/max button the party details window. In 'min' view it should only show hp/mp bars.
Make "skills" tab in Party Info draw health-bars.
Magic system and spells (both the rpg-side and visual effects)
Creature-target spells (single/multiple missiles)
Area-target spells (with cool "death-star-explosion-ring" effect to show area covered.)
Ranged spells to use "seeker" missiles that follow a moving target
Mechanism for transcribing scrolls into spellbook
Ability to cast scrolls as spells (no MP used, but scroll is destroyed.)
Paper-doll in inventory
Add drag-n-drop to/from paper doll inventory list
Drag and drop targets should highlight when dragging over them
Item enhancements: rare-ness, acl-s, etc.
Spell acl-s? Or enforce skill>0 in order to transcribe a spell?
Spell acl-s? Or enforce skill>0 in order to transcribe a spell?
Monster enhancements: rare-ness
Monster enhancements: size independent of model
Make party attack nearest creature after battle
Make creatures use ranged weapons
Make creatures use simple, attack spells
Remove glut dependency (thanks to FreeType
-Done w. Dev-C++ instead
VC++ compiled windows exe
Potion expiration event is deleted between missions (calendar reset). (They should not be deleted.)
Fixes for gcc 3.4 and autotools usage.
Use timer in effects for sane fps-s.
Other misc. UI changes
Creature effect not played when creature dies. (e.g. by spell damage)
Features for version 0.5:
-Done More weapons, armor, etc.
-Done More 3ds objects (so foods don't look like a dagger...)
-Done "taunt" animation after a succesful kill
-Done Add teleport effect when moving to/from HQ (also add description of this somewhere... how is party teleported around?)
-Done Implement rpg items, classes, spells, etc. in property files
-Done Move missions to properties file
-Done Implement missions objectives, mission completion and exp. points for completing
-Done Some mission objectives are mission a graphic (wand of nausiation, helmet, treasure chest)
-Done Mission objective items on pedestals.
-Done Mission status gui
-Done Make stat-mods visible around character
-Done Implement "levelling up" (more hp, etc.)
-Done Make armor check its item's skill in battle
-Done Separate textures from creature models. (So we can have multiple creatures with the same model but diff. textures.)
-Done Only load textures when creature appears. Un-load texture at the end of mission.
-Done 3ds shaded rendering (based on angle of normals)
-Done Implement ranged weapons (arrow flying from bow, extendable to spells)
-Done Move map when moving mouse to the edge of screen, rotate with CTRL+move (also use movement keys for this) SHIFT+move causes slow map move.
-Done More/different window styles and other gui enhancements
-Done Make combatants face each other in battle
-Done Better AI: creatures with ranged weapons should 'hang back' from melee.
-Done Creating a level is taking a while. Display a progress bar.
-Done Descriptions on shapes don't work.
-Done Remove dependence on constants enum for shape names. Instead look up known shapes by name.
-Done Add line of sight check to opening doors, using gates, teleporters, etc.
-Done Fix total calendar reset before each mission (some of it does need to be reset, but not the time)
-Done Reduce chaos in battle; make creatures move around less.
-Done Dead player can level-up and keep gold
-Done 'New game' should reset completed missions
-Done Add Ben's NetBSD changes
-Done Add Mr. Bones' changes (dump cmake in favor of autoconf, etc.)
-Done Make it create the options file if not already created (instead of complaining that it's not found.)
Features for version 0.4:
-Done Multi-story levels
-Done, needs activities (bartering, etc) Pre-generated, headquarters map. This is where you select missions, trade players, learn skills, barter items, etc.
-DoneMain game loop (pick a mission, play it, return to 'tavern')
-Done, needs more love Level constructor (creates a dungeon level, populates it with items,npc-s, handles storyline)
-Done Md2 animation
-Done Containers (chests, etc. can contain items); Dead monsters become containers too.
-Done Drag-n-drop inventory management
-Done Item stacking (put a chest on a table, etc.)
-Done Make small items non-blocking (swords, axes, etc.)
-Somewhat done Furniture! (and other visual fluff)
-DoneTime-based events (potions timing out, planet-alignments, etc.)
-DoneHunger/Thirst display and items to counteract the effects (snacks and beverages)
-Done Make items' weights matter. (So you can't pick up 20 bookcases)
-Done Teleporters in/out of a mission level (Thanks to David L. for the idea)
-Done Include glut.dll not entire zip
-Done Speed up item dragging
-Done Real (ie, z-order) window management
-Done Optionally start party at specified location on pre-generated map (at board in HQ)
-Done Optionally not furnish rooms in pre-generated map
-Done Treat items in pre-generated rooms like other items (consume empty space)
-Done Make HQ board room visually different (columns!, marble (bw) floor?)
-Done Handle dead characters between missions (switch to/from HQ)
-Done When switching to HQ map, sometimes a party member is outside of rooms
Features for version 0.3:
-Done new UI (windows, buttons, etc.) rewrite. (It's currently a mess.)
-Done Monsters: objects, movement, add them to dungeon, equip them, etc.
-Done movement main loop. Coordinate character/monster movement by turns.
-Done pausable real-time movement (like Baldur's Gate)
-Done group vs. single-step modes
-Done Battle!!! Simple battle: low level melee weapons only (we don't want someone to get hurt!)
-Done clicking on a creature selects it for attack
-Done follow monsters as group, as single character
-Done; could be improved add 'intelligent' monster movement: attack, guard, neutral, flee
-Done Game configuration settings editable via a config file
-Daroth-U is working on this Options dialog that actually works!
-Done add game-speed and motion-style settings to option dialog
-Done Fix memory leak in map::addDescription
-Done Keyboard movement should not select monsters to attack
-Done Make PAUSE (currently called: start/stop round) button a toggle-button
-Done Make group/single-step mode button a toggle-button
-Done Hitting Esc on inventory window quits mission
-Done, now an option Maybe: map should only center after erratic movement has stopped? (Currently a battle can be nausiating to watch...)
-Doneoptimize a* movement: only calculate formation at destination location
-Workaround fix done another a* optimization: creature-blocked location should have higher heuristic value (it might move away) than wall or object-blocked ones.
-Done Make dragging objects a drag action (not click to pick up, click to drop)
-Done Bug in object dragging, if mouseup fires outside dragged object image? Sometimes the mouseup is not handled correctly.
-Done Fix memory leak in freeing objects after a mission is over
-Done Party is not in the right starting position on missions past the first one
Features for version 0.2:
-Done Stencil shadows
-Done Change group leader/navigate single character
-Done Misc. UI improvements: candle glow ring, circles under characters, multi-textured lighting
-Done Inventory management: move/trade/drop items
-Done 3DS object support for inventory items
-Done Wider corridors
-Done Minimap (thanks to: Daroth-U)
-Done CMAKE configuration file
-Done Equip items
-Done Enable/Disable stencil buffer use
-Done Dynamically find video mode
-Done some pics on main ui buttons
Version 0.2 is ready for packaging and release.
Features for a later versions, ideas, etc.
-making equipment from materials (crafting)
-Divine presence, intervention, etc.
-Lycanthropes, vampirism and undead
-More general silliness
-shading md2 model polys (like 3ds shading)
-NPC (non-monsters): talk/trade/train
-Class-based special abilities
-Vary battle descriptions (monster bites/claws/hits/attacks, etc.)
-Load/save levels when going thru gates
-Add sine curve (w. zoom) to arrows to approx. launch curve.
-Add trailing 'smoke' effect to arrows
-Add 'minimize' function to windows where they only show a titlebar at the bottom of screen
-Add pics back to formation buttons
-Add more mission objectives (e.g.: kill _all_ monsters, destroy traps, talk to npc, etc.)
-Mission success scripts (you get to keep objects found, etc.)
-add effect (lights?) to pedestals (holding mission objects)
-Add natural monster weapons (claw,kick,bite,etc.)
-Tunnels and tunnel spell
-Activate/de-activate traps with levers (assumes traps exist...) Note: most traps don't have lever controls and cannot be deactivated.
-Higher level spells, creatures, story, etc.
-Needed spells, potions, etc. (e.g. "teleport in a can" potion)
-Save visited levels.
-Recast last spell button
-Make objects rotate-able for the layout engine. (So we don't have to have 2 chests for the 2 orientations.)
-Implement flying creatures (fairy; can fly over walls? And ghosts that can go thru walls.)
-Cache HQ map? (May not be an issue when save/load maps is implemented)
-Better savegame: also save map, calendar events, etc.
-Add battle action to make creatures 'guard' area. (Only attack when provoked.)
-Show other info (creature, shape) in infogui
-Opening a door can obliterate an item on the ground
-Possible to put container A in B and B in A. This is not good...
TO DO: Performance/General
-Done Instead of OpenGL lights, use texture mapped shapes around torches. (Make them wobble...)
-Done For the "dark, underground atmosphere", try an overhead stencil?
-Dynamically figure out MAP_VIEW_WIDTH and depth, to only draw as much of the map as needed (not they're constants)
-Done Remove glut dependency
-Done Add ability to run in a diff. video mode. (Diff, bpp not resolution.)
-Effects between screen transitions (from menu to gameplay, etc.)
-Done Md2 animation; so pc-s don't just slide around like paralysed corpses on ice.
-Done Audio/Video options: not use stencil buffer, etc.
-Done Simpler gui (or just clean up the current gui code...)
-Show gui in an overlay so it doesn't have to be updated quite so often?
TO DO: Gameplay
-Done Create a 'base' level. This is the scourge team/office building. A static level of maybe 1 room with a pub to exchange members of your party, trade, drink, womanize, train and most importantly select your next mission from 'the board'.
-Done Inventory UI (incl. spells, log, etc.)
-Done Mini/Auto map
-Done Enemies (Md2 models)
-Done Objects (3ds, milkshape, etc. code)
-Done Containers (bookshelves, chests, etc.)
-Linked events (pulling lever opens secret passage, etc.)
-Done Calendar-based events
-Done Stairs (multi-level dungeons)
-Done General game options
TO DO: Role playing system
-Done Finalize classes, skills, levels, simple NPC system, etc.
-Done Define battle: objects, skills, etc. (balance everything)
-Done Code it as separate, reuseable, headless (no UI) package
TO DO: Creative
-Create our own Md2 models (lower poly count)
-Music & sounds
-Done Create objects, furniture, torches, etc.
-Maybe create multiple wall decorations so we can have diff. looking dungeons.
-Some randomness in wall texture
-Compile binaries for other architectures/OS-s (BeOS, etc.)
-Test on other video-cards
-Done: back to autotools
integrated (single) makefile. I want to try using cmake
-get cross-compilation (linux->windows) to work
-You can donate money to S.C.O.U.R.G.E.
if you're so inclined.
1. Basic single-player game with a good feature set.
2. Playability testing, more content, balanced rpg system up to level 100.
3. Cooperative network play
4. Link to outside environments (perhaps using a diff. engine)
5. Complete world domination.