oss-qm / lincity Goto Github PK
View Code? Open in Web Editor NEWLincity simulation game
License: GNU General Public License v2.0
Lincity simulation game
License: GNU General Public License v2.0
** Welcome to lincity ** This is the README for lincity 1.13 (development version) WHAT IS LINCITY =============== Lincity is a city/country simulation game for Linux (SVGALIB and X), Solaris, FreeBSD, HPUX, AIX, SCO, IRIX, Compaq Tru64, BeOS, OS/2, VMS, OS X, AtheOS, and Win32 (Win95, Win98, ME, NT, 2000, XP). You are required to build and maintain a city. You must feed, house, provide jobs and goods for your residents. You can build a sustainable economy with the help of renewable energy and recycling, or you can go for broke and build rockets to escape from a pollution ridden and resource starved planet, it's up to you. Due to the finite resources available in any one place, this is not a game that you can leave for long periods of time. Lincity recently moved to sourceforge.net. This brings new CVS access, mailing lists, and web pages. If you are subscribed to [email protected], please also subscribe to the new list, shown below, and make all of your posts there. Please also note the new home page, which is not yet complete. Anyone with an eye for design and a desire to help is welcome to make suggestions or design a page to replace this one. The lincity home page is now located at: http://lincity.sourceforge.net The official users mailing list (mailman) can be subscribed to by visiting: http://lists.sourceforge.net/lists/listinfo/lincity-users CVS commit notification can be had at: http://lists.sourceforge.net/lists/listinfo/lincity-commits Additionally, our sourceforge page is: http://sourceforge.net/projects/lincity/ REQUIREMENTS ============ * SVGALIB 1.3.0 (or greater). OR X11. OR A Win32 OS. * The libpng and libz libraries. I have tested with libpng versions 1.0.12 and 1.2.5. These libraries are included in the windows version. * A graphics card supported by your above choice. * You probably need at least a 486DX2-66. (Even better for the X version I suspect.) * You probably need at least 8 MB memory (16 MB for X or win32). * Other things? Send us an email. INSTALLATION (UNIX) =================== To install lincity, (as root) untar the file lincity-1.12.0.gz tar -xzvf lincity-1.12.0.tar.gz You now want to compile the source cd lincity-1.12.0 ./configure make Lincity will run out of the source directory. But if you want to install you can do this: make install The old method choosing the install directory by setting LC_BINDIR and LC_LIBDIR in the makefile no longer applies. To install to a different directory, you must use the --prefix flag when you configure the package. For example: ./configure --prefix=/usr/mylocal If you are installing a version downloaded from the cvs server, the timestamps may be incorrect, which will cause the "make" to fail. In this case, you need to run a script to fix the timestamps: ./fix-timestamps.sh ./configure make make install INSTALLATION (WIN32) ==================== Simply unpack the archive, and double click on the LINCITY.EXE icon. You can get your free copy of UNZIP from the INFO-ZIP web page at http://www.info-zip.org UNINSTALLING (UNIX) ==================== If you still have the configured source directory, you can do this: make uninstall Otherwise, do this (assuming you installed to /usr/local) rm /usr/local/bin/lincity rm /usr/local/bin/xlincity rm /usr/local/man/man6/lincity.6 rm -rf /usr/local/share/lincity In addition, if you ran lincity, you should delete these: rm -rf $HOME/.lincity rm $HOME/.lincityrc If you have an older version, before 1.12pre54, you should delete this: rm -rf $HOME/.Lin-city UNINSTALLING (WIN32) ==================== Like all good DOS programs, lincity runs within a single directory. No files are copied to your "windows directory." The windows registry is not used. Simply delete the lincity directory to uninstall. RUNNING LINCITY (UNIX) ====================== Usually you will invoke the game with 'lincity' or 'xlincity'. Typing 'lincity' will run the SVGA version, while typing 'xlincity' will run the X Windows version. The SVGA version will not run under X. lincity [opts] xlincity [opts] The following options apply to both. -w Do some *crude* gamma correction to boost the red and blue. This makes some 'washed out' displays a bit more colourful. You have control of the individual values, see below. -R <num> -G <num> -B <num> These options allow you to boost the individual colours. <num> is a number between 0.0 and 1.0 The default values for -w are 1.0 0.0 0.4 (ATTOW) This option only applies to lincity. -m <num> Set the VGA mode. See below for choices of mode. This option only applies to xlincity. -r Add an extra border around the game. -d Double the size of the window to 1280x960 -b *obsolete* omit border around game. Now on by default. RUNNING LINCITY (WIN32) ====================== Double click the LINCITY.EXE icon. The WIN32 version does not accept command line arguments. UPGRADING FROM VERSION 1.11 =========================== Lincity 1.12 is forward compatible with lincity 1.11, in the sense that 1.12 can read files generated in 1.11. However, please note that you may need to copy over the save files. Save files can be found in the following directories. UNIX users note the change! Lincity 1.11 Lincity 1.12 ---------------- ---------------- UNIX $HOME/.Lin-city $HOME/.lincity WINDOWS %LINCITY_HOME%\SAVED_GAMES %LINCITY_HOME%\SAVED_GAMES THE LINCITY HOME DIRECTORY ========================== If you get a message such as "Error. Can't find LINCITY_HOME", this means that lincity can't find its home directory. To find its home directory, lincity searches for the file "colour.pal" in the following three directories (in order): The directory pointed to by the $LINCITY_HOME environment variable The current working directory The default directory LINCITY CONFIGURATION FILE ========================== Lincity now has a configuration file for saving defaults. You can find it in the following location: UNIX: $HOME/.lincityrc WINDOWS: %LINCITY_HOME%\lincity.ini To reset to the "factory default" configuration, simply delete the file. Lincity will regenerate the file if it is missing. LINCITY ARTWORK =============== Starting with version 1.13, you can (more easily) customize the lincity buildings and animations. To modify the artwork simply edit the icon image file, located at opening/icons.png, with your favorite image editor. The icons.png file has a 256-color indexed format. The palette contained within icons.png, however, is ignored by lincity. Instead, lincity uses the file "Colour.pal" to determine the palette. NOTES FOR SVGALIB VERSION ========================= It is now possible to run at higher resolution. You can use the command line to set the mode: lincity ## default mode lincity -m 10 ## mode 10, 640x480 lincity -m 11 ## mode 11, 800x600 lincity -m 12 ## mode 12, 1024x768 lincity -m 13 ## mode 13, 1280x1024 If not specified, lincity uses the default mode. The default mode can be set according to the SVGALIB_DEFAULT_MODE environment variable. See "man svgalib" for details on the svgalib default graphics mode. If no default graphics mode has been specified, lincity will use mode 10 (640x480, 256 colors). As of version 1.12, lincity now uses the mouse settings in your svga configuration file (i.e. /etc/vga/vga.config). Please use this method to specify which make/model of mouse you are using, and other mouse parameters. NOTES FOR X VERSION =================== When playing in 256 colour (8bbp) display modes, when you go over the edge of your window, the window manager changes the colour palette back to the 'normal' one, then back to the game's one when the mouse reenters the window. This is what is supposed to happen, but can be a bit annoying when trying to click on areas close to the edge and overshooting. For this reason, I have added an extra border around the game to give players a bit of 'breathing space'. You can disable this feature by starting the game with a '-b' switch. ie. xlincity -b There is now a button that enables you to confine the mouse pointer within the X window. ( xlincity -b, then confining the pointer and changing the screen resolution to 640x480 gives you a 'full screen' game. :) ) NOTES FOR WIN32 VERSION ======================= Lincity for Win32 automatically chooses whether or not to add a border and/or perform pix doubling, depending on your resolution. Furthermore, it will automatically maximize the window or even go into full screen mode. Here is what you should see for some of the more popular resolutions: Resolution Window Style Border Pix Doubling ------------ ------------ ------------ ------------ 640 x 480 Full screen None No 800 x 600 Window Yes No 1024 x 768 Window Yes No 1152 x 864 Window Yes No 1280 x 1024 Window None Yes If you are running 1280x1024, you may need to autohide the taskbar in order to see pix doubling. Lincity no longer uses a real windows font to draw text. Although this gives a considerable speed improvement (about 20%), it sometimes doesn't work correctly, for a reason that I haven't yet identified. Save files are gzip compatible with the UNIX version of lincity. That is, you will need to gzip/gunzip the save files when you transfer them to/from your UNIX box. The source code is distributed together with the binary distribution, in the file source.tgz. NOTES FOR CYGWIN ================ Cygwin is fully supported. However, at the time of writing, performance is very slow when X Windows is started in multiwindow mode (which is the default setting). To fix this, you can edit startxwin.bat to choose a different setting. http://sources.redhat.com/ml/cygwin-xfree/2003-09/msg00485.html INTERNATIONALIZATION UNDER LINUX ================================ Lincity supports a modest amount of internationalization. Only languages that can be represented using a iso8859-1 font are currently supported. I have created a lincity-compatible iso8859-2 font also, but have not used it yet because of no demand (send me an email if you would like to try). If you wish to make a translation for your language, you will need to download and install gettext 0.11.2 or higher. The first task is to get the sample Italian translation to display correctly. Download a fresh lincity (1.12pre53 or higher) from sourceforge. Do a configure, make, and make install. Next, download the Italian package. Install as described in README.it. Run as follows: export LANG=it_IT ## (on bash and similar) setenv LANG it_IT ## (on csh and similar) xlincity -D Hopefully you will see something like this: Setting entire locale to it_IT Setting messages locale to it_IT Query locale is it_IT GUESS 1 -- intl_suffix is it_IT Trying Message Path /home/gsharp/lincity/share/lincity/messages/it_IT/ Trying Help Path /home/gsharp/lincity/share/lincity/help/it_IT/ GUESS 2 -- intl_suffix is it Trying Message Path /home/gsharp/lincity/share/lincity/messages/it/ Set Message Path /home/gsharp/lincity/share/lincity/messages/it/ Trying Help Path /home/gsharp/lincity/share/lincity/help/it/ Set Help Path /home/gsharp/lincity/share/lincity/help/it/ Bound textdomain directory is /home/gsharp/lincity/share/locale Textdomain is lincity DefaultVisual id=35 bp-rgb=8 map-entries=256 If you see this, then everything worked perfectly. You should see perfect Italian. In particular, note the following: (1) The opening screen (help page) is in Italian (2) The month January will be written "Gen" instead of "Jan" (3) Click on something that hasn't been invented yet, like a power station or windmill. The message for "Not enough tech" will be in Italian. It is possible that you see English for (1) and (3). If so, you are probably running from the directory you built from. Please cd out of that directory, and try again. If you are less lucky, maybe only (1) and (3) worked correctly and but not (2). If so, you probably saw something like this: Setting entire locale to (null) Setting messages locale to (null) Query locale is C GUESS 1 -- intl_suffix is it_IT Trying Message Path /usr/local/lincity/messages/it_IT/ Trying Help Path /usr/local/lincity/help/it_IT/ GUESS 2 -- intl_suffix is it Trying Message Path /usr/local/lincity/messages/it/ Set Message Path /usr/local/lincity/messages/it/ Trying Help Path /usr/local/lincity/help/it/ Settling for help Path /usr/local/lincity/help/ Bound textdomain directory is /lincity/share/locale Textdomain is lincity DefaultVisual id=35 bp-rgb=8 map-entries=256 If this happens, it means that your system is missing some files which are require to "set the locale" of your system to "it_IT". Probably you are running Linux -- I don't think other Unix's have this peculiar requirement. To check if this is the problem (on Linux), look for the directory /usr/lib/locale/it_IT. If this directory doesn't exist, you have this problem. To fix it, do the following: 1) Make a backup of the directory /usr/share/i18n/charmaps 2) Make a backup of the directory /usr/share/i18n/locale 3) cd /usr/share/i18n/charmaps 4) gunzip UTF-8.gz 5) gunzip ISO-8859-1.gz 6) cd /usr/share/i18n/locale 7) localedef -f ../charmaps/UTF-8 -i it_IT it_IT.UTF-8 8) localedef -f ../charmaps/ISO-8859-1 -i it_IT it_IT Now check for the directory /usr/lib/locale/it_IT. It will be there. OK, now you are ready to make translations for a new language. There are three parts to making a translation: making help files making message files making a .po file. The messages and help files are just a matter of editing the ASCII files, and installing them. If your language is "it", you should create two directories such as /usr/local/share/lincity/messages/it and /usr/local/share/lincity/help/it. Copy the English language help and message files to these directories, and translate them. The .po file is a matter of translating these and getting them to compile correctly. First, edit the file po/LINGUAS, and add your language (e.g. "it") to the list. Next, create the .po file. For the language "it", the command looks like this like this: cd po msginit -l it You should now see the file "it.po". Edit this file. Specifically, you should edit what comes after "msgstr". Don't erase any of the other stuff such as "msgid" or "#: cliglobs.c:54" or that stuff. If you are using emacs, there is a "po-mode" to facilitate (or obstruct) this task. When you are done editing this file, you need to compile this file. Simply type "make" in the po directory to compile. This will create the file "it.gmo". Finally, you will need to install this file. To install, you will copy this file to the following location: cp it.gmo /usr/local/share/locale/it/LC_MESSAGES/lincity.mo Now, you are ready to go. Set the LANG environment variable and lincity should run using your translations. Email to [email protected] for comments about this process. INTERNATIONALIZATION UNDER WINDOWS ================================== The situation under windows is similar. Download lincity binary package, version 1.12pre53 or newer, and also download the Italian translation pack. Install the Italian translation pack directly into the lincity directory. Then run the batch file: c:\lincity> lincity-it Now, you should see: (1) The opening screen (help page) is in Italian (2) The month January will be written "Gen" instead of "Jan" (3) Click on something that hasn't been invented yet, like a power station or windmill. The message for "Not enough tech" will be in Italian. If the above procedure doesn't work "out of the box", email to [email protected]. OK, now you are ready to make translations for a new language. There are three parts to making a translation: making help files making message files making a .po file. The messages and help files are just a matter of editing the ASCII files, and installing them. If your language is "it", you should create two directories such as /usr/local/share/lincity/messages/it and /usr/local/share/lincity/help/it. Copy the English language help and message files to these directories, and translate them. The .po file is a matter of translating these and getting them to compile correctly. First, make copy the file lincity.pot to your language (e.g. "it.po" for Italian). If you do not have a lincity.pot file, email [email protected] to get the latest one (or get it directly from the CVS server on sourceforge). You should now see the file "it.po". Edit this file. Specifically, you should edit what comes after "msgstr". Don't erase any of the other stuff such as "msgid" or "#: cliglobs.c:54" or that stuff. If you are using emacs, there is a "po-mode" to facilitate (or obstruct) this task. When you are done editing this file, you need to compile this file. Use the executable "msgfmt.exe" which is distributed with lincity for this purpose: c:\lincity> msgfmt it.po -o it.gmo This should create the file it.gmo. You need to copy it to a prespecified location, like this: c:\lincity> copy it.gmo locale\it\LC_MESSAGES\lincity.mo Create the appropriate subdirectories as necessary. Now, you are ready to go. Set the LANG environment variable and lincity should run using your translations. INSTALLING PICEDIT ================== Picedit is deprecated. It may or may not compile. It will be removed after the transition to png graphics is complete. picedit is a simple drawing program that was used to draw all the icons found within the game. You are free to play with this, and even send me new icons that you have designed - although I cannot guarantee that any icons sent to me will be included in later versions. If you intend to design some that you feel should be included, please e-mail me first, this may save a lot of wasted effort. The following commands ./configure make picedit (or make xpicedit) make install will compile and install picedit (or xpicedit). Most likely, you will prefer to install picedit and lincity at the same time to avoid copying all of the help and message files multiple times, like this: ./configure make lincity make picedit make install By the way, xpicedit does not work on hi-color or full-color displays. COMPILATION UNDER WIN32 ======================= I use both MS VC++ 4.0 and MS VC++ 6.0 on Win95 and Win98. I no longer include the MSVC workspace files or makefiles, since these do not seem to be particularly useful. If you would like them, I'd be glad to send them to you. You may need to generate your own Makefile. The file Makefile.am contains the information about which files you need to compile. As of version 1.12, you no longer need to link with your vendor supplied versions VERSION.LIB or WSOCK32.LIB. Lincity 1.11 was patched to compile with the Borland compiler too. If this is not still working in 1.12, please send me a patch and I'll be happy to add it to the archive. RUNNING LINCITY (CLIENT/SERVER) =============================== Client/server version is disabled for this version. In fact, the code was completely removed as of version 1.12pre50, so the last version to contain the (non-functioning) network code was 1.12pre49. If you are interested in working on a client/server version, please send your email to the current maintainer or to the lincity mailing list. We are still interested in doing this! BUGS ==== Many. See the file TODO. If you wish to report a bug, you can send to directly to the current maintainer or to the lincity mailing list. HISTORY ======= Ian Peters started writing lincity in June 1995 as an exercise in mouse control in SVGALIB. It quickly became a usable, then even fun, game to play. Over the next 18+ months it evolved into a challenging and stable game which, in a number of people's opinion, is worth uploading to the net. In late 1997, lincity developers made grand plans for lincity version 2, an intergalactic space simulation with all the trimmings. But from 1998-1999, lincity underwent a period of hibernation, with only minor patches being applied. Development was restarted in late 1999 by Greg Sharp to provide some moderate improvements, including networking support, GUI improvements and additional gameplay developments. Networking support was subsequently dropped in 2001. In mid-2001, Greg was joined by Corey Keasling, who helped to bring the game to sourceforge.net. In late 2001, Corey became co-maintainer. Version 1.12 was released in December 2003. COPYRIGHT ========= Lincity is copyrighted software. Copyright (c) I J Peters 1995-1997. Copyright (c) Greg Sharp 1997-2003. Copyright (c) Corey Keasling 2000-2003. You may freely copy, distribute and modify lincity under the terms of the GNU GENERAL PUBLIC LICENSE Please read the file COPYING for the GPL. THANK YOU ========= This game could not have been possible without the patches, scripts, bug reports, suggestions, and other contributions from hundreds of developers and users around the world. Please read the file 'Acknowledgements' for details. And a special thanks to *you* for playing and enjoying lincity!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.