Giter VIP home page Giter VIP logo

metal-game-engine-tutorial's Introduction

2etime Game Engine

Hello, world! Welcome to the 2etime Game Engine Repository. Here you will find all of the source code from my past tutorials on youtube. https://www.youtube.com/2etime


Getting Started

In order to run the code, all you really need is x-code. Simply find the project you want to run and double click the .xcodeproj file. This will open up the entire project, where you can view, edit, and hell even optimize the engine.

I have listed all of the project files from each episode of the tutorial at the bottom of this readme.

Folder Structure

  • BuildAlong:

    • Random Code Projects I do with the tutorials via streaming.
  • Community:

    • For you to add cool projects to and share with others.
  • Full Current Project:

    • The latest episodes code. Should be up to date with the last episode I did on the series.
  • Helpful Files:

    • Files I have done in the series (keynotes, cheatsheets, etc)
  • Playcode:

    • A place for me to put random work I am doing for you to learn with.

Built With


Contributing

Since this is an ongoing tutorial series, it wouldn't really make sense for you to contribute to the episode files.

However, if you use the engine to build out something badass... Feel free to add that to the Community folder, and submit a Pull Request. If it is something really cool, I may even feature it in one of my tutorials :)


Authors

  • Rick Twohy - The Tutorial - ME

License

None. Feel free to use it anywhere. I do not care. If you want to put my name in there somewhere, cool! If you don't, cool! This is for everyone to learn / use.


All Project File Locations (Each in an individual branch for easier downloading of the code)

metal-game-engine-tutorial's People

Contributors

twohyjr avatar

Stargazers

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

Watchers

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

metal-game-engine-tutorial's Issues

Minor Suggestion for MetalTypes

While going over your code to figure out a better design for my ToyEngine for learning Swift/Metal. I was looking over your sizeable protocol (a solid idea), and noticed that I had a usecase where I wanted to apply it to Int as well. It took a little wrangling, but sorted out how it could be accomplished and extended for any Scalar.

I didn't make this a PR as you had mentioned you weren't too keen on them in one of your videos, but wanted to share this in case you found a need for different Scalar in the future.

What exists today:

public typealias float2 = SIMD2<Float>
public typealias float3 = SIMD3<Float>
public typealias float4 = SIMD4<Float>
...
extension float2: sizeable { }
extension float3: sizeable { }
extension float4: sizeable { }

With some generic magic you could cover all types beyond just Float:

private typealias simd2<T>  = SIMD2<T> where T: SIMDScalar
private typealias simd3<T>  = SIMD3<T> where T: SIMDScalar
private typealias simd4<T>  = SIMD4<T> where T: SIMDScalar
...
extension simd2: sizeable { }
extension simd3: sizeable { }
extension simd4: sizeable { }

From there I'm just using the other aliases that are already provided already:

print(simd_float3.size)
print(simd_int2.stride)

Thanks for making some great videos!

Collision Detection

Hey Rick!

Awesome content and code, very inspiring for the indie game I am developing.
I am interested to see collision detection. How would you implement it? Would you integrate with Model.IO library?

Again, fantastic knowledge shared here. Thank you!

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.