How to create the entirety of Dark Souls within Microsoft Excel

Dark Souls is a series of action role-playing games that are known for their high level of difficulty, dark fantasy setting, and immersive gameplay. The games have been critically acclaimed and have a loyal fan base. But what if you could recreate the entire experience of Dark Souls within Microsoft Excel, the popular spreadsheet software?

In this blog post, I will show you how to create the entirety of Dark Souls within Microsoft Excel, using only formulas, macros, and conditional formatting. You will learn how to:

- Design and populate a grid-based map of Lordran, the world of Dark Souls, with different areas, enemies, items, and bonfires.
- Implement a combat system that allows you to attack, dodge, block, parry, and use items and magic against various foes.
- Create a character creation and leveling system that lets you customize your appearance, stats, and equipment.
- Add a multiplayer feature that enables you to summon or invade other players online, or leave messages and bloodstains for them to see.
- Incorporate the core mechanics and themes of Dark Souls, such as death, souls, fire, and cycles.

By following this tutorial, you will be able to create your own version of Dark Souls within Microsoft Excel, and enjoy the challenge and satisfaction of playing it. You will also improve your skills in Excel and learn some advanced techniques and tricks. Let's get started!

 

The first step is to design the layout of the game world. Dark Souls has a complex and interconnected world that consists of various areas, such as Firelink Shrine, Undead Burg, Anor Londo, and Blighttown. Each area has its own enemies, items, secrets, and bosses. To create the world in Excel, we will use a grid of cells that represent tiles on a map. Each tile can have different properties, such as terrain type, elevation, lighting, collision, and event triggers. We will use formulas to define these properties based on the coordinates of each cell.

For example, to create Firelink Shrine, we can use the following formulas:

- Terrain type: `=IF(OR(AND(A1>=10,A1<=20,B1>=10,B1<=20),AND(A1>=15,A1<=25,B1>=5,B1<=15)), "Grass", "Stone")`
- Elevation: `=IF(AND(A1>=10,A1<=20,B1>=10,B1<=20), 10+RAND()*5-2.5, 0)`
- Lighting: `=IF(AND(A1>=10,A1<=20,B1>=10,B1<=20), 0.8+RAND()*0.2-0.1, 0.5+RAND()*0.2-0.1)`
- Collision: `=IF(OR(AND(A1=10,B1>=10,B1<=20),AND(A1=20,B1>=10,B1<=20),AND(B1=10,A1>=10,A1<=20),AND(B1=20,A1>=10,A1<=20)), TRUE, FALSE)`
- Event triggers: `=IF(AND(A1=15,B1=15), "Bonfire", IF(AND(A1=25,B1=15), "NPC", ""))`

We can then use conditional formatting to apply different colors and styles to each cell based on its properties. For example, we can use green for grass tiles, gray for stone tiles, darker shades for lower lighting levels, borders for collision tiles, and icons for event triggers.

The next step is to create the player character and the enemies. We will use another sheet to store the attributes of each entity, such as health, stamina, attack, defense, equipment, status effects, and position. We will also use macros to define the actions and behaviors of each entity, such as moving, attacking, dodging, blocking, healing, dying, and respawning. We will use buttons and keyboard shortcuts to control the player character's actions.

For example, to create the player character's attributes sheet, we can use the following table:

| Attribute | Value | Formula |
|-----------|-------|---------|
| Health | 100 | `=MAX(0,C2-D2)` |
| Stamina | 100 | `=MIN(100,C3-E3)` |
| Attack | 10 | `=C4+F4` |
| Defense | 5 | `=C5+G5` |
| Equipment | | |
| Weapon | Sword | |
| Armor | Cloth | |
| Status | | |
| Position | (15,15) | |

We can then use a macro to move the player character on the map sheet based on their position attribute. For example:

```
Sub MovePlayer()
Dim x As Integer
Dim y As Integer
x = Sheets("Player").Range("H2").Value
y = Sheets("Player").Range("H3").Value
Sheets("Map").Cells(x,y).Interior.Color = vbWhite
Sheets("Map").Cells(x,y).Font.Color = vbBlack
Sheets("Map").Cells(x,y).Value = "P"
End Sub
```

We can also use macros.... the ai didn't finish this one

 

here was the result 


Comments

Popular posts from this blog

How to create an account for Vanillo