Giter Site home page Giter Site logo

tyra's Introduction

Codacy Badge Contributors MIT License Discord Discord


Logo

Tyra

Open source game engine for PlayStation 2™
Showcase video »   YouTube tutorials »  

Report Bug · Request Feature

Table of Contents

About the Project

Sample code Sample game


Description

Tyra is a project that allows you to easily create games for the PlayStation 2 console.
When I tried to make a game for PS2 a few years ago, I realized how many things had to be done to tame this exotic console architecture. Decision was simple - I need to create an engine which will handle 3D file loading, 2D/3D rendering, animation, audio, handling between PS2 CPUs, synchronization.. It should be simple as possible - so people with no experience can create a simple game in a few hours.
And that's what Tyra is all about.

Tutorials


  • 01 - Code - Hello world
  • 02 - Code - 2D rendering
  • 03 - Code - 3D minecraft blocks
  • 04 - Code - de_dust2.obj rendering
  • 05 - Code - 3D animation
  • 06 - Code - Background music and sound effects
  • 07 - Code - Static lightmap and dynamic directional lights
  • 08 - Code - Skybox and debug rendering
  • 09 - Code - Manual rendering (a'la OpenGL)
  • 10 - Code - Sprite sheet (font)
  • 11 - Code - Texture repeating
  • Demo game - Code

Features

  • Docker image with Tyra, all tools and PS2DEV C++20 compiler
  • 3D rendering via VU1 coprocessor:
    • Static rendering
    • Morph animation rendering
    • Super optimized, custom minecraft block renderer
    • Debug rendering (lines, boxes, bboxes)
    • Manual rendering (a'la OpenGL)
  • 2D rendering
  • Frustum culling:
    • Simple - culling whole mesh
    • Precise - culling only visible parts of mesh
  • Clipping:
    • Standard "fake", but fast PS2 clipping done in VU1
    • Software clipping done in EE Core
  • Optimized math functions via VU0 coprocessor
  • Background music and sound effects support
  • Pad support
  • USB support
  • Memory card support
  • .wav Audio file support
  • .obj 3D file support
  • .md2 3D file support
  • .png Texture file support

Contributing

See the open issues for a list of proposed features (and known issues).

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/amazing-feature)
  3. Commit your Changes (git commit -m 'Add some amazing-feature')
  4. Push to the Branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Games

List of games developed with Tyra.
If you created one, please contact me - I will add it to the list :)

License

Distributed under the Apache License 2.0 License. See LICENSE for more information.

Built With

Acronyms

  • EE (Emotion Engine) - whole set of processors and subsystems that make up the PlayStation 2
  • EE Core - main PS2 CPU (c++ done here)
  • GS (Graphic synthesizer) - configurable rasterizer and texture mapper. Has only 2MB~ memory for textures, but for the opposite have very high transfer rate, so you can switch textures in the blink
  • VU0 - programmable (ASM) vector processor that is accessed by inline assembly code injected into C program.
  • VU1 - programmable (ASM) vector processor, which is similar to vertex shader. Accessed via DMA.
  • IOP - I/O processor which enables access to peripheral devices, such the game controller

Credits

Without these guys, Tyra would not happen:

Project Link: https://github.com/h4570/tyra
Sandro Sobczyński - [email protected]
LinkedIn


Logo

tyra's People

Contributors

h4570 avatar foxar avatar wellinator avatar wolf3s avatar gdqr avatar israpps avatar dooskington avatar nicholas477 avatar sinan-karakaya avatar freebytego avatar

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.