vgagames is a package of libraries, servers and programs for use of coding vga based games (320x200 with 256 colors) with different graphic libraries. Currently are supported: - svgalib (Linux) - libvgl (FreeBSD) - X window (XFree86,Xorg) Your game program code however is the same for any of these libraries. The library contains functions for: ----------------------------------- - graphical output - drawing and manipulating graphics - keyboard and mouse functions - sound functions (wave, midi and mp3) - multiplayer support via tcp/ip Installing the vgagames package: see file "0-INSTALL". -------------------------------- Coding your game program with the vgagames library: --------------------------------------------------- - include header file <vgagames.h> into your program - in your main function you have to do: + some initialization: * switching to graphic mode or opening a window with: open_window() * if needed starting sound server with: init_sound() * if needed starting the network server with: start_nettcp() * if needed connecting to a started network server with: connect_nettcp() + your playing loop with the other vgagames functions + ending: * if needed closing network connection with: close_nettcp() * if needed exiting sound server with: end_sound() * switching to text mode or closing window with: close_window() If a vgagames function returns with an error, the error message is in the global variable: char errmsg[]. For example programs see directory "example". Compiling your game program: ---------------------------- For compilation there are needed some system libraries. When vgagames is installed, a config script "vgag-config.sh" is installed in /usr/bin. To test whether the needed version of vgagames is installed, use vgag-config.sh with option -v, which gives you the version as a number: vgag-config.sh -v echoes (e.g. for version 1.10): "110" ***** Usage for compiling: - first check whether a console library or X window devel library is installed (vgag-config.sh <-cons | -x>) - then compile (vgag-config.sh <-cons | -x> "<game source file(s)>") --> e.g. # for console libraries if vgag-config.sh -cons then gcc -Wall -O2 `vgag-config.sh -cons game.c` -o game-cons chmod 4755 game-cons # setuid root bit fi # for X window if vgag-config.sh -x then gcc -Wall -O2 `vgag-config.sh -x game.c` -o game-x fi If you want to compile more than one file, put them together into quotation marks, e.g.: gcc -Wall -O2 `vgag-config.sh -cons "game1.c game2.c"` -o game ***** There is also another usage "vgag-config.sh": vgag-config.sh wave-midi [<M|S> <samplefrequence> <midi file>] With these parameters a midi file can be converted to a wave file. To check whether midi-to-wave-converter is installed, use: vgag-config.sh wave-midi for example: "if vgag-config.sh wave-midi; then ... ; fi" To convert a midi to wave, use: vgag-config.sh wave-midi <M|S> <samplefrequence> <midi file> for example: "vgag-config.sh wave-midi M 11025 ../jb.mid" --> creates mono (M), 11025 samplefrequence, wave file ../jb.wav And with "vgag-config.sh wave-mp3 [...]" you can convert a mp3 file to a wave file. A short description is given when calling vgag-config.sh without parameters. Now an example for a Makefile of game "mygame": # Makefile for mygame #CC = gcc CFLAGS = -Wall -O2 GAME=mygame all: clean $(GAME)-cons $(GAME)-x clean: rm -f *.o $(GAME)-cons $(GAME)-x # console graphic library game $(GAME)-cons: testlib $(GAME).c $(GAME).h if vgag-config.sh -cons; then \ $(CC) $(CFLAGS) `vgag-config.sh -cons $(GAME).c` -o $(GAME)-cons; \ chmod 4755 $(GAME)-cons; \ fi # X window graphic library game $(GAME)-x: testlib $(GAME).c $(GAME).h if vgag-config.sh -x; then \ $(CC) $(CFLAGS) `vgag-config.sh -x $(GAME).c` -o $(GAME)-x; \ fi # check vgagames library version, must be >= 1.10 for mygame testlib: @if ! vgag-config.sh -v || [ `vgag-config.sh -v` -lt 110 ]; then \ echo "Sorry, you need at least vgagames version 1.10"; \ exit 1; \ fi
Home | Previous: Index | Next: Initializing and ending functions