Difference between revisions of "Middlecrest"

From RogueBasin
Jump to navigation Jump to search
m
m
 
(66 intermediate revisions by 3 users not shown)
Line 3: Line 3:
|theme = [[Theme#Fantasy | Medieval Fantasy]], Gothic Punk
|theme = [[Theme#Fantasy | Medieval Fantasy]], Gothic Punk
|influences = The Elder Scrolls, [[Dungeons_and_Dragons | Dungeons and Dragons]], Poison Elves
|influences = The Elder Scrolls, [[Dungeons_and_Dragons | Dungeons and Dragons]], Poison Elves
|released = October 2010 ([[Alpha]])
|released = October 2010 ([[Alpha]], v0.0.71)
|updated = Dec 28, 2010 (v0.0.81)
|updated = Nov 11, 2011 (v0.2.23)
|licensing = [[Freeware | Shareware]],<br/>[[Open Source]]
|licensing = [[Freeware | Shareware]],<br/>[[Open Source]]
|language = [[C]], [[Cpp | C++]]
|language = [[C]], [[Cpp | C++]], [[Lua]]
|platforms = Windows
|platforms = Windows
|interface = [[ASCII]]
|interface = [[ASCII]]
Line 13: Line 13:
}}
}}


Middlecrest is a gothic punk themed fantasy roguelike ("roguelike" in a broad sense, since it will fuse some elements from CRPG's in a more-or-less roguelike way). Many of the fantasy elements are taken from low-fantasy, emphasizing real-world historical situations and analogues (for example, much of the society of Middlecrest is based on real-world medieval or Renaissance models, although shuffled around somewhat). Magic is present in the world, although it is rarer and magical beings and monsters operate more like their mythological counterparts, rather than like their high-fantasy (Tolkien, Dungeons and Dragons, etc.) versions. The gothic punk aspect refers to the theme and "feel" of the world and is based on the modern punk-derived goth subculture and the Neo-Romantic punkish world envisioned by Adam and the Ants in the video "Stand and Deliver". The comic book, Poison Elves, is a prime example of the theme.
Middlecrest is a roguelike inspired by Daggerfall, although the game is not strictly limited to the mechanics of the roguelike genre. The goal of the project is to implement many of the same ideas seen in the earlier games of the Elder Scrolls franchise but to also include Daggerfall features that never saw the light of day (shelved due to time constraints and/or complexity), particularly ones investigated at the [https://web.archive.org/web/20150110050617/http://www.svatopluk.com/daggerfall/museum Daggerfall Museum].


Daggerfall is the main inspiration for the project. The goal with this project is to not only implement many of the game ideas seen in the Elder Scrolls series (not necessarily using all the same game mechanics of Daggerfall... I take the liberty to expand, improve, and make new where I see fit), but also to implement those [http://www.svatopluk.com/daggerfall/museum/ features] that didn't make it into Daggerfall specifically. Daggerfall promised more than it actually delivered (although it delivered a lot) and it is about time to let those forgotten and exciting features see the light of day! :)
Middlecrest also features a minor gothic punk theme. Examples of the aesthetic are the comic book Poison Elves and the Neo-Romantic punkish world envisioned in Adam and the Ants' video "Stand and Deliver".


Feel free to [http://sourceforge.net/projects/middlecrest/files/ download] and test the latest version!
Feel free to [http://sourceforge.net/projects/middlecrest/files/ download] and test the latest version!
<b>Middlecrest is in a major re-write phase.</b>


==Technologies==
==Technologies==


Middlecrest is programmed in C and C++ and makes use of SQLite for much of its game data. It incorporates other libraries, such as Boost.
Middlecrest makes use of SQLite, C++ Boost, and Audiere libraries.
 
Much of the game data is stored in SQLite and flat files. The game "logic" of Middlecrest will be supplied by native C++ code and some Lua scripts.


==Status and Road Map==
==Status and Road Map==


Presently, the project is in a very early alpha stage. Only basic functionality is implemented for only a minority of features. The things I plan on implementing in the near future are:
Presently, the project is in a very early stage of development. Only basic functionality is implemented for a few features. Executables are released for testing and bug reporting.
 
Due to the current re-write, only world and dungeon generation (featuring only one theme) will be featured in the next release.
 
* <s>Dungeon generation (cave theme)</s>
* World generation <--- current development


* Completed magic system that incorporates both arcane and priestly magic. Right now only a portion of arcane magic is implemented.
The next release will be version 0.2.23b. It will be a stripped down version of 0.2.23, using an almost entirely new codebase.
* Look command
* <s>Implementing the experience system</s>
* <s>Basic, core classes</s> and then expanding it to other classes later
* Non-trivial pathfinding and tracking modes (sight, scent)
* <s>Magical items with elemental effects</s>
* Time and scheduling system
* FoV and LoS
* <s>Town and wilderness generation (simple)</s>


==Features==
==Features==
Line 41: Line 42:
Here is a description of features that Middlecrest will eventually contain:
Here is a description of features that Middlecrest will eventually contain:


* Freeform quest generator (including quests that aren't the traditional hack-n-slash style roguelike quests)
* <b>Procedural Quest Generation</b> -- Freeform and procedural quest generator (including quests that aren't the traditional hack-n-slash style roguelike quests). Quests take into account characters that have met you at various times and may influence or impact a quest in unexpected ways.
* Item, spell, potion, and class makers
* <b>Makers</b> -- Item, spell, potion, and class makers
* Themed dungeon generators (examples: caves, dungeons, fortifications, ruins, etc.)
* <b>Themes</b> -- Themed dungeon generators (examples: caves, dungeons, fortifications, ruins, etc.)
* School based magic system
* <b>Magic System</b> -- School based magic system.
* Weather system so that clothes will actually be an important aspect of the game to keep you warm, dry, etc.
* <b>Weather system</b> -- Clothes will actually be an important aspect of the game to keep you warm, dry, etc.
* Durability: items can break, excluding a few things, like rings, etc.
* <b>Durability</b> -- Items can break, excluding a few things, like rings, etc.
* Emergent game world: Events are emergent from the game and based on your actions and the actions of the NPC's. The game world changes accordingly.
* <b>Emergent game world</b> -- Events are emergent from the game and based on your actions and the actions of the NPC's. The game world changes accordingly.
* Advanced AI: characters and monsters will behave based on their needs (remember the Sims?) for more realistic interaction and behavior.
* <b>Advanced AI</b> -- Characters and monsters will behave based on their needs (remember the Sims?) for more realistic interaction and behavior.
* Softer permadeath features -- Don't worry! Permadeath is still there, looming, and ever-present. It's just that there are ways (although uncommon and very difficult) to get around death.
* <b>Graded Difficulty</b> -- Roguelike games often have a very steep difficulty curve. It usually takes a few characters to get the feel of the game and a lucky generations of the RNG to get your character rolling. Various leveled lists based on player level and other algorithms will be used to create a difficulty curve that adjusts to your character (easier at the beginning, more difficult as your character becomes more skilled, experienced, stronger, etc.). Some areas, such as random areas outside of quests, will have a high difficulty level but they will still be adjusted for the character somewhat.
* <b>Softer Permadeath</b> -- Don't worry! Permadeath is still there, looming, and ever-present. It's just that there are ways (although uncommon and very difficult) to get around death.
* <b>Roleplaying</b> -- The player is rewarded through a Daggerfall-like role-playing system, expressed through character class, rather than through a generalized experience point system or Skyrim-like perks system. Play is generally free-form and does not restrict character development. The system simply rewards players for role-playing.
* <b>Persistent World</b> -- World stays the same between each death. You can go back and recover loot from a previous character. You can also meet living characters in game and resurrect killed characters to restore old games.
 
==Numbering Scheme==


==Version Log==
Project version numbers are split into x.y.z.b format.


* v0.0.71 -- Demo: dungeon generation, monster, and item generation, inventory, movement, picking up items, dropping items, equipping items, searching, basic combat (magical and mundane), minimal monster AI, basic database capabilities.
x.y corresponds to different major versions. Different versions are substantially distinct as they typically include feature updates and re-factored or overhauled code.


* v0.0.78 Minigame -- Updated C++ Boost library to v1.44 and SQLite to v3.7.3, corrected database bugs, added elemental magic effects on weapons, implemented damage resistances vs. spells, updated attack calculations, all armor is equip-able, release and readme information viewable in-game using the 'v' and '?' commands respectively, added scrolls although they are not in item generation routines yet (they need to be designed and more fleshed out still), fixed typos, and a bunch of minor code improvements. Source code included.
z corresponds to minor version number, and denotes how far along the road map the major version is. Think of it as a percentage. v0.1.87 indicates, for example, version 0.1 is 87% complete.


* v0.0.79 Minigame + Levels -- Added town generation, added wilderness generation, travel between levels, doors, minor code improvements and bug fixes.
b is an optional number, which corresponds directly to bug fixes. There is no difference, for example, between v0.1.87 and v0.1.87.1 other than v0.1.87.1 is less buggy. Likewise, v0.1.87.2 would be less buggy than v0.1.87.1.


* v0.0.80 Minigame + Class/Race -- Updated C++ Boost library to v1.45, added races and classes, significant code overhaul and code improvements.
==Version Log==


  v0.0.81 Shopkeepers (current) -- Added shopkeeper character (although no buying and selling yet) and various bug fixes.
* Pre v0.2.23b -- Removed, since the current codebase has little relation to the previous versions and many of the features have been stripped out (to be added later) for v0.2.23b
  Includes previous updates of the SQLite library to v3.7.4, significant reduction in memory footprint, and various code
* v0.2.23b -- Planned for release: dungeon generation, world generation
  improvements.


==External Links==
==External Links==
Line 70: Line 75:


[http://sourceforge.net/projects/middlecrest/files/ Latest code release for Middlecrest]
[http://sourceforge.net/projects/middlecrest/files/ Latest code release for Middlecrest]
[[Category:Open ended roguelikes]]

Latest revision as of 22:23, 18 April 2017

Middlecrest
Alpha Project
Developer Sean Brown
Theme Medieval Fantasy, Gothic Punk
Influences The Elder Scrolls, Dungeons and Dragons, Poison Elves
Released October 2010 (Alpha, v0.0.71)
Updated Nov 11, 2011 (v0.2.23)
Licensing Shareware,
Open Source
P. Language C, C++, Lua
Platforms Windows
Interface ASCII
Game Length Unlimited
Official site of Middlecrest


Middlecrest is a roguelike inspired by Daggerfall, although the game is not strictly limited to the mechanics of the roguelike genre. The goal of the project is to implement many of the same ideas seen in the earlier games of the Elder Scrolls franchise but to also include Daggerfall features that never saw the light of day (shelved due to time constraints and/or complexity), particularly ones investigated at the Daggerfall Museum.

Middlecrest also features a minor gothic punk theme. Examples of the aesthetic are the comic book Poison Elves and the Neo-Romantic punkish world envisioned in Adam and the Ants' video "Stand and Deliver".

Feel free to download and test the latest version!

Middlecrest is in a major re-write phase.

Technologies

Middlecrest makes use of SQLite, C++ Boost, and Audiere libraries.

Much of the game data is stored in SQLite and flat files. The game "logic" of Middlecrest will be supplied by native C++ code and some Lua scripts.

Status and Road Map

Presently, the project is in a very early stage of development. Only basic functionality is implemented for a few features. Executables are released for testing and bug reporting.

Due to the current re-write, only world and dungeon generation (featuring only one theme) will be featured in the next release.

  • Dungeon generation (cave theme)
  • World generation <--- current development

The next release will be version 0.2.23b. It will be a stripped down version of 0.2.23, using an almost entirely new codebase.

Features

Here is a description of features that Middlecrest will eventually contain:

  • Procedural Quest Generation -- Freeform and procedural quest generator (including quests that aren't the traditional hack-n-slash style roguelike quests). Quests take into account characters that have met you at various times and may influence or impact a quest in unexpected ways.
  • Makers -- Item, spell, potion, and class makers
  • Themes -- Themed dungeon generators (examples: caves, dungeons, fortifications, ruins, etc.)
  • Magic System -- School based magic system.
  • Weather system -- Clothes will actually be an important aspect of the game to keep you warm, dry, etc.
  • Durability -- Items can break, excluding a few things, like rings, etc.
  • Emergent game world -- Events are emergent from the game and based on your actions and the actions of the NPC's. The game world changes accordingly.
  • Advanced AI -- Characters and monsters will behave based on their needs (remember the Sims?) for more realistic interaction and behavior.
  • Graded Difficulty -- Roguelike games often have a very steep difficulty curve. It usually takes a few characters to get the feel of the game and a lucky generations of the RNG to get your character rolling. Various leveled lists based on player level and other algorithms will be used to create a difficulty curve that adjusts to your character (easier at the beginning, more difficult as your character becomes more skilled, experienced, stronger, etc.). Some areas, such as random areas outside of quests, will have a high difficulty level but they will still be adjusted for the character somewhat.
  • Softer Permadeath -- Don't worry! Permadeath is still there, looming, and ever-present. It's just that there are ways (although uncommon and very difficult) to get around death.
  • Roleplaying -- The player is rewarded through a Daggerfall-like role-playing system, expressed through character class, rather than through a generalized experience point system or Skyrim-like perks system. Play is generally free-form and does not restrict character development. The system simply rewards players for role-playing.
  • Persistent World -- World stays the same between each death. You can go back and recover loot from a previous character. You can also meet living characters in game and resurrect killed characters to restore old games.

Numbering Scheme

Project version numbers are split into x.y.z.b format.

x.y corresponds to different major versions. Different versions are substantially distinct as they typically include feature updates and re-factored or overhauled code.

z corresponds to minor version number, and denotes how far along the road map the major version is. Think of it as a percentage. v0.1.87 indicates, for example, version 0.1 is 87% complete.

b is an optional number, which corresponds directly to bug fixes. There is no difference, for example, between v0.1.87 and v0.1.87.1 other than v0.1.87.1 is less buggy. Likewise, v0.1.87.2 would be less buggy than v0.1.87.1.

Version Log

  • Pre v0.2.23b -- Removed, since the current codebase has little relation to the previous versions and many of the features have been stripped out (to be added later) for v0.2.23b
  • v0.2.23b -- Planned for release: dungeon generation, world generation

External Links

Middlecrest development blog

Latest code release for Middlecrest