Crezth
i knew you were a real man of the left
Pre-thread and beta testing for CNES: Flowers on the Working Title
Introduction
The original ZPNESV: Flowers on the Razor Wire was launched in 2009 for the Never Ending Stories console, to much critical acclaim and consumer appeal. A semi-conventional boardgame NES, ZPNESV married excellent graphical design with a solid gameplay foundation to create a truly satisfying NES experience that lasted from August 28th to December 15th 2009. Featuring 19 high-quality updates, it was truly underappreciated in its time.
I seek to launch a clone of Daftpanzer’s truly stellar ZPNESV, and I even intend to improve on it where I can. It will feature an updated battle system (built on the tried and tested Daftpanzer model), a brand new world map (provided by resident mapmaker extraordinaire, Iggy), custom sprites (cobbled together by yours truly), and a bold, new world that you (yes, you!) will help create.
Overview
ZPNESV was a game of conquest and strategy, wherein multiple nations battled across a war-torn world for economic, militaristic, and technological supremacy. To reduce it to brass tacks, it is like a mixture of Axis & Allies and Risk: a true board-game NES. CNES seeks to be ZPNESV's spiritual successor.
The general purpose of this thread is to construct the rule-set for CNES as well as to present progress on the NES as it occurs. I will be asking for feedback on the rules, and at some points even inputs for content.
These first three posts will be divided into five parts, and the progress of each of these parts will be numerically represented as they approach completion (some proportion of 100%). The five parts will be: the Game Rules, the Combat Mechanics, the Map, the Cultures, and the Sprites. As each of these are developed further, I will edit these posts and make update posts further along in the thread.
So, without further ado, let’s get started.
OVERALL PROGRESS
{----------} : 47.4%
Game Rules
These are rules directly related to the game in the sense that the players experience it. Combat rules are not discussed here; those are reserved for the Combat Mechanics section.
The rules from the original ZPNESV can be found here.
I plan to co-opt many of these rules for my purposes, however I will be changing, adding, and subtracting significantly so do not take Daftpanzer’s rules as the definitive for CNES. At this current juncture progress is very tentative due to a lack of a completed map. As the map is developed, the rules for Movement, Diplomacy, Economy, and other miscellany will be posted here.
PROGRESS:
{----------} 57% (Current: Starting-off rules)
To Do:
Economy Rules - contingent on nothing
Tech Tree - contingent on nothing
Diplomacy Rules - contingent on nothing
Movement Rules - contingent on Map development
Joining the Game - contingent on Map, Cultures, and Sprites development
Sending Orders - contingent on Game Rules, and Combat Mechanics development
Miscellaneous Rules - contingent on Game Rules development
Combat Mechanics
These are rules having to do with combat, the bread and butter of this game. The mechanics of multiple fighting armies will be discussed here: how do the armies fight, what stats do they have, etc.
The entire combat is being automated by a program for the sake of easily simulating large battles (faster updates) and introducing a sense of consistency to the ruleset to minimize instances of moderator bias. This represents the most significant shift from Daft's ruleset; however, the essential spirit of the combat system in ZPNESV is being preserved.
The very basic description of how combat in CNES will work is that two armies will, across various movement phases, come to occupy the same territory. Upon doing so, they will engage in combat. This combat is affected by multiple factors:
The attacking team/the defending team; the terrain; the condition or quality of the offending and defending troops; the level of fortifications in the defending team’s region; appropriate technological modifiers, and; supporting fire from neighboring territories (where applicable).
Armies consist of air and ground units, which are produced out of territories you own or capture. Ground units and helicopters have movement that is individual to them, whereas air units each have a certain “range” that they are capable of joining combat within. A battle occurs whenever two armies of opposing factions occupy the same territory - either because one army attacked into the territory of another, or because two armies attacked each into the opposite’s territory, or because two armies attacked into the same territory. In the first of these cases, there is an attacking team and a defending team; in the latter two cases, there are only attacking teams. Two armies that are allied and in the same territory, or move in the same way, fight together when entering combat. Armies may also be supported by certain units in adjacent territories - currently, the only unit capable of offering supporting fire from an adjacent territory is the Battleship.
Once combat is joined and the factors are applied, the two armies fight a battle across a maximum of three “Heats.” Each Heat features each unit in both armies attacking one unit in the opposing army. After applying modifiers involving the strength of each units (which determines whether the attacker can score a hit), the armor of the defender (which determines how well the defender can resist “soft” attacks), the armor-piercing of the attacker (which determines how well the attacker can hurt units with armor), and other factors (such as flying units being hard to hit by non-anti-air ground units). There is a base 5% chance for a unit to score a critical hit on another unit - in such a circumstance, no matter what, the defending unit is destroyed. At the end of each heat, support units also attack as if they were regular units; however, they cannot be targeted by other units nor other support units.
The way the attacking unit selects a defending unit to attack was, traditionally, based on Daftpanzer’s good judgement for what would make a “balanced fight.” So the fundamentally anti-armored Siege Tank unit would often be paired up against armored opponents, as that made more sense than rounding up a Militia with no armor-piercing capabilities for the same task. Since part of the goal of this system is to automate, a different tack is required: each unit type will have a catalogue of “favored opponents” that it will select from, with the most favored opponents being more likely candidates to receive fire than less favored opponents. In the event that no favored opponents are available, it will choose a random target to attack.
A full list of all units - naval, land, and air - will be available soon, as well as their stats and rules for what the stats mean and how they work.
Here’s an example of what the inputs and outputs will look like, using everyone’s two favorite European belligerents as examples (taken from build alpha v0.2; Wed,May 30,2012):
Curious about the way this program works? An experienced mathematician, programmer, or computer modeler? Feel free to PM me questions, comments, advice, and criticism.
PROGRESS:
{----------} 80% (Current: naval combat)
To Do: (numbers are indicated for keeping track, they do not indicate any semblance of sequence)
Main Program Files for Army and Navy Combat
Hit/Kill/Pierce algorithms for non-flying units
1. Hit/Kill/Pierce algorithms for flying units - technically existent, but broken; needs to be looked at; may be fixed by item 4
2. Rework naval combat system - aim for emergent behaviors s.t. battleships > destroyers > subs > battleships etc...
3. Rework “support” units substructure - contingent on item 2 to a large degree, also: should artillery, bombers, etc be considered “support” units? If so, under what circumstances?
4. Favored opponents and defender’s bias algorithm - important
5. Quality effects, such as: terrain, army quality, fortification status, technological customization effects, special cultural bonuses/maluses, other special unit effects - potentially a lot of content
6. Integrate program support for allied armies.
7. Importer subroutine to collate entries.
8. Units List - contingent on nothing
9. Balance Units - contingent on Combat Mechanics development
Introduction
The original ZPNESV: Flowers on the Razor Wire was launched in 2009 for the Never Ending Stories console, to much critical acclaim and consumer appeal. A semi-conventional boardgame NES, ZPNESV married excellent graphical design with a solid gameplay foundation to create a truly satisfying NES experience that lasted from August 28th to December 15th 2009. Featuring 19 high-quality updates, it was truly underappreciated in its time.
I seek to launch a clone of Daftpanzer’s truly stellar ZPNESV, and I even intend to improve on it where I can. It will feature an updated battle system (built on the tried and tested Daftpanzer model), a brand new world map (provided by resident mapmaker extraordinaire, Iggy), custom sprites (cobbled together by yours truly), and a bold, new world that you (yes, you!) will help create.
Overview
ZPNESV was a game of conquest and strategy, wherein multiple nations battled across a war-torn world for economic, militaristic, and technological supremacy. To reduce it to brass tacks, it is like a mixture of Axis & Allies and Risk: a true board-game NES. CNES seeks to be ZPNESV's spiritual successor.
The general purpose of this thread is to construct the rule-set for CNES as well as to present progress on the NES as it occurs. I will be asking for feedback on the rules, and at some points even inputs for content.
These first three posts will be divided into five parts, and the progress of each of these parts will be numerically represented as they approach completion (some proportion of 100%). The five parts will be: the Game Rules, the Combat Mechanics, the Map, the Cultures, and the Sprites. As each of these are developed further, I will edit these posts and make update posts further along in the thread.
So, without further ado, let’s get started.
OVERALL PROGRESS
{----------} : 47.4%
Game Rules
These are rules directly related to the game in the sense that the players experience it. Combat rules are not discussed here; those are reserved for the Combat Mechanics section.
The rules from the original ZPNESV can be found here.
I plan to co-opt many of these rules for my purposes, however I will be changing, adding, and subtracting significantly so do not take Daftpanzer’s rules as the definitive for CNES. At this current juncture progress is very tentative due to a lack of a completed map. As the map is developed, the rules for Movement, Diplomacy, Economy, and other miscellany will be posted here.
PROGRESS:
{----------} 57% (Current: Starting-off rules)
To Do:
Movement Rules - contingent on Map development
Joining the Game - contingent on Map, Cultures, and Sprites development
Sending Orders - contingent on Game Rules, and Combat Mechanics development
Miscellaneous Rules - contingent on Game Rules development
Combat Mechanics
These are rules having to do with combat, the bread and butter of this game. The mechanics of multiple fighting armies will be discussed here: how do the armies fight, what stats do they have, etc.
The entire combat is being automated by a program for the sake of easily simulating large battles (faster updates) and introducing a sense of consistency to the ruleset to minimize instances of moderator bias. This represents the most significant shift from Daft's ruleset; however, the essential spirit of the combat system in ZPNESV is being preserved.
The very basic description of how combat in CNES will work is that two armies will, across various movement phases, come to occupy the same territory. Upon doing so, they will engage in combat. This combat is affected by multiple factors:
The attacking team/the defending team; the terrain; the condition or quality of the offending and defending troops; the level of fortifications in the defending team’s region; appropriate technological modifiers, and; supporting fire from neighboring territories (where applicable).
Armies consist of air and ground units, which are produced out of territories you own or capture. Ground units and helicopters have movement that is individual to them, whereas air units each have a certain “range” that they are capable of joining combat within. A battle occurs whenever two armies of opposing factions occupy the same territory - either because one army attacked into the territory of another, or because two armies attacked each into the opposite’s territory, or because two armies attacked into the same territory. In the first of these cases, there is an attacking team and a defending team; in the latter two cases, there are only attacking teams. Two armies that are allied and in the same territory, or move in the same way, fight together when entering combat. Armies may also be supported by certain units in adjacent territories - currently, the only unit capable of offering supporting fire from an adjacent territory is the Battleship.
Once combat is joined and the factors are applied, the two armies fight a battle across a maximum of three “Heats.” Each Heat features each unit in both armies attacking one unit in the opposing army. After applying modifiers involving the strength of each units (which determines whether the attacker can score a hit), the armor of the defender (which determines how well the defender can resist “soft” attacks), the armor-piercing of the attacker (which determines how well the attacker can hurt units with armor), and other factors (such as flying units being hard to hit by non-anti-air ground units). There is a base 5% chance for a unit to score a critical hit on another unit - in such a circumstance, no matter what, the defending unit is destroyed. At the end of each heat, support units also attack as if they were regular units; however, they cannot be targeted by other units nor other support units.
The way the attacking unit selects a defending unit to attack was, traditionally, based on Daftpanzer’s good judgement for what would make a “balanced fight.” So the fundamentally anti-armored Siege Tank unit would often be paired up against armored opponents, as that made more sense than rounding up a Militia with no armor-piercing capabilities for the same task. Since part of the goal of this system is to automate, a different tack is required: each unit type will have a catalogue of “favored opponents” that it will select from, with the most favored opponents being more likely candidates to receive fire than less favored opponents. In the event that no favored opponents are available, it will choose a random target to attack.
A full list of all units - naval, land, and air - will be available soon, as well as their stats and rules for what the stats mean and how they work.
Here’s an example of what the inputs and outputs will look like, using everyone’s two favorite European belligerents as examples (taken from build alpha v0.2; Wed,May 30,2012):
Spoiler :
flowers on the razor wire testbug alpha v0.2
Enter the army name for attacking team: Germany
Enter the army name for defending team: France
ENTER Germany ARMY
Army matrices are: [MISATEA]
ENTER France ARMY
Army matrices are: [MISATEA]
Germany ARMY:
4 Infantry
3 Armored Cars
3 Light Tanks
2 Artillery
2 Fighters
France ARMY:
4 Infantry
2 Armored Cars
2 Light Tanks
2 Artillery
Supported by:
1 Battleships
HEAT 1
Germany Infantry missed France Light Tanks!
Germany Infantry hit France Artillery! France Artillery destroyed!
Germany Infantry hit France Light Tanks! France Light Tanks resisted the attack!
Germany Infantry missed France Light Tanks!
Germany Armored Cars missed France Artillery!
Germany Armored Cars missed France Armored Cars!
Germany Armored Cars missed France Artillery!
Germany Light Tanks hit France Infantry! France Infantry destroyed!
Germany Light Tanks hit France Armored Cars! France Armored Cars destroyed!
Germany Light Tanks hit France Light Tanks! France Light Tanks resisted the attack!
Germany Artillery missed France Armored Cars!
Germany Artillery hit France Light Tanks! France Light Tanks destroyed!
Germany Fighters missed France Infantry!
Germany Fighters missed France Light Tanks!
France Infantry missed Germany Artillery!
France Infantry missed Germany Fighters!
France Infantry missed Germany Artillery!
France Infantry missed Germany Fighters!
France Armored Cars missed Germany Fighters!
France Armored Cars hit Germany Infantry! Germany Infantry destroyed!
France Light Tanks missed Germany Artillery!
France Light Tanks hit Germany Artillery! Germany Artillery destroyed!
France Artillery hit Germany Armored Cars! Germany Armored Cars destroyed!
France Artillery missed Germany Armored Cars!
France Battleships hit Germany Armored Cars! Germany Armored Cars destroyed!
HEAT 2
Germany Infantry missed France Light Tanks!
Germany Infantry missed France Artillery!
Germany Infantry missed France Light Tanks!
Germany Armored Cars missed France Infantry!
Germany Light Tanks missed France Infantry!
Germany Light Tanks missed France Armored Cars!
Germany Light Tanks missed France Armored Cars!
Germany Artillery missed France Armored Cars!
Germany Fighters missed France Armored Cars!
Germany Fighters missed France Artillery!
France Infantry missed Germany Fighters!
France Infantry hit Germany Light Tanks! Germany Light Tanks resisted the attack!
France Infantry missed Germany Armored Cars!
France Armored Cars missed Germany Fighters!
France Light Tanks missed Germany Artillery!
France Artillery missed Germany Fighters!
France Battleships missed Germany Fighters!
HEAT 3
Germany Infantry missed France Infantry!
Germany Infantry hit France Infantry! France Infantry destroyed!
Germany Infantry missed France Artillery!
Germany Armored Cars hit France Armored Cars! France Armored Cars destroyed!
Germany Light Tanks hit France Artillery! France Artillery destroyed!
Germany Light Tanks missed France Infantry!
Germany Light Tanks missed France Light Tanks!
Germany Artillery missed France Infantry!
Germany Fighters hit France Infantry! France Infantry destroyed!
Germany Fighters hit France Infantry! France Infantry destroyed!
France Infantry hit Germany Armored Cars! Germany Armored Cars destroyed!
France Infantry missed Germany Fighters!
France Infantry hit Germany Infantry! Germany Infantry destroyed!
France Armored Cars missed Germany Light Tanks!
France Light Tanks missed Germany Fighters!
France Artillery missed Germany Light Tanks!
France Battleships missed Germany Fighters!
HEAT 4
Germany Infantry hit France Light Tanks! France Light Tanks destroyed!
France Light Tanks hit Germany Artillery! Germany Artillery destroyed!
France Battleships hit Germany Light Tanks! Germany Light Tanks destroyed!
RESULTS:
Germany ARMY:
2 Infantry
2 Light Tanks
2 Fighters
France ARMY:
No France forces remain!
Germany VICTORY!
Enter the army name for attacking team: Germany
Enter the army name for defending team: France
ENTER Germany ARMY
Army matrices are: [MISATEA]
ENTER France ARMY
Army matrices are: [MISATEA]
Germany ARMY:
4 Infantry
3 Armored Cars
3 Light Tanks
2 Artillery
2 Fighters
France ARMY:
4 Infantry
2 Armored Cars
2 Light Tanks
2 Artillery
Supported by:
1 Battleships
HEAT 1
Germany Infantry missed France Light Tanks!
Germany Infantry hit France Artillery! France Artillery destroyed!
Germany Infantry hit France Light Tanks! France Light Tanks resisted the attack!
Germany Infantry missed France Light Tanks!
Germany Armored Cars missed France Artillery!
Germany Armored Cars missed France Armored Cars!
Germany Armored Cars missed France Artillery!
Germany Light Tanks hit France Infantry! France Infantry destroyed!
Germany Light Tanks hit France Armored Cars! France Armored Cars destroyed!
Germany Light Tanks hit France Light Tanks! France Light Tanks resisted the attack!
Germany Artillery missed France Armored Cars!
Germany Artillery hit France Light Tanks! France Light Tanks destroyed!
Germany Fighters missed France Infantry!
Germany Fighters missed France Light Tanks!
France Infantry missed Germany Artillery!
France Infantry missed Germany Fighters!
France Infantry missed Germany Artillery!
France Infantry missed Germany Fighters!
France Armored Cars missed Germany Fighters!
France Armored Cars hit Germany Infantry! Germany Infantry destroyed!
France Light Tanks missed Germany Artillery!
France Light Tanks hit Germany Artillery! Germany Artillery destroyed!
France Artillery hit Germany Armored Cars! Germany Armored Cars destroyed!
France Artillery missed Germany Armored Cars!
France Battleships hit Germany Armored Cars! Germany Armored Cars destroyed!
HEAT 2
Germany Infantry missed France Light Tanks!
Germany Infantry missed France Artillery!
Germany Infantry missed France Light Tanks!
Germany Armored Cars missed France Infantry!
Germany Light Tanks missed France Infantry!
Germany Light Tanks missed France Armored Cars!
Germany Light Tanks missed France Armored Cars!
Germany Artillery missed France Armored Cars!
Germany Fighters missed France Armored Cars!
Germany Fighters missed France Artillery!
France Infantry missed Germany Fighters!
France Infantry hit Germany Light Tanks! Germany Light Tanks resisted the attack!
France Infantry missed Germany Armored Cars!
France Armored Cars missed Germany Fighters!
France Light Tanks missed Germany Artillery!
France Artillery missed Germany Fighters!
France Battleships missed Germany Fighters!
HEAT 3
Germany Infantry missed France Infantry!
Germany Infantry hit France Infantry! France Infantry destroyed!
Germany Infantry missed France Artillery!
Germany Armored Cars hit France Armored Cars! France Armored Cars destroyed!
Germany Light Tanks hit France Artillery! France Artillery destroyed!
Germany Light Tanks missed France Infantry!
Germany Light Tanks missed France Light Tanks!
Germany Artillery missed France Infantry!
Germany Fighters hit France Infantry! France Infantry destroyed!
Germany Fighters hit France Infantry! France Infantry destroyed!
France Infantry hit Germany Armored Cars! Germany Armored Cars destroyed!
France Infantry missed Germany Fighters!
France Infantry hit Germany Infantry! Germany Infantry destroyed!
France Armored Cars missed Germany Light Tanks!
France Light Tanks missed Germany Fighters!
France Artillery missed Germany Light Tanks!
France Battleships missed Germany Fighters!
HEAT 4
Germany Infantry hit France Light Tanks! France Light Tanks destroyed!
France Light Tanks hit Germany Artillery! Germany Artillery destroyed!
France Battleships hit Germany Light Tanks! Germany Light Tanks destroyed!
RESULTS:
Germany ARMY:
2 Infantry
2 Light Tanks
2 Fighters
France ARMY:
No France forces remain!
Germany VICTORY!
Curious about the way this program works? An experienced mathematician, programmer, or computer modeler? Feel free to PM me questions, comments, advice, and criticism.
PROGRESS:
{----------} 80% (Current: naval combat)
To Do: (numbers are indicated for keeping track, they do not indicate any semblance of sequence)
2. Rework naval combat system - aim for emergent behaviors s.t. battleships > destroyers > subs > battleships etc...
3. Rework “support” units substructure - contingent on item 2 to a large degree, also: should artillery, bombers, etc be considered “support” units? If so, under what circumstances?
6. Integrate program support for allied armies.
7. Importer subroutine to collate entries.
8. Units List - contingent on nothing
9. Balance Units - contingent on Combat Mechanics development