arcomage-hd
Web-based, free and open source, remastered 3D clone of 3DO/NWC's 2000 card game Arcomage. 14 languages. Desktop or mobile Android iOS. Online or offline PWA. Against AI or Multiplayer (P2P, no server). 🧝👾🃏 (ts+react+redux+rxjs, CSS-based anim, WebRTC)
Stars: 143
ArcoMage HD is a web-based, free and open source, remastered 3D clone of 3DO and New World Computing's 2000 PC card game, Arcomage, featured in the Might and Magic RPG series. This non-profit fan remake brings the classic tower defense and resource management fantasy game to modern platforms. It is fully responsive, supporting desktop, tablet, and mobile devices, and includes comprehensive accessibility features for users with disabilities. The game is playable offline as a PWA and offers both Single Player Mode against computer AI and Multiplayer Mode. Developed by @tomchen using TypeScript, React, Redux, redux-observable, RxJS, CSS animations, and WebRTC.
README:
ArcoMage HD is a web-based, free and open source, remastered 3D clone of 3DO and New World Computing's 2000 PC card game, Arcomage, which was featured in the Might and Magic RPG series.
This non-profit fan remake brings the classic tower defense and resource management fantasy game to modern platforms, and is developed by @tomchen using TypeScript, React, Redux, redux-observable, RxJS, CSS animations, and WebRTC (see § Development). If you enjoy the game, please support me by starring the repository or following me on GitHub.
ArcoMage HD is available in 14 languages: English, French, German, Simplified Chinese, Traditional Chinese, Spanish, Italian, Russian, Czech, Polish, Brazilian Portuguese, Japanese, Ukrainian, and Arabic (with RTL support). (§ Translation Credits)
It's compatible with the latest versions of
and other modern browsers.
The game is fully responsive, supporting desktop, tablet, and mobile devices 🖥️💻📱. As a PWA, you can install it and play offline. It is fully controllable with mouse, touch device, keyboard, or gamepad 🖱️📱⌨️🎮, and includes comprehensive accessibility features for users with disabilities.
By default, you'll play against the computer AI 🤖 in Single Player Mode. You can also switch to Multiplayer Mode 🧑🤝🧑.
Click to view the game rules in text format
Victory conditions vary per tavern. Build your tower, destroy your opponent's tower, or collect enough resources before your opponent does.
Large yellow numbers in column are the productions. This is how many new units of a particular resource you will receive on your next turn. Small black numbers in column are the resources. This is how many units you have available to spend on your current turn.
Cards: Each have their own cost to play, indicated in a small circle in the lower right corner of the card. The cost will be deducted from your resources according to the color of the card. Left click on a card plays the card. Right click on a card to discard without playing.
Red represents your Quarry Generator which produces your Brick 🧱 resources, blue represents your Magic Generator which produces Gem 💎 resources, green represents your Dungeon (aka. Zoo) generator which produces Recruit (aka. Beast) 🐲 resources.
The image and sound files, along with your card and language settings, are automatically stored in your browser. Additionally, you can install this "Progressive Web App" (PWA) on your computer or smartphone. For installation instructions, please refer to Google Chrome's guide and Mozilla's guide.
Depending on your browser, you may need to press Ctrl + F5 to clear the cache and reload the arcomage.github.io webpage to ensure you're using the latest version of the game.
The game is fully controllable using either a mouse, touch device, keyboard, or gamepad (click these links to view detailed instructions).
The game is fully compatible with and easy to use with a screen reader. You can also disable animations in the graphics settings if desired.
https://user-images.githubusercontent.com/529949/115864733-941cbd00-a437-11eb-955d-f6a341c8ea64.mp4
- Both players enable "Multiplayer" Mode (click the gear ⚙️ icon in the game to open the "Preferences" window)
- Bob 🧝 must copy and share his ID with Alice 👧 via Discord, forums, etc.
- Alice 👧 enters Bob 🧝's ID and connects to him
- Alice 👧 becomes the host 🏠 (her computer deals the cards), and Bob 🧝 is the guest 💼
Note: Multiplayer Mode may not function if both players are behind symmetric NAT. You can test if you're behind "bad", symmetric NAT.
Click to show technical details
In Multiplayer Mode, the game establishes a direct Peer-to-Peer (P2P) connection with the opponent, eliminating the need for a central server. However, it still relies on free public STUN servers (provided by Google and others) and a signaling server (via PeerJS) for peer discovery and exchanging connection details. Once the connection is established, players communicate directly without requiring any servers.
The game doesn't use any servers, so there isn't a central "list of online players" for easy matchmaking. Instead, you must share your ID with your opponent through platforms like Discord.
For more details, see WebRTC (Web Real-Time Communication) and PeerJS library.
Currently, since the game doesn't use a TURN server, it cannot connect two users who are both behind symmetric NAT (a rare scenario).
If you're experiencing performance issues while running the game, or if the game doesn't run at all in your browser (likely an older or non-major browser), you can refer to the troubleshooting guide. It includes a list of tested browsers that are known to run the game without major issues. Additionally, you may consider installing the Windows Desktop Version of the game (click to download), though please note that the current desktop version is not recommended in most cases.
If you encounter any issues, please open an issue.
The stack :
(Used in ≤1.4.x but not in 1.5+:
)
TypeScript + React + Redux + redux-observable + RxJS. PWA (using Workbox).
The game doesn't use rAF (except for a few cases), WebGL, or <canvas> at all. Instead, it relies on DOM and CSS-based animations, which can improve SEO and accessibility, while making it feel more like a "standard web app." While CSS animations may not perform as well as <canvas>, they still provide excellent performance on Blink-based browsers on modern devices.
With WebRTC (using PeerJS), the game features P2P Multiplayer Mode without a server, utilizing only STUN servers and a signaling server (via PeerJS) for peer discovery and connection establishment.
It also supports stereo sound, WebP and SVG images, with images upscaled using Real-ESRGAN. Card text is extracted using the OCR library tesseract.js.
Developer scripts and tools are located in the tools folder. For more details, see the development notes, changelog, and the scripts section in package.json.
-
Cards: Extracted from Might and Magic VIII & VI original games (or translated/retranslated) by:
- English (
en): Black Rabite on GameFAQs - Russian (
ru) (retranslated): rayburn - Simplified Chinese (
zh-Hans): (extracted) Liar-zzy, (fixed/retranslated) Tom Chen - Polish (
pl) (retranslated): acidcave - Czech (
cs): Yym - Brazilian Portuguese (
pt-BR) (translated): mateuscv - Ukrainian (
uk) (translated): troyane - Japanese (
ja) (translated): Tom Chen with help from Google Translate & DeepL - Arabic (
ar) (translated): Tom Chen with help from Google Translate - All others: Tom Chen with OCR tool tesseract.js & other scripts
- Traditional Chinese (
zh-Hant): Converted fromzh-Hansby Tom Chen using his scripts and opencc-js
- English (
-
Main string translators (some from the original games):
- Russian (
ru): rayburn - Polish (
pl): (partially by) Plamcia - Brazilian Portuguese (
pt-BR): mateuscv - Ukrainian (
uk): troyane - All others: Tom Chen by himself and/or with help from Google Translate & DeepL
- Traditional Chinese (
zh-Hant): Converted fromzh-Hansby Tom Chen using his scripts and opencc-js
- Russian (
-
Taverns: Extracted from Might and Magic VIII & VI original games by Tom Chen using his script. Except for:
- Brazilian Portuguese (
pt-BR) (translated): mateuscv - Japanese (
ja) (translated): Tom Chen with help from Google Translate & DeepL - Arabic (
ar) (translated): Tom Chen with help from Google Translate - Ukrainian (
uk) (translated): troyane
- Brazilian Portuguese (
See also I18N Issue Page
Arcomage was initially developed by Stickman Games and later sold to The 3DO Company (3DO). The game appeared as a mini-game in Might and Magic VII: For Blood and Honor (MM7) and Might and Magic VIII: Day of the Destroyer (MM8), the seventh and eighth games in New World Computing (NWC)'s Might and Magic (MM) series. (It's similar to Gwent in The Witcher.) NWC and its parent company, 3DO, also released a standalone version in 2000, which can be played in single-player or multiplayer mode. The original standalone Arcomage has a resolution of 800 x 600 pixels and works in 16-bit color mode on Windows 10, but the graphics are unstable.
The code for the ArcoMage HD game: MIT License (c) Tom Chen.
The assets, text, appearance, and other copyrightable elements of the game: (c) 2001 The 3DO Company.
See the CREDIT.md file for a detailed presentation of the copyright status, licenses, and credits for the game's components.
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for arcomage-hd
Similar Open Source Tools
arcomage-hd
ArcoMage HD is a web-based, free and open source, remastered 3D clone of 3DO and New World Computing's 2000 PC card game, Arcomage, featured in the Might and Magic RPG series. This non-profit fan remake brings the classic tower defense and resource management fantasy game to modern platforms. It is fully responsive, supporting desktop, tablet, and mobile devices, and includes comprehensive accessibility features for users with disabilities. The game is playable offline as a PWA and offers both Single Player Mode against computer AI and Multiplayer Mode. Developed by @tomchen using TypeScript, React, Redux, redux-observable, RxJS, CSS animations, and WebRTC.
amica
Amica is an application that allows you to easily converse with 3D characters in your browser. You can import VRM files, adjust the voice to fit the character, and generate response text that includes emotional expressions.
screenpipe
24/7 Screen & Audio Capture Library to build personalized AI powered by what you've seen, said, or heard. Works with Ollama. Alternative to Rewind.ai. Open. Secure. You own your data. Rust. We are shipping daily, make suggestions, post bugs, give feedback. Building a reliable stream of audio and screenshot data, simplifying life for developers by solving non-trivial problems. Multiple installation options available. Experimental tool with various integrations and features for screen and audio capture, OCR, STT, and more. Open source project focused on enabling tooling & infrastructure for a wide range of applications.
liboai
liboai is a simple C++17 library for the OpenAI API, providing developers with access to OpenAI endpoints through a collection of methods and classes. It serves as a spiritual port of OpenAI's Python library, 'openai', with similar structure and features. The library supports various functionalities such as ChatGPT, Audio, Azure, Functions, Image DALL·E, Models, Completions, Edit, Embeddings, Files, Fine-tunes, Moderation, and Asynchronous Support. Users can easily integrate the library into their C++ projects to interact with OpenAI services.
yolo-ios-app
The Ultralytics YOLO iOS App GitHub repository offers an advanced object detection tool leveraging YOLOv8 models for iOS devices. Users can transform their devices into intelligent detection tools to explore the world in a new and exciting way. The app provides real-time detection capabilities with multiple AI models to choose from, ranging from 'nano' to 'x-large'. Contributors are welcome to participate in this open-source project, and licensing options include AGPL-3.0 for open-source use and an Enterprise License for commercial integration. Users can easily set up the app by following the provided steps, including cloning the repository, adding YOLOv8 models, and running the app on their iOS devices.
AIMr
AIMr is an AI aimbot tool written in Python that leverages modern technologies to achieve an undetected system with a pleasing appearance. It works on any game that uses human-shaped models. To optimize its performance, users should build OpenCV with CUDA. For Valorant, additional perks in the Discord and an Arduino Leonardo R3 are required.
chat-xiuliu
Chat-xiuliu is a bidirectional voice assistant powered by ChatGPT, capable of accessing the internet, executing code, reading/writing files, and supporting GPT-4V's image recognition feature. It can also call DALL·E 3 to generate images. The project is a fork from a background of a virtual cat girl named Xiuliu, with removed live chat interaction and added voice input. It can receive questions from microphone or interface, answer them vocally, upload images and PDFs, process tasks through function calls, remember conversation content, search the web, generate images using DALL·E 3, read/write local files, execute JavaScript code in a sandbox, open local files or web pages, customize the cat girl's speaking style, save conversation screenshots, and support Azure OpenAI and other API endpoints in openai format. It also supports setting proxies and various AI models like GPT-4, GPT-3.5, and DALL·E 3.
autogen
AutoGen is a framework that enables the development of LLM applications using multiple agents that can converse with each other to solve tasks. AutoGen agents are customizable, conversable, and seamlessly allow human participation. They can operate in various modes that employ combinations of LLMs, human inputs, and tools.
OutofFocus
Out of Focus v1.0 is a flexible tool in Gradio for image manipulation through prompt manipulation by reconstruction via diffusion inversion process. Users can modify images using this tool, which is the first version of the Image modification tool by Out of AI.
AgentGPT
AgentGPT is a platform that allows users to configure and deploy autonomous AI agents. Users can name their own custom AI and set it on any goal. The AI will think of tasks, execute them, and learn from the results to reach the goal. The platform provides a demo experience, automatic setup CLI, and a tech stack including Next.js, FastAPI, Prisma, TailwindCSS, Zod, and more. AgentGPT is designed to help users easily create and deploy AI agents for various tasks.
TEN-Agent
TEN Agent is an open-source multimodal agent powered by the world’s first real-time multimodal framework, TEN Framework. It offers high-performance real-time multimodal interactions, multi-language and multi-platform support, edge-cloud integration, flexibility beyond model limitations, and real-time agent state management. Users can easily build complex AI applications through drag-and-drop programming, integrating audio-visual tools, databases, RAG, and more.
omnihuman
OmniHuman is an AI model designed to understand humanoids and text. It provides functionalities to process images and videos, generating text descriptions for human actions depicted in the visual content. The tool offers support for various tasks related to human pose recognition and action understanding. Users can easily integrate OmniHuman into their projects to enhance the capabilities of their applications in recognizing and interpreting human actions in images and videos.
LMCache
LMCache is a serving engine extension designed to reduce time to first token (TTFT) and increase throughput, particularly in long-context scenarios. It stores key-value caches of reusable texts across different locations like GPU, CPU DRAM, and Local Disk, allowing the reuse of any text in any serving engine instance. By combining LMCache with vLLM, significant delay savings and GPU cycle reduction are achieved in various large language model (LLM) use cases, such as multi-round question answering and retrieval-augmented generation (RAG). LMCache provides integration with the latest vLLM version, offering both online serving and offline inference capabilities. It supports sharing key-value caches across multiple vLLM instances and aims to provide stable support for non-prefix key-value caches along with user and developer documentation.
aimeos
Aimeos is a full-featured e-commerce platform that is ultra-fast, cloud-native, and API-first. It offers a wide range of features including JSON REST API, GraphQL API, multi-vendor support, various product types, subscriptions, multiple payment gateways, admin backend, modular structure, SEO optimization, multi-language support, AI-based text translation, mobile optimization, and high-quality source code. It is highly configurable and extensible, making it suitable for e-commerce SaaS solutions, marketplaces, and various cloud environments. Aimeos is designed for scalability, security, and performance, catering to a diverse range of e-commerce needs.
quickvid
QuickVid is an open-source video summarization tool that uses AI to generate summaries of YouTube videos. It is built with Whisper, GPT, LangChain, and Supabase. QuickVid can be used to save time and get the essence of any YouTube video with intelligent summarization.
llama-assistant
Llama Assistant is an AI-powered assistant that helps with daily tasks, such as voice recognition, natural language processing, summarizing text, rephrasing sentences, answering questions, and more. It runs offline on your local machine, ensuring privacy by not sending data to external servers. The project is a work in progress with regular feature additions.
For similar tasks
arcomage-hd
ArcoMage HD is a web-based, free and open source, remastered 3D clone of 3DO and New World Computing's 2000 PC card game, Arcomage, featured in the Might and Magic RPG series. This non-profit fan remake brings the classic tower defense and resource management fantasy game to modern platforms. It is fully responsive, supporting desktop, tablet, and mobile devices, and includes comprehensive accessibility features for users with disabilities. The game is playable offline as a PWA and offers both Single Player Mode against computer AI and Multiplayer Mode. Developed by @tomchen using TypeScript, React, Redux, redux-observable, RxJS, CSS animations, and WebRTC.
freeciv-web
Freeciv-web is an open-source turn-based strategy game that can be played in any HTML5 capable web-browser. It features in-depth gameplay, a wide variety of game modes and options. Players aim to build cities, collect resources, organize their government, and build an army to create the best civilization. The game offers both multiplayer and single-player modes, with a 2D version with isometric graphics and a 3D WebGL version available. The project consists of components like Freeciv-web, Freeciv C server, Freeciv-proxy, Publite2, and pbem for play-by-email support. Developers interested in contributing can check the GitHub issues and TODO file for tasks to work on.
For similar jobs
air-light
Air-light is a minimalist WordPress starter theme designed to be an ultra minimal starting point for a WordPress project. It is built to be very straightforward, backwards compatible, front-end developer friendly and modular by its structure. Air-light is free of weird "app-like" folder structures or odd syntaxes that nobody else uses. It loves WordPress as it was and as it is.
AirPower4T
AirPower4T is a development base library based on Vue3 TypeScript Element Plus Vite, using decorators, object-oriented, Hook and other front-end development methods. It provides many common components and some feedback components commonly used in background management systems, and provides a lot of enums and decorators.
Juggle
Juggle is a low-code tool for interface orchestration, which can quickly orchestrate simple APIs into a complex interface. The orchestrated interface can be directly used by the front end, greatly improving development efficiency and reducing development costs.
enterprise-commerce
Enterprise Commerce is a Next.js commerce starter that helps you launch your high-performance Shopify storefront in minutes, not weeks. It leverages the power of Vector Search and AI to deliver a superior online shopping experience without the development headaches.
ai2html
ai2html is an open-source script for Adobe Illustrator that converts your Illustrator documents into html and css.
nlux
nlux is an open-source Javascript and React JS library that makes it super simple to integrate powerful large language models (LLMs) like ChatGPT into your web app or website. With just a few lines of code, you can add conversational AI capabilities and interact with your favourite LLM.
ui
Leafer UI is a colorful UI drawing framework developed based on Leafer, which can be used to combine AI drawing and generate interfaces. It provides commonly used UI drawing components and out-of-the-box functions, which is convenient for data exchange with products such as Figma and Sketch, and provides unified and rich interactive events for cross-platform development, such as drag, rotate, and zoom gestures. 1.0.0-rc.21 has been released 🎉🎉🎉, check the changelog. At present, the product has gradually stabilized, and the official version is coming soon. Thanks to all the friends who participated~ If you want to start using it right away, please check the quick installation. If you have any questions or suggestions, you can submit them here or join the technical exchange group. If you only need drawing functions, the lighter leafer-draw (46KB min+gzip) is recommended. 🌟 Remember to go to GitHub / Gitee to light up your little stars ✨ ✨ ✨


