Coder Social home page Coder Social logo

librequake's Introduction

LibreQuake

The LibreQuake project aims to create a complete, free content first-person shooter game, but LibreQuake by itself is just the raw material for a game. It must be paired with a compatible engine to be played.

There is a massive back catalogue, spanning over two decades, containing thousands of Quake levels and other modifications (“mods”) made by fans of the game. LibreQuake aims to be compatible with these and allows most to be played without the need to use non-free software.

The engine uses a directory called id1/, within that directory there are two archives called pak0.pak and pak1.pak, these archives contain all the game data except the soundtrack. While the Quake engine source code is free, you would usually still need one of the proprietary data files from id Software to play Quake. LibreQuake aims to create a free alternative: combined with the GPL-licensed Quake source code, this results in a completely free game.

LibreQuakes Website librequake.queer.sh.

Texture examples

Weapon examples

How to Play

Since LibreQuake is only the game data, you will still need to download an engine. These are also often termed “source ports” by the community. There are an overwhelming number of choices available, a lengthy list of which is available on the Quake Wiki.

One particularly recommended by the LibreQuake project is QuakeSpasmSpiked. This engine offers good support for single-player and the majority of mods created for both Quake and LibreQuake. As of April 2020, there are no PAK packaged files, but the work in progress can be played by placing the lq1 directory in the main directory of your engine, the same place as the original id1 folder. Then start your engine with the command line option +game lq1 just like any other mod. You can then start a new game or use the map command from the console to explore in progress maps.

What “Free” Means

When we speak of free content or software, we refer to the movement in which your freedom to use, copy, modify, and study a work is not infringed. For example, you may freely use LibreQuake for any purpose you see fit, you may redistribute it to anyone without needing to ask for permission, you may modify it (provided you keep the license intact, see COPYING), and you may study it. You may read more about free software at the GNU and Free Software Foundation websites.

Contributing to LibreQuake

Contributions to LibreQuake are always welcome, however, there are a few guidelines that should be followed:

Intellectual property

We know people hate legalese, but this is important. This applies to everything which is submitted.

You must be careful when basing on existing graphics or sounds. Most Quake projects are lax on reusing intellectual property. There are many mods which contain modified Quake models, for example. However, due to the nature of this project, we do not have the same liberty to rip as we please.

The general rules go as follows:

  1. You must have permission for everything you submit. If you make your own resources, do not base them on resources from Quake or any other restricted work. If you take work from other places, please make sure that the work is freely-licensed or that you obtain permission to include it in the LibreQuake project. They may not place additional restrictions compared to the normal LibreQuake license.

  2. Do not try to emulate Quake resources exactly. Where possible, put effort to make new versions look visibly different from Quake. This is a tough call because our compatibility with Quake mods limits how far we can deviate, but it is feasible.

  3. Be especially careful of “free textures” (or “free sounds” or “free graphics”) sites. Although these would appear at first to be okay to use, many are free for “non-commercial use only.” One of the things we want to be able to do is put this in GNU/Linux distributions (which can be sold or developed commercially).

Levels

Not all levels for LibreQuake must be vanilla-compatible Winquake/vanilla-compatible levels will have their own episode

It is sensible to also heed the following guidelines:

  1. Make sure that skill levels are implemented, and that all multiplayer start points, both cooperative and deathmatch, are present.

  2. Try to make levels appropriately difficult for their position within the progression of the game. Also bear in mind that not all players may be as skilled a player as you.

  3. While unrestricted by limits, do not make excessively complicated scenes. It is desirable that LibreQuake levels should be playable on low-powered hardware, such as phones and old computers.

Submitting your work

The most common, and a fairly simple method, to submit your work is by posting it on the LQ Discord LQ Matrix.

This allows a quick cycle of development and feedback.

An alternative to using the forum is to post your submission on the issue tracker, which may also be peer-reviewed and provide a feedback cycle.

Unfortunately, the LibreQuake project cannot provide hosting space in the form of a webpage nor FTP, however, there are many free file hosts to use when you need a location to upload files. Sites and services such as Dropbox and Mega, as well as others, are common and should be simple to use.

Crediting information

LibreQuake is made up of submissions from many people all over the globe. All of them, including you, deserve credit! Please do not forget to provide your name and email when submitting resources.

Using Git

You can also commit on a clone of the LibreQuake repository, although this is a technical task and it is okay to let other LibreQuake maintainers to do it instead: that is our normal mode of operation. However, pull requests are much appreciated and you may submit them in any manner you wish, with GitHub’s direct pull requests being the simplest, but by far not the only means.

LibreQuake uses the commit message style commonly seen in distributed version control systems, adopted by projects such as Linux and Git. For an explanation of this style, see How to Write a Git Commit Message.

librequake's People

Contributors

lavenderdotpet avatar zungrysoft avatar nolcoz avatar randombrushes avatar motolegacy avatar maikmerten avatar senhorflibble avatar pnahratow avatar ospaggi avatar dyntylluan avatar

Stargazers

 avatar  avatar paylanon avatar Philippe Entzmann avatar PopeRigby avatar arc0re avatar Guillem Ortiz avatar V avatar Baker avatar matheus lazzarotto avatar  avatar VL2M_STUDIO avatar SupekiBlue avatar Lance Borden avatar  avatar Memorix101 avatar jordan avatar  avatar  avatar Adam Killam avatar Новица avatar Andrej Pancik avatar Kevin Yonan avatar Owen Wertzberger avatar mohamad hani janaty avatar Axel avatar Georgy Samoilov avatar Bruno Sanches avatar Laurence Louis Trippen avatar  avatar Jacob Alexander Tice avatar Samuel Schwager avatar Jorge Martin Juarez avatar w96k avatar windBugg_ avatar Alexey Trifonov avatar Matthias avatar wren 『773tk』  avatar  avatar Jack Harrhy avatar Robert Rosborg avatar AAS avatar  avatar Eqvaldi avatar Ian Boswell avatar  avatar Marcello Haddeman avatar ni1chigo2115 avatar Popol avatar  avatar hl98 avatar AqpAnaciy avatar Dave Corley avatar Marco Aurelio Cardoso avatar  avatar OpenRift avatar Michael Alexsander avatar  avatar Peter Polgar avatar AV avatar mega avatar Pablo Damian Cotoia avatar koutsie avatar Timo Heidutzek avatar Pain deluxe avatar  avatar  avatar Mel avatar  avatar Eric Wasylishen avatar  avatar Arthur Medeiros avatar  avatar Sam Baxter avatar Yauheni Lantsau avatar Fa1sePRoMiSe avatar  avatar Joenio Marques da Costa avatar Jeff Carpenter avatar Garett Bass avatar Chris DeBoy avatar  avatar MataKrow avatar  avatar John Jimenez avatar Pete Goodfellow avatar William Bettridge-Radford avatar Andrés Brugarolas avatar James Haworth avatar Jacob Herrera avatar Alan avatar hellisabove avatar  avatar A-dot2 avatar  avatar  avatar  avatar  avatar Jiān avatar Tom Farmer avatar

Watchers

Hugo Locurcio avatar  avatar Alfonso Saavedra "Son Link" avatar Artem Galichkin avatar  avatar Benjamin Stanley avatar  avatar Kwadroke of "The Wired" avatar  avatar  avatar Jacob Alexander Tice avatar Serenity Skiff avatar  avatar  avatar  avatar  avatar  avatar  avatar Chthon avatar  avatar

librequake's Issues

Gib scale style choice

quakes head gibs are a bit larger in scale then the monsters they come from
i imagin it was done this way either because the scale was off and they didn't notice
or to give gibbing some extra Pow / powerful feeling to it
it does look a bit off since they are so much larger the the monsters normal heads

so we have a choice of either stick to quake scale

or

match lq's monsters head scale

Best qwprogs.dat to use with this?

I tried running the current master branch without any non-Free components in FTEQW and it works reasonably well, however it complains about missing game code.

Placing https://github.com/id-Software/Quake/blob/master/qw-qc/qwprogs.dat into /lq1 works, but I am wondering if there is some recommended improved game-code to use with this (preferrably precompiled for FTEQW)?

I guess one of the qc-clean repos would be a starting point? Like:
https://github.com/maikmerten/LibreProgsDeluxe or https://github.com/shpuld/id1-quakec-cleaned

Edit: the older releases here do seem to include some progs.dat though?

Discord invite link is invalid

Probably really minor, but I noticed that the Discord invite link in the readme and repo description appears to have expired? Might be worth fixing as it could be useful for anyone that wants to get involved with the project.

Just randomly noticed while nosing around 😅

Missing story-exposition at the end of episode 0

When finishing e0m7, there should be some plot-exposition. This has to be handled as a special case in QuakeC.

The text to be displayed hasn't been agreed upon yet, but it might be something like

As the ethereal essence of your very being drifts through time and space, you experience relentless calm and serene determination. You embrace the liminal, formless nature of your being within the amorphous expanse between realities.

Suspended between the veils of life and death, among the realm of celestial dissolution, you wait to be called upon again. To regain your corporeal form and step into the crucible of fate. To finish your task and keep at bay the onslaught of cosmic horrors.

(or something better, of course)

Host_Error: Program error

This it the error it throws when I try to use pak0 and pak1 instead of the paid version, or when I sideload them with the actual game as pak2 and pak3.

[ left open for anyone else wanting the pop.lmp ] No .pak file, add installation instructions for the unbuilt repo

Since I haven't been able to find the .pak file in this repo, and the only installation instructions are on installing this mod as a .pak (and building it requires other tools) I figure it's good to include direct instructions for newbies (like myself) in the README for installing the mod as it comes here if you already have a copy of Quake 1.

Lemme know if I wrote down anything incorrect or just in a confusing manner. This is how I did it on Windows 10 with Quakespasm that holds the regular pak0.pak and pak1.pak. I don't think this works for Shareware version since it forbids custom map loading.

How To Play
Quake 1 Owners:

  1. Clone/Download repository
  2. Copy the /lq1 subfolder
  3. Paste it in the root of your current Quake installation, right next to /id1
    In-Game:
    Type "game lq1" into console. If the background and font changes, it's installed correctly.

This instruction was suggested to me by MissLav

Command-Line (Linux):
In the game's install folder, type "./.EngineNameHere -game lq1"

More placeholder sounds from Freed∞M & Blasphemer?

A while ago I compiled a selection of placeholder sounds to fill in the missing gaps in Open Quartz, for my personal use, from the Freed∞M & Blasphemer sounds. As far as I can tell, the licensing in both projects should make them compatible with LibreQuake. These include entire sound sets for the Ogre, the Death Knight, the Zombie, the Shambler, boss1 and boss 2, as well as some sounds from the plats and doors folders.

If you want, I could upload them and make a PR. I believe that placeholders are better than no sounds at all, and I tried to make the sets sound at least remotely consistent for each monster (although YMMV I guess).

Also an a related note, it was mentioned in a discussion of a different issue that although GPL assets are not compatible with the LibreQuake license, they could be included in actual binary releases with a note that some assets are licensed differently. If I understood this correctly, I was again thinking about placeholders -- Open Quartz has a reasonably workable "ghost knight" stand-in, and there is a GPL Ogre model (which somehow did not end up in the Open Quartz project, although I think that it was created for it) that can be found here. Granted, they absolutely fall out of the general art style, but from the player's perspective a fully animated enemy model should be more preferable to a static silhouette that is much less readable and provides far less real-time feedback to the player. I'm suggesting this only because LibreQuake is already very playable with a good number of well-designed, interesting levels, and having a full set of game assets, even with a proportion of placeholders among them, would provide an almost-complete playing experience for the time being.

[0.06] Playing in DOS -- "couldn't load endscreen"

I've tried the current 0.06 release (both full and lite) in 486quake and QDOS in DOSBox. Both versions run fine in these ports, whereas I could not run them in the official Quake v1.08, which immediately exits with the following error:

Error: model progs/v_axe.mdl has a skin taller than 200.

QDOS seems to run completely as intended, it plays OGG music (although I cannot change the volume, apparently) and I've noticed no glitches whatsoever. 486quake is faster, but it plays no music, and in the full version I've seen occasional rendering glitches, like a door in e1m1 that becomes transparent at a certain distance.

Upon exit to DOS, both ports greet me with the message:

couldn't load endscreen.

Which I guess it just missing from the PAK files? (Open Quartz has one, albeit it's very simplistic.) I suppose you could create something like the ENDOOM screen from Freed∞M?

You probably are aware of the glitchy textures on the backpack that humanoid enemies drop, but I'm gonna mention it JIC.

Also, what's with the Ogre replacement model? I remember previous versions having this Deep One-like character, although IIRC it was not animated:
https://i.imgur.com/exojmvI.png

2 questions about sound assets

before asking those, i would like to mention what discord link in the readme doesnt work

so now the questions :)

  1. do you maintain anywhere a list of music and sound assets which remain to be done, or the best way to observe it is only to compare the files with original resources? (i'm interested to do some original sound design, except for areas involving voice recording or sounds of real life guns, or others potentially relying too much on microphone recording)

  2. what kind of license already existing assets have? i was going through them and some of them there quite 'exploitable' to use as samples in some (unrelated) music

Proposal to better target low memory systems

Hi there, I recently had to pleasure of trying out LibreQuake, and I think it is a fantastic free substitute for id Software's assets. I'd like to eventually ship it with my ProQuake (PlayStation Portable) engine fork. However, as of now the demo start.bsp does not boot on the low memory version of the device (24mB total accessible main memory w/ 13mB Quake hunk size, 2mB video memory).

I took a look at the sounds LibreQuake uses, and they all seem to be several factors larger than what was shipped with Quake, in-part by being encoded with 16 bits as opposed to 8, even though at such a low rate there is no discernible difference between audio quality, 16 bits just plainly doubles the file size.

I'll have to investigate texture memory usage to see if that is holding back booting on my hardware at all, at a glance everything seems great on that front, though! I'd be happy to be the one to PR a change to 8 bit sounds as a memory reduction if it's agreed better targeting lower memory systems is worth your while and that is an approach you want to take.

Alternatively if for any reason you would not want to drop the bits on sound on the main repository, what about seeking an automated deployment option that will go and perform this action, released as a separate "low memory" archive? I don't think this will be necessary personally, if sound size is the only "issue", but I wanted to throw the idea out there in the hopes of getting something off the ground.

Attached is sounds/demon/idle1.wav in both 16 bit and 8 bit PCM format, as an example.
idle1_comp.zip

Oh, take a capture of the demo start.bsp running on a high memory PSP unit too :D
librequake

I look forward to hearing from you!

Better "Knight" and "Rottweiler" replacements

While I like most of the enemy replacements in LibreQuake, two that stick out to me as being rather poor and in need of improvement are the replacement models for the "Knight" and the "Rottweiler". The knights in LibreQuake stick out to me as not really fitting in with Quake's aesthetic, appearing to me more as half-naked dudes and belonging more to a Silent Hill game in terms of design. The replacement for the rottweiler, while fittingly creepy, also has garish colors and appears to clash with the rest of the environment a bit too much. Especially when playing in certain mods.

I believe these two enemy types should be redesigned to fit more in line with vanilla Quake. The knight replacement should look more like a knight, and the Rottweiler replacement could perhaps look more like a wolf. With dark navy fur, blood stains, and large fangs.

Remove extraneous `.stversions` folder from the repository

e3ef662 has added a .stversions/ folder to the repository, which contains previous versions of various files (it's used by Syncthing). Since Git offers version history, this folder is not most likely not necessary and could be removed.

It might be worth adding .stversions/ to ~/.config/git/ignore to avoid committing it in the future. (This is a global .gitignore file which will affect every repository on the system.)

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.