Dominions + Dune (An open source multiplayer strategy game)

Lap

Chieftain
Joined
Jul 22, 2007
Messages
32
So I've taken a break from my recent Men of War and Garry's Mod modding and I decided to make a strategy game.

I'm paying homage to two of the most underrated games I know, Dominions 3 and Emperor of the Fading Suns (which itself is a pretty big Dune rip). Neither games are graphical super stars, but by posting here I'm going to assume that doesn't matter.

Dominions 3 is a fantasy turn-based strategy game with a risk-like board filled with provinces to conquer. Dominions 3 has an amazing system for multiplayer. It does not use a hex-based grid, and battles are automated, but battleplans can be set beforehand. The player can then watch the battle when they get their next turn to see what happened. Although most people still prefer to fight battles manually, trying to do this in a multiplayer game, especially with more than one person, means games never finish.

Dom3 also had amazing customization and a lot of unique mechanics I'll be shamelessly ripping.

Pics Hidden:
map-3.jpg

6-1057_1.jpg


Dominions 3 Features:

-Risk-style province system
-Huge amount of units
-Fun mechanics (Olympic-type arena, globally biddable mercenaries, world changing spells/abilities)
-Automated, preconfigurable, watchable battles
-Dedicated multiplayer PBEM host.

Emperor of the Fading Suns is an even lesser known game that Dominions 3. It is the only game I know that let's you build a civilization-like empire, but on multiple planets. Having to deal with space and enemies that can land all over your planet is a unique challenge that I want to replicate. There are a few other notable things about EotFS. One is that it had a rarely used resource system in these types of games. Instead of building cities for population, most of the building is separate facilities to mine/harvest and refine the dozen resources. The resource system manages to be very easy to grasp despite the amount of resources and it allows for a lot more strategy (blockades especially).

The main things about EotFS that I like are the setting and politics. The universe is ruled by a single emperor and all the players play as leaders of Houses vying for power. Each player needs to protect their noble bloodline (losing all your nobles = game over) and they need to try and get as many royal scepters as possible. Royal scepters are units that can be captured by anyone clever enough to find and obtain them. Each scepter counts as a vote whenever elections are called.

When elections are called everyone votes for who they want to be the Imperial Regent. The Regent's main power is that they assign who get's to be in the Royal offices (and they can pick a role as well). The Imperial Fleet Commander has full control of a large and powerful space navy. The Stigmata have a massive defensive force and are charged with defending humanity from the mutants. The Imperial Eye has spies all over the universe as well as several other fun units. Essentially, each has a role that players are supposed to fill, but players will try to use them as much to their advantage as possible. "So what if I'm targeting the rebels near my planets first?" "Oops, looks like the mutants are attacking your planets. I promise to try harder next time."

There's also a neutral trading faction, marauding mutants, and The Church. The Church is the most interesting, as they will randomly put bans of certain technologies it deems 'evil'. If you continue to research or build units that use these technolgies you will anger the church. Their massive armies will crusade against you, burning down your labs and possibly declaring war on you. This was a great risk/reward system and it also kept games from always having the exact same tech progression.

Anyways, to win the game you need to become the regent and then try to take the crown by starting a massive fight with every player and trying to conquer the super-planet Byzantium.

Pics Hidden:
emperor-of-the-fading-suns-6.jpg
Foto+Emperor+of+the+Fading+Suns.jpg


EotFS Features:
-Civ-like building on mutliple worlds
-Cool resource system
-Awesome politics and related game mechanics
-Great Technolgy Tree

So what I'm going to do is take all of these and merge them into soe sort of super game. I'm building it with multiplayer from the ground up and don't even know if I'll ever get to AI.

I'm willing to accept any help on can with just about anything. If you want to throw in ideas, help code, submit art, playtest, map, whatever, be my guest. I'll be releasing this free and open source.


Systems: PC/Max/Linux
Singleplayer: Not initially
Multiplayer: LAN/NET/Hotseat
Turn based - Simultaneous Execution (http://www.rjcyberware.com/md/intro-tbse.html)
Theme: Dune/WH40K-esque

Warning!!! These screenshots are from literally only two days of work. They show the basic idea of how maps will work and some of the most basic UI elements. Currently, I've gotten the framework down to add maps, units, resources and most of the variables I'll need to actually make content. I'm currently working on making some more custom UI animations and elements before I make the dedicated server.




Extremely detailed design docs are available at:

General:
http://docs.google.com/View?id=ajjpvfhr6skd_194ggjnsqfr
Combat:
http://docs.google.com/View?id=ajjpvfhr6skd_199cjknb9hp

I just completed the combat code and tester. I'll probably be releasing it for people to play with. It lets you make units, armies, and then fight them against each. It's also a great way to examine the effects to changes to certain combat mechanics.
 
I love Dom3 and considered writing my own spin off. One thing i really like about it is the ability to purchase province defense, without having to dedicate units to it. That makes managing large empires significantly easier.

Good luck with your project! I can't take on any more projects at the moment, but in a few months i might be able to help with coding, if you still need help then.
 
Can't remember the last time I saw or heard someone mention Jazz Jackrabbit...heh.


Wow I totally forgot about province defense and that was a unique and awesome mechanic. I'm adding it back in. Thank you very much for reminding me.
 
What language do you program in? Are you using a ready made engine, or are you building from scratch? Is there a repository somewhere, where one might check out the code?
 
Best of luck, you're going to have a huge amount of work on your hands.

While I only ever played the demos, the maps in Dominions 2 and 3 are faptastic. One day I will get one of them, one day (meanwhile I've got 30 games to play that I've bought digitally at dirt cheap prices).
 
What language do you program in? Are you using a ready made engine, or are you building from scratch? Is there a repository somewhere, where one might check out the code?

I'm using the Love engine, which uses Lua. Lua is extremely easy for coders, scripters, and even the average person to read. I hope that choosing to use Lua allows more people to get involved and one day mod the game. The two downsides to Lua (somewhat sluggish code execution and inability to hide the source) don't really matter since this is an open sourced turn based game.

I will be putting up an SVN sometime soon, but haven't had much urgent need for one this early in the process. I'm throwing you a link to the combat tester so you can take a look at the combat module. It's really not the best place to start as it is overwhelming to look at, but there isn't much else besides the GUI and World Map/Structure at this time. There's a lot of stuff here that probably should be split into more functions to make things more readable.

http://www.filefront.com/16405471/CombatTester.rar

(meanwhile I've got 30 games to play that I've bought digitally at dirt cheap prices).

Too bad Dom 3 is never going to get it's huge price reduced even after all these years. It was only recently they even allowed digital download sales. How foolishly stubborn.
 
Sounds like a cool idea. I think the EFS idea is a little too ambitious, if I understand it right: multiple civ maps (1 civ map per planet?). Maybe just have two maps: 1. for the galaxy (e.g. Galatic Civilizations/Final Frontier-style), and 2. one map for the capital planet that you have to take.
 
Not one civ map per planet. Hex based maps were used for the original eotfs and it took absolutely forever to play. Each planet map will use a Risk like map to speed things up.
 
I'm using the Love engine, which uses Lua. Lua is extremely easy for coders, scripters, and even the average person to read. I hope that choosing to use Lua allows more people to get involved and one day mod the game. The two downsides to Lua (somewhat sluggish code execution and inability to hide the source) don't really matter since this is an open sourced turn based game.

I will be putting up an SVN sometime soon, but haven't had much urgent need for one this early in the process. I'm throwing you a link to the combat tester so you can take a look at the combat module. It's really not the best place to start as it is overwhelming to look at, but there isn't much else besides the GUI and World Map/Structure at this time. There's a lot of stuff here that probably should be split into more functions to make things more readable.

http://www.filefront.com/16405471/CombatTester.rar

Too bad Dom 3 is never going to get it's huge price reduced even after all these years. It was only recently they even allowed digital download sales. How foolishly stubborn.


I have never heard of the engine, but i do know Lua a little. It's definitely a "jump right into it" language, but i don't think i would want to code a larger project in it. Your choice, though, of course!

I'll take a look at the combat tester once filefront lets me. Thanks for posting it.
By the way, git is much superior to svn. ;)
 
I've never used git, only SVN. Care to give a quick explanation as why git is better than SVN?

People who want to help by coding in one of the many variants of C can still help by making extensions and modules that Lua can access. The final plan is that all the most CPU intensive tasks will be written in a compiled language with only things like stats and maps still kept in Lua. For now, nothing is set in stone so having everything in Lua means instant tweaking and changing.
 
Git is distributed. Everbody has his own full copy of the repository, which makes it a lot safer against failure (and people screwing up), and faster. You can work on your own repository and only synch when you are ready.

Git has also tremendous support for branches. It's trivial to create a new branch for every new feature, work on it until it's down, and have it merged back into the main branch. In the meantime you can continue work on the main branch, to fix bugs, for example. This also makes it much easier to cull features that don't work out for some reason, or eliminate partial implementations that are no longer required.
 
Thanks for the advice, I'll check it out.

I've done a lot of work on the game's framework and I'll probably be posting a video some time soon.

Here's the things that I can't progress to until more decisions are made:

-Production/recruitment limits per province? How is production determined? Is it a slot based system where I have X number of slots to build units per factory and the units take a set time to build, or is it civ system where increased production just makes you build that one unit in less time?

-Is there a limit of buildings per province and is it the same for all provinces?


I also need to make a lot of decisions about the fog of war:

What determines what a player can and cannot see? Do you need a single unit on a planet or in orbit to see the whole planet?

Do players see the actual units of spotted enemies or do they see a more vague indication of how many troops or there?

I was initially thinking of some system where any orbiting ship or satellite would have relatively low chances to spot specific units anywhere on the planet each turn, as well as automatically giving a very rough estimate of the army strength/number of all provinces on the planet.

Provinces adjacent to yours would automatically get a very vague estimate of army strength/numbers. The only way to reliably see what types of units are in a province would be to move spies into the province or use special satellites.

Any thoughts on what should be included in FoW and how it should be revealed?
 
Big update.

The new system for building:

I had to take a step forward and just pick something so I went with what would be easiest for me to code and for players to understand. It's not so core that it can't be changed, but something needed to fill the hole so actual testing can begin. I choose a system probably most similar to GalCiv 2. Each region has a certain amount of space to build buildings. This is currently determined solely by the tokens on a province. So all provinces have the same base X amount of space that is then reduced by things like mountains or swamp. The last few blocks of each region begin to require more money to utilize. So if you have a province that is 7/9, the 8th slot will cost you maybe 5000 gold extra and the 9th slot will cost 10000 gold extra. I could switch it to being the last 33% instead of being the last X squares. We'll have to see how it plays out.

In this way it is possible for someone to make a mountain province a city, but it will be more expensive and probably still a little less of a money farm than a metropolis on plains (to compensate the mountains would have way better defense and probably more production).

How money is gained still hasn't been decided yet. Whether buildings will hinder the overall amount of production is also undecided. The current block system can allow for any mixture of previously suggested ideas to work out and none should be hard to implement.

I do kind of want to avoid having to attend to the building needs of every single province all the time. I would rather players occasionally build a new building somewhere instead of trying to keep every province constructing a building at all times. There's a lot less micro this way and a lot less mindlessly queuing up the same build orders you do for every similar province.

Resources:
I've been thinking about the amount of resources and how they are accessed by the players. By almost any strategy game's standards I would say there are a lot of resources. The tooltip system I'm working on resembles the old efs way of doing things (good tooltips like these were especially rare back in the day).

resourcetooltip.jpg


With a simple hover over you know how much your producing/consuming here and galaxy wide, what the resource is used for and exactly how it is created.

I also know that some people will absolutely hate moving around resources so I think I'm going to make it easy on everyone at let any not blockaded planet automatically share with any other with a starport. This way you can still cut off people's resources, but no one has to fiddle around with manually moving stuff if they don't want to. If it's too simple, it won't be too hard to add some trade ships you have to invest in that automatically abstract this job, but still require you to spend money on it.

Tons more coding got done. The mutiplayer is fully functioning, which was by far the biggest feat yet. The actual seperation between client and server data and the transfer between them is the foundation of the game and it prevents cheating. This was a HUGE step.

It isn't fully featured yet. It transfers data perfectly and can accept an essentially infinite number of players. There's nothing preventing the engine from literally having 100 people playing the game simultaneously on the server I have running right now. Each player claims a faction, makes up a password and begins playing. If the server desires, players can even play multiple factions at once.

The main missing feature is that I haven't completed the scheduler. Hosts are going to be able to determine when their servers process turns. So if you only want your server to process turns every 10 minutes on Friday and Saturday between 8:00pm and 9:00pm you can. By being able to save/load and determine when turns are processed we solve the main problem with these long multiplayer games.

Some other stuff that I've recently implemented:

-Combat Logs (soon to come, combat animations to "play" the combat log for you)
-Better scrollable text boxes for large amounts of text
-Extensive tooltips for units.
-Basic Fog of War
-Basic Building Construction
-Second and third tier resources
-Harvesting/Production estimates
-Estimates of enemy armies (not shown in below screenshot. Need a visual way to represent the size/strength)
-World switching. You can now switch to the galaxy map and then move to any other planet with a double click!

The whole UI is able to support user skins so if you don't like the colors you can change them. I haven't tooled around with any colors at all and am using a generic black and white. I believe I can even support textured backgrounds for the UI, so there are a lot of ways to make it not so plain and boring.

***SCREENSHOT ALERT***

Here's a screenshot of me looking at an army and examining a unit:
alpha2.png


In this pic you can see:
-The basic window structure for the army selection window (the box to the middle left). This is currently the ugliest due to the black background on that picture. Basically for each army in a region, another box will be there that will have the name of the army, a picture of the general unit and an indication of which army(ies) you have selected (by darkening the button).

-I implemented nameplates for all the regions so that the text would be readable even if the background was pure black. These nameplates will probably be colored according to who owns each province.

-North America is highlighted. The current highlighting just draws a circle around the area and I can't think of a much better way to depict this selection.

-The little unit icon next to North America is a placeholder to indicate that the region contains an army. I am looking for a better way to represent what kind and how many armies are in each friendly province and am open to suggestion.

-The red arrow indicates the selected army will attack Central America next turn. You can toggle a button to see all orders at once.

-The army examiner is the biggest window. I'll put a title in here or something and not have it be so big for small armies. The purpose of this window is to rearrange units into, out of, and in between armies. It's not finished, but I'd like for each army in a province to have their own little section and you will be able to drag and drop units into different armies here. You can also see the health of each unit at a glance by the red health bar.

-The window above shows the unit stats and has a place that will be filled with a unit description and any help about the unit as well as possibly including the production cost. I might leave this more for the actual production window, which isn't very fleshed out at the moment.

-The small window you see at the top is a tooltip window that appears when you mouse over any of the stats. There are a lot of stats and players need to be able to quickly know what they represent.

-The two smallest buttons in the top right represent the incoming message button. Each of these buttons will have their own little icon. Left click zooms you to the province in question as well as brings up any choices you need to make. Mousing over them tells the jist of the message and right clicking them removes them. They slide up with a nice animation and will fill in gaps as you delete messages.

-Lastly we see the stockpiles window on the bottom. None of the resources are finalized and right now they are all using the old efs placeholder graphics. It shows the amount of resources that are available to any given province and you can mouseover to see the resource tooltip, which is similar to the screenshot previously shown. This also has a nice animation as it slides up and can just as easily be hidden away.

As we get closer to the content addition stage I realized that I'll soon be needing a lot of sprites. There's not that many good futuristic sprites out there and I can't count on just ripping all the graphics from other games.

If anyone out there can draw or knows someone who can please let me know.
 
Entering a near alpha state. I'll be needing alpha testers soon if anyone is willing. Lots of economy balancing is needed.
 
I'll take a look at it, maybe sometime. Sounds like something Paradox might be interested in marketing if you show it to them later. Real Time Strategy kind of like they do?
 
I'll take a look at it, maybe sometime. Sounds like something Paradox might be interested in marketing if you show it to them later. Real Time Strategy kind of like they do?

Heh, I appreciate your confidence, but I mod and make games primarily for people to enjoy and have never planned on charging money for it. Changing the game from a freeware game to something I'd sell would also dramatically change the amount of responsibility I'd feel to it. I have a full time job and I'd prefer to keep this as something I enjoy doing, instead of another job :p.

I've been able to get a lot more done recently than I expected. Most all the core features are done. Making more content and creating a tech tree are the next steps.
 
*bump*

Just saying that the game looks like a RTS of the sorts like EU3 (pause give orders, then hit play and watch). I'm thinking the resources might be a bit too complicated. I'd think a handful of raw materials, and perhaps slightly more finished goods would be reasonable for a galaxy scale game.

E.g. have both generic and special raw materials (e.g. generic food, chemicals, and then rares: radioactives and unobtanium and plant extracts) and the same for finished goods.
 
Back
Top Bottom