Image credit: ProbablyNot
23.01-03: 2023 1st Quarter Devblog
Thursday, April 6, 2023
Written by: CosmicCoincidence
“The Line between disorder and order lies in Logistics.”
– Sun Tzu
This quarter has been our most productive quarter in at least a year. This includes new documentation, promising progress on the core rework, and even some new features we didn’t have before the rework like addressable asset data and character roles.
Also, a big thanks to our maintainers; none of these contributions would make it into the game without proper review and testing by them. I feel it is important to remember and thank them as they do a lot of work but sometimes get forgotten in these blogs. So, thanks again to our maintainers!
Due to John’s initiative, we made a huge improvement recently that impacts every aspect of our development. Which is us finally having a quality documentation solution. Before this year, we have been using Google documents in folders on our Google Drive, but now, we are using GitBook (https://ss3d.gitbook.io). Thanks to GitBook for sponsoring us with a free premium account via their open-source program!
Our GitBook, being new, may see some restructuring and lots of additions still. Currently, we have 4 main spaces; Design, Art Guide, Dev Guide, & Systems. “Design” is our game design documentation. “Art Guide” & “Dev Guide” are our contributor guidelines. While “Systems” is similar to “Design” but is for the technical documentation related to implementation.
Since the game we are making is community-oriented, feel free to read up on our Design page and share your thoughts on our Discord or GitHub.
Also, if you’re curious about seeing our development progress in the form of a plan and where we are in that plan, see our Roadmap page.
As you likely know if you read our last blog or are active in our Discord, we have recently been overhauling the under-belly (underhauling?) of the game itself.
This process began about 1 year ago with John starting on his own branch, then about 5-6 months ago he reached a point with his “underhaul” that more contributors started to assist. About a month after that we officially swapped over to using his branch as our new primary development branch.
As of now, the rework is still incomplete but continues to shuffle forward as we port over our game systems & assets to the new branch.
John readded the interaction wheel for secondary interactions. He also readded item spawning from vending machines.
Broodje readded and reworked his previous tilemap system, fixing several bugs in the process. It is now play-mode only and no longer can be used in the editor. It also now has a simple UI window and hologram to show where and what tile you are placing. The system also now supports items embedded in the tilemap which means they can now be saved to the tilemap save file.
CosmicCoincidence readded many objects including structures, wall-mounts, furniture, floor textures, etc.
Nath readded the basic player inventory and item sprite generation, while also fixing several bugs in the process. He readded our basic substance system with a few testable substances and fixed a few bugs. He also readded the container system and fixed bugs with it as well.
After redoing the old container system, Nath introduced basic pockets, then went about rehauling the whole system. The rehaul makes the system more independent, easier to use, and more organized and efficient.
John implemented a new asset data system. The new system automates much of the process for contributors. The system uses addressable groups to determine how the assets are referenced, loaded, and used.
Ryan added a stamina sub-system. Ultimately it is a sub-system to the player health system but we do not have that yet so the stamina system currently is standalone.
The specifics of the system may change over time, but currently, stamina decreases through various movements (eventually combat too), can regenerate over time, and can be trained through usage.
LightVelox implemented a new role system recently. For now, there are currently only 2 roles; security and assistant. Players can now start the round with a role (though there is currently no way to select what role they want), and the player will start with an item loadout based on that role (currently only spawns an ID and PDA). ID cards have even been given permission traits so they can do things such as unlock lockers or use certain doors.
After replacing the input manager with a new input action asset, IAmTeapot reworked the input/controls system to now use toggling methods and input consumption which fixed several issues we had with the system. A short list of these issues includes; overlapping control schemes conflicting with each other, unwanted interactions happening while UI elements were focused, and drag and dropping item icons not working properly.
- Readded the in-game console which got removed.
- Fixed the pickup interaction using the wrong sprite.
- Fixed player list on the host.
- Fixed issue with items not dispensing on the host.
- Fixed bug with the lobby menu not closing when joining a round.
- Fixed bug with clients returning duplicate ckeys.
- Fixed server list not updating when players left.
- Applied new permission calls.
- Added editor testing!
- Upgraded our FishNet version.
- Added basic ghosts. When the player dies, they become a ghost.
- Added serilog as our new logging library.
- Fixed bug when trying to join a round that already started.
- Fixed busy port bug in the editor.
- Fixed a container collection error.
- Fixed bug in server-only mode where clients couldn’t pick up items more than once.
- Added new tools folder in the editor.
- Fixed failure when building the project.
- Helped move documentation to GitBook.
- Fixed client-side input system issues.
- Fixed client-side container UI issues.
- Moved observer condition folder.
- Updated hack files.
- Fixed the ‘ready up’ button on non-admin clients.
- Added minds to entity workflow to better separate entity control.
- Reworked the game build workflow.
- Updated our Unity version, and fixes several errors.
- Fixed clients not being able to join an editor-based server.
- Fixed missing input system and inconsistent game UI.
- Cleaned up many files in the project.
- Reworked and documented the Actor GameObjects.
- Helped move documentation to GitBook.
- Organized & renamed many Github assets and documents.
- Moved & updated documentation on GitBook.
- Small fixes to game info UI text.
- Fixed a few item colliders.
SirReginald1 (new contributor)
- Added a checking method for authorization in the permission system.
- Fixed camera snap rotation snapping in the wrong direction.
- Fixed issue with the camera zooming when scrolling in a UI window.
- Reworked the in-game command console, and made several improvements.
- Helped move and organize some files.
- Documented multiple systems and move them to GitBook.
- Fixed the start button not updating properly.
- Fixed the hand containers breaking depending on the item transfer method.
- Added ability for tests to run on forked repositories!
- Moved the website builds from TravisCI to GitHub Actions.
- Fixed the occupied port problem?
- Moved & updated lots of documentation on GitBook.
- Created a 2D art guide and added it to GitBook.
- Added several new design documents to the GitBook.
k0fe (new contributor)
- Disabled physics for construction holograms.
- Removed inventory and interactions from ghosts.
Konstantin3001, the go-to 2D lad at SS3D, refuses to quit delivering pure quality assets for us. Recently he submitted a new winter skybox for the holodeck (see his beach one here), and new food & glass particles!
Grimmie popped in for a visit and decided to submit this directional grille model.
Kruzn (new contributor) made this simple but sweet meteoroid for us!
SmokingMan spontaneously rendered another image for us!
Did you really expect this masterful render to be done by anyone other ProbablyNot?
And CosmicCoincidence made a 3D variant of SS13’s classic logo and some banners using previously submitted wallpapers.
As always, if you want to follow along with our development & community, joining our Discord is the best way to do so.