MCPcopy Index your code
hub / github.com/bloeys/nmage

github.com/bloeys/nmage @v0.28.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.28.0 ↗ · + Follow
334 symbols 819 edges 35 files 38 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

nMage

build

nMage is a (hopefully!) high performance 3D Game Engine written in Go being developed live, with recordings posted on YouTube.

This project is being built with the goals being (in no particular order):

  • To build a good game engine that can be used to develop full fledged games (as opposed to just demos and proofs-of-concept)
  • Sharing knowledge about less popular/less taught (e.g. compared to web dev), yet very powerful computing topics by building things and explaining as we go
  • Showing the development process of large, high performance software, including things like: learning unfamiliar topics, reading docs, fixing bugs and profiling and optimizing
  • Have fun through the entire thing!

Running the code

To run the project you need:

  • A recent version of Go installed
  • A C/C++ compiler installed and in your path
  • Windows: MingW or similar
  • Mac/Linux: Should be installed by default, but if not try GCC or Clang
  • Install SDL2 by following their requirements.
  • Get the required assimp-go DLLs/DyLibs and place them correctly by following the assimp-go README.

Then you can start nMage with go run .

Note: It might take a while to clone/run the first time because of downloading/compiling dependencies.

Extension points exported contracts — how you extend this code

Render (Interface)
(no doc) [1 implementers]
renderer/renderer.go
Game (Interface)
(no doc) [1 implementers]
engine/game.go
Comp (Interface)
(no doc) [1 implementers]
entity/comp.go
Entity (Interface)
(no doc)
entity/entity.go

Core symbols most depended-on inside this repo

T
called by 55
assert/assert.go
SetUnifInt32
called by 34
materials/material.go
Set
called by 19
materials/material.go
SetUnifMat4
called by 16
materials/material.go
New
called by 13
registry/registry.go
Bind
called by 13
materials/material.go
NewMaterial
called by 13
materials/material.go
DT
called by 12
timing/timing.go

Shape

Method 149
Function 128
Struct 41
TypeAlias 12
Interface 4

Languages

Go100%

Modules by API surface

input/input.go44 symbols
materials/material.go37 symbols
main.go36 symbols
buffers/uniform_buffer.go33 symbols
buffers/framebuffer.go27 symbols
engine/engine.go14 symbols
entity/comp.go12 symbols
buffers/element.go9 symbols
assets/textures.go9 symbols
registry/registry_handle.go8 symbols
meshes/mesh.go8 symbols
engine/game.go8 symbols

For agents

$ claude mcp add nmage \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact