Input Required - Feudalism (game)

Started by
13 comments, last by mipmap 10 years, 9 months ago

Greetings,

Regardless of your intent and/or input I want to thank you for reading my topic. The following content which you are about to read, whether it will be enjoyable I cannot say, is the game I wish to create in several steps. First a very simplified prototype (2D, sucky graphics, ...) and build further and further until I create a will polished game. This will be, of course, a personal endeavor that will span a period of months, perhaps a year or two, three.

Why so long? First I want to program the game myself in C++, a language I just recently started to learn. Smart? Probably not, but what better way to learn then a real project? It will be a long road filled with depression, happy feelings and many, many, many compile errors. I have foreseen it. Do I have any game developing skills whatsoever? No, beside a programming experience, though, alas, in C#. So why not write this game in C#? I want to learn C++, simple. I am not in a hurry to develop a game and make a quick buck out of it. No, I just see it as a learning experience which will slowly teach me the skills to be a decent C++ developer.

I, of course, hope and will try to garner the help of this fine community whenever I am in need and depression is near. So forgiveness in advance for silly problems and endless rambling posts such as this one.

Currently, I am writing down my idea in a design document, while I am used to write documents for software I have written most often they were pretty technical, mere documentation actually. So I took to the internet and looked up what a design document for a game should include and I hope I did a decent job at the game overview, which I was made to believe should be a short version of what the entire document will describe.

So is the text beneath acceptable and did I explain my vision/idea clearly enough so others will know what I am thinking off or am I just a simpleton that got everything wrong.

All input is welcome, the good, the bad and the off topic, but please try on topic...

Feudalism is an city-building simulation game with strategy and role-playing elements added to it. In it the player will play as a landed noble, in the Dark Ages, ordered by his/her liege to found and govern a new settlement in the newly conquered lands for the glory of the realm. The game is one where management skills and a keen eye for detail will enable to bring out the maximum potential of his land during these harsh and dark time. The game targets due to its setting and genre to those who love both history, the medieval period and city-building simulation games such as SimCity. The game itself is aimed for PC only.

The player's main task in Feudalism is constructing and ruling an estate while reaching specific objectives given at the start of a mission when doing campaign. Constructing and planning the settlement is done by zoning the lands as either demesne, which is the land reserved for the personal use of the lord (the player), plotted lands, which is land available for peasants to hire, or service buildings. While constructing and planning the settlement is a major aspect of the game, the greatest challenge for the player will be managing his estate. This is done by optimal people management skills and squeezing the maximum potential out of the land and your peasants. If the player fails to properly run his estate, the settlement will fall prey to various dangers such as peasant rebellions or famine and should the player character, the lord, die either from hunger or be killed in a rebellion the game ends.

The game will reward the player by allowing him to further customize the manor, the center of the settlement and home of the lord. This is done by adding modular pieces available when certain requirements have been met. Extending the manor does not always serve only as an aesthetic reward, but can also be functional such as increasing its defensive or storage capabilities or offering completely new functionality such as a dungeon.

Feudalism will be an easy to pick up game as the controls will be intuitive and reminiscent of other games of its genre such as SimCity, Caesar and Stronghold. The first mission in the campaign will also serve as the tutorial introducing the basic the player should know to start building his estate. This tutorial should be as short as possible, leaving most to be discovered by the player himself. The player however will be accompanied by his advisor who throughout the game will direct the player's attention to any pressing issue the settlement is currently facing.

The setting of the game is the early medieval period in Europe, when the feudal system was in full swing. This is the era where the first "castles" were nothing more but wooden motte[1], with the villages surrounding these defensive structure. As the game progresses the player will gradually see his wooden motte transform into a more solid stone variant and eventually to the iconic well-known stone castles often associated with this time period. The game will be try to bring a colourful touch as to not bore the player with too much greyness and bleakness.

Due to its nature the game, it will have a minimalistic story, even the campaign. However, the campaign will offer a little back story; placing the tasks in a historical perspective so to teach the player a little bit about the situation in a certain region in that time period. Events such as the Treaty of Verdun, which divided the great empire of the Charlemagne, or the Norman Invasion of England, with which William the Conqueror pressed his claim for the crown of England, will serve this purpose.

While the game is serious in its nature, the game will be accessible by most demographics, though it would not be suited for the very young since the game will include the less beautiful aspects of history and aspects of life such as war, crime and racism which must, of course, be place in their proper historic perspective. The game will especially be suited for gamers who enjoyed previous games of this genre as the Caesar and Stronghold series.


[1] A fortification with a wooden or stone keep situated on a raised earthwork or hill, accompanied by an enclosed courtyard, surrounded by a protective ditch and palisade.

Advertisement

Just FYI, the Unity engine uses C# pretty extensively. And don't underestimate the power of run time dependency injection for testing. Its painful to do in C++ which is one of the major advantages of Java/C# over C++. I would take a page out of one of the lean startup gurus and leverage (yup, buzzword) existing libraries over building your own. If you already have experience in C# then Unity sounds like the way to go. You wouldn't write an operating system + network stack from scratch for your game, why would you write a game engine if one existed? There are still PLENTY of problems to be solved in implementation. Building it from scratch in C++ will take way more than 3 years. Stand on the shoulders of giants.

From reading your description I don't see any role playing elements other than the setting. Is this going to be pretty much SimCastle? SimCastle would be awesome.

Thank you for your input MrSkullz,

I am not saying C# is a bad language, I love C#. It is a great language which does an awesome job. The reason why I am going to do this in C++ is because I want to learn C++ since I really want to be good at 2, instead of just one programming language. For the prototype, the oversimplified 2D prototype I, indeed, intend to reinvent the wheel and write my own engine this is to actually understand how those blasted things are designed and work, but in a smaller scale than the Unity or Unreal engine. As mentioned, I am in no hurry to release, nor profit from the project.

When the early-early prototype works and I want to switch to more advanced 2D/3D I will most likely start using a 3rd party engine, since as you said, why write my own engine when there are great tools already available such as Unity and Unreal. I already played around with both and my experiences at the moment tell me that I favor the Unreal engine over the Unity engine. I find the UDK easier to use than the Unity counterpart.

Of course, I am still open to suggestions and/or remarks you might have after reading this.

Indeed, you could regard the game as a SimCastle, but unlike SimCity, where jobs are very abstracted, you will have a direct say in what a large group of the peasants that live under your rule will do on the estate as they are obligated to do certain duties for you under the feudal contract. The demesne, the land which is used to fulfill the needs of you, the lord, must be cultivated by doing various tasks: hunting, gathering wood, harvesting. One of the tasks in the game will be managing all this, because if you do not you will starve, your mansion will neither be maintained nor built, .... However, not all peasants are obligated to do tasks for the lord since they are not bound to you by feudal contract, others only work for the lord and others do both. This is the people management aspect of the game.

Indeed the roleplay elements have not been touched so far in the overview, since I am still working on that. Since I am going for a more realistic depiction of feudalism than Stronghold did (one of my peeves about Stronghold) is that each peasant will be a persistent character. Each character being "unique" is distinguishable by its traits such as pride, lust, diligent. These traits affect how a characters lives. For example: a character who has the "Envy" character will be more likely to turn to a life of crime, while a character with the trait "diligent" will be more efficient at work.

Since you mention doing 2D and transitioning to 3D (if I read your posts correctly), why not start with SFML? It allows for OpenGL, so you should be fine doing your 2D stuff, then transitioning over to 3D, possibly still keeping some of your 2D creations like the interface.

That sounds sweet. Not just SimCastle, SimCastle on crack!

It sounds like your primary motivation is to learn C++ (a noble endeavor, to be sure) I must ask if you want to learn C++ software development or graphics programming. To me they seem to be very different things. If you stick with an active graphics engine you can probably translate your C# skills (basic OOP) to C++ without much issue. You will learn the syntax and then get into the gritty details of the semantics pretty fast and the big moving parts (design patterns, etc) are pretty much the same.

If you are going for graphics programming it really doesn't matter which language you pick because it has nothing to do with the programming language other than how the language interacts with the operating system and drivers. In my experience C++ excels at this but the underlying procedures, abstractions, and techniques are really independent of the language and you use C++ because of its speed and ability to map low level operations onto high level objects. Then you plug it into a C# or Python library and off you go.

My advice would be do pick a goal for 6 months (working map, working render engine, etc) and start with that.

Thank you, Dragonsoulj, for pointing that out, you read my post correctly. I will certainly jot that down and have a look at. At first glance it looks very interesting.

But now, I must go to bed... Been working far too long...again!

Overall sounds like a fun game, if well designed and balanced. I'd try it.

Regarding the choice of language and engine, I do agree with Skullz in that a higher level approach is usually more suited for these one-man-efforts, but also understand your desire to learn C++. One option would be to write the renderer in C++ (with the excuse that it needs the performance, although it probably won't, on today's hardware) and write the rest in a higher level language (C# ?). Maybe even add scripting language for the game logic (IronPython?). That would open the door to modding, if that interests you. As a nice side effect, it forces you to modularize your code and define clean interfaces.

Thank you MrSkullz and Camilo for your input,

Indeed as you said, MrSkullz, my primary goal is to learn C++, though as I was writing down this little idea and I still am writing it down but far more detailed I am beginning to get more and more excited, because it is really a game I think could work, though that may be because it is a game I would want to play. I want to learn C++ for software development, not just for grpahics programming, which, by the way, would be the first time I am really getting into the whole graphics programming in my life. Not many business applications require awesome graphics! As you said the things I am really struggling with in C++ are the differences it has with languages such as C# and Java. Some things I am struggling with are pointers, references and generally how one writes a class in C++ which is quite different in C++, while still being the same in the end.

As I mentioned the choice of the language was made from a learning experience point of view, not because C++ is faster at what it does than C#, because for simple games this really does not matter. Though I think most likely I will come to the conclusion that the idea would be better if I were to program a game like solitaire first... just to grasp the thing.

First I am going to write down the entire idea I have for the game down on paper, so I have a better picture of the idea I have in my head with clear defined borders. So I can better plan my course of actions. I will certainly think about all what you have said MrSkullz and Camilo.

Feudalism is an city-building simulation game with strategy and role-playing elements added to it. In it the player will play as a landed noble, in the Dark Ages, ordered by his/her liege to found and govern a new settlement in the newly conquered lands for the glory of the realm.

Landed nobles were not building cities, they only onwed the land of the city. Usually, a city was nominally a vassal of the noble but in practice the cities paid the noble to buy freedom. We can say cities were outside the feudal structure (in some countries there was even a law that if a peasant escaped and staid in a city for one year he was considered a citizen and could not be brought back forcibly to the village)... The person who run the city was more like a city council or patricians or mayor (burgermeister/doge).

I suggest retheming/renaming the game a bit.

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

Perhaps the term city-building simulation game would be inappropriate, because the time frame and the scale of your settlement in no way will repressant urbanisation whatsoever.

However, it does have some elements of the genre in what you as player will be doing, "subinfuedation". This is zoning lands into plots open for tenure by freemen or villein. (terms for these differ vastly from region to region). This and ensuring services are avaible such as a mill so that the produce of your land the demesne. Peasants (the villein) will have to work as their tenure often so dictated. In fact the majority of the game is managing the peasants, ensuring your estate/fief enters a condition called autarky, self-reliance. This is something landed nobles in the olden days, did do.

Perhaps the term city-building and word choice in certain sentences gave the wrong impression, but you are never in any way building a city. Populations above 1000 would pretty much be impossible in the game and if they were would take a looong time, since population grow depends on the natural course of things (no immigration).

This topic is closed to new replies.

Advertisement