Skip to content

stryck5425/pengcli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

PengCLI

The Retro DOS Fantasy Console for Game Development

Website

Documentation

Download

PengCLI is an all-in-one development environment designed for nostalgics and indie developers. It combines the authentic feel of an MS-DOS terminal with a powerful Lua-based game engine and a professional VGA 256-color pipeline.


⚠️ Important: Installation Notice

This GitHub repository is used for version tracking and documentation. You cannot run PengCLI directly from these files. To start creating games, you must download the compiled standalone executable from our official platforms:

👉 Download PengCLI (Official Site)
👉 Download on Itch.io


✨ Core Features (v1.8)

  • The .PCP System: Compile your code, sprites, and maps into a single executable binary. No more loose files.
  • VGA 256 Palette: A strict, professional vintage color palette. No RGB—just pure 8-bit nostalgia.
  • Built-in Visual Editors:
    • EDITSPR: A pixel-art editor with zoom, pan, and multi-resolution support (4x4 up to 64x64).
    • EDITMAP: A tile-based world builder for 64x64 maps.
  • Dual Storage: Switch between DISK (persistent) and VRAM (volatile) storage modes.
  • Integrated Launcher: Always launch via launcher.exe to benefit from automatic GitHub updates.

🛠 The Workflow

PengCLI follows a professional development cycle directly from the command line:

  1. CODE [project]: Initialize your project structure (main.lua, /sprites, /maps).
  2. EDIT main.lua: Write your game logic using the PengAPI.
  3. EDITSPR [name]: Draw your assets in the Sprite Editor.
  4. EDITMAP [name]: Build your world in the Map Editor.
  5. COMP [project]: Compile everything into a .pcp file.
  6. RUN [project]: Execute your creation.

📜 Quick Code Example

Creating a moving player with tile collisions is simple:

peng.setMode("GFX")
local x, y = 64, 64

function peng.gfx.update(dt)
    local dx, dy = 0, 0
    if peng.gfx.isKeyDown("right") then dx = 2 end
    if peng.gfx.isKeyDown("left") then dx = -2 end

    -- Collision detection (8x8 tiles)
    local tile = peng.gfx.getmap("level1", math.floor((x+dx)/8), math.floor(y/8))
    if tile ~= "wall" then x = x + dx end
end

function peng.gfx.draw()
    peng.gfx.cls(0)
    peng.gfx.drawmap("level1", 0, 0, 40, 30, 0, 0)
    peng.gfx.drawspr("player", x, y)
end

🚀 Stay Updated

Always use the launcher.exe provided in the download package. It will:

  • Check for the latest releases on this GitHub repository.
  • Notify you inside the console when a new update is available.
  • Update your pengcli.exe automatically using the update command.

📄 License & Credits

  • Developer: Oflap Studio
  • Platform: Windows (Standalone)
  • Language: Lua 5.1 / LuaJIT
  • Copyright: © 2024-2026 Oflap Studio. All rights reserved.

Created with passion for retro-gaming enthusiasts.

About

Retro DOS Fantasy Console for Game Development

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors