CivOne - An Open Source remake of Civilization 1

I noticed a possible bug with the minimap.

If you have a current unit (blinking) you can change the map position by clicking in on the minimap. The map will update correctly if you select a spot in which the unit is still visible. Othewise, using the minimap does not update the map right.

This may be related to a bug that I've already solved... but I will have to check that out. Otherwise, it will be fixed in the next preview.


P.S. I have played a few turns and I am amazed how this is so close to the original. Sounds aside, I thought that opened my dosbox civ instead! I really hope that you will manage to recreate the game fully.

I'm getting more and more confident that I will be able to at least recreate the original experience of the game, though some things might differ a bit (like the placement of buildings in the city view)... for things that I can't figure out exactly I will at least be able to create a similar implementation.
It's possibly going to take years to finish this project... so please be patient.

I know you have modding in mind after the game will be cloned, but how are you going to do this? Will you make it possible to add new units, or mechanics that exist only in newer iterations?

Well, with .NET it's very easy to create plugins for existing applications, if the application developer allow it, which I will. With the source code available to read, I would guess that it's going to be very easy for anyone with C# experience to create mods for the game.
It's just going to be a matter of placing a .dll file in the mods of plugins folder of CivOne and the game will pick it up.
For example, you might create a simple .dll that adds a new Civilization to the game... or that replaces a current Civilization with another one. A mod like that could be done in less than 10 lines of code.

I will, of course, provide examples so anyone would be able to create simple mods... but theoratically the sky is the limit.

What I really liked about Civ is its simplicity. I think the best mods will be the ones preserving this simplicity to a degree.

I agree. But complex mods will be very possible.

I want to ask if you will do the code in such a way to allow stuff like (through mods):
- veteran, elite, leveled units like in Civ3/4
- great people or heroes (like a scientist or builder)
- leader unit (player) which if lost would lose the game
- upgrading units (to new techs)
- undercover units like the privateer in Colonization with privateering in mind (ability to get some gold from capturing an other vessel)
- more than 3 trade routes / city (with market place, bank, etc) and ability to cancel routes
- events such as plague, barbarian hordes etc
- support for extended tiles (ancient/medieval/industrial/modern/future) but also more tiles than in the Civ ruleset. I am imagining modding this for extended scenarios like post apocalyptic, alien invasion, Alpha Centauri style mod, fantasy themes, etc.

There's nothing here that seems difficult to me, so yeah... all these mods should be possible.

Other things you may consider are:
- Mods that give Civs special abilities
- Mods that allow bigger maps
- Mods that expand the tech tree, add new wonders, building and units...
- Mods that change how the AI works
- A mod that makes the world flat (not cylindrical)
- A mod that allows you to play on hexagon tiles
- A mod that changes the display to isometric
- High resolution texture packs...

I try to design my code with future modding in mind.
Still, it's going to take a while before any of this is possible... unfortunately, I can write code but I can not do magic. ;)

Edit:
I have enabled modding support. I had already implemented it, basically. It took me 3 lines of code to enable modding support, and another 4 to handle extra civilizations being added to the game.
I will post a new version and a zip with 3 mods that I've created. I will post the source code of the mods on GitHub some time tomorrow, to show how easy it is.
 
I was wondering if you will be able to simply tweak some aspects of the game via an ini or xml files (something easy to edit).

I imagine several scenarios:

- tweaks with ini files, so you have the same game but some things are a bit different (unit/building costs, government bonuses, etc)

- mods: files that will alter the game like you said (civ bonuses, new units, govs, etc)

- tile sets, and new resolutions

I am not sure if it won't be to complicated to have hexagonal tiles...

Edit:

modding, already! and you said that you can only write code, not do magic :D
 
New version, with modding support, now available: http://forums.civfanatics.com/showpost.php?p=13487171&postcount=1

It's highly experimental. I will try to post samples of how to create custom Civilization mods on GitHub this weekend.

This is not magic: I had already made preperations and talking about modding made me wonder how hard it would be to actually implement it. Answer: Not hard at all. :)

I'm not going to make a lot of additions to the modding API right now. My focus will be bug fixing.

Edit: There's 28 open bugs for version 0.1.0 right now... before the last preview there were 15 open bugs. Thanks for all the testing and reporting all the bugs!
My focus the next two days is to close at least 10 bugs. I hope to get below 10 bugs by the end of next week. :)

Edit 2: I'm kind of busy with real life today, so I'm going to have to move most of the bug fixing to tomorrow.
 
Hey SWY,

glad that you are implementing things so fast. You are right to focus on fixing bugs and implementing the game features. It is fantastic that you have in mind this flexibility.

I am a programmer but I only did (and do) embedded C for cars ECU, so my experience with C# is limited to doing some simple tools.

However, I also have an artistic background, and (I hope) that am a better artist than programmer :) In the future I could help with some graphics, maybe for units or buildings.

What I really love about the 1st Civ, and always missed in the later versions, was the city view, and how the buildings "teleported" there over the PC speaker sound (when I played it I had no sound blaster card). Also those pixelated citizens are awesome.

Right now, time doesn't allow me to browse the code and see how I could contribute, but tweaking Civ was an old dream of mine, so I really hope to be able help in the future.
 
I'm getting bothered by the complicatedness of some of the code I've written and I'm going to spend some days simplifying the code instead of solving bugs. I might even introduce some new bugs along the way... (let's hope not)
So, probably no new version this week, and not too many closing bugs in GitHub probably. But I'm still on focus, don't worry. I don't want to rush anything, it's better to write quality code. :)

@Laterego
If you'd like to, once the modding API is more friendly and documented, we could work on a plugin together. One of the samples I have planned, and that requires new unit graphics, is this:

New tech:
Archery
Requires: Bronze Working

New unit:
Archer
Cost: 30 shields
Attack: 1
Defense: 2 (3 when in city)
 
For all the features you have implemented, there are really no major bugs left. Perhaps only those random crashes when pressing the build option in the city menu. This practically prevents me from searching for bugs after AD 1000, as the game annoyingly crashes usually after playing it for longer than 20 min.

The game is slowly getting into the phase which requires in-depth knowledge of its mechanics, especially the interaction of economics/trade/shields etc. on all 5 difficulty levels. I'll look more into this and try to gather some info from IDA before opening any related issues on Github.
 
I've already applied a lot of optimizations to the code, making it easier to implement some features in the future. Generally, I've searched for code that I've been reusing and centralized it.
Still a lot of work to do in that aspect, but I'm happy with the results so far.

I managed to close various bugs. Right now there's 21 open issues left.

For all the features you have implemented, there are really no major bugs left. Perhaps only those random crashes when pressing the build option in the city menu. This practically prevents me from searching for bugs after AD 1000, as the game annoyingly crashes usually after playing it for longer than 20 min.

The game is slowly getting into the phase which requires in-depth knowledge of its mechanics, especially the interaction of economics/trade/shields etc. on all 5 difficulty levels. I'll look more into this and try to gather some info from IDA before opening any related issues on Github.

My focus is now back to getting the last 21 issues fixed. I will try to get the game crashing bugs fixed, along with some other minor issues. You can expect a new preview by Friday, but possibly sooner because you know me... :mischief:

Edit: I'm just a few commits removed from being ready to close this issue.
 
Yes, I'm afraid I have stepped back from testing for a bit as I was experiencing regular crashes into late-game environments, but I'm still rooting for this with gusto and am looking forward to the next release!

Off topic: Swy, I'm getting my head around C# (which turns out to be not too dissimilar to other languages I've dabbled in) and was wondering which IDE you use?
 
Hi DracoNoir,
There's plenty of bugs that I still need to tackle before I feel I can release a new preview. Might not even be tomorrow, but I'll try. My latest progress has introduced some annoying bugs I'm afraid.
Right now, I do believe that I've fixed the crashes. I am, at the moment, playing a game past 1000 AD with no problems.

I use Visual Studio Code, which is a light weight code editor. The instructions on how to use Visual Studio Code and compile on Windows are in the wiki here.
If you just want to run/compile it, you could also just open the csproj file with the regular Visual Studio 2015, but it will screw up the project files so I'd prefer that you use vscode if you plan to contribute code.

Edit: If you need any help with setting up up the development environment, just let me know. If you run into any problems with following the instructions on the wiki page, I might need to update the instructions. :)
 
Oh, I understand about the release, don't worry - I would never want to add additional pressure, considering you're blazing through the rest of it!

Ahh, I just downloaded VS express. 12GB seemed pretty heavy for a compiler so I'll grab vscode instead - thanks =]

No, I wouldn't muck about with anything you've done - my knowledge isn't broad enough I don't think - I just want to get started with C# and glancing at some of your code, as far as keywords and syntax goes, it looks very similar to things like ACS script I've used for Doom level editing, etc.
 
Currently, there are 15 open issues remaining. There's also the problem where the game slows down more and more later into the game. Once I've tackled the slowing down issue, I will post another preview. I will try to close an additional 2-3 bugs before then.

Edit/Update (4 October 2016):
First of all, happy World Animal Day. :)
I realize I haven't committed any code for the past several days and I haven't reported any progress or updates. Truth is: What started as a small optimization to fix some drawing performance issue has grown to changes in over 40 files at the moment. I'm getting to the point where I will either commit the code or throw away three days of work because my hunch wasn't correct.
Just to let you know: I'm still working on CivOne and I haven't gone missing, don't worry. :)

Edit 2:
The hunch was correct, I've committed 103 changed code files. I'm pretty sure that I've introduced some graphics glitches/bugs with these changes but the overall performance gains are great. I saw a 50% reduction of CPU usage and overall memory usage also went down.
I still need to fix the slowing down issue and I want to close some more bugs before I post a new preview, but I will post a new preview on Friday or Saturday. After that I will go on holiday. :cool:
 
Last edited:
Great! If you have time take a look at the crashes caused by pressing the change production in the city screen. It's really annoying. I can't wait for the new preview.
 
Hi SWY,

I love Civ 1 as this was my first CIV and I spend thousands of hours playing it. But I don't get the point of this project. Why would you like to re-create it in C#? We have already got WinCiv, haven't we?
 
@mogilan

Hi, thank you for your reply.
First of all, I'm of the opinion that Civilization for DOS is superior to WinCiv: The animations look better, the colours like more lively. WinCiv is also a Win16 application so it won't work on 64-bit Windows.

CivOne is a tribute. I'm creating it in appreciation to the original.
I also hope that people will either pick up my source code and extend the original game with their own ideas, or that they'll start creating mods for my project.

It would be nice to one day be able to play Civilization 1 on larger maps, with more players, multiplayer or with an extended tech tree.
 
Thanks for reply. I just want to add that I fully support the idea, just was curious what goals you want to achieve :)

If there is any possibility to help you in any way let us (players) know!
 
If there is any possibility to help you in any way let us (players) know!

Thank you! I will post a new preview on Friday or Saturday, before I go on holiday for a week. You can help me by playing the preview and reporting bugs and differences from the original game to this forum thread or to GitHub. :)
 
SWY said (because I can't find the quote function on this newfangled layout!):
After that I will go on holiday. :cool:

--

And by gum you'll have earned it!
 
  • Like
Reactions: SWY
Thanks :D

I'm not too sure about my time before I go on holiday, so I have posted my current progress in preview version r715 (on page one of this thread). With a bit of luck, I will still find time to make some more changes and post a new version on Saturday.

Also, the new website is online... although it is not finished. I'm still working on the design: http://www.civone.com/
If you still see the old website, please be patient... it can take up to 24 hours for the DNS records to be updated.
 
Top Bottom