Where can I find the current QOTM? - Charriu

Create an account  

 
Any enthusiasm for a remake out here?

VM,
Do you have something to upload? Screenshot? Source code? Btw, would you be interested in a chat with me to discuss your plan? If so, PM me to let me know how and when to reach you. I see most people have disappeared from here by now, but I still have my enthusiasm to support your development.
Reply

The source is uploaded.
When I get to work on it again (I expect friday), ill upload some binaries.
Im interested in any comments, critiques, or whatnot. I myself am aware of a few problems as well.
Reply

Sorry, but where is the upload?
Also, could you write briefly about you plan here? Such as
Are you using Implode’s code now?
Are you trying to make a perfect MOM clone first?
What language and complier do you use?
Will you make the entire project open source?
Do you have an estimate when will you upload a “playable” version (even without full features) which can be tested by us?
How can we help now?
Do you have any conceptual or technical problems you are facing?
Reply

Quote:Sorry, but where is the upload?

sourceforge.net, search for remaster of magic

Quote:Also, could you write briefly about you plan here? Such as
Are you using Implode’s code now?

Not directly. I have based graphics extraction on his lbxextractor code, but thats it.

Quote:Are you trying to make a perfect MOM clone first?
More or less, yes. Except no AI, but for that, network play.

Quote:What language and complier do you use?
Im using c# and visual studio express 2010

Quote:Will you make the entire project open source?
I already have. I use GPL license. (I have to remember giving credit to Implode)

Quote:Do you have an estimate when will you upload a “playable” version (even without full features) which can be tested by us?
Im not sure what a "playable" version means. You can download, compile and look at what is done. You will need OpenTK and Ninject tough. Luckily both are free dowlnoads.
I am writing this in the time I spare for it. I made this open source in the hopes that other people would be interested and actually code some parts.

Quote:How can we help now?
I am working on a little program that people could use to identify graphics for me. I am also planning to externalize a lot of data (like, unit stats, special abilities, and so on) into configuration files, so people could just create these as well. (no programming knowledge required) I'll probably write a tool for this as well. Or, if you can do coding, you could help me there. If anyone is interested in coding, PM me.

Quote:Do you have any conceptual or technical problems you are facing?
Yes indeed. Loads, in fact.

I am lacking in game knowledge, for one, im not entirely sure how i should handle flameblade vs fire immunity problem. Im unsure wether its gaze before breath before thrown, or are they resolved simultaneiously. I am unsure how lifesteal works. Is poison resisted or defended? Does poinson need an actual hit? Some spell combos are also need to be discussed.

I also have some code design problems too, luckily, those are exactly the kind of problems I elnjoy solving. If you look at the code, we can discuss these in detail.
Reply

Thanks VM. I took a peak and it looks good from the distance. I also like your answers here.

A few things for now:

1. Prepare and upload a short instruction file for us on “how to” set up the files once a part can be tested for function. “What to do if I am full of energy to help, but I am a total noob?”, etc. For now I see mostly source files with high level functions only, which I guess were not compiled yet and testing is too early.

2. I recommend that you follow the main design development principles of http://www.c-evo.org, which has open source Delphi code. I am not sure if you are OK with Delphi. Delphi is one of the fastest codes and his code takes very small place. Most of the problems were already solved there, such as efficient coding, pathfinding, UI, embeddable independent AI, turn based movement system, entire game step by step recoding, random map generation, etc.

3. Plan to eventually place the entire game online on a server. Players would get into the game through an account, and the game state, game logic, random number generation would be on the server, but most other data would be local to the client. Player computer will not have full knowledge on the game state and player will not be able to cheat, save, reload, etc. without server knowing it, etc. Yes, making anti-cheat efforts is extremely important and not too early, even for a single player game! There will be no tweak and cheat codes running on local computers to modify game play without server knowing it. The game is discrete and every step is recorded. Cheats can be identified on server.

4. Code efficiency: do not neglect this! Code must run fast, and should be bug free (not an easy goal). Look at Freeciv for a horrible example how inefficient, slow code can kill a great project.

5. Make the battle play part early. For this I can try to develop AI. I think that the AI’s should be allowed to be stored on either the server or local clients and perhaps in the end I will be able to create locally learning AI’s for clients. (very hard and long term goal only).

6. Do not develop AI, but plan for easy integration and replacement. There are 3 levels:
First, game level AI effecting any game play. E.g. pathfinding, loading/unloading, stacking units, determining group movement speed, etc. (smart response triggered by user actions). You can develop those and store, perhaps with user interface.
Second: Battle AI, stored with individual AI modules (there will be a variation in AI’s battle play, depending which module will be used, etc.).
Third: overland AI, which also includes diplomacy. This is the hardest and the latest target. This should be stored together with the battle AI, but in different file.

7. Do not commit too deep to one specific interpretation of the game. Try to make selection of options open. For example: the combat mechanism should be allowed to be changed easily later. The number and effect of spells should be easy to change. Unit stats should be easy to change, etc. Nonprogrammers should be able to do. Make room for options in the beginning of the game through the UI.

8. Here is a post by Serena, which partly answers your questions:

The combat algorithm is as follows:
1. Pre-melee: Attacker executes Breath, Thrown, and Gaze attacks.
2. Pre-melee: Defender executes Gaze attacks.
3. Pre-melee: Resolve casualties.
4. Melee: Attacker executes Immolation, Poison, Touch, and Melee attacks.
5. First Strike: Resolve casualties if attacker has (unnegated) First Strike.
6. Melee: Defender executes Immolation, Poison, Touch, and Melee attacks.
7. Melee: Resolve casualties.

This is the way I have implemented it in my combat simulator.

I think you are off to an excellent start!
Reply

OK I uploaded some binaries. You will need .net framework 3.5 or later to run it.

For linux enthusiasts, all code should be compilable in mono, and both openTK and ninject have mono compiles. I'd appresciate if someone would do the monodevelop project for this.
Reply

There are some features in the original MOM, which you should not try to remake:
For example: the city’s production.
When a unit or building is finished then the remaining production should carry over to the next project.
At any point in a city the rate of food and production per individual farmer/worker should be uniform. There should be no reason for clicking each farmer and worker one by one to find optimal food and production income. It maybe better to allow fraction productions. So each worker makes say 2.33 hammers, rather then 2, 2, and 3. This is a player convenience issue that lowers micromanagement.
I also think that it should be allowed to make 2 or more units in one turn per city if the production allows it. Otherwise, the carryover will be too high when producing spearman in large cities.
For buying units or buildings the gold cost per production left should be constant (I recommend 4 gold per production for now) and the UI should allow any chosen gold amount to be spent, regardless of what is being built and how far is the end of the building project. Queuing units and building for production should be possible.
Reply

Quote:When a unit or building is finished then the remaining production should carry over to the next project.

The problem with carryover production is that a well developed, well enchanted city could produce exorbant amounts of spearmen. Im unsure about the specific numbers, but I think it woud be possible to create more than a full stack of units per turn per city. Im unsure how tatt would effect gameplay. I think Ill just stick to what is there for now, and it can be changed later if desired.

Quote:At any point in a city the rate of food and production per individual farmer/worker should be uniform. There should be no reason for clicking each farmer and worker one by one to find optimal food and production income. It maybe better to allow fraction productions. So each worker makes say 2.33 hammers, rather then 2, 2, and 3. This is a player convenience issue that lowers micromanagement.

I think this is due to enhancements that give a fractional bonus. like, if we have a 50% bonus, each production will give half a point of bonus. This then gets rounded/truncated, resulting in the behaviour you describe. Ill have to think about this. For one, fractional food production just wont work.
Quote:For buying units or buildings the gold cost per production left should be constant
I think this is already the case in the original?
Reply

I do not see mass producing spearman a problem. In the original version, when there is no space for a new unit in the city then some current defenders move out of the city to make space. I think we will make even the spearman a little stronger and a little more expensive to make 10+ unit production per turn per city a very rare thing. Producing only 1 spearman per turn is a problem in a city that can make a minimum of 4. Not only due to losing production, but also for the future expected balance of units. Spearman (and all units) will be a full game unit type, not only an early game unit. So it will affect gameplay in a positive way.

What’s wrong with fractional food production? All cities add up food production and empire uses that to feed everybody. If the food total is <0 then a unit deserts. Fractions do not make a difference: a unit needs a full food, a fraction will not be enough to feed a unit, but is added up for the empire and counts toward total. Graphics of partial food should not hold you back.

Unfortunately, buying costs are not constant, which leaves major exploits tempting for players, and is a time waster. For example, builders hall: 40 production can be bought for 80 gold, 52 prod for 156 gold, 60 prod for 240 gold. Even worse: after paying, the project can be changed, making room for additional discounts. At least on the hardest level of MOM (if not all) the current project should not be allowed to be changed, only scrapped for 25% invested production being salvaged in gold.

However, if you keep these issues easy to modify later that would be the best. Perhaps even in the UI in the beginning of the game.
Reply

About the spearmen: I think Ill stick to how the original was made first.
These things should be easy to modify later.

I dont like the fractional stuff, because integer arithmetic is so much clearer, and not plagued by the whole "cant represent fractions accurately" problem.
We could do the following: subdivide food into 1/100ths. Then your problem, while not going away completely, will be much less severe, while keeping us in happy integerland.

Buying costs should be constant. I alredy made it constant, since I assumed it was so in the original.
Reply



Forum Jump: