CyanIDE - Civilization 4 Modification System

Discussion in 'Civ4 - Utility Programs' started by ZabMilenko, Nov 24, 2005.

  1. ZabMilenko

    ZabMilenko Warlord

    Joined:
    Apr 22, 2004
    Messages:
    106
    Location:
    Medford, Oregon
    What is this?

    CyanIDE is poised to become a full-blown application for managing your Civ4 Mods. CyanIDE will utilize a rich ability to export patch "scripts" incrementally from your mod changes which can be imported by others with ease and security.

    This isn't a pipe-dream application. I am literally coding it now, but I cant do it on my own. I am hoping that by releasing a teaser application I can garner some support and possibly some help in the process.


    What Works (somewhat)
    * File Browser. Allows you to view DDS image files. The system is designed to return DDS and TGA images in StdPicture format. This means that VB coders could draw DDS and TGA images on a picture box, form, etc. This literally took me 20 hours of coding to get working.
    * Text Key Dereferencing. More of an XML Parser test framework than anything. This dialog will locate strings from the XML\Text folder based on the text key (example: TXT_KEY_BLAHBLAH).


    What is Planned
    * Open Object Architecture (ActiveX). The entire CyanIDE application is being coded with exposed objects in mind (right now you can reference a couple things). In the end, developers will be able to code plugins and utilize the power of CyanIDE from within their own programs.
    * Code-free modding. CyanIDE will completely encapsulate the XML with visual objects. If you want, you will never have to touch XML or Python.
    * Patch Scripting. CyanIDE will track all changes you make to a mod (through CyanIDE, that is) and will allow you to generate Patch files of just your changes. Other users can download your Patch files and merge them with their mods. Thanks to the change tracker, you would be able to use several patches on one mod with conflicts and obvious problems clearly noted.


    Release Notice
    THIS RELEASE IS AN EARLY-STAGE DEBUG RELEASE. It will have bugs and it may not even install right. Please share any and all experiences you have anyway.


    Classified Ad
    I am looking for Visual Basic developers who are using VB6 (Enterprise) SP6 or are capable of producing API-compatible DLLs in either VC6 or VC.NET 1.1 (pre 2003). The version restrictions are because I want the finished product to be compatible with a broader range of default machine setups.

    The job would involve helping create reusable components for manipulating Civ4 mods. There is lots to do in this department.

    Developers working on the project would be expected to follow a solid coding standard for release branches. Collaboration will be done via email, forums, and IRC when necessary. Only serious inquiries please.


    Notes
    By the way, CyanIDE stands for "Civilization Integrated Development Environment". It's not a real IDE yet (but it could be). Cyan is the fourth color in the original 16 color set, contains 4 letters, and happens to be a heavily used "mask" color in Civ4's graphics files.

    I am reserving the next 2 posts for future use.


    Download
    The forum keeps refusing the upload, so here is an off-site link: http://libertyreturns.com/files/CyanIDE1_Debug1.zip
    Remember to always scan your downloads for viruses.
     
  2. ZabMilenko

    ZabMilenko Warlord

    Joined:
    Apr 22, 2004
    Messages:
    106
    Location:
    Medford, Oregon
    Reserved for future use.
     
  3. ZabMilenko

    ZabMilenko Warlord

    Joined:
    Apr 22, 2004
    Messages:
    106
    Location:
    Medford, Oregon
    Another Reserved Post
     
  4. 4_HoTA

    4_HoTA Chieftain

    Joined:
    Sep 26, 2005
    Messages:
    32
    Location:
    new zealand
    Looks like a great application Zab,good luck and wish i could help.
     
  5. george585

    george585 Warlord

    Joined:
    Nov 25, 2005
    Messages:
    100
    Hi!
    You seem to have a very nice start. However, I am wondering why you use VB6. While in some ways it is simple to use, it's a bit outdated and does not have builtin support for some of today's technologies such as xml.
    Check out Visual Basic 2005 Express at http://msdn.microsoft.com/vstudio/express/vb/ it's very easy to use, you don't have to learn much new info, and it's free! Yet it has full support for XML is based on very powerful .NET Framework 2.0.
    I mean why spend hours coding for retrieving info in XML for example or working with graphics, or managing files, when it's all available for free out of the box?
    Hope this helps.
     
  6. I_batman

    I_batman Emperor

    Joined:
    Jun 22, 2004
    Messages:
    1,261
    Location:
    markham, ontario
    Sorry to jack your thread, but I don't want to comment on your work, since clearly you are deep into it.
    My only comment is more a general one.
    I am working on something for Civ IV that will utilize Python as the base code, if I ever get it done.
    You are using VB.NET 1.1
    I see another project in VB.Net 2.0, and another one in AutoIt, plus a couple neat uses of Excel.

    So what I am beginning to see is a dog's breakfast of different editors in different languages cropping up.

    I think someone who has some clout on the forum, and also communication with Firaxis, to step up and try to set some standards for coding languages that should be used.
    This may be virtually impossible, but I am putting it out there.
    Are there moderators reading this that may have the ability I just described?
    I am not talking about them doing the coding themselves, but setting up an initial framework/rules for coders that want to tackle elements that Firaxis did not.
    Then post it as a sticky.

    In a perfect world, these separate applications might be able to be converted into subroutines of one overall editor. That would require a common language, at the very least.

    I think that is the concept you are trying within your own application.
     
  7. ZabMilenko

    ZabMilenko Warlord

    Joined:
    Apr 22, 2004
    Messages:
    106
    Location:
    Medford, Oregon
    I already have a copy of VB2005. I am producing the core application in Visual Basic 6 so I can reach as many desktops as possible.

    When making my application model and outlining the stages of development, I decided conclusively to expose the objects in CyanIDE so developers can write their own plugins and even completely new front-ends. To make sure that as many developers as possible can participate in improving CyanIDE, I chose to take a step backwards in the "new and modern department".

    Also, VB6 ActiveX components are completely compatible (of course) with VB2005, leaving no compelling reason to use VB 2005 over Visual Basic 6. Even the native, modern, built-in XML support becomes less enticing when you consider that the Civ4 XML files are MSXML 2.0 compatible.

    If you are a developer, then I hope that you will find any production release of CyanIDE useful to your own applications, even if you are using a VB.NET flavor.
     
  8. ZabMilenko

    ZabMilenko Warlord

    Joined:
    Apr 22, 2004
    Messages:
    106
    Location:
    Medford, Oregon
    Yes, that is my goal. I was hoping that by announcing this project, demonstrating the framework, and putting it out there as an extendable editor that I may get the other editor-makers to unite somehow.

    If Firaxis wants to drive the boat, then I can handle that too, but I hope they don't lock the penthouse door and hide the key from us fan developers. :)
     
  9. panza105

    panza105 Chieftain

    Joined:
    Nov 10, 2005
    Messages:
    12
    :goodjob: :goodjob: Thanks for the heads up, Wow talk about a low learning curve.I havnt had fun programing in basic sence 6.2 DOS.
     
  10. FunkyMonkee

    FunkyMonkee Chieftain

    Joined:
    Jan 10, 2006
    Messages:
    28
    I agree it’s bit of a dogs breakfast with most of the Utilities. You have to take in considering most are trying to achieve a specific requirement with a quick prototype which are clearly not applications. Also Civ IV has many customisable areas. So one tool might not rule them all. :king: I’m sure a few would like to try to create a complete CIV 4 MOD environment which would be nice. There would still be a need for specific niche utilities.

    Which ever development environment used eg. C#, python, Java, VB language shouldn’t be a major issue as long as can produce a stable easy to use application etc. So this will reflect on the expertise of the programmer. Thou if a consistent development platform is used across CIV IV utility programmers this would be a valuable knowledge base. From brief reading there seems to be a large support for python as CIV IV was written in it I think. I’m not familiar with python and currently not looking into creating MOD’s . I feel unless I'm trying to directly link your application with CIV IV you should be free to chose whatever is your speciality for ease for development.

    At the moment I’m having an issue with importing the XML data into an Access. See Thread :Importing CIV 4 XML into Ms-Access

    I managed to import enough consistent data to get me started and I'm looking for the appropriate solution my importing problem.

    I think the issue is about importing attribute-centric XML in Access. In order to import attribute-centric CIV XML files into Access I think I need to first need to create and apply an XML Transformation (XSLT) to the source document. This process creates a new XML document that is element-centric and can be imported into Access. Now anyone has attempted this I would be very appreciative for any help.

    So far I’ve just prototyped just some basic GUI tools for quick reference for find all units of a particular type etc looks very similar to http://www.civfanatics.com/civ4/info/units/. with the ability to quickly find, and filter the data.. This is handy when playing online to have a quick reference. I also want to do this for the technologies and wonders. Maybe way down the track the possibility of adding to the growing list of “YAME”’s , If I was planning on distributing this I might choose a more alternative front end in Java for example.

    The reason I’m using Access is it’s a great prototyping tool and suits my needs and expertise. By using a database I hope to produce more constant variety of simple tools all base on one standard dataset and not a mesh of spreadsheets. Spreadsheets if not careful could create headaches like accidentally sorting a column and messing up the whole data. This was the main reason why I moved what I did out of Excel. Then if I want to start editing the CIV IV data files I could then write back the XML according to the CIV IV XML standards.

    I find by importing the XML into a relation database it’s a lot more easy to transverse, manage, manipulate and maintain consistency of data.. XML is nice to sharing b/w a wide variety of systems but its impossible to manage as a plain text file. Hence the spawning of all these utility programs.

    If there is anyone that can help with this I would be very appreciative 


    Cheers,


    Funky Monkee:crazyeye:
     
  11. white rabbit

    white rabbit Chieftain

    Joined:
    Jun 5, 2005
    Messages:
    39
    Location:
    London UK
    I dont really understand any of this but it sounds really good :)
    will programming thickies like me be able to use it to create mods?

    i especially like the idea of being able to integrate graphics (tga files are easy to create in photshop, for example) into mods - will this be for buildings, terrain, units or all of the above?
     

Share This Page