Git Product home page Git Product logo

q3py's Introduction

hello, world ๐Ÿ‘‹

Unknown Chinese Maker Tin Wind Up Radar Robot Front

I, for one, welcome our new robot overlords ๐Ÿค–

No Maintenance Intended

All code is provided as-is, is not intended to be actively maintained unless noted otherwise and WITHOUT WARRANTY OF ANY KIND

q3py's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

q3py's Issues

Add and document project infrastructure

Add or at least mention the absence of or alternatives to:

  • home page
    • downloads
    • manual (#4)
    • documentation
    • FAQ
    • blog / news
  • forum
  • mailing list
  • IRC channel
  • issue tracker
  • wiki

and so on. Most of them are over the top for a project as small as q3py though ๐Ÿ˜‰

Reconsider documentation system

The documentation is currently a mix of Doxygen and Sphinx with its breathe extension (since #14) on gh-pages.

It seems like Doxyen is mostly meant for inline code documentation. Other pages can be added as well, but they are just listed as "related pages" without any hierarchical structure.

Sphinx on the other hand allows for well structured prose, as well as plain code documentation. breathe can be used to import the existing Doxygen documentation, but it is not integrated that well (which might be the fault of Doxygen's XML output).

It seems like the best solution right now would be using readthedocs (instead of gh-pages) with plain Sphinx documents (without breathe and without Doxygen).

Sphinx is not integrated into the autotools via m4 macros right now, but then again q3py's portability is rather limited both by current implementation and (Quake 3 + Python 3) design.
Sphinx requires Python, but this is not a problem since q3py does so, too. If a recent enough Python 3 version is used, one gets pip and venv as well.

tl;dr: No decision on documentation right now, mostly a brain dump

Make Python entry point configurable

Right now the Python entry point is hardcoded to q3py_hello:dllentry.

This needs to be configurable, possibly with environment variables per module (#10).

The documentation needs to explain how to configure the entry point and how libpython searches for the Python module, e.g. PYTHONPATH, virtualenv and activate_this.py etc.

Add variants for game, cgame and ui

Currently there is no mention of the module that q3py is meant for, e.g. one of game, cgame or ui.

The configuration of q3py and code need to be prepared to work as either of the modules and be aware which one it is.

Implement versioning

A version number/string, preferably using semantic versioning, needs to be added to:

  • the q3py API (both C and Python/Capsule)
  • documentation
  • manual

Add user manual

A user manual is required, explaining how to:

  • download (which version #2 etc.)
  • compile (software dependencies, configuration options etc.)
  • install (user permissions, options etc.)
  • configure (logging etc.)
  • run (config file, enviroment variables etc.)
  • use as a library from Python, C, Cython etc. (#3)

The manual should also mention that q3py is targeted at developers, not gamers or server admins.

The manual should be part of the README, the documentation and possibly in a GitHub wiki page as well.

Add Python test cases

The current test cases do not use Python at all.
Add some test cases that actually use Python code/methods.

Add usage examples

While the README (e.g. at 3921525) mentions that

q3py is of no use on its own, a separate Python module is needed to implement the required game logic.

one or more usage examples are required.

This means a hello world snippet, possibly using the mentioned but not completed Cython module , needs to be added to the README and manual/documentation.

  • hello world

Furthermore possible usages such as the following should be mentioned:

  • Interpret or compile the QVM in Python (LLVM etc.)
  • Rewrite the whole (game, cgame, ui) logic in Python

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.