Creating a game to experiment with code techniques, improve on knowledge, workflow, and to have fun while doing so!
The inspiration for this game comes from a life time really. I've been playing games since I was 3 years old. I started with games like Warcraft 1/2, floppy disk games, MAME32 games, games like Pyjama Sam, Escape From Monkey Island, and so on. I absolutely adored these games and it birthed in me a flame, a passion, and a desire for games. I eventually fell in love with titles such as SW:KOTOR, Warcraft 3, FF12, and even though I have maintained an extremely diverse interest in all genres, I have always been inexplicably drawn to methodical, thought-oriented turn-based strategy games. I still recall more recent fond memories of games such as Total War: SHOGUN 2, Civ 5, Endless Legend, and older ones of the RTS days like The Lord of the Rings: The Battle for Middle-earth II, Command & Conquer Generals/Tiberium Wars, and so on. The most recent turn-based games I thoroughly enjoyed were Battle Chasers: Nightwar, Cardinal Quest 1 & 2, and Divinity: Original Sin 2.
This game is heavily inspired by the games below, as well as inspired in other ways by the games above and more unmentioned due to not wanting to write multiple paragraphs.
I recently found Into The Breach which seems like a fantastic game and somewhat similar in concept so I will try it out!
http://cardinalquest2.com/, https://store.steampowered.com/app/378030/Cardinal_Quest_2/, https://play.google.com/store/apps/details?id=com.kongregate.mobile.cardinalquest.google&hl=en
https://store.steampowered.com/app/435150/Divinity_Original_Sin_2__Definitive_Edition/
To use this project on your local machine, make sure you have Unity 2020.2.1f1 installed.
You can get Unity from here: https://unity3d.com/get-unity/download
I recommend using Unity Hub to manage the versions and projects.
This project has got Unit Testing enabled. Feel free to disable it.
If there are any specific dependencies or particular assembly configurations required which are present in this project, they should all be included in this repo and work "out of the box". If this is not the case, please notify me here on Github or by email.
- Unity - The engine used to make the game.
- Visual Studio - The IDE used to manage the coding side of things.
- StackOverflow
- Unity & it's Scripting API
- The Visual Studio Team
- All the incredibly creative developers out there
- YouTubers, Forum posters, and the incredible community present in the sphere of Programming & Game Development
- My friends
- My mum
Keep It Stupidly Simple!
-
Single Responsibility Principle
A class should only have a single responsibility, that is, only changes to one part of the software's specification should be able to affect the specification of the class.
-
Software entities should be open for extension, but closed for modification.
-
Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
-
Interface Segregation Principle
Many client-specific interfaces are better than one general-purpose interface.
-
Dependency Inversion Principle
One should depend upon abstractions, not concretions.
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!