Yet anther clone

dom111

Chieftain
Joined
Jan 23, 2016
Messages
51
Hi all,

I've been working, on and off, on a clone of Civilization for some years. There have been many clones, I know, but I still wanted to work on something else myself as the aims for the project are slightly different to others:

- Be able to play a game that approximates Civilization, but without the bugs (and add some improvements)
- Be modular so components can be enabled or disabled (e.g. add the concept of Religion/Faith and have the AI use it effectively)
- Be possible to have a multitude of clients for it (CLI, API, web, etc)
- Create a headless client so that AI can train/King of the hill challenges would be possible

The project has been through many stages and is still in progress, I'd say there's about 25% of the functionality of the original game (most of the core elements are there, but I don't think much of it is actually complete).

In the spirit of not waiting for it to be perfect, I'd like to offer it out for experimentation:


There are a host of known issues and TODOs, but you can currently:

- Move units (including naval and air units) and perform actions (missing: add population to city for settlers)
- Build and manage cities (missing: choosing which tiles the citizens work, converting citizens to entertainers/etc, selling improvements)
- Build city improvements (broken: some of the improvements offer too much benefit)
- Build wonders (a lot don't have benefits yet, some are way OP)
- Play on Earth or a rudimentary generated world (the world generation is OK, but I'd like to improve it somewhat)
- Change governments and enjoy the benefits/costs (missing: anarchy when changing government, automatic government overthrow for democracy)
- Acquire science from city trade yields leading to all advances, unlocking units, city improvements and wonders
- Acquire gold from city trade yields and spend to rush production
- Play against basic AI opponents (these really don't offer much of a challenge yet, but my current task-list including breaking down the AI class into modules, hopefully improving them along the way)

Missing:

- Victory conditions (heh...)
- So many more things...

This currently requires the original assets (TER257.PIC and SP257.PIC) to be able to generate the graphics, but another task on the list is to enable asset-packs so that any other tilesets and unit/city images could be used.

I've implemented a function similar to Civ 5 with the production and research changes in the bottom right of the screen and these cannot currently be skipped (so no "letting a city build up shields without a target" currently...)

All the code is open source and broken down into many modules (with the aim that these could be re-used in (for example) a Civ 2 clone, or a Civ 5 clone, etc:


I'd appreciate any feedback, although I know it's probably a lot of personal taste for people and I can't promise I'll implement things (certainly not on any particular timescale!)

Here's how it currently looks:
 

Attachments

  • Screenshot from 2022-11-17 13-53-09.png
    Screenshot from 2022-11-17 13-53-09.png
    293.2 KB · Views: 355
Last edited:
Thank you! Indeed it is... So much of the game is well documented here (and in Rome in 640K a day!) There's a lot to do, but I'm hoping the hard work at the beginning will pay off. And I'm sure I'll need to rewrite parts of it at various points to get what I want out of it, but I'm enjoying it so far!
 
Oh wow! Yes there may have been many clone attempts but none got completely finished so don't worry, no one is going to tell you there's no need haha. This is very cool! Please keep us updated!

Will it eventually support higher viewing resolutions without stretching? Or do you plan to leave it in the traditional 320x200 resolution?

I'll have to mention this in my up and coming followup video for my Civ1 video series.

EDIT: I tried to test your online version but it seemed to get stuck when upload my Civ1 257 files. Yes it warns it'll take several mins but I left it for half an hour lol.
.
 
Last edited:
Oh wow! Yes there may have been many clone attempts but none got completely finished so don't worry, no one is going to tell you there's no need haha. This is very cool! Please keep us updated!

Will it eventually support higher viewing resolutions without stretching? Or do you plan to leave it in the traditional 320x200 resolution?

I'll have to mention this in my up and coming followup video for my Civ1 video series.

EDIT: I tried to test your online version but it seemed to get stuck when upload my Civ1 257 files. Yes it warns it'll take several mins but I left it for half an hour lol.
.
Yeah, the aim is to have any size assets and viewing portal, it's limited to look a bit like the DOS at the moment, but that's just for my tastes!

Hmmm, that's not ideal. It's pretty resource hungry and took a few minutes on a relatively high power work laptop, but took an age on my Chromebook. I ended up starting the import, and leaving it focused but it did finally finish. Over an hour is unexpected though, unless whatever browser you're using suspends processes when it's not the main thread I guess? When it gets halfway through, it updates the message (it should do it periodically but the operation appears to just eat all the resources for now - on my list is moving that to workers too).

I imagine this will be different on different machines too so this is great feedback, thank you! What are your machine specs (if you don't mind me asking!)
 
I fully support this project, it's like having the original but with the source code accessible.

What I would ask for would be an easy to use tool to localize them to other languages, like Spanish.
 
Yeah after a couple of minutes I went to another tab in chrome and did other stuff. Came back half an hour later and no change. Other tabs are still active (but possibly in a reduced capacity) as the social media ones always update instantly when something happens eg a msg.

I7-4771, 32GB RAM, Windows 7 64 bit, 512MB SSD, Chrome browser, 12Mbps wired internet.
Ok, so your machine is plenty capable, no worries there! Next time you have a minute would you try again and see if you get any errors in the console? Also could you try in an incognito window, in case theres an extension causing problems (I'd expect anything privacy related might get involved and cause issues, Brave in particular has some issues with the Canvas functionality (although it does still finish but with damaged results...)

Thanks again for taking a look!
 
I fully support this project, it's like having the original but with the source code accessible.

What I would ask for would be an easy to use tool to localize them to other languages, like Spanish.
Yeah, localisation is on my list. Probably via a simple script or JSON files. My hopes are to have the associated translations with the source that includes them eventually so that things are logically grouped to aid reuse but I'll make sure you let you know how and where when it's available!
 
tried in an incognito window.. told it upload the first file.. left it as the main window open and did some stuff in the kitchen, came back and no change.. it just sits there forever on building assets.. and my CPU is sitting on about 1% usage. Internet speed test says I've got full speed available so thats not getting throttled either..

View attachment 646724
Ok fine, so it's not doing anything (since the operations are pretty full on) anything in the developer tools console (F12)? Also I wonder if it's expecting both files at once (I usually do this so haven't tested much of each file one at a time... 😅 Thank you!) I wonder if uploading the second file best time would do it too...

This was originally a command line tool which I've tried to reuse in the UI so it's need reworking properly really.

This feedback is awesome, thank you!
 
Also I wonder if it's expecting both files at once (I usually do this so haven't tested much of each file one at a time... 😅 Thank you!) I wonder if uploading the second file best time would do it too...

Yup that was it! I didn't think I could as many web uploaders don't let you select and upload 2 at the same time. If supporting one by one uploading is too hard to code in then yeah maybe stick up a text warning saying that you need to do both at the same time and that should stop people hitting the wall I hit. Anyway sure enough once I fed both at the same time into it it started doing stuff. I got 3 lots of chrome 'page unresponsive' warning windows which I just clicked wait on and after about 30 or 40 second the game loaded! I was able to start a new game on earth.

Oooh just as I hoped it supports my HD desktop resolution so I can see more of the game world once the map is explored. Cool! I like the modernised side buttons asking you to do things that we're used to in current day 4x games.

1670163146650.png
 
Yup that was it! I didn't think I could as many web uploaders don't let you select and upload 2 at the same time. If supporting one by one uploading is too hard to code in then yeah maybe stick up a text warning saying that you need to do both at the same time and that should stop people hitting the wall I hit. Anyway sure enough once I fed both at the same time into it it started doing stuff. I got 3 lots of chrome 'page unresponsive' warning windows which I just clicked wait on and after about 30 or 40 second the game loaded! I was able to start a new game on earth.
Great! Looks like I need to update the process there though so thank you! I definitely want to make that process a bit smoother with feedback and which assets are missing etc. but I'm really glad you got it up and running!

Oooh just as I hoped it supports my HD desktop resolution so I can see more of the game world once the map is explored. Cool! I like the modernised side buttons asking you to do things that we're used to in current day 4x games.
Yes! I'd like to be able to tweak the scale etc at some point as well (along with different tilesets [asset packs] and themes) but for now it's close enough to original Civ on modern resolutions for my liking.

Glad you like that feature too, I felt like it was a nice way to get the feedback about things happening and relatively easy to implement. This is the kinda thing I mean by not making it a genuine port of the original game, but more like in the spirit of. Of course, when I break down the renderer process a bit more in the future, it'd be possible to make an interface that exactly matches it if desired.
 
Cool! If you end up playing with the scaling I recommend adding the option for players to adjust their own scaling as we all have different setups (eg I have a massive 1080P screen while others have small 4k screens etc) and personal preferences so basically no matter what you choose someone will complain haha! I see that with many fan projects remaking 90s strategy games these days.. "it's too zoomed out" "no! it's too zoomed in" etc lol.

Yeah I think reasonably accurate remakes of original games with modern interface enhancements is usually the preferred way to go. Perfect 1 to 1 remakes usually get complaints about the interface being too dated and hard to play now, while remakes that change heaps of gameplay stuff get lots of complains about ruining the formula that everyone loved. So yeah modern interface combined with original game is usually the winner with fan communities!

eg some of my favourite 90s game remakes/rebuilds like Implodes Master of Magic Multiplayer Edition, Dune 2 Legacy and Dynasty projects, OpenRA C&C remake, Open Transport Tycoon Deluxe, and Open Imperium Galactica all recreate the original gameplay and keep the same faction/unit/tech/spell balancing pretty much but have updated interfaces with modern improvements (eg being able to finally draw boxes around groups of units instead of clicking on them one by one in Dune 2 is a godsend haha).

Although that being said there are some fan remakes that took the risk and messed with the formula and got it right like FreeCiv, FreeCol, and man have I been enjoying Beyond All Reason (Total Annihilation fan remake) lately!
.
 
Last edited:
Here is my initial feedback:

1. I open the link, I see a beautifull earth in space ! Fantastic and intrigueing ! But nothing happens then I see the load/import assests button.
2. Cautiously I click it hoping it doesn't steal any data from my computer lol. I think I understand what it is trying to do, it wants me to locate those two files so it can use the original game's graphics.
3. At first I cannot find the second file starting with a T I got worried, after trying again a closer look I notice the file and try again... it loads and then it says building images or something...

Later I switch back and I notice the tab crashed... I wonder why... so I repeat the process this time I pay attention to the memory it is using.

I notice it uses multiple of 10's of megabytes or 100's of megabytes or something, most likely the later... my computer currently has 700 megabytes free, it is consuming 4.31 GB when it loads to assets it skyrockets up to 5.15 GB at which point it crashes because the machine only has 5 GB ram available even though it claims to be a 6 GB system lol. It's already a miracle that it went to 5.15 GB but ok.

So giving up on trying to run this in the browser for now, until I can close some more webpages, I currently have a lot of webpages open as usual ! ;)

4. I visit the git hub source code page to get an idea what kind of language it's programmed in. So far I notice: typescript !

A very interesting language ! From the creator of Delphi ! I know typescript is a super modern version of javascript if I am not mistaken...

I have never really programmed with a webbrowser based language before because why would I do/use it in the past ? Webbrowsers were not so advanced back then..

But now in 2022 webbrowsers have become very advanced and are almost operating systems by themselfes and the nice thing is they also include debuggers, performance tools, tracing tools, network analyzers etc... In a sense they might even be more advanced then the task manager and resource monitor of windows itself ! There is a bit of a downside though, browsers can be a bit slow though, but something that newer hardware could solve...

This forum software is great ! This game/typescript might have just nuked my HARDDISK DRIVER in windows ! LOL.

The harddisk stopped responding, possibly caused by some kind of out of memory condition by whatever harddisk driver API the typescript language and firefox is using, very weird.

I have noticed this one time before. Also java/ jcived was running, it could also be that my heavy typing on this laptop may have crashed the harddisk temporarely, though I have also programmed on it in Delphi and then it did not crash but programming is a bit less typing then this story.

Anyway I am very glad that this forum software kept my text ! I was worried it was lost forever, I tried to make a screenshot of this text just in case but could not store it... but forum ever ! LOL.

Well this crash has me distracted and I consider it more important so first I am going to report it on firefox newsgroup, maybe it helps, it does warrent an investigation.
(Maybe it is also caused by this forum software not sure, does it store this text on my computer ? I don't know)

Do I want to get involved with a brand new language that can crash my harddisk driver ? Maybe not, not sure yet... but does seem somewhat interesting... hmmm.... to be continued...

Ok newgroup report filed, now that my computer rebooted anyway and my memory usage is low I might as well try it out ! LOL =D... standby ! =D (Before it crashes I saved some links in my webbrowser so at least that worked ! ;))

Wow the memory usage is insane 5.2 GB ?! But so far it seems to be working... strange !

Nope spoke to soon... switching back and forth between webpage... caused a circle to be shown... graphics are now gone but I did see a menu.

Ok now the menu is back again... loading circle alla macro media is gone... lets give this a try.

At first I did not know how to end the turn... so I decided to select some research... now the turn went away with enter...

city screen with full screen interesting.

I don't like how the city does not render the nice blueish color of the french the city block color looks weird.

Besides from that this looks impressive ! Call me interested ! Especially if multiplayer might become possible ! LOL.

I also notice no smooth animation as the unit moves... hmmm... is this not possible or just lack of programming time ?

The first thing that should be added is an end of turn button... cause now I don't know how to go to next turn after moving the militia... hmmm..

Ok selecting next tech fixed it.

Could be an interesting idea to make a real time version of this game... it felt like it... suddenly the barracks was completed lol.

OK I see now the research button in the right bottom corner indeed gets in the way of proceeding to next turn and must be clicked first... that a bit akward and hard to understand... hmmm... but not too shaby...

Quite an alright implementation for a first impression... interesting... makes me wonder how old the programmer is ?!

The graphics feels a bit tiny... too zoomed out... I would also recommend adding some kind of scaler to give it a more full screen/zoomed in/ms-dos like feel to it, or later re-do the graphics and use distance field rendering or vector graphics, but for now scaling will do.

The zoom-out graphics makes me feel a little bit sad... so this needs to be worked on to give it a more casual feel... however at a later stage I might even prefer the zoomed out options of this game to see more of the play field... no combat mechanism as far as I can tell... hmmm...

Later I will take a look at the source code... the modular approach is interesting, perhaps multiple programmers can work on a seperate module that way...

Peace out for now ! =D

I have some patch work to test on .05 where the diplomats got fixed and unit switching stuck fix or something ! =D
 
Last edited:
Well... this laptop can do a lot of things amazingly well, like youtube is no problem... can even stream two video streams at same time did that for worldcup soccer 2022.

They new computers have issues like, 10 minutes or 20 minutes boot time on first startup, or thick heatspreaders, or risks gpu cables burning through... or high temperatures at 90 degrees celcius...

High energy consumption... so I am going to wait a few more months to see how things play out. I am also curious for a v-cache/3d-cache version of AMD latest processors... but all these issues are kinda scaring me/putting me off... so wait and see for now ! =D Plus I am having a very fun time with civilization to be honest. Further improvements with patches could make this game even more great... I doubt if I will have so much fun with cyberpunk and such... does kinda sound boring.

Though World of Warships could be interesting but got a little stale after a while but still fun events like winter events and such... I miss this maybe a little bit... but I get a lot of it for return, more time for other things. Like watching all kinds of youtube videos and more news...

Gaming on 3D games can get addicting and consume a lot of time, but so can civilization ! =D But at least my tactical/analytical skills are increasing from it... it's quite amazing ! I love it ! =D

Will come in handy for other strategical or tactical games in the future ! =D
 
Thanks for the detailed feedback @Skybuck!

The process of importing the assets is definitely awkward for now and clearly inefficient. Improving that is on my radar, along with scaling the view, I appreciate the feedback!

I visit the git hub source code page to get an idea what kind of language it's programmed in. So far I notice: typescript !
Yes! So when I first started this I wanted to learn more about Electron and used this project as a test, I then wanted to learn more about package management and TypeScript so it's been a testbed for furthering my knowledge. Hopefully the modular approach does lend itself to custom guilds of the game omitting certain rules/restrictions and building a civ game that includes the elements people enjoy most. It's quite some way from that yet!
game/typescript might have just nuked my HARDDISK DRIVER in windows ! LOL.
I hope not! Do I need to add a EULA? 😅

For reference, TypeScript is compiled/transpiled to plain JavaScript, so you only see the compiler in Dev mode and remnants of its telltale existence in the artifacts left around the output.

Wow the memory usage is insane 5.2 GB ?!
😅
At first I did not know how to end the turn...
Yeah, so I took my lead from Civ5 on this, with the select production and select research actions blocking turn (civ has the same feature, but does so via the menu popping up, that could be do-able too...)

I don't like how the city does not render the nice blueish color of the french the city block color looks weird.
So this is again taken from Civ5 where the players have colours somewhat inspired by their flags and such. Also, I haven't put any blocks in place (so the French can play the Germans for example) so using the original colours could be confusing.

Could be an interesting idea to make a real time version of this game..
Technically possible! Replacing the core-turn-based-game module with something that triggers things on a timer instead! Although it's too inefficient at the later stages for that presently.

Quite an alright implementation for a first impression... interesting... makes me wonder how old the programmer is ?!
Old enough to have played this game when it was new! 😛

no combat mechanism as far as I can tell... hmmm...
There should be, but no animations/audio feedback etc yet. I'll get that checked.

This is all great feedback and I think a chunk of this could be resolved with more on game help text. My current focus is victory conditions and modular AI, but I'm just staring a new job so updates might slow down in the new year...
 
"it's too zoomed out" "no! it's too zoomed in" etc lol.
Yes! I fear without scaling options in game that's already a thing!

So yeah modern interface combined with original game is usually the winner with fan communities!
That makes sense, I've only made it for myself really, but feels like, if it gets to a good place, it might help others who want to play the game, but are frustrated with the limitations (map size, AI ability, etc)

> Open Transport Tycoon Deluxe

Yeah, this was part of my inspiration, I remember uploading the TTD assets to the game in early versions! Haven't played in forever though!

being able to finally draw boxes around groups of units instead of clicking on them one by one in Dune 2 is a godsend
This is exactly the sort of improvements I'd like to make too. Loved Dune II, and the Warcraft RTSs!

The ability to turn features on and off gives me some scope to play with new features, but only time will tell if it'll ever get there!
 
Top Bottom