Welcome back to another Logic World Wednesday! Were back from the holidays, and the push for release is underway.
Checkerboard World - Jimmy
The world youve been seeing in the
LWW videos has been sort of a placeholder. The ground was completely static, with no customization whatsoever.
This week Ive begun an overhaul of the world, starting with a lovely ground shader. The shader supports custom colors, as well as dual-color checkerboard patterns.

When you create a world with a grid ground, youll be able to choose the color or colors used and the grid size. Its worth noting that Logic World will support several different world types, and mods will have the ability to add world types. But thats a topic for a future LWW :)
Modding API Consolidation & Documentation - Felipe
Over the holidays Ive been working on documenting the Logic World mod API, known as LogicAPI. This documentation is done with XML comments in C#. When coding mods, Visual Studio will show what each method and class does while youre typing. We are also going to upload a generated static site containing all of the documentation over at
docs.logicworld.net. This is a preview of how it will look:

This site is generated by
DocFX, and it will contain all the aforementioned code documentation as well as some concrete concepts that may require explaining.
We are also going to have a wiki at wiki.logicworld.net, which will contain broader modding guides and tutorials, as well as some other non-modding related info.
Tons of cloud stuff - Felipe
I have also been doing a big revamp of our cloud architecture:
- We have migrated from having a single server to having two: Phobos and Deimos.
- Migrated from a monolithic architecture to a microservices one, which means that we now have a small service for tasks like emailing, logging, storage, etc.
- Migrated from regular Docker to Docker Swarm, allowing us to deploy these services very easily and scale them up by changing a single number in the configuration file. This will let us easily scale up the server to meet the demand if we find the need to do so.
- Migrated from Caddy to Traefik as our edge proxy.
Initially these services were written in C# just like the web application is, however, when migrating to Traefik I realised that every single application we were using in the server was written in
Go. Go is a language thats widely used in reliable and widely used software like Traefik, Caddy and Docker. This sparked an interest in Go inside of me, so I spent a few hours learning this new language and rewriting the logger service. This service is the simplest, all it does is receive messages from all the services and log them to the database, so I thought it would be the perfect opportunity to dip my toes in Go. When I was done writing this I noticed that the service was using just a fraction of the memory that the C# service was while being a lot more CPU efficient. To sum up, 5 out of the 7 services we currently have are written in Go.
Dont get me wrong, I still love C#, however its become clear to me that Go is much more tuned towards web server-side software development.
Refined Building Mechanics - Jimmy
Ive done a pass of our basic building mechanics to ensure they are consistent, intuitive, and easy to use. Most notably, Ive removed the Rotation Lock mechanic; the lock is now always on. Rotation Lock was sort of an awkward and unintuitive mechanic. It was sort of a holdover from when I was trying to copy Minecrafts building mechanics, back in 2017. But Logic World has grown up a lot since then.
To help communicate the new objective nature of rotation, Ive added a little compass rose to the UI with a pointer for the object placement rotation direction.

Notice the pointer above the hotbar on the left. As the inverter being placed rotates, so does the pointer.
---------------------------------------------
If youd like to receive an email each time we post one of these blogs, you can
sign up for our newsletter. Be sure also to join the
official Discord and follow
@LogicWorldGame on twitter.
See you next Wednesday!
View this post on logicworld.net.
More Logic World Wednesdays
https://store.steampowered.com/app/1054340/Logic_World/
[ 2020-01-08 23:54:25 CET ] [ Original post ]