Giter Site home page Giter Site logo

vpin's Introduction

vpin

Rust library for the visual/virtual pinball ecosystem

https://crates.io/crates/vpin

Join #vpxtool on "Virtual Pinball Chat" discord for support and questions.

Documentation

https://docs.rs/vpin

Example code

Check the examples folder

Projects using vpin

https://github.com/francisdb/vpxtool

Other links

Running the integration tests

We expect a folder ~/vpinball/tables to exist that contains a lot of vpx and directb2s files. The tests will recursively search for these files and run the tests on them.

cargo test --release -- --ignored --nocapture

Making a release

We use https://github.com/MarcoIeni/release-plz which creates a release pr on every commit to master

vpin's People

Contributors

dependabot[bot] avatar francisdb avatar github-actions[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

alexey-ayupov

vpin's Issues

Extracted format: use ini field names?

We probably want the json field names to match the ini file?

eg

[DefaultProps\Light]
Falloff = 
FalloffPower = 
LightState = 
TimerEnabled = 
TimerInterval = 
Color = 
ColorFull = 
...

unhandled tag BRST

Indexing tables/Humpty Dumpty (Gottleb 1947)/Humpty Dumpty (Gottlieb 1947)v2_1.vpx
unhandled tag BRST 4 bytes

Extract dedupe obj files?

This is just an idea:

Can we de-duplicate the obj files by having them all point to the same file?

Extracted format: very big folders

All gameitems are in a single folder
The github gui can't handle that and stops after 1000 items

Options:

  • folder by type, probably not enough
  • animation files in subfolder
  • using something else than obj, but keep the obj option?

    I would say that vpx import/export for 3D model is also largely deprecated (wavefront obj). gltf/fbx are more used nowadays

  • add more here

Extracted: link meshes with textures

possible related to #42
Wevefront files can however have materials.

Maybe more a specific feature to extract a single mesh will related texture.
eg: vpxtool vpx extract gameitem x gltf test.vpx

Check function

That does general checks on the table

Some of these things might be caused by editing the file using vpxtool and might not actually be possible in the editor
Some of these might be more related to and extracted table

  • duplicate sounds
  • references to sounds that don't exist
  • references to images that don't exist (warning this one is case insensitive but we might still report casing issues on the lowest level)
  • references to materials that don't exist
  • missing table info
  • maximum object name length vpinball/vpinball#1706
  • duplicates in images
  • duplicates in meshes (currently there is difference in mesh vs mesh instance)
  • extreme values that might cause artifacts, eg reflection of playfield > .2
  • old bmp images
  • suggest webp
  • missing fonts
  • unrecognized enum values
  • mixed or non CRLF line endings in the script

Check what checks the vpinball audit performs
vpinball/vpinball#1502

Harder as we need to parse the code

  • find unused images
  • find referenced objects that don't exist vpinball/vpinball#1706
  • find old deprecated calls
  • suggest Option Explicit and Randomize

see also vpinball/vpinball#1706

Extracted: Improve image json format

See if we can get rid of the width / height fields
See if we can just detect .bmp files and not require different json compared to other formats.

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.