1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

CivOne - An Open Source remake of Civilization 1

Discussion in 'Civ1 - General Discussions' started by SWY, Oct 3, 2014.

  1. DomCiv1

    DomCiv1 Chieftain

    Joined:
    May 20, 2020
    Messages:
    6
    Gender:
    Male
    Location:
    London
    Hi all
    A short message to thank everybody who worked on CivOne. I have just landed on this forum literally minutes ago, but I find it amazing that some people have collaborated on such an undertaking. I have started playing Civ1 back in 1991 when I was a student - wish I had kept the original game box! - and haven't stopped playing ever since (it's the only game I enjoy playing on a computer at all).
    I used to develop early in my career so I do have a bit of techie experience though unsure whether my knowledge is completely outdated or not, but I do hope to be able to contribute in some way. If anybody is still active out there, give me a shout!
    I haven't read the entire thread just yet, but I assume the original Civ1 code from Microprose is not available, and never will be?
    Cheers from London
    Dom
     
  2. axx

    axx Warlord

    Joined:
    Feb 19, 2011
    Messages:
    143
    No, the source code isn't available. I've watched Sid's interviews over the years but I've never heard him say if he still has the code and who owns it.
    CivOne tries to recreate original Civ1 as closely as possible (with all the bugs), but you'd have an option to run with mods and patches.
    SWY added a neat debugger into the game (civ2 style) which enables you to add units, techs, change gold etc. :)
    There are issues listed on Github repository where you can contribute. Lots is still unknown, although recently guys like Tupi have been posting threads here on game's mechanics playing around with assembly.
    And btw for me also Civ1 is one of rare (perhaps the only one) games I can play on PC, now that I'm older.
     
  3. hospital

    hospital Chieftain

    Joined:
    Feb 8, 2018
    Messages:
    69
    There probably should be a getting started guide in the git for devs but basically:

    If you are on windows you need to go to https://www.libsdl.org/download-2.0.php and download sdl2.dll and put it somewhere in your path. I just put it in c:\windows\system32. If you are on linux I guess you need to add it with your package manager.
    Download and install dotnet core 3.1 sdk for your OS: https://dotnet.microsoft.com/download/dotnet-core/3.1
    Download and install vs code: https://code.visualstudio.com/download
    Clone the civone repo: https://github.com/SWY1985/CivOne
    Open the civone folder in vs code
    You should be able to run it now

    Te first time you run it you will be asked where your original civ1 files are. CivOne uses the images from that folder.
     
    Last edited: Aug 17, 2020
  4. DomCiv1

    DomCiv1 Chieftain

    Joined:
    May 20, 2020
    Messages:
    6
    Gender:
    Male
    Location:
    London
    Thanks. I finally found a bit of time to give it a go but I must admit I am way too unfamiliar with modern dev frameworks to have made much progress (when I was developing, it was vi, gcc and... well, that was it). Trying to understand why DLL 'SDL2' is missing. If someone has the courage and time to give me a hand, it would be appreciated, otherwise I'll try to work it out.
     
  5. hospital

    hospital Chieftain

    Joined:
    Feb 8, 2018
    Messages:
    69
    Sorry, my instructions were incomplete.

    If you are on windows you need to go to https://www.libsdl.org/download-2.0.php and download sdl2.dll and put it somewhere in your path. I just put it in c:\windows\system32. If you are on linux I guess you need to add it with your package manager.
     
  6. DomCiv1

    DomCiv1 Chieftain

    Joined:
    May 20, 2020
    Messages:
    6
    Gender:
    Male
    Location:
    London
    No worries, thanks. I had actually worked it out last night and ended up building and running the code. I played a game which went super fast as my cities didn't seem to grow at a normal pace, and it crashed at around 1500AD because of a reference to an un-instantiated object. Other issues I've seen:
    - barbarians destroying all defending units in a city, but then not invading it
    - 'We love the president day' message appearing at every single turn for the same city over long periods of time.

    Can someone point me to the 'master' or 'authoritative' list of bugs and todos? I'll also need help when I want to check my code back in as I have never used Git before.

    But altogether, very impressed with the game, quite an achievement!
     
  7. DomCiv1

    DomCiv1 Chieftain

    Joined:
    May 20, 2020
    Messages:
    6
    Gender:
    Male
    Location:
    London
    On another note, I was at my parents' a cpl of weeks ago, and look what I've found in a box... civ.png
     
  8. hospital

    hospital Chieftain

    Joined:
    Feb 8, 2018
    Messages:
    69
    Oops, we love president day appearing over long periods of time would be my bug.

    I don't think there is a master list of bugs, The original author and fire-eggs seem to have their own lists:
    https://github.com/SWY1985/CivOne/issues
    https://github.com/fire-eggs/CivOne/issues

    Git can take a bit to get used to. First thing is to have your own github account and make your own fork of civone. Then create a branch for each issue you work on. When you are happy you can make a pull request to the above repos.

    These videos are a good intro to git:

     
  9. hospital

    hospital Chieftain

    Joined:
    Feb 8, 2018
    Messages:
    69
    I had a box but I am sure it's long gone into landfill. I am pretty sure my manual was white though...
     
  10. fire-eggs

    fire-eggs Chieftain

    Joined:
    Jun 19, 2019
    Messages:
    36
    > Can someone point me to the 'master' or 'authoritative' list of bugs and todos?

    I've got some additional information in my Wiki as well : https://github.com/fire-eggs/CivOne/wiki
    including an attempt to describe "what's where" in the source.

    Kevin (aka fire-eggs)
     
  11. DomCiv1

    DomCiv1 Chieftain

    Joined:
    May 20, 2020
    Messages:
    6
    Gender:
    Male
    Location:
    London
    Thanks Kevin, that helps a lot. I believe I will have to spend quite a bit more time to understand the whole structure of the game and its main components (the map, the unit and city objects, etc...). I'll make some notes and write stuff up; I'll share that with you so you may, if you want, add it to your Wiki.

    In regards to https://github.com/fire-eggs/CivOne/issues/104 (unsufficient documentation), what does everybody believe is the best strategy? Obviously the more documentation the better, but there comes a point when you just can't write everything down within the code as it then becomes cumbersome to read (and maintain). One of the ways I used to alleviate that was to put unique reference numbers (e.g. // +-+-+-+-+-+-+- CIVone_comment_#000001 +-+-+-+-+-+-+- , +-+-+-+-+-+-+- CIVone_comment_#000002 +-+-+-+-+-+-+- , etc...) and then embed these references in the separate documentation - which might be Fire-Egg's wiki in this case. That way you've got code on one side, doco on the other, and clear 2-way pointers between one and the other. Thoughts?

    Dom
     
    Last edited: Aug 21, 2020
  12. fire-eggs

    fire-eggs Chieftain

    Joined:
    Jun 19, 2019
    Messages:
    36
    > I'll make some notes and write stuff up; I'll share that with you so you may, if you want, add it to your Wiki.

    That'd be great - a fresh perspective would be helpful. It might even get me inspired to push this project along a little further!

    re: documentation
    I'm thinking there are two kinds of docs needed.
    One is comments in the code: "what is going on right here". Lots of the code could use these.

    Two is "how to do it". E.g. some neophytes might be expecting "immediate mode" code. I.e. "at this point, show a popup and when the user makes their selection, update game state". SWY has set up a "task based" system: create a task which will show a popup; add that task to a queue; when the task completes, continue on to another task or to code which updates game state. Stuff like this and other big "systems" in the code need to be explained, which is to me where the Wiki comes in.

    Just one opinion, any and all contributions I'm sure will be helpful!
     
  13. Civilization1theoriginal

    Civilization1theoriginal Chieftain

    Joined:
    Oct 7, 2020
    Messages:
    1
    Gender:
    Male
    This is exactly what I have been looking for for years. I love playing civ 1. I hate freeciv it just doesn’t do it for me. I am a casual game player, I prefer the original layout, graphics and sounds and I don’t knitpick on the fine details like a mathematician just to compete and enjoy it.

    The original game has a few hang ups though I would love to see altered.

    * The AI difficulty levels doesn’t make the AI better players it just overpowers units and grants free technologies
    * The sounds don’t play properly
    * The world map is too big
    * No multiplayer

    How long do you think it will take before the remake may be released? I have been dreaming of a project like this or being able to multiplayer something like this with friends who haven’t played civ before.

    It would be really cool to add the option after reaching space you start on another planet in a flowing type of way, maybe you lose a lot of your previous worlds technologies. It kinda sucks when the game ends.
     
  14. DracoNoir

    DracoNoir Chieftain

    Joined:
    Sep 7, 2016
    Messages:
    44
    Location:
    UK
    Well its been over two years since I contributed here, and even then it was only game knowledge and comparisons with CivDos! As with everyone, life got in the way, but I'm glad to see there is still a flame under this project.

    Not much more I can do to help now - my C# knowledge enabled me to write a Dopewars-style text-based trading game a while ago but thats about it. My knowledge of the inner workings of Civ has well been passed now as well, so all I can do is just offer my support!
     

Share This Page