CivOne - An Open Source remake of Civilization 1

SWY

Prince
Joined
Oct 3, 2014
Messages
330
Location
The Netherlands
CivOne
An open source implementation of Sid Meier's Civilization

CivOne is an effort to recreate the original Sid Meier's Civilization game in C#, using the original resource files.
The project primary goal is to end up with a near exact copy, including all the bugs/features/limitations. Later on, we might add multiplayer, bigger maps and modding support, but that's not our focus at the moment.

There are currently binaries available for testing, to help tracking down bugs. If you want to help, please download the attachment from this post and report any bugs you find to GitHub or in this forum thread. Thank you!

Please note: The version in this post is a bit old, for the latest version, please check the website or look at one of the last posts in this thread. I will update the main post once the first Alpha version is complete.

Current (Windows) test version: Download

Sample plugins: Download

  • First process units, then cities (fixes Lighthouse effects in first turn)
  • Naval units end turn when entering cities
  • Starting positions on EARTH no longer validated (fixed civs not spawning)
  • Disabling Civilopedia Text option disables it on all instances
  • No more error when trying to irrigate an irrigated tile
  • Fixed rendering of south-western coast tiles
  • When deleting a naval unit, also delete all it's cargo
  • Fixed drawing idle naval units with cargo
  • Implemented dialog template code (optimization)
  • Hopefully fixed hang on quit issue
  • Many, many code cleaning actions
  • Government selection is now a task (fixes overlapping menus bug)
  • Fixed government selection time (MOD 4, or 1 when Pyramids are effective)
  • Only open enemy cities when SHIFT 5+6 cheat is active
  • Governments are now objects instead of enums (opens the possibility to create government mods)
  • Tax/Luxury rate dialog is now a task
  • Unit stack in sidebar now displays correctly
  • City specialists and their effects implemented (banker, taxman, entertainer)
  • City can no longer get resources from tiles that contain enemy units
  • Buildings can now be sold
  • Units/Improvements can now be bought
  • Fixed random crashes later into the game
  • Barbarian movement is now seperate from the rest of the AI
  • Disband unit if the city doesn't have enough shields
  • Pressing H now sets the home city
  • Modern discovery screen is now used after discovering Electricity
  • Fixed trade base values for science, taxes and luxuries
  • Default units are now Militia, Musketeer, Rifleman when available

Known issues, no need to report:
  • AI moves sometimes show on undiscovered terrain
  • There is no confrontation possible with enemy units
  • Barbarians disband themselves, that's intentional
  • More

How to install mods:
  • Download the zip file with sample mods.
  • Place the dll files in the .\plugins folder.
  • The mods are now active.

If you're feeling experimental, please download it and try it out.

Here are the obligatory instructions:

Extract the zip, to a folder (ex.: C:\Games\CivOne\).
Make sure you have .NET 4.0 installed.

The game will ask where the original Civilization files are, and copy them to the data directory.

!!! For now, only English game files are supported. If you're testing with another language, the game might crash !!!

To run the game, start .\bin\CivOne.exe or .\CivOne.bat
To run the game setup, start .\Setup.bat
To run the game demo, start .\Demo.bat

To make screenshots, press Ctrl+F5.
To make a screenshot of the entire map, press Ctrl+F6.

If you want to load save files from the original game, you can copy them to .\saves\{drive_letter}.

The game is made with .NET 4.0, so it should run on Windows XP with SP3 and higher, but I've only tested it on Windows 10. Please let me know your system/software specs and how the game performs.

Please, report any bugs in this thread or (better) create an Issue on GitHub. When reporting issues, please be as detailed as possible.
Thank you for testing. :D

Visit the reposistory: CivOne on GitHub
 

Attachments

  • civone-plugins-sample.zip
    6.2 KB · Views: 1,166
  • civone-0.1.0pre-alpha1-r715.zip
    202.5 KB · Views: 3,168
Last edited:
Adding the ability to mod would be awesome, and if done well could really make a fantastic upgrade to the game. Just look at what they've done with OpenXcom, really brings the game back and opens it up to new players.
 
Adding the ability to mod would be awesome, and if done well could really make a fantastic upgrade to the game. Just look at what they've done with OpenXcom, really brings the game back and opens it up to new players.

Thank you, that's what I thought.
I have lots of experience with programming in C#, a modding API is not difficult to do. It'll be really interesting to see what people can come up with.

I've now got a working AI (dubbed StupidAI because it only moves around randomly). I've got the game setup menu (choose difficulty, competition, tribe). Difficulty doesn't do anything yet, though. I've made a list of things I want to finish before I release the first demo version:

  • Fix some graphics glitch
  • Expand city management, choose resource tiles, add change unit button
  • Irrigation/road/railroads
  • Sentry/fortify units
  • Boats

I expect that the first demo will be finished within a week.
 
This sounds awesome. The first thing that comes to mind is an exploit-less vanilla Civ DOS interface with multiplayer capability. Now that would be tits.
 
Thanks for the enthusiasm! :D
I've been working on this the whole day, this is what I've finished today:
  • Boats and passengers
  • Sentry
  • Trade arrows
  • AI can build cities now
  • Resources on the map

I'll be working on the following before I release the first demo (update: edited):
  • Fortify units - DONE!
  • City management screen (change button, see resources per tile) DONE
  • Build irrigation (DONE)/roads/railroads
  • Fix some graphics glitch

I expect to be ready for a demo in 1-2 days.
 
Hi darkpanda, thanks you for your reply!
I haven't worked on the palette cycling (for animation) yet. I know how to do it though. Shouldn't be too difficult once I start working on it.
I need to rewrite part of the graphics engine because there's some glitches right now. I will tackle palette cycling at the same time.

Your font tutorial was amazing, I got the fonts extracted within an hour thanks to your thread!

About the audio, I haven't had a look at the %SOUND.CVL files yet but I figure that those contain a midi-like format. Once I figure them out I should also get the music working. It's not too high on my list though...

I want to get the gameplay aspects done as soon as possible. That means my focus is on scientific advances, city improvements, combat and being able to complete a game.

Anyway, thank you so much for all your contributions! Your reverse engineering efforts have helped been of great help to me so far!
 
Awesome! This is going to be great. Having more civilizations and bigger maps would definitely make the game a lot more interesting. Perhaps eventually, you can make it possible to edit the effects of all government types, and all the effects of buildings and wonders. Also, you might look into what luxury rates do sometime too. These are all things I've asked darkpanda, as you will find on this forum. Anyways, keep up the good work. :)
 
I have added a download link for version 0.01 alpha to the original post.

Here it is again:
https://mega.co.nz/#!kR9jgbab!BLiUX3lS0Jt8Hk4be74UUUN8AGJFwcXjzTsyMzMsblc

In order to run the game, you Civilization data files must be in the C:\CIV\ folder. Also, .NET 3.5 Client Profile must be installed.

Awesome! This is going to be great. Having more civilizations and bigger maps would definitely make the game a lot more interesting. Perhaps eventually, you can make it possible to edit the effects of all government types, and all the effects of buildings and wonders. Also, you might look into what luxury rates do sometime too. These are all things I've asked darkpanda, as you will find on this forum. Anyways, keep up the good work. :)

Eventually, all things about the games internals could be modified. I've created projects that use plugins before, the sky is the limit.
Here's some ideas of what will be possible: You could add new terrain types, allow irrigation on arctic tiles, create a unit that can change sea tiles to land tiles, modify existing governments, create whole new government types, new wonders/buildings with their own effects. Do you want a building that automatically adds irrigation and roads around your city? Why not!
And while we're at it... why not make the game use hexagon tiles or isometric view... or both?

But, once again, my first focus is to stay true to the original game. If I start straying from that goal, I will finish all cool new features but the game will lack in features that are important to the game.
So that means, for now, no larger maps, not more than 7 civilizations and no multiplayer. But eventually, yes, definitely! Because that's what I want too...
 
Cool! Looks like you are making good progress.

May I suggest you create a github project so the community can contribute? :)
 
Hi weevil,
I will eventually open the source, but not yet. I don't feel confident enough, some of my current code is really messy/hacky. I want to have everything working nicely and I want to have the code documented before I open the source.

So for now, I will release this as freeware with a closed source.
 
I've started working on the new graphics system so I can fix the glitches in the current implementation. I've got palette cycling working and I've implemented the Civilization intro (In the beginning...) with full animations!

Now I'm going to work on animations on the game board (coast line).
 
Did a quick test, looks promising. I would be for the possibility to zoom out, and/or have a bigger viewport.

Took me some time to figure out that you have to press space, not enter, to proceed to next turn.

Also, don't understand why you put the file on mega.co.nz. Given it is just 48kB or so zipped (which is great!) you can easily upload it as attachment directly here.

Anyhow, kudos to you, SWY! Keep up the good work.
 
Did a quick test, looks promising. I would be for the possibility to zoom out, and/or have a bigger viewport.

Took me some time to figure out that you have to press space, not enter, to proceed to next turn.

Also, don't understand why you put the file on mega.co.nz. Given it is just 48kB or so zipped (which is great!) you can easily upload it as attachment directly here.

Anyhow, kudos to you, SWY! Keep up the good work.

Thank you for testing. :goodjob:
I have fixed the space/enter thing. You can now also press enter.

Like I said before, I will not (yet) expand the game beyond the original. That includes zooming in and out or resizing the window. However, the next version of the game will come with a configuration application (or you could just edit the .config file) where you can set the resize multiplier. That means you can make the game use 3x3 or 4x4 pixels instead of 2x2 pixels.

Eventually, it will be possible to create mods that expand the original interface so you can use the mousewheel or shortcut keys to zoom in/out.

The next version should be ready within 2 days.
Everything is going really well! :D

Edit: One more thing... I put the file on mega because I'm not sure non-registered forum guests can download from the forums.
 
Like I said before, I will not (yet) expand the game beyond the original. That includes zooming in and out or resizing the window.
...
Eventually, it will be possible to create mods that expand the original interface so you can use the mousewheel or shortcut keys to zoom in/out.

I think this is definitely the way to go. Start by creating an exact clone of the original game but make it super moddable. I've been thinking about a similar project for a long time now just never got around to start on it :)

One of my concerns was whether or not to implement features from the game that are clearly bugs. Like for instance the ability to do all tile improvements in a single turn by re-activating working settlers. This is clearly not intended behavior and I consider it cheating but others might consider it "clever use of game mechanics" and feel like it's a part of the game.

Also, the limit to total number of units and citites was there because of limitations to available memory within the 640k space. We don't have that limitation now, does that mean there should be no unit limit? or is this considered a part of the core gameplay now?
 
I will implement the bugs, but I will also create configurable game options to enable/disable them. These will be called patches. So there will be patches to enable/disable, limits, bugs, SHIFT 5-6 cheat, etc.

I love this game so much, I will treat it with the respect it deserves. :)
 
I've finished the configuration tool for the next version:



I hope the next version will be finished today or tomorrow. Here the list of features:
  • New graphics engine, palette shift animations are now working
  • New game intro, including animations
  • Possible to set the pixel scale (1x, 2x, 3x, 4x)
  • Roads/railroads/mines
  • Map special resources are placed correctly (thanks to darkpanda)
  • Goody huts, fully working (thanks to darkpanda)
  • Configuration tool

After this version, I will start working on Civilization advances and city improvements (buildings).

Edit: Wow, the animated shorelines are not standard colour cylces. I need more time to figure them out, so I'll skip that for now. (sorry)
 
Top Bottom