lacking

module
v0.19.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 15, 2024 License: MIT

README

Lacking Game Engine

Go Report Card Go Reference

logo

A 3D game engine / framework that lacks a lot of features, hence the name.

WARNING This project is still not stable. I am playing around with the code a lot and trying stuff. Avoid using it if you are looking for something serious and reliable.

As I am quickly iterating over the code and making breaking changes all the time, avoid opening Pull Requests. The best you can do, if you want to contribute, is to open an Issue. Similarly, if you plan to use it for your own project, make sure to use a stable tag and be ready to face the consequences.

Getting Started

To get a feel for how a game is structured and implemented using Lacking, have a look at the source code of Rally MKA.

Otherwise, have a look at the official web page which contains information on how to set up a Hello World project.

Examples

I have uploaded some example games made with this engine on itch.io.

Rally MKA

Drive around in a car with no particular purpose except to zone out. Best played with keyboard or mouse. The gamepad option is hard.

Rally MKA

This game was the initial reason for the lacking game engine.

AI Suppression

A Game Jam entry. Use the keyboard to defend your ship from alien airships. Users of vim will have an easy time here.

AI Suppression

A solo 48h Sofia Game Jam (2023) entry.

Dem Cows

Fly around in a plane and use a hanging club to pop cow balloons. As it uses semi-realistic physics it is best played with a gamepad and care should be taken regarding stall and speed. There wasn't enough time to balance this game. Winning it with keyboard is nearly impossible.

Dem Cows

A duo 48h Hardcore Game Jam (2024) entry.

Directories

Path Synopsis
Package app contains an API for working with an application window and the relevant input / output mechanisms that go with it.
Package app contains an API for working with an application window and the relevant input / output mechanisms that go with it.
Package audio provides audio processing and playback functionality.
Package audio provides audio processing and playback functionality.
debug
log
Package log provides common functions for logging.
Package log provides common functions for logging.
metric
Package metric provides utilities for tracking the performance of an application.
Package metric provides utilities for tracking the performance of an application.
metric/metricui
Package metricui provides a user interface for displaying metrics.
Package metricui provides a user interface for displaying metrics.
asset
Package asseet provides data transfer objects for the game's asset types.
Package asseet provides data transfer objects for the game's asset types.
ecs
graphics/lsl
Package lsl provides a simple interface to the Lacking Shader Language.
Package lsl provides a simple interface to the Lacking Shader Language.
hierarchy
Package hierarchy provides the means to represent a hierarchy of 3D objects.
Package hierarchy provides the means to represent a hierarchy of 3D objects.
Package render exposes an abstraction API over the GPU so that various implementations (e.g.
Package render exposes an abstraction API over the GPU so that various implementations (e.g.
ubo
Package ubo provides uniform buffer object utilities.
Package ubo provides uniform buffer object utilities.
template module
ui
Package ui provides types and functions for creating an interactive User Interface.
Package ui provides types and functions for creating an interactive User Interface.
component
Package component features a framework, inspired by React, that allows one to construct a user interface hierarchy through the usage of declarative DSL.
Package component features a framework, inspired by React, that allows one to construct a user interface hierarchy through the usage of declarative DSL.
i18n
Package i18n provides experimental internationalization features.
Package i18n provides experimental internationalization features.
layout
Package layout provides a default layout scheme that can, but need not, be used with the ui framework.
Package layout provides a default layout scheme that can, but need not, be used with the ui framework.
mvc
Package mvc adds utilities on top of the component package that allow one to model a user interface that uses a type of MVC pattern.
Package mvc adds utilities on top of the component package that allow one to model a user interface that uses a type of MVC pattern.
state
Package state contains utilities for managing state transitions.
Package state contains utilities for managing state transitions.
std
Package std provides a collection of standard components that can be used with the ui framework.
Package std provides a collection of standard components that can be used with the ui framework.
util
blob
Package blob provides functions for writing and reading data to and from a byte sequence respectively.
Package blob provides functions for writing and reading data to and from a byte sequence respectively.
spatial
Package spatial provides data structures and algorithms for working with spatial objects and sub-spaces.
Package spatial provides data structures and algorithms for working with spatial objects and sub-spaces.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL