Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A WIP 3D retro game engine inspired by GoldSrc and Quake

License

NotificationsYou must be signed in to change notification settings

PlatinumSrc/PlatinumSrc

Repository files navigation

A WIP retro 3D game engine inspired by GoldSrc and Quake
Progress can be foundhere



Demo video

UsingH-74, andtest_model.p3m ingames/test/

demo.mp4

Platform Support

Supported
  • Linux
  • Windows 2000+
  • Windows 98
  • MacOS
  • HaikuOS
  • Emscripten
Untested
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Windows 95
In progress
  • Xbox (NXDK)
    • Needs an XGU renderer
  • Dreamcast
    • Needs a PowerVR renderer
  • 3DS
    • Needs a Citro3D renderer
  • GameCube
    • Needs a GX renderer
  • Wii
    • Needs a GX renderer
  • PS2
    • Needs a GSKit renderer
Wanted
  • Android
    • Need to finish the touch UI
    • Need to figure out how to build directly from the Makefile
  • UWP/GameSDK
    • Needs a D3D 9 renderer
  • Xbox (XDK)
    • Needs a D3D 7/8 renderer
  • PSP
  • PS Vita
  • Switch

How to run

Running the engine
  1. Download a game (the engine will not run without a game)
  2. Drop the game into a directory calledgames and use the-game option, or ensure thedefaultgame variable ininternal/engine/config.cfg is set to the game's directory name
  3. Put any mods into a directory calledmods and use the-mods option, or ensure they are listed in themods variable in one of the configs
    • You can useconfig.cfg ininternal/engine/ or in the game's user data directory
    • Mods are listed as comma-separated values without spaces between values
  4. Run the executable

Building from source

Building on Unix-like platforms for that same platform
  • Install GNU Make
  • Install GCC with GNU Binutils, or Clang with LLVM
    • PassTOOLCHAIN=llvm- CC=clang to the Makefile to use Clang
    • On 32-bit HaikuOS, passCC=gcc-x86 to the Makefile to use the correct GCC executable
  • Install SDL 2.x or 1.2.x
  • If building the dedicated server, passMODULE=server to the Makefile, or if building the editor, passMODULE=editor
Building for Windows
  • If cross-compiling on a Unix-like platform
    • Install GNU Make
    • Install MinGW
    • Install MinGW SDL 2.x or 1.2.x
    • PassCROSS=win32 to the Makefile
  • If MSYS2 is supported
    • Install MSYS2 and use the MINGW64 backend
    • Install GNU Make
    • Install GCC with GNU Binutils, or Clang with LLVM
      • PassTOOLCHAIN=llvm- CC=clang to the Makefile to use Clang
    • Install MinGW SDL 2.x or 1.2.x
  • If MSYS2 is not supported
    • Install Git bash
    • InstallMake for Windows and add it to thePATH
    • Download MinGW and add it to thePATH
    • Donwload and extract MinGW SDL 2.x or 1.2.x into MinGW
  • If building the dedicated server, passMODULE=server to the Makefile, or if building the editor, passMODULE=editor
Building for older Windows
  • DownloadMinGW 7.1.0 win32 sjlj and add it to thePATH
    • It might work with other versions but they need to not require___mb_cur_max_func from msvcrt.dll orAddVectoredExceptionHandler from kernel32.dll
  • If cross-compiling on a Unix-like platform
    • Install Wine
    • PassCROSS=win32 TOOLCHAIN='wine ' to the Makefile
  • If bulding for Windows 2000
  • If building for Windows 98
  • If building the dedicated server, passMODULE=server to the Makefile, or if building the editor, passMODULE=editor
Building for web browsers using Emscripten
  • Install GNU Make
  • Install Emscripten
  • PassCROSS=emscr to the Makefile
Building for the Xbox using the NXDK
Building for the Dreamcast using KallistiOS
  • Set upKallistiOS
  • Set upimg4dc
    1. Go into the KallistiOS directory
    2. Go intoutils/
    3. Git clonehttps://github.com/Kazade/img4dc
    4. Enterimg4dc/ and build it
  • Set up thecdi directory
    1. Create a directory calledcdi
    2. Copy (or symlink) theinternal directory intocdi/
    3. Copy (or symlink) the games and/or mods you want to include in the disc image
  • PassCROSS=dc to the Makefile

———

Full Makefile usage
  • Rules
    • build - Build an executable or ROM
    • run - Build an executable or ROM and run it
    • clean - Clean up intermediate files
    • distclean - Clean up intermediate and output files
    • externclean - Clean up external tools
  • Variables
    • Build options
      • MODULE - Which module to build (default isengine)
        • engine - Game engine
        • server - Standalone server
        • editor - Map editor
      • CROSS - Cross compile
        • win32 - Windows 2000+ or Windows 98 with KernelEx
        • emscr - Emscripten
        • nxdk - Xbox using NXDK
        • dc - Dreamcast using KallistiOS
      • ONLYBIN - Set toy to skip making a disc image.
      • O - Set the optimization level (default is2 ifDEBUG is unset org ifDEBUG is set)
      • M32 - Set toy to produce a 32-bit binary
      • NATIVE - Set toy to tune the build for the native system
      • DEBUG - Enable debug symbols and messages
        • 0 - Symbols only
        • 1 - Basic messages
        • 2 - Advanced messages
        • 3 - Detailed messages
      • ASAN - Set toy to enable the address sanitizer (requiresDEBUG to be set)
      • NOSTRIP - Set toy to not strip symbols
      • NOLTO - Set toy to disable link-time optimization (ignored ifDEBUG is set)
      • NOFASTMATH - Set toy to disable-ffast-math
      • NOSIMD - Set toy to not use SIMD
      • NOMT - Set toy to disable multithreading
    • Features and backends
      • USESTDIODS - Set toy to use fopen(), fread(), and fclose() in place of open(), read(), and close() in the datastream code
      • USEDISCORDGAMESDK - Set toy to include the Discord Game SDK
      • USEGL - Set toy to include OpenGL support
      • USEGL11 - Set toy to include OpenGL 1.1 support
      • USEGL33 - Set toy to include OpenGL 3.3 support
      • USEGLES30 - Set toy to include OpenGL ES 3.0 support
      • USEGLAD - Set toy to use glad instead of the system's GL library directly
      • USEWEAKGL - Set toy to markgl[A-Z]* symbols as weak
      • USEMINIMP3 - Set toy to include MiniMP3 for MP3 support
      • USESTBVORBIS - Set toy to include stb_vorbis for OGG Vorbis support
      • USESTDTHREAD - Set toy to use C11 threads
      • Windows
        • USEWINPTHREAD - Set toy to use winpthread instead of win32 threads
    • Toolchain options
      • CC - C compiler
      • LD - Linker (defaults toCC's value)
      • AR - Archiver
      • STRIP - Symbol remover
      • OBJCOPY - Executable editor
      • TOOLCHAIN - Text to prepend to tool names
      • CFLAGS - Extra C compiler flags
      • CPPFLAGS - Extra C preprocessor flags
      • LDFLAGS - Extra linker flags
      • LDLIBS - Extra linker libraries
      • RUNFLAGS - Flags to pass to the executable
      • EMULATOR - Command used to run the executable or ROM
      • EMUFLAGS - Flags to pass to the emulator
      • EMUPATHFLAG - Flag used to specify the executable or ROM path
      • Windows
        • WINDRES - Windows resource compiler
      • Emscripten
        • EMSCR_SHELL - Path to the shell file
      • NXDK
        • XBE_TITLE - XBE title and XISO name (default isPlatinumSrc)
        • XBE_TITLEID - XBE title ID (default isPQ-001)
        • XBE_VERSION - XBE version (default is taken fromversion.h)
        • XBE_XTIMAGE - Path to XPR image (default isicons/engine.xpr)
        • XISO - Path to write XISO to (default is$(OUTDIR)/$(XBE_TITLE).xiso.iso)
        • XISODIR - Path to make the XISO from (default is$(OUTDIR)/xiso)
      • Dreamcast
        • IP_TITLE - IP.BIN title and CDI name (default isPlatinumSrc)
        • IP_COMPANY - IP.BIN company name (default isPQCraft)
        • IP_MRIMAGE - Path to MR image (default isicons/engine.mr)
        • CDI - Path to write CDI to (default is$(OUTDIR)/$(IP_TITLE).cdi)
        • CDIDIR - Path to make the CDI from (default is$(OUTDIR)/cdi)

Examples:

make -j$(nproc)
make -j$(nproc) run
make DEBUG=1 ASAN=y -j$(nproc) run
make CROSS=nxdk DEBUG=0 -j$(nproc) run

[8]ページ先頭

©2009-2025 Movatter.jp