- Joined
- Mar 10, 2009
- Messages
- 213
---This section is to be updated---
Development period: 2018-...
Note: most features listed below are already fully implemented in framework.
I humbly ask people who downloaded the test version to post their feedback here.
The map probably still has lots of bugs.
Type /Credits in game to see the complete list of contributors.
UPDATES to Test Version
03/18/2021 Problem: after thorough testing I've found out that many things that were working just fine last year are now broken (probably due to the latest Wc3 update)... (combat algorithms etc.) It would take a lot of time to establish why. I'm gravely disappointed and discouraged.
Latest update:
1) Changed throw explosives skill distance to (STR+PER)x25 (results in max 500 distance)
2) Added combat status boolean (On/Off) for all generated units.
All units start with FALSE as default. Successful hits (but preceeding dodge oppurtunity) during an attack set both attacker's & target's
Combat Boolean to true (triggering AI combat behaviour). Getting hit by an explosive or being trapped also sets this boolean to TRUE.
WIP: adding On/Off decision
making process for units. Temporary solution: units enter combat, whenever they
detect enemy target nearby (Unlike the advanced TSU AI algorithms used in target selection, it's a basic trigger
that simply checks all units in range and their faction).
3) Removed floating text from stealthed units (except for friendly fire reaction)
4) Reduced non-combat turn time for all units to 4 sec (optimized, down from 12+).
03/16/2021 Several bug fixes and unfinished functions have been polished.
03/14/2021 I've resumed working on this project and fixed several severe bugs. I'll try to focus on quests and dialogues now.
08/19/2020 I've decided to scrap current Speech/Barter progress and keep it for the demo release, if it ever happens. I doubt I'll have enough time to finish these mechanics in my current state of mind.
All other skills are fully functional within the demo version's scope, as intended.
I'll probably upload a PDF game manual at some point, when it's finished.
9/12/2020 Added several bug fixes based on test reports.
Changed chance to hit (before resistances/armor class) with explosives formula:
old: ChanceToHitExpl:=CharExplTotalSkill
new: ChanceToHitExpl:=(BasicChanceToHitExpl(50) + CharExplTotalSkill)/2
Reason: added extra 25% to hit, because multiple misses on a AOE effect were getting
unrealistic. at least some targets are getting hit by explosions now, if the unit throwing a grenade is unskilled.
Added AP(Mana) Fix for failed distance throw attempts.
old: ChanceToHitExpl:=CharExplTotalSkill
new: ChanceToHitExpl:=(BasicChanceToHitExpl(50) + CharExplTotalSkill)/2
Reason: added extra 25% to hit, because multiple misses on a AOE effect were getting
unrealistic. at least some targets are getting hit by explosions now, if the unit throwing a grenade is unskilled.
Added AP(Mana) Fix for failed distance throw attempts.
08/19/2020 I've decided to scrap current Speech/Barter progress and keep it for the demo release, if it ever happens. I doubt I'll have enough time to finish these mechanics in my current state of mind.
All other skills are fully functional within the demo version's scope, as intended.
I'll probably upload a PDF game manual at some point, when it's finished.
9/12/2020 Added several bug fixes based on test reports.
FAQ:
Q: What is Fallout Tactics: Feral Despair?
A: It’s a framework project (FTFD). Most of its features within WorldEdit are GUI-friendly and designed in such a way, that anyone (or almost anyone) could mod it in a couple of minutes. My limited knowledge of programming is what led to such choice.
Q: When is it going to be ready?
A: At this stage, I’m making a demo map with most features/mechanics etc. The goal is to use this framework to create a real custom campaign. Once the demo version is ready, I’ll try to gather a team to work on this project further. No map making knowledge would be required. I’m a noob myself.
Worst case scenario: the project dies at demo stage. The demo would be playable once released.
Q: Why do you upload unfinished work-in-progress versions quite often?
A: I can die any moment (no drama, plz, health issues).
Q: Why did you place so many “unique” items across the map?
A: It’s a WIP demo version. The final game version will have those either hand-placed in correct corresponding locations or spawned randomly.
Q: Why does the map have so many hand-placed regions?
A: When I started this project I had no idea how to solve some Rect. problems (and I still keep some old algorithms). Now I don't really need those regions to be hand placed for the game, because I generate them at start. But I keep the pre-placed regions just for visual convenience while working on the map (calculating destructible areas, etc). Once they're no longer needed, I'll delete them from the map. Their coordinates suffice for in-game processing.
Q: My unit can't use an item, it keeps spamming the message: "Impossible to activate".
A: It's a known lesser bug that happens when unit isn't inside a region. Algorithm reads it, as if unit was moving. Just move your unit a bit. I made a grave mistake while designing the map: regions are too tiny. If I ever remake the map into something bigger, I'll fix it by making the regions larger. As for this bug, I'll find a way to bypass it, eventually. 07/18/2020: Temporary fix seems to work for now (unless unit somehow ends up in the unauthorized area).
A: It’s a framework project (FTFD). Most of its features within WorldEdit are GUI-friendly and designed in such a way, that anyone (or almost anyone) could mod it in a couple of minutes. My limited knowledge of programming is what led to such choice.
Q: When is it going to be ready?
A: At this stage, I’m making a demo map with most features/mechanics etc. The goal is to use this framework to create a real custom campaign. Once the demo version is ready, I’ll try to gather a team to work on this project further. No map making knowledge would be required. I’m a noob myself.
Worst case scenario: the project dies at demo stage. The demo would be playable once released.
Q: Why do you upload unfinished work-in-progress versions quite often?
A: I can die any moment (no drama, plz, health issues).
Q: Why did you place so many “unique” items across the map?
A: It’s a WIP demo version. The final game version will have those either hand-placed in correct corresponding locations or spawned randomly.
Q: Why does the map have so many hand-placed regions?
A: When I started this project I had no idea how to solve some Rect. problems (and I still keep some old algorithms). Now I don't really need those regions to be hand placed for the game, because I generate them at start. But I keep the pre-placed regions just for visual convenience while working on the map (calculating destructible areas, etc). Once they're no longer needed, I'll delete them from the map. Their coordinates suffice for in-game processing.
Q: My unit can't use an item, it keeps spamming the message: "Impossible to activate".
A: It's a known lesser bug that happens when unit isn't inside a region. Algorithm reads it, as if unit was moving. Just move your unit a bit. I made a grave mistake while designing the map: regions are too tiny. If I ever remake the map into something bigger, I'll fix it by making the regions larger. As for this bug, I'll find a way to bypass it, eventually. 07/18/2020: Temporary fix seems to work for now (unless unit somehow ends up in the unauthorized area).
--Test Commands--
--Movement—
--Psychology and Stress—
--Perks--
--Traits--
--Unique Items--
[Wild Wasteland]
--Quest Items--
--Radiation and Radstorms—
--Body Parts--
--STRength/Weight/Inventory size--
--Target Searching Unit (TSU)--
This is an ongoing attempt to develop an AI system for this map. Info below is posted purely for (future) testers and team members. Ignore it otherwise.
--Debuffs—
--Melee combat features--
Backstab
Starting melee weapon skills:
Melee combat algorithm (basics) :
Sneak AI
---
Project Description/Background (Outdated)
I added a very basic menu with some test commands to help myself and testers during map dev.
Type /TC to enable/disable the feature.
Type /TC Help to see the list of available test commands.
Type /TC to enable/disable the feature.
Type /TC Help to see the list of available test commands.
--Movement—
Press arrow keys to move during your turn. Each unit can either run or walk. Running covers larger distance, drains Action Points equal to running speed value and allows unit to move accordingly. Walk speed is locked at 1 (cell). Excessive inventory weight forces units to walk. Mobility points define how many times a unit may move during their turn, provided they have enough Action Points left.
Formulas:
Formulas:
AGIlity influences AP (action points), MS (movement speed) and Mobility Points (MbP)
AP formula (F1)
initial=5 + Agility / 2
Each 2 AGI add 1 AP
--
MovementSpeedRun=WalkSpeed (1) + Max(WalkSpeed,AGI/RunSpeedMin(2))
Each 2 AGI after 2 AGI add 1 MS, min MS run (starting)= 2 (walk+1)
1=>2
2=>2
3=>2
4=>3
5=>3
6=>4
7=>4
8=>5
9=>5
10=>6
MbP=Max(MinMbP(1),(MS+WalkSpeed)/MSRunMin(2))
MS 2=>MbP 1
MS 3=>MbP 2
MS 4=>MbP 2
MS 5=>MbP 3
MS 6=>MbP 3
MS 7=>MbP 4
MS 8=>MbP 4
MS 9=>MbP 5
MS 10=>MbP 5
AP formula (F1)
initial=5 + Agility / 2
Each 2 AGI add 1 AP
--
MovementSpeedRun=WalkSpeed (1) + Max(WalkSpeed,AGI/RunSpeedMin(2))
Each 2 AGI after 2 AGI add 1 MS, min MS run (starting)= 2 (walk+1)
1=>2
2=>2
3=>2
4=>3
5=>3
6=>4
7=>4
8=>5
9=>5
10=>6
MbP=Max(MinMbP(1),(MS+WalkSpeed)/MSRunMin(2))
MS 2=>MbP 1
MS 3=>MbP 2
MS 4=>MbP 2
MS 5=>MbP 3
MS 6=>MbP 3
MS 7=>MbP 4
MS 8=>MbP 4
MS 9=>MbP 5
MS 10=>MbP 5
--Psychology and Stress—
StressMeter: 1 to 100 (% saved as integer array per unit index, 100=full)
Stress-related mechanics:
Each successful attack has a chance to increase target's stress
(up to 100% max). Critical hits cause twice as much stress (2x).
The amount of stress taken depends on several factors:
1) attacker's weapon type (1 to 10 integer value),
2) attacked unit's current HP (% of max, thus on attacker's DMG),
3) attacked unit's stress resistance stat,
4) attacked unit's Endurance
5) attacked unit's ideology/faith [WIP]
The chance to cause stress is governed by attacker's LUCK stat:
10% chance to cause stress per 1 point of luck: 100% with 10
and higher luck. Stress is caused only when DMG is caused.
StressCaused=[weaponStress + missingHP%(integer)]-Resist-END-I,F;
set to 0 if below 0.
Each 10% of stress meter filled reduces target's toHit chance (-5%)
down to CtoHit min (2.5%).
At 100% stress there's a mental breakdown test [WIP], unit dies to heart attack.
Stress meter depletes each turn a unit takes 0 dmg. [WIP, debatable decision, temp: disabled]
Done so far: weap stress, listed char stress, cycled unit's stress, HPStress, Stress Resistance (1 to 10), (Add TMP integer to store Latest Stress Value
Then condition to check if TMP= updated Stress Value,
Dispaly TXT message only if not equal) DONE
Stress intervals:
0 to 24 white
25 to 49 yellow (light)
50 to 74 yellow
75 to 99 orange
100 red + ! (exclamation mark)
5 intervals, saved as independent integer values in Gameplay Constants
TO DO: Faith=Creed=Ideology=Motivation mechanics
Character's stress resistance: Min(StressResMax, Max(StressResMin, StressResMin+CharCHA-1))
Stress-related mechanics:
Each successful attack has a chance to increase target's stress
(up to 100% max). Critical hits cause twice as much stress (2x).
The amount of stress taken depends on several factors:
1) attacker's weapon type (1 to 10 integer value),
2) attacked unit's current HP (% of max, thus on attacker's DMG),
3) attacked unit's stress resistance stat,
4) attacked unit's Endurance
5) attacked unit's ideology/faith [WIP]
The chance to cause stress is governed by attacker's LUCK stat:
10% chance to cause stress per 1 point of luck: 100% with 10
and higher luck. Stress is caused only when DMG is caused.
StressCaused=[weaponStress + missingHP%(integer)]-Resist-END-I,F;
set to 0 if below 0.
Each 10% of stress meter filled reduces target's toHit chance (-5%)
down to CtoHit min (2.5%).
At 100% stress there's a mental breakdown test [WIP], unit dies to heart attack.
Stress meter depletes each turn a unit takes 0 dmg. [WIP, debatable decision, temp: disabled]
Done so far: weap stress, listed char stress, cycled unit's stress, HPStress, Stress Resistance (1 to 10), (Add TMP integer to store Latest Stress Value
Then condition to check if TMP= updated Stress Value,
Dispaly TXT message only if not equal) DONE
Stress intervals:
0 to 24 white
25 to 49 yellow (light)
50 to 74 yellow
75 to 99 orange
100 red + ! (exclamation mark)
5 intervals, saved as independent integer values in Gameplay Constants
TO DO: Faith=Creed=Ideology=Motivation mechanics
Character's stress resistance: Min(StressResMax, Max(StressResMin, StressResMin+CharCHA-1))
--Perks--
I converted most Perks from original Fallout and some from Fallout 2 to fit FTFD's gameplay. Most Perks that involve random encounters/world map, etc. aren't being implemented yet. Some Perks are disabled (metabolism etc.) while being redesigned. I also added some new Perks and modified several old ones to make them more useful. Unique quest/item/NPC interactions can also unlock Perks. Those unlocked Perks are added automatically upon their requirement's completion.
For example, player might find a strange puzzle box. Opening the box (requires 5 INT, 5 LCK) and solving the puzzle drops their Sanity meter to 0 (complete batshit insane) and otherworldly forces transform player's nature by adding [Flagellant] Perk: [Any Stress points acquired through experiencing pain (taking damage) restore equal amount of Sanity.]. (It's an obvious Hellraiser tribute.) For now, I don't plan to have any limit on how many Perks would be in game. As of 06/29/2020 there are 37 fully working Perks.
List of Perks:
For example, player might find a strange puzzle box. Opening the box (requires 5 INT, 5 LCK) and solving the puzzle drops their Sanity meter to 0 (complete batshit insane) and otherworldly forces transform player's nature by adding [Flagellant] Perk: [Any Stress points acquired through experiencing pain (taking damage) restore equal amount of Sanity.]. (It's an obvious Hellraiser tribute.) For now, I don't plan to have any limit on how many Perks would be in game. As of 06/29/2020 there are 37 fully working Perks.
List of Perks:
LVL3
1)Awareness
2)Toughness
3)Swift Learner
4)Earlier Sequence
5)Night Vision
6)Quick Pockets
7)Bonus HtH Damage
LVL6
8)Bonus Ranged Damage
9)More Criticals
10)Sharpshooter
11)Friendly Foe
12)Rad Resistance
13)Snakeater
LVL3
14)Faster Healing
15)Healer
LVL12
16)Medic
17)Lifegiver
18)Mr. Fixit
19)Speaker
20)Master Thief
LVL18
21)Slayer
22)Sniper
LVL9
23)Dodger
24)Better Criticals
25)Master Trader
26)Bonus Rate of Fire
LVL6
27)Bonus HtH Attacks
28)Educated
29)Bonus Move
LVL12
30)Action Boy (/Girl)
31)Tag!
LVL21
32)Highlander
LVL3
33)Strong Back
34)Human Shield
LVL0
35)Entomologist (item)
36)Oathkeeper (item)
37)Flagellant (item)
1)Awareness
2)Toughness
3)Swift Learner
4)Earlier Sequence
5)Night Vision
6)Quick Pockets
7)Bonus HtH Damage
LVL6
8)Bonus Ranged Damage
9)More Criticals
10)Sharpshooter
11)Friendly Foe
12)Rad Resistance
13)Snakeater
LVL3
14)Faster Healing
15)Healer
LVL12
16)Medic
17)Lifegiver
18)Mr. Fixit
19)Speaker
20)Master Thief
LVL18
21)Slayer
22)Sniper
LVL9
23)Dodger
24)Better Criticals
25)Master Trader
26)Bonus Rate of Fire
LVL6
27)Bonus HtH Attacks
28)Educated
29)Bonus Move
LVL12
30)Action Boy (/Girl)
31)Tag!
LVL21
32)Highlander
LVL3
33)Strong Back
34)Human Shield
LVL0
35)Entomologist (item)
36)Oathkeeper (item)
37)Flagellant (item)
--Traits--
Trait limit is supposed to be 100 (more or less). As of 06/29/2020, there are 18 working traits, including most traits from the original Fallout and some new ones. Some Traits are designed in such a fashion, that they change gameplay (remember, I have no game dev. background whatsoever!) in a significant manner.
Example: [Heart of Steel] trait makes player character immune to death by heart attack, but the character takes double bleeding damage. Under normal circumstances, risk of heart attack (100% Stress) triggers death. Is it an OP trait? Maybe. But the bleeding damage isn't something to ignore either (bleeding damage increases each time character takes damage, stacking bleeding can hurt a lot... add the trait's x2 on top of that).
List of Traits:
Example: [Heart of Steel] trait makes player character immune to death by heart attack, but the character takes double bleeding damage. Under normal circumstances, risk of heart attack (100% Stress) triggers death. Is it an OP trait? Maybe. But the bleeding damage isn't something to ignore either (bleeding damage increases each time character takes damage, stacking bleeding can hurt a lot... add the trait's x2 on top of that).
List of Traits:
1)Bloody Mess
2)Bruiser
3)Small Frame
Player receives a +1 bonus to their Agility, but their Carry Weight is reduced. Player takes 25% extra limb damage.
Player's size (model scaling value set to 0.9) is reduced.
4)Finesse
5)Good Natured
6)Gifted
7)Heavy Handed
8)Skilled
9)Fast Shot
10)Kamikaze
11)Fast Metabolism
12)Jinxed
13)One Hander
14)Heliophobia (Custom)
15)Chem Reliant (Disabled)
16)Chem Resistant (Disabled)
17)Heart of Steel (Custom) immune to death by heart attack, takes 2x bleeding damage.
18)Blade Gunner (Custom) (restores AP once per turn, whenever unit swaps weapons)
19)Doomsday Saint (Custom) (healing never fails, if player killed 0 units, each death increases player character’s stress)
20)Wild Wasteland (customized, almost identical use, work in progress)
2)Bruiser
3)Small Frame
Player receives a +1 bonus to their Agility, but their Carry Weight is reduced. Player takes 25% extra limb damage.
Player's size (model scaling value set to 0.9) is reduced.
4)Finesse
5)Good Natured
6)Gifted
7)Heavy Handed
8)Skilled
9)Fast Shot
10)Kamikaze
11)Fast Metabolism
12)Jinxed
13)One Hander
14)Heliophobia (Custom)
15)Chem Reliant (Disabled)
16)Chem Resistant (Disabled)
17)Heart of Steel (Custom) immune to death by heart attack, takes 2x bleeding damage.
18)Blade Gunner (Custom) (restores AP once per turn, whenever unit swaps weapons)
19)Doomsday Saint (Custom) (healing never fails, if player killed 0 units, each death increases player character’s stress)
20)Wild Wasteland (customized, almost identical use, work in progress)
--Unique Items--
I placed several unique items across the map. Their excessive quantity and general saturation is also due to my wish to demonstrate varoius map's mechanics.
In fact, some of these items utilize their own bits of behaviour (combat, effects, etc.) that are indeed unique. Example: Salvaged metal armor has an ability called "Salvation" (pun intended). [Salvation]: adds Luck-based (10% per point, max. 95%) chance to double armor threshold effectiveness when attacked. No other item in game would ever recycle this same feature. So, by placing as many items as possible, I allow map testers to check most available features.
In fact, some of these items utilize their own bits of behaviour (combat, effects, etc.) that are indeed unique. Example: Salvaged metal armor has an ability called "Salvation" (pun intended). [Salvation]: adds Luck-based (10% per point, max. 95%) chance to double armor threshold effectiveness when attacked. No other item in game would ever recycle this same feature. So, by placing as many items as possible, I allow map testers to check most available features.
[Wild Wasteland]
Some items only appear, if player chose the "Wild Wasteland" Trait during character creation process.
Many wacky items were created simply to test some options provided by FTFD project's framework. Don't take them seriously, especially the lore-breaking ones (D&D ref. items and such). They're included in the demo version, but would be excluded from the real campaign.
Many wacky items were created simply to test some options provided by FTFD project's framework. Don't take them seriously, especially the lore-breaking ones (D&D ref. items and such). They're included in the demo version, but would be excluded from the real campaign.
--Quest Items--
Quest items are treated as such, even if they aren't involved in any quest(s) (yet). Any interaction with clickable item that produces an outcome (except for consumables) is treated via a quest item check list. For example, a book that adds permanent bonus to Science skill would be considered a quest item with no quest attached to it. The said missing quest could be added in an update. Quest items are just a very vague category used for internal procedures and can be dropped/removed/destroyed just like any other item. I prefer to give players absolute freedom, unless disabling player control is vital for my clunky triggers.
--Radiation and Radstorms—
(Fully implemented feature)
Fixed unit types get fixed radiation resistance (radscorpions, Deathclaws, etc.), but humanoid/sentient units’ endurance affects their rad. resistance. Ghouls/super mutants: initial: =END x Minimal (1); humans: initial: =Max (Minimal (1), END x Minimal (1) /4).
When a creature gets Rads, it fills its Radmeter. The values of different stages of irradiation are taken from Fallout 1 table. Lethal doze kills a unit at the beginning of its turn. Some items either protect character from radiation or reduce its impact.
Player one human requires to find a way to measure (quest item Geiger counter) their LVL of irradiation, otherwise this stat. remains hidden.
Occasionally, violent Radstorms occur. Player One human Perception stat influences how fast a warning message appears (best result being 10 turns before the storm).
Each Region (cell) stores a Rad value (0 for non-irradiated regions). This value may change dynamically each turn under the right circumstances. By default, areas with objects like cars, buildings and other similar ones have initial non-null LVL of radiation.
Fixed unit types get fixed radiation resistance (radscorpions, Deathclaws, etc.), but humanoid/sentient units’ endurance affects their rad. resistance. Ghouls/super mutants: initial: =END x Minimal (1); humans: initial: =Max (Minimal (1), END x Minimal (1) /4).
When a creature gets Rads, it fills its Radmeter. The values of different stages of irradiation are taken from Fallout 1 table. Lethal doze kills a unit at the beginning of its turn. Some items either protect character from radiation or reduce its impact.
Player one human requires to find a way to measure (quest item Geiger counter) their LVL of irradiation, otherwise this stat. remains hidden.
Occasionally, violent Radstorms occur. Player One human Perception stat influences how fast a warning message appears (best result being 10 turns before the storm).
Each Region (cell) stores a Rad value (0 for non-irradiated regions). This value may change dynamically each turn under the right circumstances. By default, areas with objects like cars, buildings and other similar ones have initial non-null LVL of radiation.
--Body Parts--
Each unit reads its body parts from their corresponding unit type table. For example, a human reads 21 body parts. Amongst those, head, neck, and chest are considered “kill zones”. Whenever HP of either of those drops to 0, unit dies.
VATS aim is restricted to 12 body parts.
Skills such as Doctor and First Aid affect each individual damaged body part. The same goes to healing rate effect(s).
VATS aim is restricted to 12 body parts.
Skills such as Doctor and First Aid affect each individual damaged body part. The same goes to healing rate effect(s).
--STRength/Weight/Inventory size--
STR impacts inventory size at start (character creation). (+10 slots per 1 point of STR)
Inventory size cannot be changed at any other time, even if STR increases. It is an intended feature, to emphasize STR stat. In several Fallout games STR was almost useless for a non-melee character.
Now, putting at least a few additional points into STR gives more benefits. The fact that enhancements like Power Armor (adds +3 STR) don't increase inventory size makes the first stat distribution decision even more important.
However, STR gains/changes impact CARRY WEIGHT mechanics.
If a unit reaches the weight limit, its movement speed is locked to walk speed (running being disabled). No other penalty is inflicted at this point. The weight limit is calculated as a sum of all items' weight and doesn't interact with inventory size limit.
Naturally, a strong unit will have many inventory slots and would be able to move at running speed with a higher weight limit.
Each time an item enters/leaves either the equipment or/and backpack inventory, carry weight is recalculated and compared to limit, then unit's running speed is reset to either normal running speed or walk (if >= to weight limit)
Equipped items also count towards the weight limit.
Inventory size cannot be changed at any other time, even if STR increases. It is an intended feature, to emphasize STR stat. In several Fallout games STR was almost useless for a non-melee character.
Now, putting at least a few additional points into STR gives more benefits. The fact that enhancements like Power Armor (adds +3 STR) don't increase inventory size makes the first stat distribution decision even more important.
However, STR gains/changes impact CARRY WEIGHT mechanics.
If a unit reaches the weight limit, its movement speed is locked to walk speed (running being disabled). No other penalty is inflicted at this point. The weight limit is calculated as a sum of all items' weight and doesn't interact with inventory size limit.
Naturally, a strong unit will have many inventory slots and would be able to move at running speed with a higher weight limit.
Each time an item enters/leaves either the equipment or/and backpack inventory, carry weight is recalculated and compared to limit, then unit's running speed is reset to either normal running speed or walk (if >= to weight limit)
Equipped items also count towards the weight limit.
--Target Searching Unit (TSU)--
This is an ongoing attempt to develop an AI system for this map. Info below is posted purely for (future) testers and team members. Ignore it otherwise.
Save Units' indices in UnitTargetList Hashtable.(done)
Upon reset, purge UnitTargetList values of searchingUnit only. (done)
For addressing unit's index by position:
system uses array: VAR_Char_I_ByPosition_I[1 to LimCellsPerColumn]:=Unit_I
Unit's index is stored in the array upon unit creation and after each movement.
Its value is then returned to check which unit occupies the position index.
Algorithm:
1)Read Searching unit index, position index. =>done
2)Read each TargetList'ed units' indices, position indices. =>done
3)Read Target Position Priority Level (by position), and choose MAX. =>done
4)Establish Path to target position of MAX TPP_LVL: 2 paths.
-----------------------
MOVEMENT
A unit can't move more than 10 cells (for humans).
max MbP=5 for 9 or 10 MS. Thus, a unit can either walk 5 cells, run 10 cells, or
switch run and walk for max 10 cells.
-----------------------
PRIORITY LEVEL
For now, the Target Position Priority Level is randomized. Later it will consist of
several factors, including the position's strategic value, unit's danger, threat level.
=> VAR_TargetPositionPriority_LVL + done
VAR_TargetWeapPriority_LVL + done
VAR_TargetRolePriority_LVL + done
...HP? => later, when HP hashtables are done
=ThreatLVL
The values have no upper limit, thus Target Priority Index won't have one either.
The target is selected through A>B comparison. If A=B, A remains as Max, since it had been
set before.
------------------------
attack target search line of sight
FctVAR_ATS_LoS[1 to 3]
[n]=List_CharLoS1[n]
[1]Default=20 (CHECK IT!)
[2]=[3] (if both eyes are healthy)Default=5
line of sight control points
FctVAR_ATS_LoSCp[1 to 4]:BL,BR,TL,TR
if UnitFacingAngle= North:
FctVAR_ATS_LoSCp[1]=UnitPositionIndex-FctVAR_ATS_LOS[2]
FctVAR_ATS_LoSCp[2]=UnitPositionIndex+FctVAR_ATS_LOS[3]
FctVAR_ATS_LoSCp[3]=(UnitPositionIndex-FctVAR_ATS_LOS[2])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
FctVAR_ATS_LoSCp[4]=(UnitPositionIndex+FctVAR_ATS_LOS[3])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
if UFA=West, then Cp1 shifts to Cp2, Cp2 to Cp4, Cp3 to Cp1, Cp4 to Cp3
FctVAR_ATS_LoSCp[1]=(UnitPositionIndex-FctVAR_ATS_LOS[1])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
FctVAR_ATS_LoSCp[2]=UnitPositionIndex-(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
FctVAR_ATS_LoSCp[3]=(UnitPositionIndex-FctVAR_ATS_LOS[1])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
FctVAR_ATS_LoSCp[4]=UnitPositionIndex+(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
if UFA=East, then Cp1 shifts to Cp3, Cp2 to Cp1, Cp3 to Cp4, Cp4 to Cp2
FctVAR_ATS_LoSCp[1]=UnitPositionIndex-(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
FctVAR_ATS_LoSCp[2]=(UnitPositionIndex+FctVAR_ATS_LOS[1])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
FctVAR_ATS_LoSCp[3]=UnitPositionIndex+(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
FctVAR_ATS_LoSCp[4]=(UnitPositionIndex+FctVAR_ATS_LOS[1])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
if UFA=South, then Cp1 shifts to Cp4, Cp2 to Cp3, Cp3 to Cp2, Cp4 to Cp1
FctVAR_ATS_LoSCp[1]=(UnitPositionIndex-FctVAR_ATS_LOS[3])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
FctVAR_ATS_LoSCp[2]=(UnitPositionIndex+FctVAR_ATS_LOS[2])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
FctVAR_ATS_LoSCp[3]=UnitPositionIndex-FctVAR_ATS_LOS[3]
FctVAR_ATS_LoSCp[4]=UnitPositionIndex+FctVAR_ATS_LOS[2]
LOSCp Boder adjustment
Uses CellDislocationValue Allocation Fct.
Movement keyboard event resets UnitPositionIndex and Facing angle through this function.
----------------------------------------------------------------------------------------------------
Target search algorithm
: separate function from LOS, uses CP[1...4] set in LOS
Search always starts at CP1 to CP2 interval with horizontal dislocation value=+1
including this interval, fct loops in total vertical LOS(1,2 or 3)+1,
(depending on Facing Angle) times.
Vertically:
Position<Index+1VERTICAL>=Position<Index>+(LOS[DeltaA]xLimCellsPerRow)
Vertical=LOSCurrent(A+B in case of horizontal LOS2 and LOS3 combined to become vertical)
FctVAR_AI_TargetSUVLOSMin=0
FctVAR_AI_TargetSUVLOSMax=Vertical_LOS
List_Char_LOSCp1,2,3,4 are stored after <Position, FA and LOS fct>, then used in search AI fct.
Boolean_Content_Region_Array_U[RegionIndexB] is being checked.
If TRUE, then region's index of region with unit in the region is stored in the
Target_List_Hashtable of AI_TargetSearchingUnit(Index).
Upon reset, purge UnitTargetList values of searchingUnit only. (done)
For addressing unit's index by position:
system uses array: VAR_Char_I_ByPosition_I[1 to LimCellsPerColumn]:=Unit_I
Unit's index is stored in the array upon unit creation and after each movement.
Its value is then returned to check which unit occupies the position index.
Algorithm:
1)Read Searching unit index, position index. =>done
2)Read each TargetList'ed units' indices, position indices. =>done
3)Read Target Position Priority Level (by position), and choose MAX. =>done
4)Establish Path to target position of MAX TPP_LVL: 2 paths.
-----------------------
MOVEMENT
A unit can't move more than 10 cells (for humans).
max MbP=5 for 9 or 10 MS. Thus, a unit can either walk 5 cells, run 10 cells, or
switch run and walk for max 10 cells.
-----------------------
PRIORITY LEVEL
For now, the Target Position Priority Level is randomized. Later it will consist of
several factors, including the position's strategic value, unit's danger, threat level.
=> VAR_TargetPositionPriority_LVL + done
VAR_TargetWeapPriority_LVL + done
VAR_TargetRolePriority_LVL + done
...HP? => later, when HP hashtables are done
=ThreatLVL
The values have no upper limit, thus Target Priority Index won't have one either.
The target is selected through A>B comparison. If A=B, A remains as Max, since it had been
set before.
------------------------
attack target search line of sight
FctVAR_ATS_LoS[1 to 3]
[n]=List_CharLoS1[n]
[1]Default=20 (CHECK IT!)
[2]=[3] (if both eyes are healthy)Default=5
line of sight control points
FctVAR_ATS_LoSCp[1 to 4]:BL,BR,TL,TR
if UnitFacingAngle= North:
FctVAR_ATS_LoSCp[1]=UnitPositionIndex-FctVAR_ATS_LOS[2]
FctVAR_ATS_LoSCp[2]=UnitPositionIndex+FctVAR_ATS_LOS[3]
FctVAR_ATS_LoSCp[3]=(UnitPositionIndex-FctVAR_ATS_LOS[2])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
FctVAR_ATS_LoSCp[4]=(UnitPositionIndex+FctVAR_ATS_LOS[3])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
if UFA=West, then Cp1 shifts to Cp2, Cp2 to Cp4, Cp3 to Cp1, Cp4 to Cp3
FctVAR_ATS_LoSCp[1]=(UnitPositionIndex-FctVAR_ATS_LOS[1])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
FctVAR_ATS_LoSCp[2]=UnitPositionIndex-(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
FctVAR_ATS_LoSCp[3]=(UnitPositionIndex-FctVAR_ATS_LOS[1])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
FctVAR_ATS_LoSCp[4]=UnitPositionIndex+(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
if UFA=East, then Cp1 shifts to Cp3, Cp2 to Cp1, Cp3 to Cp4, Cp4 to Cp2
FctVAR_ATS_LoSCp[1]=UnitPositionIndex-(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
FctVAR_ATS_LoSCp[2]=(UnitPositionIndex+FctVAR_ATS_LOS[1])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[3])
FctVAR_ATS_LoSCp[3]=UnitPositionIndex+(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
FctVAR_ATS_LoSCp[4]=(UnitPositionIndex+FctVAR_ATS_LOS[1])+(ConstLimCellsPerRow*FctVAR_ATS_LOS[2])
if UFA=South, then Cp1 shifts to Cp4, Cp2 to Cp3, Cp3 to Cp2, Cp4 to Cp1
FctVAR_ATS_LoSCp[1]=(UnitPositionIndex-FctVAR_ATS_LOS[3])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
FctVAR_ATS_LoSCp[2]=(UnitPositionIndex+FctVAR_ATS_LOS[2])-(ConstLimCellsPerRow*FctVAR_ATS_LOS[1])
FctVAR_ATS_LoSCp[3]=UnitPositionIndex-FctVAR_ATS_LOS[3]
FctVAR_ATS_LoSCp[4]=UnitPositionIndex+FctVAR_ATS_LOS[2]
LOSCp Boder adjustment
Uses CellDislocationValue Allocation Fct.
Movement keyboard event resets UnitPositionIndex and Facing angle through this function.
----------------------------------------------------------------------------------------------------
Target search algorithm
: separate function from LOS, uses CP[1...4] set in LOS
Search always starts at CP1 to CP2 interval with horizontal dislocation value=+1
including this interval, fct loops in total vertical LOS(1,2 or 3)+1,
(depending on Facing Angle) times.
Vertically:
Position<Index+1VERTICAL>=Position<Index>+(LOS[DeltaA]xLimCellsPerRow)
Vertical=LOSCurrent(A+B in case of horizontal LOS2 and LOS3 combined to become vertical)
FctVAR_AI_TargetSUVLOSMin=0
FctVAR_AI_TargetSUVLOSMax=Vertical_LOS
List_Char_LOSCp1,2,3,4 are stored after <Position, FA and LOS fct>, then used in search AI fct.
Boolean_Content_Region_Array_U[RegionIndexB] is being checked.
If TRUE, then region's index of region with unit in the region is stored in the
Target_List_Hashtable of AI_TargetSearchingUnit(Index).
--Debuffs—
At start of each unit's turn debuffs are checked in the following order:
---
1)Bleeding
2)Poison
3)Radiation
4)Stress
---
Bleeding
Poison
---
1)Bleeding
2)Poison
3)Radiation
4)Stress
---
Bleeding
add bleeding integer:
0=no bleeding, rest:=bleeding_lvl
for all body parts from 1 to 21(human)
check HP %, if bleeding boolean TRUE (or/and HP% less than 100% per part),
then apply bleeding integer per body part.
--
Bleeding HashT
bleeding_integer saved as body_part_index (1to21) of unit_index in HashT_BleedingStatus
if bleeding status boolean = TRUE,
then go into the HashT and check part per part.
bleeding_integer value = bleeding dmg points per turn
Character's bleed resistance: Min(BleedResMax, Max(BleedResMin, BleedResMin+CharEND-1))
0=no bleeding, rest:=bleeding_lvl
for all body parts from 1 to 21(human)
check HP %, if bleeding boolean TRUE (or/and HP% less than 100% per part),
then apply bleeding integer per body part.
--
Bleeding HashT
bleeding_integer saved as body_part_index (1to21) of unit_index in HashT_BleedingStatus
if bleeding status boolean = TRUE,
then go into the HashT and check part per part.
bleeding_integer value = bleeding dmg points per turn
Character's bleed resistance: Min(BleedResMax, Max(BleedResMin, BleedResMin+CharEND-1))
Poison
---
Unlike Bleeding, Poison affects all body parts at once. Thus, no need to check the status of each individual body part.
Damage is dealt to all body parts at once. The amount shown is equal to Sigma of damage points per body part.
Poison damage doesn't stack. (decision taken to [counter-]balance it)
However, different types of poison don't override each other. Each type causes damage as a separate instance.
---
Note: during combat, armor gives no poison resistance (same for animals, etc.) Poison resistance is checked (if damage type is poison) and added to TTL resistance.
1)radscorpion venom, value=100 (example)
Unlike Bleeding, Poison affects all body parts at once. Thus, no need to check the status of each individual body part.
Damage is dealt to all body parts at once. The amount shown is equal to Sigma of damage points per body part.
Poison damage doesn't stack. (decision taken to [counter-]balance it)
However, different types of poison don't override each other. Each type causes damage as a separate instance.
---
Note: during combat, armor gives no poison resistance (same for animals, etc.) Poison resistance is checked (if damage type is poison) and added to TTL resistance.
1)radscorpion venom, value=100 (example)
--Melee combat features--
Backstab
Conditions:
1) melee weapons only,
2) only applies if target's back is exposed,
3) simple attack modifier
backstab damage formula:
0.2*(str+agi)
This atack modifier applies before critical hit increase.
Each point of str or agi adds 20% bonus damage.
x2 with 5 and 5
x4 with 10 and 10
1) melee weapons only,
2) only applies if target's back is exposed,
3) simple attack modifier
backstab damage formula:
0.2*(str+agi)
This atack modifier applies before critical hit increase.
Each point of str or agi adds 20% bonus damage.
x2 with 5 and 5
x4 with 10 and 10
Starting melee weapon skills:
Bladed Weapons
Initial level%=20+(Strength+Perception+Agility)/3
Blunt Weapons
Initial level%=20+(Strength+Endurance+Agility)/3
Brawl/Melee Unarmed
Initial level%=65+(Strength+Agility)/2
Chainsaws
Initial level%=15+(Strength+Agility)/2
Initial level%=20+(Strength+Perception+Agility)/3
Blunt Weapons
Initial level%=20+(Strength+Endurance+Agility)/3
Brawl/Melee Unarmed
Initial level%=65+(Strength+Agility)/2
Chainsaws
Initial level%=15+(Strength+Agility)/2
Melee combat algorithm (basics) :
Melee combat sequence:
1) Hit or miss check
Y N (null)
Y=> 2) Dodge check
Y (null) N
N=> 3) Parry check
Y (null) N
N=> 4) Block check (Discarded for now, block isn’t required)
Y (null) N
Damage check/sequence
--
1)Boolean_MeleeAttack_W
2)Boolean_MeleeAttack_Un
3)Boolean_RangedAttack
--
1 and 2 are complimentary (??)
2 requires 1 (AND) to allow melee unarmed
1 doesn't require 2
1 and/or 2 exclude 3
3 exludes 1 and 2
1) Hit or miss check
Y N (null)
Y=> 2) Dodge check
Y (null) N
N=> 3) Parry check
Y (null) N
N=> 4) Block check (Discarded for now, block isn’t required)
Y (null) N
Damage check/sequence
--
1)Boolean_MeleeAttack_W
2)Boolean_MeleeAttack_Un
3)Boolean_RangedAttack
--
1 and 2 are complimentary (??)
2 requires 1 (AND) to allow melee unarmed
1 doesn't require 2
1 and/or 2 exclude 3
3 exludes 1 and 2
Sneak AI
Unit may decide to start sneaking. For now: no condition (test), simple random
FctVAR_SneakDecisionRandom (TMP: replaces elaborate decision-making conditions (for now))
FctVAR_SneakOrderIndex (0,1,2)
0=unit does nothing, 1=Sneak Order On, 2=Sneak Order Off
--
Truesight (Stealth Detection): (DONE)
10 abilites array (emulating 10 LVLs (1= min, 10=max) depending on PER stat for humanoids, fixed(!) for others.) 50 range per LVL (500 max=1/2 day view range)
lvl is being checked (and set) each time for Cycled_Unit during Turn and also whenever PER stat changes (for humanoid!)
--
(Important!)
While both Player's units and AI's units have [detect stealth] (invisible) ability, AI utilizes this info in a different way. While a human player simply SEES a sneaking/hiding etc. unit (within Perception-based range for humanoids and fixed range (based on unit type) for others), AI player can only "detect" stealthed units, if they're inside each AI unit's LOS (line of sight).
Detection of "visible to player" condition during (TSU) [Sys Target In Line of Sight Search] emulates sharing vision/info among ALL units of the same player (Human AND AI).
Unit's LOS (line of sight rectangular area in front of the unit) determines whether stealthed/sneaking/invisible unit can be detected. If the said unit is outside of LOS,
it won't be detected by AI actions (even if Stealth Detection ability range exceeds LOS). That pattern makes backstab playstyle efficient VS tough AI enemies.
Stealthed units inside AI's LOS have their Sneak LVLs checked. Failed check conditions detect sneaking units for AI's attack (and it proceeds to calculate attack priorities, as with all other units within its reach).
FctVAR_SneakDecisionRandom (TMP: replaces elaborate decision-making conditions (for now))
FctVAR_SneakOrderIndex (0,1,2)
0=unit does nothing, 1=Sneak Order On, 2=Sneak Order Off
--
Truesight (Stealth Detection): (DONE)
10 abilites array (emulating 10 LVLs (1= min, 10=max) depending on PER stat for humanoids, fixed(!) for others.) 50 range per LVL (500 max=1/2 day view range)
lvl is being checked (and set) each time for Cycled_Unit during Turn and also whenever PER stat changes (for humanoid!)
--
(Important!)
While both Player's units and AI's units have [detect stealth] (invisible) ability, AI utilizes this info in a different way. While a human player simply SEES a sneaking/hiding etc. unit (within Perception-based range for humanoids and fixed range (based on unit type) for others), AI player can only "detect" stealthed units, if they're inside each AI unit's LOS (line of sight).
Detection of "visible to player" condition during (TSU) [Sys Target In Line of Sight Search] emulates sharing vision/info among ALL units of the same player (Human AND AI).
Unit's LOS (line of sight rectangular area in front of the unit) determines whether stealthed/sneaking/invisible unit can be detected. If the said unit is outside of LOS,
it won't be detected by AI actions (even if Stealth Detection ability range exceeds LOS). That pattern makes backstab playstyle efficient VS tough AI enemies.
Stealthed units inside AI's LOS have their Sneak LVLs checked. Failed check conditions detect sneaking units for AI's attack (and it proceeds to calculate attack priorities, as with all other units within its reach).
Project Description/Background (Outdated)
This is an unfinished version of my 2 year development of a TBS Fallout mod.
It has no story/plot, no win condition and some basic quests, but most mechanics function (including perks, traits, combat, movement, first aid, doctor, repair (I've just removed other skills, they were WIP).
The goal was to develop working game mechanics, then assemble a team of enthusiasts to start working on the story.
Q: Why did you upload this? It's an unfinished map!
A: I'm having a mental breakdown after the release of Reforged and having seen new EULA. I've decided to stop working on this project.
Q: Yes, but why did you upload this?
A: I spent several thousand hours learning how to do this stuff, so I want whatever tricks I came up with on my own (all designed and written from a scratch, except for 1 or 2 one-liners) to be useful to other people. This map contains very simple (and I did it GUI on purpose for better compatibility with Reforged) but useful systems. It's my way to thank the Hive members. I reckon that people who know coding will probably laugh at my humble beginnings, but I hope some ideas would still be useful to the total beginners, as myself once.
To quote myself:
Author's message (was intended to be uploaded with a real release):
Criticism:
Map scale:
Known issues:
I hate bugs with passion, so please, report any bugs asap. Mind, that some features differ from standard Wc3 on purpose, by design. So, please, make sure it's a real bug and not a game's intended feature.
So here it is, all that I could salvage from my several (locations/areas) maps that I'll never finish, put together in a tiny demo map. A partial fulfillment of a dream-project too ambitious to be achieved.
Feel free to use the imported ambient sound files (as if anyone would, lol), you have my permission.
Thank you, hive. I'll miss you.
Note: cheats break the game.
"Thank you" message to all the people who never knew they contributed to a large project:
CREDITS:
It has no story/plot, no win condition and some basic quests, but most mechanics function (including perks, traits, combat, movement, first aid, doctor, repair (I've just removed other skills, they were WIP).
The goal was to develop working game mechanics, then assemble a team of enthusiasts to start working on the story.
Q: Why did you upload this? It's an unfinished map!
A: I'm having a mental breakdown after the release of Reforged and having seen new EULA. I've decided to stop working on this project.
Q: Yes, but why did you upload this?
A: I spent several thousand hours learning how to do this stuff, so I want whatever tricks I came up with on my own (all designed and written from a scratch, except for 1 or 2 one-liners) to be useful to other people. This map contains very simple (and I did it GUI on purpose for better compatibility with Reforged) but useful systems. It's my way to thank the Hive members. I reckon that people who know coding will probably laugh at my humble beginnings, but I hope some ideas would still be useful to the total beginners, as myself once.
To quote myself:
Man... I quit working on my project now.
Even if I erase all IP notions from the files (which never bothered me anyway, since it's obviously NOT my IP, but now since it's strictly forbidden to use that IP, there's no other way), however if I'm about to create something new (converting to new from the existing data), that's too much to handle... I won't give Blizzard thousands of hours of my lifetime for free.
2 years spent doing it, 2 f'in years. Some, I imagine, spent more!
Author's message (was intended to be uploaded with a real release):
First of all, I'd like to thank our hive community and various [un-]aware contributors, whose resources I've used to compile this map.
Without your resources, guidance and advice I would've never achieved 1/10 of the current progress.
In addition to the credits list posted here, there's an in-game command /credits to see all nicknames of these amazing people.
This playable demo map is a shard of an ambitious total conversion project. Anyone who wishes to continue developing it, is welcome. Otherwise, it's 100% playable (and I hope bug free) in its current state, 'as is'. This version contains all envisioned core TBS game mechanics (unless someone's willing to add more), every single bit of 'code' I've written from a scratch or/and learned from browsing hiveworkshop forums. Some triggers may look gargantuan, but trust me, I did my best to optimize them to avoid engine-related bugs. It's GUI/Singleplayer designed with a specific mindset, that most elements should be easy to modify and commented in such a way, that almost anyone, especially newcomers like myself could mod the existing structure and build on top of it.
Without your resources, guidance and advice I would've never achieved 1/10 of the current progress.
In addition to the credits list posted here, there's an in-game command /credits to see all nicknames of these amazing people.
This playable demo map is a shard of an ambitious total conversion project. Anyone who wishes to continue developing it, is welcome. Otherwise, it's 100% playable (and I hope bug free) in its current state, 'as is'. This version contains all envisioned core TBS game mechanics (unless someone's willing to add more), every single bit of 'code' I've written from a scratch or/and learned from browsing hiveworkshop forums. Some triggers may look gargantuan, but trust me, I did my best to optimize them to avoid engine-related bugs. It's GUI/Singleplayer designed with a specific mindset, that most elements should be easy to modify and commented in such a way, that almost anyone, especially newcomers like myself could mod the existing structure and build on top of it.
Criticism:
Before starting this project in late July 2018, I had almost 0 experience with all the skillsets listed below (except for 1 re-texturing experience a few years ago, availible here on hive):
I'm no 2D/3D artist - I had to tinker with the existing models and textures, various assets and create a couple of textures myself.
I'm no sound professional: I had to record some sounds and edit them for the loading screen intro siren record.
I hate programming and everything math-related, prior to this project I had no coding background whatsoever - I had to vanquish my fears and design some easy procedural generation algorithms via GUI and tried to implement the existing Fallout 1 formulas.
The terrain is atrocious - goes without saying... my first XP at creating terrain in WC3. No, seriously, in all these years I haven't designed any terrain myself.
I'm no 2D/3D artist - I had to tinker with the existing models and textures, various assets and create a couple of textures myself.
I'm no sound professional: I had to record some sounds and edit them for the loading screen intro siren record.
I hate programming and everything math-related, prior to this project I had no coding background whatsoever - I had to vanquish my fears and design some easy procedural generation algorithms via GUI and tried to implement the existing Fallout 1 formulas.
The terrain is atrocious - goes without saying... my first XP at creating terrain in WC3. No, seriously, in all these years I haven't designed any terrain myself.
Map scale:
"why is this map so tiny?"
Well, the goal was to develop and implement basic game mechanics before taking care of the story/environment, etc.
Well, the goal was to develop and implement basic game mechanics before taking care of the story/environment, etc.
Known issues:
- Brief freezes during map initialization may be caused by the quantity of data being generated. I improved this aspect a lot to the point I haven't had any for ages. Please, let me know if you still encounter it.
- Due to Reforged changes, some animations or elements are clunky and unrealistic. For example, weapon projectile attachments do not match the exact position of weapon attachment.
- Unit collision: units may stand in/on items. This is intentional. I was trying to figure out how to improve the aesthetic view.
I hate bugs with passion, so please, report any bugs asap. Mind, that some features differ from standard Wc3 on purpose, by design. So, please, make sure it's a real bug and not a game's intended feature.
So here it is, all that I could salvage from my several (locations/areas) maps that I'll never finish, put together in a tiny demo map. A partial fulfillment of a dream-project too ambitious to be achieved.
Feel free to use the imported ambient sound files (as if anyone would, lol), you have my permission.
Thank you, hive. I'll miss you.
Note: cheats break the game.
"Thank you" message to all the people who never knew they contributed to a large project:
CREDITS:
Imported assets: -Grendel, -JonNny, .Kc, 3rgytr54, 4eNNightmare, 67chrome, A Void, AlienArsonist, AlienArSystem, Amigurumi, ana, Anachron, Arowanna, Avatars Lord, -Berz-, bisnar13, Blood Raven, bounty hunter2, Callahan, cash42, Cavman, Chaosium, chilla_killa, ChirusHighwind, CRAZYRUSSIAN, CybrgDragon, Daffa the Mage, Dark_Desent, darkdeathknight, Darkfang, DarkLord, Deathbringer, DEFACKTwalker, Dentothor, Deolrin, Deon, Dionesiist, Direfury, Discipline, enjoy, epsilon, Fingolfin, Firelord213, FrIkY, Gar'nogal, General Frank, Godslayer, Goldwolf, GooS, Graber, graystuff111, Grey Knight, halo, Ham Ham, HammerFist132, HappyTauren, Hayate, Hellish Hybrid, HerrDave, Horn, I3lackDeath, Ice, Illidan(Evil)X, InfernalTater, Infinitynexus, inhuman89, JB_McKnight, JesusHipster, Justify, Kazzo, KelThuzad, Ket, Kitabatake, Kofi_Banan, kola, Kwaliti, L_Lawliet, Lord_T, Mad, Marcos DAB, MassiveMaster, Mechanical Man, Mecheon, MEXANuK, Mr.Goblin, Muoteck, Murcologist, NFWar, Nichita_00, Nordmar, oh_snap, Oliver, PeeKay, Pins, PrinceYaser, purparisien, Quilnez, Raging Ent, rakemaster, republicola, RightField, Riley, Rolo, Scythy Dervish, Sin'dorei300, skrab, stan0033, Stanakin, Stefan.K, Sunchips, Supermj, Suselishe, Talon the Mage, tee.dubs, th15, The Leader, The Panda, The Weird Human, The_Silent, TheRandomDude, Tirlititi, UgoUgo, Uncle Fester, Warhunter, WerBackIII, yakonshus, ZethHolyblade, Zombie
Interface: Solu9
Special thx to deepstrasz
Interface: Solu9
Special thx to deepstrasz
It's probably because of the custom interface skin. Reloading the game helps.
Note: 05.03.2020 I haven't seen this bug for a while (more or less a month).
Maybe it's gone now, since I've edited the interface file causing another minor glitch. Those might be related.
Related issue: reloading the game can cause regular font to be replaced with menu's (fallout overseer) font.
(no idea, why) It appears very rarely and could be result of the operations' limit being exceeded.
4)Alt-tab during perk/trait selection/confirmation removes the selection dialog, freezing the game.
General advice: DON'T Alt-Tab while playing this map.
FIXED
Attachments
Last edited: