https://github.com/cyberarm/i-mic-fps
Creating a multiplayer FPS in Ruby
https://github.com/cyberarm/i-mic-fps
first-person-game gosu multiplayer opengl ruby
Last synced: 2 months ago
JSON representation
Creating a multiplayer FPS in Ruby
- Host: GitHub
- URL: https://github.com/cyberarm/i-mic-fps
- Owner: cyberarm
- Created: 2018-12-12T01:51:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-09T13:27:02.000Z (about 2 years ago)
- Last Synced: 2025-01-14T12:29:12.375Z (over 1 year ago)
- Topics: first-person-game, gosu, multiplayer, opengl, ruby
- Language: Ruby
- Homepage: https://i-mic.cyberarm.dev/wiki/fps
- Size: 21 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README



# I-MIC FPS

Creating a multiplayer first-person-shooter in pure Ruby; Using C extensions only for Rendering, Sound, and Input. ([Gosu](https://libgosu.org) and [opengl-bindings](https://github.com/vaiorabbit/ruby-opengl/))

## Using
Ruby 3.0+ interpeter with support for the Gosu game library C extension.
* Clone or download this repo
* `bundle install`
* `bundle exec ruby i-mic-fps.rb [options]`
### System Requirements
| Minimum | |
| :------ | ----------------------: |
| OS | Windows 10 or GNU/Linux |
| CPU | Intel Core i5-3320M |
| RAM | 512 MB |
| GPU | OpenGL 3.30 Capable |
| Storage | To Be Determined |
| Network | To Be Determined |
| Display | 1280x720 |
| Recommended | |
| :---------- | ----------------------------: |
| OS | Windows 10 or GNU/Linux |
| CPU | AMD Ryzen 5 3600 |
| RAM | 1 GB+ |
| GPU | AMD Radeon RX 5700 XT |
| Storage | To Be Determined (< 4 GB) |
| Network | Broadband Internet Connection |
| Display | 1920x1080 60Hz |
Note: Recommended CPU and GPU are those of the primary development system and are overkill at this point.
### Options
* `--native` - Launch in fullscreen using primary displays resolution
* `--profile` - Run ruby-prof profiler
* `--mesa-override` - (Linux) Force MESA to use OpenGL/GLSL version 3.30
* `--savedemo` - Record camera movement and key events to playback later *(alpha-quality feature)*
* `--playdemo` - Plays the previously recorded demo *(alpha-quality feature)*