A 3D client for the MMORTS Screeps.com
To build a 3D client for Screeps.
It has a fairly solid foundation so that if anyone wants to contribute to it, it is at a good point. There is a websocket/http client that could be fleshed out more but has all the basic functionality. There is a solid system for rendering rooms/objects. At the moment the project is organized into two systems:
- ScreepsAPI - HTTP/Websocket client for communicating with the server
- Screeps3D - Login, WorldView, RoomView, etc.
It would be ideal to keep these two separate, so that the ScreepsAPI can be exported as a package for use in other screeps/unity3D projects.
Scroll to the bottom for a feature comparison with official clients
Here are the major areas that we would like to tackle next:
Get it working with private serversRespawn / Placing spawnPlacing construction sites- Gameplay options like hotkeys, camera controls, console colors, etc.
Finish model set for room objectsRendering roadsRendering creeps (new model with player icon downloaded and assigned as texture)- Rendering creep, tower, link, etc. actions (particle systems are an excellent way to make these visually appealing)
Creep Say (I'm imagining a floating text that appears above their heads and drifts up to eventually disappear)Figure out the best way to subscribe/unsubscribe from rooms, fog of war, etc.Visualize nukes flying from source to target room (#58)
Want to try the client?
Download a release from the release page
-
Official client needs an auth token https://docs.screeps.com/auth-tokens.html
-
Private server needs two mods.
- screepsmod-auth Allows users to assign a password and authenticate
- screepsmod-admin-utils Support for a lot of official endpoints, some new ones and aditional utility features
-
Currently you need to press the "Save" button to connect to allow it to persist credentials, will be reworked later.
The Project is built using Unity and C# so the following software is required to run it.
- Visual Studio 2019 Community Edition
- Unity 2020.2.1f1
- Blender 2.8
- If no models are showing up, you need to install blender, .blend files are used in unity
- Models might take a while before showing up after installing blender, it has to "reimport" the .blend files before they render.
After installation you can open the project in unity, and in the asset menu you can "Open C# Project" to open visual studio
-
The C# Solution is constructed every time you open the project with Unity.
-
Merges in git
- https://www.youtube.com/watch?v=yQvbaBgxA34
- https://docs.unity3d.com/Manual/SmartMerge.html
- open cli run
git mergetool
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. If there is an existing issue you would like to tackle, please mention that in the issue to allow others to collab with you :)
You can also join the official screeps discord and participate in #screeps3D
This is an attempt at a feature comparison table.
Feature | Official | 3D |
---|---|---|
Connect to official server | ✔️ | ✔️ |
Connect to private server | ✔️ | ✔️ |
Simulation | ✔️ | |
Visualization of nuke arcs | ✔️ | |
Nuke list | ✔️ | |
Market | ✔️ | |
Overview | ✔️ | |
Stats | ✔️ | |
Room View | ✔️ | ✔️ |
Seamless transition to rooms | ✔️ | |
Map View | ✔️ | ✔️ |
Spawn invaders | ✔️ | |
Place spawn | ✔️ | ✔️ |
Place construction sites | ✔️ | ✔️ |
Place flags | ✔️ | ✔️ |
Room Visuals | ✔️ |
Object | Official | 3D |
---|---|---|
construction site | ✔️ | ✔️ |
creep | ✔️ | ✔️ |
deposit | ✔️ | ✔️ |
flag | ✔️ | ✔️ |
mineral | ✔️ | ✔️ |
Nuke | ✔️ | ✔️ |
PowerCreep | ✔️ | ✔️ |
Resource | ✔️ | ✔️ |
Ruin | ✔️ | ✔️ |
Source | ✔️ | ✔️ |
Container | ✔️ | ✔️ |
Controller | ✔️ | ✔️ |
Extension | ✔️ | ✔️ |
Extractor | ✔️ | ✔️ |
Factory | ✔️ | ✔️ |
InvaderCore | ✔️ | ✔️ |
Keeper Lair | ✔️ | ✔️ |
Lab | ✔️ | ✔️ |
Link | ✔️ | ✔️ |
Nuker | ✔️ | ✔️ |
Observer | ✔️ | ✔️ |
Power Bank | ✔️ | ✔️ |
Power Spawn | ✔️ | ✔️ |
Portal | ✔️ | ✔️ |
Rampart | ✔️ | ✔️ |
Road | ✔️ | ✔️ |
Spawn | ✔️ | ✔️ |
Storage | ✔️ | ✔️ |
Terminal | ✔️ | ✔️ |
Tower | ✔️ | ✔️ |
Wall | ✔️ | ✔️ |
Tombstone | ✔️ | ✔️ |
Warp Container | ✅ |