GithubHelp home page GithubHelp logo

pascalcorpsman / configtd Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 1.0 43.46 MB

Multiplayer Tower Defense clone, with max configurability

License: Other

Pascal 99.52% C++ 0.48%
free-pascal lazarus multiplayer multiplayer-game singleplayer singleplayer-game tower-defense tower-defense-game

configtd's Introduction

Config Tower Defense (Config TD)

Config TD is an opensource and free Tower Defense clone with the aim of maximal configurabillity and as easy as possible map creation for single and multiplayer matches.

It supports multiple graphical themes and is client server based.

The game follows the genre typical mechanics and consists of buildings that can be bought, opponents (often called "creeps") and even hero's (like buildings but moveable).
Creeps are send in waves. The player has to defeat them all, if not the player looses one life per creep. The match is finished on one of two choises

  • the player lost all lifes -> player loose
  • the player defeated all waves -> player wins

If not in playing mode the game is always in editor mode, so the game is editor and game in one program. Maps can be played during creation which makes map creation the same fun as playing the maps.

Preview theme color

Preview theme comic

Features

  • 1 to 16 player (theoretically there is no limitiation to the player count, but in reallity the game does not support more than 65535 enemies at the map, which gives an upper limit for the playercount) (also the bandwidth which is used and the rendering performance of the computer could limit the game)
  • client-server based (server runs in console mode, so dedicated server is possible)
  • multiplatform Windows / Linux (matches can mix OS types)
  • LAN and WAN playable (for WAN mode you need a port forwarding to the server)
  • load / save of game, even in multiplayer mode (including automated bakups after each completed wave)
  • pause / timewarp (speedup x2, x4)
  • ingame chat
  • game statistics (at the end of a match in detail, during the game only kills and money )
  • hinting system (CTRL + left mouse button gives a "!" that everyone can see)
  • 2 orthogonal gaming modes (Coop vs. Head to Head / Mazing vs. defeating) => 4 game variants
  • 3 choosable difficulty levels
  • 4 damage classes (typically labeled as Stich, Poison, Magic, Air)
  • 2 kinds of opponent movements (Floor- / Airunits)
  • all settings of the map / game can be edited at the same time by all player, there is no game leader. This allows multiple players to define the map and waves at the same time during gameplay
  • players can donate money between each others during gameplay
  • each unit / building / hero is complete free configurable, this also includes the availibility of buyable objects in the match
  • multiple themes all free mixable, ingame map, texture, building, opponent and hero editor
  • map creation during gaming (maps can be created wave by wave while playing them, even repeating of the last wave is possible)
    • map layer can be imported by image or created within the ingame editor
    • arbiture number of waves, with arbiture amount of opponents (max 65535 per wave)
    • wave generator for automated wave creation
  • arbiture opponent classes
    • boss (only tags)
    • bonus (does not decrease lifepoints when reaching the end of the track)
  • arbiture amount of buildings, each building can have as many update levels as defined
    • bank (earn money on hit and destroy opponent)
    • siege vs. shooting (building can place bullets around its location or shoot at opponents)
    • slowing (dynamic or static)
    • splash (bullets can hit multiple opponents)
    • free choosable damage classes
    • supports multiple attack strategies o first / last / weakest / stronges / nearest / farest / random o prever air over floor / prever floor over air
  • heros (more or less same as buildings, but can be moved free on the map)

What needs to be done to play the game

  1. Create a directory on your computer e.g. "ConfigTD"
  2. Download the content of the bin folder according to your operating system and store it in "ConfigTD"
  3. Download the content of the textures folder and store it in "ConfigTD/textures"
  4. Merge the content of the Config TD Data repository (holds maps and all the other gaming content) into "ConfigTD"
  5. Your directory should now look like this
  6. Read the manual document as needed

Linux users may need to run the following commands at least once:

SSH bindings:

sudo apt-get install libssl-dev

OpenGL bindings:

sudo apt-get install freeglut3-dev

Why is there no sound ?

Actual the game is (at least at the moment) not designed to use sounds. This is due to the following reasons:

  • adds lots of complexity
  • disturbes when played with thousands of units on the map
  • game is designed for LAN-Parties, where everyone talks to each other, all the sound effects will then mess up the room sound and typically are switched of anyway

It could be possible that in future these arguments change and sound support will be added.

What needs to be done to compile the game

To be able to compile the code you need the Lazarus-IDE

Inside Lazarus you need to install the following packages:

  • L-Net from here or use the online Packagemanager to install(OPM version seems to be outdated and not working)
  • LazOpenGLContext (comes with lazarus, install via "Package" -> "Install Packages")
  • TaChartLazarusPkg (comes with lazarus, install via "Package" -> "Install Packages")
  • UniqueInstance (comes from the lazarus online package manager)
  • MetaDarkStyle (comes from the lazarus online package manager)

Additional you need to download and copy the files from DGLOpenGL and Synapse into a searchpath (e.g. units/)

Contributors

Idea : Christian Wimmer, Uwe Schächterle
Implementation : Uwe Schächterle
Graphics : Christian Wimmer, Dall e, Uwe Schächterle
Leveldesign : Christian Wimmer, Uwe Schächterle

configtd's People

Contributors

pascalcorpsman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

zaferozerr

configtd's Issues

compile issue Laz ide 3.0

uchunkmanager.pas(866,35) Error: Identifier not found "ssNoDelay"

ssNoDelay is no longer in use see code lNet v0.6.2

{ TLSocketState }
TLSocketState = (ssServerSocket, ssBlocking, ssReuseAddress, ssCanSend,
ssCanReceive, ssSSLActive{, ssNoDelay});

Hint issue

In case of big zoom and small window and selected tower the hint frame mashup with the Item info

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.