{"id":18049625,"url":"https://github.com/iacobson/iveseenthings","last_synced_at":"2026-02-28T11:04:01.559Z","repository":{"id":186492840,"uuid":"675257515","full_name":"iacobson/iveseenthings","owner":"iacobson","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-17T10:21:39.000Z","size":3225,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T13:11:34.062Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iacobson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-06T10:17:08.000Z","updated_at":"2025-01-10T12:06:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d84827d-2f34-4800-b4d5-a7a8e29b27ea","html_url":"https://github.com/iacobson/iveseenthings","commit_stats":null,"previous_names":["iacobson/iveseenthings"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iacobson%2Fiveseenthings","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iacobson%2Fiveseenthings/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iacobson%2Fiveseenthings/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iacobson%2Fiveseenthings/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iacobson","download_url":"https://codeload.github.com/iacobson/iveseenthings/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217080,"owners_count":21066633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T21:08:17.764Z","updated_at":"2026-02-28T11:03:56.507Z","avatar_url":"https://github.com/iacobson.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# I've Seen Things (IST)\n\n\u003e [title attribution](https://en.wikipedia.org/wiki/Tears_in_rain_monologue)\n\n**I've Seen Things** is a multiplayer browser game implemented in [Elixir](https://elixir-lang.org/), [Phoenix LiveView](https://www.phoenixframework.org/) and [Surface](https://surface-ui.org/getting_started) using the [Ecspanse](https://hexdocs.pm/ecspanse/Ecspanse.html) library. The terminal graphics are done with the [tuicss](https://github.com/vinibiavatti1/TuiCss/wiki/Getting-Started) package.\n\nThe game is currenly deployed on [fly.io](https://fly.io) and can be played [HERE](https://iveseenthings.fly.dev/).\n\n![ist](./priv/static/images/ist.gif)\n\n**Disclaimer!** While the game is playable, you should not take it too seriously. It was mainly used as a playground while developing the [Ecspanse](https://hexdocs.pm/ecspanse/Ecspanse.html) library. It aims to implement a paper-rock-scissors style game with 3 offensive and 3 defensive operations. However, it is not really balanced at this point.\n\nIt's main purpose is to act as a demo for the library and to show how to use it in a real world application. As it was built together with the library it has a lot of rough edges. But it can still display a lot of the library's use cases.\n\n## The Game\n\nThe game is a multiplayer space combat game. It is a free for all style game. It features also 100 bots acting as enemise when there are no other players online.\n\nYou can perform 3 offensive and 3 defensive operations.\n\nThe offensive operations are:\n\n- fire laser\n- fire railgun\n- fire missile\n\nThe defensive operations are:\n\n- activate shiled\n- perform evasive maneuver\n- spawn defense drone\n\nEach action consumes energy. The energy regenerates orver time.\n\n## Runng the Project Locally\n\n### Secrets\n\nCreate a `dev.secret.exs` file in the `config` directory with the following content:\n\n```elixir\nimport Config\nconfig :iveseenthings, :basic_auth, username: \"user\", password: \"password\"\n```\n\nThis is needed to access the live dashboard locally.\n\n### Phoenix Server\n\nTo start your Phoenix server:\n\n- Install dependencies with `mix deps.get`\n- Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiacobson%2Fiveseenthings","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiacobson%2Fiveseenthings","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiacobson%2Fiveseenthings/lists"}