Author Topic: opensmac  (Read 6041 times)

0 Members and 1 Guest are viewing this topic.

Offline Ford_Prefect

Re: opensmac
« Reply #30 on: July 21, 2014, 02:10:57 PM »
  • Publish
  • Thank you for your concern.

    The cvr format (which I can't use since I couldn't figure out allot of important bits) wasn't figured out via decompiling. Since I didn't decompile the caviar viewer, its legal for me to write the code for the interpreter .  If you or someone else figured out the missing bits by decompiling SMAC or the Caviar viewer.  To be legal you would have to write a specification and someone else (probably me) would have to write the code (using only the specification).

    It is legal if you make a game engine that can use the old games art/dialog assets.  You just can't include those assets when distributing the game (the person would have to own a copy of the original game to play).  Commander Genius, ScummVM, CorsixTH and OpenMW all do that. 

    As long as you don't look at the source code, or distribute the assets (art/dialog/sound/etc), you're legal.


    Offline Domin

    Re: opensmac
    « Reply #31 on: July 21, 2014, 02:54:02 PM »
  • Publish

  • I'd advise against figuring out how the existing files work when making a SMAC clone; most of the arguments for why it's ok to reverse-engineer SMAC for these sorts of projects relies on the fact that it's being used to enhance SMAC rather than compete with it; if you use it for a SMAC clone, I think you're on much more problematic legal ground.  (This is why I can't provide much help with opensmac, though if it gets going I'd be happy to help include an equivalent to my patch, and any other changes that aren't in the original.)


    You already provided help but I suppose you meant contributing code. http://en.wikipedia.org/wiki/Clean_room_design

    Offline DrazharLn

    Re: opensmac
    « Reply #32 on: November 03, 2014, 03:10:04 PM »
  • Publish
  • Domin, Ford_Prefect,

    This project is interesting to me. Are you still working on it, Domin? I'll try to have a look at the code over the next week or so and see whether it's something I'd be interested in and able to contribute to.

    If I am interested, would you be interested in chatting somewhere about your roadmap for the project and how you would like to manage it?

    As for implementing the game logic, I think it would be wise to use GooglyBoogly's datalinks upgrade as a specification for how the game is expected to work and to consult with the community (especially Yitzi, Kyrub and scient (RIP) given their experience) over anything unclear or questionable.

    Offline Ford_Prefect

    Re: opensmac
    « Reply #33 on: November 03, 2014, 03:40:36 PM »
  • Publish
  • Ok.  I'm gonna have to unofficially announce something.

    I've been working on a SMAC clone in secret using Java instead of python. (Sorry Domain   :( )

    The reason I haven't worked on OpenSMAC is because I really dislike programing in python.  (Typeless variables are evil  :mad: .. they make debbuging painful.)

    Currently I'm still working on loading in all the rules/techs/units/factions/etc from the config files.  As for mod-ability, everything is being designed to be stored in xml files.  I'm currently up to 66KiB worth of code + 13KiB worth of unit tests.

    I'll start asking for help once the game framework is built and the code is cleaned up.

    So DrazharLn, Domain.  If you guys only know python, then we can help each other by sharing formulas for game-play and by sharing some file formats (python and Java have functions for reading/writing xml, we could standardize on a format so that they will be inter-operable) and by making multi-player work together.  If you know Java, and if I get my project off the ground   ;) (currently its just reading in lots of text and storing it into variables  ::) ) then maybe you could help me with my project (JAC).

    « Last Edit: November 03, 2014, 05:31:42 PM by sisko »

    Offline DrazharLn

    Re: opensmac
    « Reply #34 on: November 03, 2014, 04:05:12 PM »
  • Publish
  • Personally, I think you've both missed a trick in the naming of your projects. I'd have been going for some play on the name of the old engine (JACKAL) :)

    Though I suppose JAC might be such.

    I know Java as well, though I prefer python (but then, I prefer python 3 to 2 as well). I might be willing to contribute to JAC. It depends on the state of your codebase, your objectives for the project, how the project will be managed, owned and licensed (just like this opensmac project).

    Current thoughts are:
    +Unit tests!
    +Sharing effort
    +Collaboration
    -Java
    -xml (json is more human readable and editable)
    -Loads of code to read and grok already

    It would be very silly to split effort on an engine remake a third time without good reason, anyway.

    (Point of order, variables in Python are not typeless or even weakly typed. They are implicitly strongly typed.)

    Offline Ford_Prefect

    Re: opensmac
    « Reply #35 on: November 03, 2014, 04:44:09 PM »
  • Publish
  • Quote
    -xml (json is more human readable and editable)
    * The problem is json would require me to manually write a loader and a saver for every variable.  (More work)
    * With xml, this process is automated for me quite a bit.

    Quote
    +Unit tests!
    * Are amazing.  :D
    * I still need to get logging in place though...  :(  (Why couldn't the logging api be as simple as the one in python!  Why!?!   :( )

    Quote
    -Java
    * I'm familiar with it and it works on linux (which I use).
    * I thought about C#, but they are still working on getting the XNA development setup for linux.


    Quote
    -Loads of code to read and grok already
    * Almost all of the code so far is just for reading in variables from all the config files.  Allot of it is Integer.parseInt(line[2].trim()) and other functions for converting sections of text into int, booleans, etc.   Aka... allot of stuff that won't need to be looked at after its written.  (I don't even need to worry about optimizing it since it will only run once)
    * Thats why I plan to ask for help with the code after I've cleaned it up and commented every function I've written.

    Quote
    (Point of order, variables in Python are not typeless or even weakly typed. They are implicitly strongly typed.)

    What I mean is a person could do this.
    speed = 6
    speed = "Fast"
    speed = [1,2,3,4,5]
    and the code won't throw any errors until you hit some code that expects a int but gets a string.  Whats worse is that it could be quite a ways back since several functions work with all three types of input. 

    Also since you don't declare new variables.  Then you can accidentally re-use a variable when you meant to have a new variable. 

    In Java doing this would throw an error.
    int i = 16;
    i+=1;
    int i = 0;
    While in python, you wouldn't realize you are accidentally re-using a variable.

    Python makes it allot easier for the programmer to make mistakes. 

    Offline DrazharLn

    Re: opensmac
    « Reply #36 on: November 03, 2014, 05:24:59 PM »
  • Publish
  • I don't see why json would require manual loaders and savers. Is it a case of library support for xml vs json? There are libraries for parsing JSON in java (though maybe not in the stdlib).

    The -Java isn't because I think Java is a fundamentally bad language. I just prefer writing in other stuff. I would really rather not work in C#, though, so I'm glad you didn't pick that.

    Quote
    * Almost all of the code so far is just for reading in variables from all the config files.  Allot of it is Integer.parseInt(line[2].trim()) and other functions for converting sections of text into int, booleans, etc.   Aka... allot of stuff that won't need to be looked at after its written.  (I don't even need to worry about optimizing it since it will only run once)
    * Thats why I plan to ask for help with the code after I've cleaned it up and commented every function I've written.

    That's reassuring. Good documentation, at least at module level (this module aims to do x. This is useful because y. We make assumptions z.) and a decent explanation of how the modules are supposed to fit together would be essential if I'm to help. You don't need to spell everything out, but the broad picture is very important (though it can be related through chat if you're not so keen on writing more wordy documentation).

    Quote
    Python stuff

    Python does allow you to assign a name to different objects freely. I don't find that to be a problem or a significant source of errors in my code (I can't remember the last time it happened).

    I do appreciate the value of explicit declarations and typing, though, and I have occasionally worked in very formal languages (like coq, a proof-writing language) out of an appreciation of those features.

    My main remembered gripes with java is having to write so much boilerplate, a lack of multiple inheritance, overly long standard library names for common things (System.out.println every time I wanted to print, for example) and generally how much longer it took to do anything.

    It's not so bad, though. And it's really quite fast.

    Offline Sompom

    Re: opensmac
    « Reply #37 on: November 03, 2014, 05:41:20 PM »
  • Publish
  • I've been working on a SMAC clone in secret using Java instead of python. (Sorry Domain   :( )

    Heh. I just found this thread (like, *just*. Right now.) and my first thought was probably exactly yours. "I wish this were in Java. I hate writing Python!"

    If you do end up continuing with this project, I would love to help. I have decent experience with Java, though not much else (xml, JSON, cvr). However, I'm always willing to learn!

    The only thing cooler than a SMAC clone would be a SMAC clone that runs on mobile... Which is another cool thing about Google/Android having embraced Java. Provided the back-end is properly written, the front end is a straight replacement!

    Offline sisko

    • Emissary AND Founder
    • Administrator
    • *
    • Posts: 2972
    • €1733
    • View Inventory
    • Send /Gift
    • Try to steal credits from another member!  Try to steal credits from another member!  Try to steal credits from another member!  Try to steal credits from another member!  
    • This place is yours, not mine.
    • Scenario Creator Downloads Contributor
      • View Profile
      • Alpha Centauri 2
      • Awards
    Re: opensmac
    « Reply #38 on: November 03, 2014, 05:44:37 PM »
  • Publish
  • Needless to say you will have full support from the AC2 team if you engage in such project..

    Should i start a new board for you? :)
    Anyone else feels like it's time to fix the faction graphics bug?

    Offline BUncle

    • Through kittehz, I
    • Transcend
    • *
    • Posts: 42316
    • €801
    • View Inventory
    • Send /Gift
    • Someone thinks a Winrar is You!  Because there are times when people just need a cute puppy  Soft kitty, warm kitty, little ball of fur  
    • AC2 is my instrument, my heart, as I play my song.
    • Planet tales writer Smilie Artist Custom Faction Modder Downloads Contributor AC2 Wiki contributor
      • View Profile
      • My Custom Factions
      • Awards
    Re: opensmac
    « Reply #39 on: November 03, 2014, 05:50:00 PM »
  • Publish
  • What he said. ;nod  If anything's needed to be altered/reformatted on the art side, I'm your guy.

    Offline Ford_Prefect

    Re: opensmac
    « Reply #40 on: November 03, 2014, 06:14:25 PM »
  • Publish
  • I don't see why json would require manual loaders and savers. Is it a case of library support for xml vs json? There are libraries for parsing JSON in java (though maybe not in the stdlib).

    Opps.  My bad.  I just looked it up and the library I'm using can output json files as well.

    Offline DrazharLn

    Re: opensmac
    « Reply #41 on: November 03, 2014, 08:45:54 PM »
  • Publish
  • @sisko, BUncle

    Thanks for your support! I doubt there needs to be a new board for this. A couple of threads will probably be fine combined with IM/IRC discussions and github pull requests (which are better suited for discussion of code).

    @Ford,

    How about the project management and ownership stuff I asked about?

    @Sompom,

    A mobile version of the SMAC engine would be something. A reasonable amount of work would have to go into redesigning the UI.

    Offline Ford_Prefect

    Re: opensmac
    « Reply #42 on: November 03, 2014, 09:01:15 PM »
  • Publish
  • Needless to say you will have full support from the AC2 team if you engage in such project..

    Should i start a new board for you? :)

    No.  Not until I get something that actually works.  Until then, I'll post in the modding forum.

    Side note:
    GAAAahhhhhh some many variables to load! And then I'm gonna have to get them to save as an xml and then load that.    Gaaaahhhhh! 

    Side Side note:
    Probably shouldn't talk about JAC on the OpenSMAC thread.   ::)  It's a little off topic.

    Offline Ford_Prefect

    Re: opensmac
    « Reply #43 on: November 03, 2014, 09:20:51 PM »
  • Publish
  • How about the project management and ownership stuff I asked about?


    I'm going to use github.  I'm not sure what license I should pick.

    Also I created a new thread.  http://alphacentauri2.info/index.php?topic=13276.0

    Offline DrazharLn

    Re: opensmac
    « Reply #44 on: November 03, 2014, 11:24:22 PM »
  • Publish
  • @Domin,

    To return to the topic of OpenSMAC, what have you managed to get working so far?

    I've had a quick browse through your code, but it's late here and you don't have much inline documentation at all.

    If you're available sometime to chat interactively about the code and how I might contribute to the project if I joined, then I'd appreciate it. IRC, teamspeak or mumble are convenient for me.

     

    * User

    Welcome, Guest. Please login or register.
    Did you miss your activation email?


    Login with username, password and session length

    Select language:

    * Community poll

    SMAC v.4 SMAX v.2 (or previous versions)
    -=-
    14 (6%)
    XP Compatibility patch
    -=-
    7 (3%)
    Gog version for Windows
    -=-
    45 (22%)
    Scient (unofficial) patch
    -=-
    22 (10%)
    Kyrub's latest patch
    -=-
    13 (6%)
    Yitzi's latest patch
    -=-
    77 (38%)
    AC for Mac
    -=-
    2 (0%)
    AC for Linux
    -=-
    5 (2%)
    Gog version for Mac
    -=-
    7 (3%)
    No patch
    -=-
    9 (4%)
    Total Members Voted: 201
    AC2 Wiki Logo

    * Random quote

    I saw the alien phalanx coming toward us, and I calmed my mind as Kri'lan had taught me. And what I saw next to the phalanx was a shadow regiment, half-formed from the resonance around them. I cursed the aliens... with power like that, each one could fight as many, and I thanked Planet for sending us the betrayer.
    ~Prophet Cha Dawn 'The Betrayer and I'

    * Select your theme

    *

    Facebook Comments