Skip to content

thmsndk/Screeps3D

 
 

Repository files navigation

Screeps3D

A 3D client for the MMORTS Screeps.com roomview

Goal

To build a 3D client for Screeps. mapoverview

Progress

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 servers
  • Respawn / Placing spawn
  • Placing construction sites
  • Gameplay options like hotkeys, camera controls, console colors, etc.
  • Finish model set for room objects
  • Rendering roads
  • Rendering 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)

Installation

Want to try the client?
Download a release from the release page

Connecting to a server

  • Official client needs an auth token https://docs.screeps.com/auth-tokens.html

  • Private server needs two mods.

  • Currently you need to press the "Save" button to connect to allow it to persist credentials, will be reworked later.

Contributing

The Project is built using Unity and C# so the following software is required to run it.

Software Requirements

  • 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

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

Feature Comparison with official client

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 ✔️

Rendering of Room Objects

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

About

A 3D client for the MMORTS Screeps.com

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 95.5%
  • ShaderLab 2.7%
  • HTML 1.2%
  • Other 0.6%