Coder Social home page Coder Social logo

kavika13 / jumpmanzero Goto Github PK

View Code? Open in Web Editor NEW
16.0 16.0 0.0 40.79 MB

A platformer video game with a very old-school theme. Based on the Jumpman series by Randy Glover.

C++ 0.35% C 22.76% C# 0.22% Objective-C 0.25% Makefile 0.05% HTML 2.55% CSS 0.37% Roff 0.03% Lua 71.71% CMake 0.01% JavaScript 0.48% Meson 0.01% Visual Basic .NET 1.15% Batchfile 0.01% GLSL 0.01% Zig 0.05%
game-engine lua video-game

jumpmanzero's People

Contributors

kavika13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

jumpmanzero's Issues

Content in same project as engine

Content needs to be moved to its own project. It has its own build steps so it doesn't make sense to have it in the same project as the engine, especially for an automated build.

No automated build

Need to create an automated build that can:

  • Run unattended
  • Support version numbering
  • Compile Jumpman Zero executable
  • Compile content toolchain
  • Compile scripts, and other content (3D meshes?)
  • Create installers for content (one for game and content, another for content toolchain)
    • right now these could be self-extracting executables and this would be fine
  • Separate build artifacts to be published
  • Place build artifacts in output directory

Automated publishing to GitHub would be nice, but it should go through a test pass on each release before this happens, and this is going to be a manual process.

No documentation on how to create or edit content

Add tutorials to wiki for:

  • High level: What the different content types are and how they are used
  • Editing an existing level
  • Adding new behavior to an existing level
  • Basic level creation
  • How to customize the music for a level
  • How to customize sounds for a level (?)
  • How to load existing content into a level (?)
  • How to compile a level
  • How to add a level to a level playlist (one of the difficulty-level .jmg scripts)
  • How to create 2D graphics and animation
  • How to compile a 2D graphic/animation into a mesh
  • How to use a new mesh in a level
  • The supported API exposed to scripts
  • How memory is shared between scripts and the Jumpman Zero engine
  • How to add new APIs to the Jumpman Zero engine for scripts to use

... plenty more. This should probably get split out into sub-issues.

Need command line compiler and compiler library

For an automated build we'll need to create a command line executable front-end for the script compiler

We'll also want to avoid duplicating code, so we'll split out the script compiler code into its own shared library, and have both the GUI script editor and the command line compiler front-end use that library.

JumpmanGraphics has hard-coded paths

The content creation application JumpmanGraphics has all its paths hardcoded to C:\Jump* directories.

This should at least use relative paths (current working directory?), and ideally would be user configurable.

Setup cross-platform build of new engine

  • Link against extlibs: SDL2, SDL2_image, OpenGL, FMOD, Lua, Sol2, glm, jsoncpp
  • Build game and copy assets so it will run straight out of build directory
  • Build test project (Catch - unit testing library) so that it will run straight out of build directory
  • Debug and release builds
  • Rebuild source files when headers they depend on change
  • Build all above on OSX
  • Build all above on Windows
  • Build all above on Linux
  • Build OSX app bundle

Track down missing resources

Might be impossible at this point, but there are some sources missing for some of the binary levels/(scripts too?) that are in the zip I have.

Maybe David Campbell has some backups?

Binaries?

Will binaries be made available? Actually I'm not sure if the project is runnable overall?

Content creation applications aren't upgraded for VS 2012 use

These content creation applications are in source control, but don't open and build cleanly in Visual Studio 2012:

  • JumpmanGraphics
  • JumpmanLevels
  • JumpmanScripting

These need to be opened, upgraded, have all warnings taken care of, and have their includes/build targets corrected.

Triangulate obj models with non-triangle faces on load

The wavefront obj loader in the new engine dumps all the vertices out for non-triangle faces (quads, etc), but not in any format the rest of the engine can handle. The rest of the engine assumes triangle meshes and doesn't have any face count data. There's no reason to make the rest of the engine support > 3 sided faces because it is going to pass triangles to OpenGL anyway.

None of our models have faces with more than three sides, so this is adding support, not really fixing a bug.

Game credits too hard to get to

There should be a Credits option from the main menu. This will require:

  • Get the main menu script working with a new compile.
  • Change the main menu script to display a Credits option
  • Change the main menu engine hooks to support loading the credits
    • Possibly make generic hooks so we don't have to make an explicit menu hook in the engine every time we change a menu script
  • Possibly separate credits into its own level so it can be shared between the ending level and the main menu, without the main menu displaying the ending cinematic

Get title screen menu to load and work with new engine

Requires the new engine to be capable of loading a level and running level scripts. Scripts need to support manipulating 3D graphics, getting and react to user input, but not any actual gameplay.

Requires porting/augmenting of title screen scripts to use Lua.

Need command line graphics renderer and renderer library

For an automated build we'll need to create a command line executable front-end for the graphics renderer.

We'll also want to avoid duplicating code, so we'll split out the renderer code into its own shared library, and have both the GUI graphics editor and the command line renderer front-end use that library.

JumpmanLevels has hard-coded paths

The content creation application JumpmanLevels has all its paths hardcoded to C:\Jump* directories.

This should at least use relative paths (current working directory?), and ideally would be user configurable.

Need command line level "renderer" and "renderer" library

For an automated build we'll need to create a command line executable front-end for the level "renderer"

We'll also want to avoid duplicating code, so we'll split out the level "renderer" code into its own shared library, and have both the GUI level editor and the command line "renderer" front-end use that library.

Wrong textures being used for level title/and game HUD overlay text

  • Remaining lives (in script source/title.jms) looks like it is supposed to be using data/panel.bmp
  • FPS display (in script source/title.jms) looks like it is supposed to be using data/panel.bmp
  • Level title (in script source/title.jms) looks like its supposed to be using data/titles.png

There also seems to be some duplicate display of remaining lives in source/title.jms, though I bet one of the renders very small, or off-screen.

They all seem to be using data/titles.png though, even though the game script specifies otherwise, and the global level loading code loads both textures and appends them to the end of the texture list. I wouldn't be surprised of the script were out of sync with the compiled script binary, if the math for texture selection is off, if the duplication in the remaining lives display is partially to blame, or if the switching of textures multiple times in the same script function somehow is hitting a last-one-wins scenario.

There will be some investigation required, and this will require that source/title.jms be set up so it can be edited, compiled, and the resulting binary be used in the game.

JumpmanScripting has hard-coded paths

The content creation application JumpmanScripting has all its paths hard-coded to C:\Jump* directories.

This should at least use relative paths (current working directory?), and ideally would be user configurable.

Need to combine all projects into one solution

For an automated build we need to be able to:

  • Build the script compiler
  • Compile the script assets
  • Compile graphics assets (.set files)?
  • Copy the compiled and non-compiled assets to the engine output directory
  • Compile the development tools
  • Create packages of both

This requires all these various projects to be combined into one solution file.

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.