Educational and historical battle simulation made with Pygame.
The development for this game is currently on hold. Minor updates and bugs fixed will still be done but expect no major progress for now. For any suggestions or bugs, feel free to report them in the Issues page.
For game update showcase video:
All helps, suggestions, and issue reports are appreciated.
If you would like to help the project, feel free to join discord for a chat, open issues, commit the codes and do pull requests, or send emails to
masendor@proton.me
.
Some non-specific suggestions and examples of helps, including but not limited to:
- Programming: New features, improve current ones, code optimisation/improvement
- Asset Creation: UI, troop, leader, effect art, sound effect, music
- Historical stuffs: Battle information, writing, sources, correction, improvements
- Quality Assurance: Code documentation, game balancing, bugs fix, feedbacks
Note: All the new and current untested development are done on "dev" branch. The main branch is for a somewhat stable version of the game.
The repository history was cleanup from update 0.7.1.9 for the preserved history see: https://github.com/remance/Masendor-backup
If you want to download the release version to test the game, go
to Release tags and **
download** the zip file.
To start testing the game run main.py
via Python interpreter for the source code or main
file directly for the
release version.
OS: Windows 7 (Haven't tested on Windows XP or Vista but may work), Ubuntu and macOS need further testing
Memory: 2GB RAM
Processor: Need more testing
Graphics: Need more testing
Storage: Currently 200 MB but likely around 500 MB available space in finished version.
OS: Windows 8, Ubuntu 22.04, macOS Monterey
Memory: 4GB RAM
Processor: Need more testing
Graphics: Need more testing
Storage: 1GB available space
To compile the source code into an executable program, recommend using pyinstaller and main.spec
.
Check the requirements.txt
file for dependency requirements if running with the python source
code.
Also, the game is now optimised based on the pygame-ce 2.2.1 module and python 3.11. (may have to use cython later for a
huge size battle)
Add new game art style and system that allow player to select available styles.
14th October 1066 AD, Duke William of Normandy’s force arrived at Telham Hill early in the morning, while Harold Godwinson’s force was already positioned at Senlac Ridge. It is believed that Harold intent to ambush William's army at their camp and was surprised by William's arrival at Telham Hill.
14th October 1066 AD, King Harold Godwinson intercepted William the Bastard’s force at Senlac Ridge, Hastings. The rightful king of England refused to cover in a castle before the pretender and bravely marched his army to crush the enemy head-on.
Have you ever found it weird that most historical games follow only a specific version of the story? Even a single battle may have more than one side of the story.
For example, the Normans say they are the underdog in the Battle of Hastings, while the Saxons also say they are the underdog. Well in this game, all versions of the story are accepted and represented. Every preset historical map will have more than 1 source of information that dictates the story tone, army composition, size, even formation and possibly more.
Troops in each army can be led by multiple leaders with chain of command and every historical battle will have all the named people that participated in the battle.
Map creator in most games requires a degree of learning to use effectively. In this game, you just need to use MS Paint or any drawing software
(GIMP, Adobe Photoshop, etc.) to create a map.
Draw the image with the right colour set, and the game will convert them into a playable map. Most other map functions are also very easy to create and modify.
Video demonstration: https://www.youtube.com/watch?v=8Omm-o6Dy60
This game's encyclopedia will have more information than just from the Wikipedia website as long as they can be found that is.
This function is going to be a headache to write and research. But hopefully, it will provide useful and interesting historical information to players.
Animation maker for the troop Vector-based animation in game. The tool is made with pygame and the code is compatible enough for other purposes with some modification.
Photo studio to make battle screen to your liking. Simply add subunit and effect data and the tool will render them.
Subunit sprite viewer by coppermouse (https://github.com/coppermouse)
- Ryu Hill (Mystika Digital Media)
- Prototype slash effect sprites by inogNate
- Weapon sprite by jeet
- Musket shot "aaronsiler_musket 3", "aaronsiler_musket 4" by aaronsiler (https://freesound.org/people/aaronsiler/)
- Assorted weapon sound from Videvo (https://www.videvo.net/)
- Cannon sound "canon" from man (https://freesound.org/people/man/)
- Cannonball sound effect "Real Cannonballs Flying By (Restored Audio)" from John Camara (https://www.youtube.com/watch?v=maVSnWIXGE8)
- Bullet sound "Bullet passbys" from Audionautics (https://freesound.org/people/Audionautics/)
- Heavy rain weather ambient sound "Heavy Rain", weapon sound "Wooshes" by lebaston100 (https://freesound.org/people/lebaston100/)
- Heavy Weapon swing by "Swinging staff whoosh (strong) 08" Nightflame (https://freesound.org/people/Nightflame/)
- Sword swing "Swosh Sword Swing" by qubodup (https://freesound.org/people/qubodup/)
- Sword swing "swordslash" by deleted_user_13668154 (https://freesound.org/people/deleted_user_13668154/)
- Spear pierce "Wooshs 01" by toyoto (https://freesound.org/people/toyoto/)
- Hammer swing "Whoosh Heavy Spear Hammer Large" by EminYILDIRIM (https://freesound.org/people/EminYILDIRIM/)
- Big warhorn "BIG-REVERB-WARHORN" by newagesoup (https://freesound.org/people/newagesoup/)
- Warhorn "Battle horn 1" by kirmm (https://pixabay.com/sound-effects/battle-horn-1-6931/)
- Bow drawing "SHOOTING_ARROW_SINGLE_ARCHERY_FOLEY_02" by JoeDinesSound (https://freesound.org/people/JoeDinesSound/)
- Bow drawing "Regular Arrow Shot distant target" by brendan89 (https://freesound.org/people/brendan89/)
- Javelin, throwing axe, stone sound effect by freeSFX (https://freesfx.co.uk/)
- Crossbow shot "bow02" by Erdie (https://freesound.org/people/Erdie/)
- Crossbow shot "Crossbow Firing and Hitting Target" by Ali_6868 (https://freesound.org/people/Ali_6868/)
- Heavy damaged "Blam" by Loghome72 (https://freesound.org/people/Loghome72/)
- Knockback "punch" by Ekokubza123 (https://freesound.org/people/Ekokubza123/)
- Damaged "punch3" by Merrick079 (https://freesound.org/people/Merrick079/)
- Test menu music"The Britons" by kmacleod (https://pixabay.com/users/kmacleod-3979860/)
- Battle music "Medieval: Battle" by RandomMind (https://www.chosic.com/free-music/all/?keyword=RandomMind&artist)
- Battle music 2 "War Drums Sound Effect - Realistic Performance - Royalty Free" by Free Audio Zone (https://www.youtube.com/watch?v=d2omr4EpjVc)
- JerryXd
- coppermouse (https://github.com/coppermouse)
- shawarmaje
- legotrainkid
- Hamster_Lord
- Ryu Hill (Mystika Digital Media)
Ver 0.7 Future Visionary: custom unit and troop editor, march sound system, keybinding, loading screen, England Campaign
0.7 and 0.7.1: console stick, control key binding
0.7.2 and 0.7.3: Companion system
0.7.4 to 0.7.6: custom unit editor and march sound system
0.7.7: custom troop editor
0.7.8 and 0.7.9: specific Leader command, loading screen, Minor battle: 764 Irish abbey war
Ver 0.8 Authentic Attraction: In-game art, better-looking UI, add intro screen, Egypt Campaign
0.8 and 0.8.1: Rework ranged attack bullet system to include height calculation
0.8.2 and 0.8.3: Improve UI art
Ver 0.9 Gaze of New Life: AI and pathfinding (The most challenging step unless cut corner to the point of braindead AI), Ottoman Campaign, final code optimisation before full 1.0
Ver 1 Pax Paradisum: Release version, historical battle simulation game
Ver 1 - 1.5: More art, sound effects and in-game music (May need to use royalty-free music but will see) + Ingame Encyclopedia at main menu + more historical battles
Ver 1.1: Add dynamic terrain/feature change based on battle effect (damage) and weather
Ver 1.2: Urban map, Siege battle and siege equipment, Minor battle: Wolf of Paris
Ver 1.3: hidden stat, line of sight, raise flag/ light torch, ambush bonus
Ver 1.6: Commander mode, strategist and leader duel with dynamic result and event (Move from 0.2.7 as it is not the main priority in the early battle sample yet), transfer leader, Battle of Gaixia
Ver 1.7: Deception, False information, scout, espionage warfare, information, Minor battle: Siege of Orleans
Ver 1.8: Deployable Defence (Stakes, Barrier, Camp, Wagon), dynamic squad facing position and maybe "saved" formation that player can rotate in battle, swappable squad position
Ver 1.9:
Ver 2.0: Multiplayer battle
Ver 2.1: Begin working on another module setting
Unforeseeable future: forced march (Moved here from 0.2.7 as this feature won't have much used until the game map become much larger than just a single battlefield), Queue command
For those who have read this far, thank you for your interest in the game. To be honest, every single update begins with how do I even start with this.
I start developing this game with zero knowledge in video game development let alone how to use pygame. I start learning
how to use pygame by tinkering with alien.py
in the pygame examples
folder and keep testing/changing it until it became
what you can see right now (I keep most video updates on YouTube which show the progress of improvement almost from the
start). All of the plans I list for the future are the same. I have no idea how to do it, the only thing I have is the
picture of what I want to make it look like. Nevertheless, it is fun figuring stuff out and don't let the lack of
knowledge stop you from making your own game :P.