diff --git a/README.md b/README.md index 2a5e348..3f943cf 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,33 @@ Creating a multiplayer first-person-shooter in pure Ruby; Using C extensions onl ![screenshot](https://raw.githubusercontent.com/cyberarm/i-mic-fps/master/screenshots/screenshot-game.png) ## Using -Requires a Ruby runtime that supports the gosu and opengl-bindings C-extensions (truffleruby 1.0.0-rc12 did not work when tested. Rubinus was not tested.) +Ruby 2.5+ 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 diff --git a/lib/ui/menus/main_menu.rb b/lib/ui/menus/main_menu.rb index 32179d6..dca0e23 100644 --- a/lib/ui/menus/main_menu.rb +++ b/lib/ui/menus/main_menu.rb @@ -8,7 +8,7 @@ class IMICFPS end link "Multiplayer" do - push_state(MultiplayerLobbyMenu) + push_state(MultiplayerMenu) end link "Settings" do @@ -19,7 +19,7 @@ class IMICFPS push_state(ExtrasMenu) end - link "Exit Game" do + link "Quit" do window.close end diff --git a/lib/ui/menus/multiplayer_menu.rb b/lib/ui/menus/multiplayer_menu.rb index ce7fd4e..bbfd6b8 100644 --- a/lib/ui/menus/multiplayer_menu.rb +++ b/lib/ui/menus/multiplayer_menu.rb @@ -4,8 +4,13 @@ class IMICFPS title IMICFPS::NAME subtitle "Multiplayer" - link "Online" - link "LAN" + link "Quick Join" + link "Server Browser" do + push_state(MultiplayerServerBrowserMenu) + end + link "Profile" do + push_state(MultiplayerProfileMenu) + end link "Back" do pop_state end diff --git a/lib/ui/menus/multiplayer_profile_menu.rb b/lib/ui/menus/multiplayer_profile_menu.rb new file mode 100644 index 0000000..4338d1d --- /dev/null +++ b/lib/ui/menus/multiplayer_profile_menu.rb @@ -0,0 +1,51 @@ +class IMICFPS + class MultiplayerProfileMenu < Menu + def setup + label "Profile", text_size: 100, color: Gosu::Color::BLACK + + flow(width: 1.0, height: 1.0) do + stack(width: 0.25, height: 1.0) do + button "Edit Profile", width: 1.0 + button "Log Out", width: 1.0 + button "Back", width: 1.0, margin_top: 64 do + pop_state + end + end + stack(width: 0.5, height: 1.0) do + flow(width: 1.0, padding: 4) do + background 0x88_222222 + + image "#{GAME_ROOT_PATH}/static/logo.png", width: 64 + + stack do + label "[Clan TAG] Username", text_size: 36 + label "\"Title Badge Thingy\"" + end + end + + flow(margin_top: 4, margin_right: 4) do + stack do + label "Kiil/Death Ratio" + label "Kills" + label "Deaths" + label "Assists" + label "Buildings Destroyed" + label "Vehicles Destroyed" + label "Repair Points" + end + + stack do + label "0.72" + label "21" + label "28" + label "14" + label "111" + label "41" + label "4,451" + end + end + end + end + end + end +end \ No newline at end of file diff --git a/lib/ui/menus/multiplayer_lobby_menu.rb b/lib/ui/menus/multiplayer_server_browser_menu.rb similarity index 93% rename from lib/ui/menus/multiplayer_lobby_menu.rb rename to lib/ui/menus/multiplayer_server_browser_menu.rb index 61647c0..5489d1f 100644 --- a/lib/ui/menus/multiplayer_lobby_menu.rb +++ b/lib/ui/menus/multiplayer_server_browser_menu.rb @@ -1,5 +1,5 @@ class IMICFPS - class MultiplayerLobbyMenu < Menu + class MultiplayerServerBrowserMenu < Menu def setup @sample_games = [ { @@ -28,13 +28,13 @@ class IMICFPS } ] - label "Multiplayer Lobby", text_size: 100 + label "Server Browser", text_size: 100 flow width: 1.0, height: 1.0 do stack width: 0.25 do button "Host Game", width: 1.0 button "Direct Connect", width: 1.0 - button "Back", width: 1.0 do + button "Back", width: 1.0, margin_top: 64 do pop_state end end