OpenCiv1 Project - Open source rewrite of the original Civilization 1 Game designed by Sid Meier and Bruce Shelley in year 1991

I understand how rewriting such a big procedure will be a big challenge. Would you like me to continue playing and reporting what I notice or would you prefer to wait until a more stable time?
 
You can always test more, it will be a good thing to know if there are any problems. But I don't promise to fix everything fast :)
@axx has submitted icon data corruption problem (sometimes happens, probably because of GoTo code which is next on my agenda), but the issue is waiting already for some time until I finish rewriting main City code.
 
I'm going for a despotic conquest in this game (only one city as well). When I destroyed the French, the German settler spawned next to one of my units. Again not 100% but I thought the spawn rules avoided placing new settlers right next to the player but I could be wrong.
1720105520382.png


EDIT - when you destroy a civ by getting their settler it says "German civilization destroyed by !". In v05 of the DOS game it was "German civilization destroyed by barbarians". No actual difference in gameplay, just the text.
 
EDIT - it is specifically the "defending your cities with at least one (preferably two) good defensive units" popup. It appears on every turn. I just started a new game Chieftan/Romans/7 Civilizations.
It was easy to find, a simple mistake :)
Fixed in the latest commit.
 
I'm going for a despotic conquest in this game (only one city as well). When I destroyed the French, the German settler spawned next to one of my units. Again not 100% but I thought the spawn rules avoided placing new settlers right next to the player but I could be wrong.
You can move any unit next to another player, provided that you are not already blocked by another unit next to your unit.

EDIT - when you destroy a civ by getting their settler it says "German civilization destroyed by !". In v05 of the DOS game it was "German civilization destroyed by barbarians". No actual difference in gameplay, just the text.
Was German civilization destroyed by barbarians, or by you as a Human player?
 
You can move any unit next to another player, provided that you are not already blocked by another unit next to your unit.

I mean a brand new Civ was spawned onto the map on a square next to one of my units. Maybe that was always possible, just thought I'd flag it up as interesting.
 
I mean a brand new Civ was spawned onto the map on a square next to one of my units. Maybe that was always possible, just thought I'd flag it up as interesting.
It is possible that the German settler was just near by and not spawned. What I like to do, to check for such things, is to enable Debug mode, and count the players and their units to check if everything is OK and accounted for.
 
Last edited:
I apologize, some key combinations (Debug function is among them) were non working due to restructuring of key mapping functions. The additional key functions are now restored.
 
It is possible that the German settler was just near by and not spawned. What I like to do, to check for such things, is to enable Debug mode, and count the players and their units to check if everything is OK and accounted for.
Not exactly, I tried the scenario and captured player/city settler right away, and it spawned as another Player (Nation). I tried the DOS version and it behaves exactly the same. When I capture a settler or a newly found city, in the beginning, a new Player is immediately spawned.

@Lord_Hill I guess you had the privilege that new Player settler spawns near your unit! :)
 
I just tried this game (Alpha7) and noticed that moving on rivers costs 1 movement point. Is this a bug or feature?

On Amiga you could move faster along rivers costing only 1/3 mp.
 
Oh, found another difference. Looks like on the PC version there is no visual indication if the river tile has a shield.
 
I just tried this game (Alpha7) and noticed that moving on rivers costs 1 movement point. Is this a bug or feature?

On Amiga you could move faster along rivers costing only 1/3 mp.

According to Civilopedia:
Screenshot_20240720_101042.png
Screenshot_20240720_101756.png

The movement on the river terrain should cost 1 movement point, and not 1/3. Looks like a bug in Amiga version.

Alpha 7 release is very old and should not be used anymore. Instead compile the current Master code. I'm currently working on GoTo code which is very buggy. After that I will make a newer release.

Oh, found another difference. Looks like on the PC version there is no visual indication if the river tile has a shield.

Please use screenshots if you want to point to another graphic/functional difference. It would be good if such bug discussion is held on GitHub instead :) so we don't clog this thread with bug reports.

And, please, use DOS version 474.05 / 475.05 as a point of reference. The DOS version has original Sid Meier code, the other platforms are just ports and can't be used as a point of reference because we don't know if the ported code is true to the original code or not.
 
Last edited:
Dear all who follow the development of OpenCiv1, I just wan't to let you know that I relentlessly work on the project, and there have been some major changes.
The development of OpenCiv1 is truly a marathon and not a sprint as I initially thought...

I have introduced the new TerrainMap object which holds the entire Map and methods that relate to the Map management closely.
Also, I have managed to implement the new GoTo (based on AStar [A*] algorithm, thank you @rehn for pointing me in the right direction ;) ). The algorithm has some imperfections that will be ironed out, but I think that it outperforms the old buggy GoTo algorithm by far.

Unfortunately, the many introduced changes broke the compatibility with old .SVE/.MAP save format :(
Will try to fix that, or at least provide some kind of conversion.

The next is to fix the Barbarian Nationality ID bug, to translate as much code as possible and finally provide a Load/Save/Import/Export game functions.

For now the new code is still under Unstable branch, at least until I fix the game Save and Load functions.

Cheers ;)

P.S. Thank you for all your support :)
 
Last edited:
Great stuff! Out of interest will you retain the original terrible goto functionality and allow it to be toggled (along with other bugs?)
No, one of the goals of this project is to fix all the bugs from the old version :)

Even if I wanted, I couldn't, as the C# runtime won't allow stack corruption, array underflows/overflows, etc. to occur!
 
That's what unsafe functions are for, to faithfully reproduce 30+ year old bugs nobody needs! :D
I could use unsafe functions, but 64k window in which all variables and stack are allocated in 16bit programming model wouldn't be possible to reproduce at all :crazyeye: The difference between 16bit and x32/x64 is just too much. Also, the new code is not 1:1, as that would be copyright violation, etc...
 
Top Bottom