▶
Logic World Wednesdays: Were Back!
Ive added three new menus to Logic World this week! We now have a pause menu, and buttons and keys have gotten menus for editing those components. [previewyoutube=Gn3xmVy8Tcs;full][/previewyoutube]
Thanks to the release of Minis by Keijiro Takahashi, Logic Worlds extensive input system now supports MIDI input! You can now use your pianos to control the game. MIDI bindings can be used for regular game actions like walking and jumping, but I expect theyll mostly be used with Keys to make in-game music machines :D
Logic World uses a complex state machine to govern the flow between game states. For example, youre allowed to transition to the in chair state from the building state, but youre not allowed to transition to the *in chair* state from the multi-wire placing stage 2 state. Previously, we defined the rules of the state machine all in a single file. This week Ive built a new system and transitioned all our game states to it. Under the new system, the rules of the state machine are distributed throughout many files. The rules for one state are now right next to the code for what actually happens when the game is in that state. When were working on a game state, this makes it easy to see that states relationships with other game states. But more importantly, this means that mods can now add their own game states, since theyre not all defined in one master file.
This week Ive been working on refactoring the servers codebase, adhering to the Inversion of Control principle. This means that I went through every single class, converted it to non-static, determined the classes that it depends on and injected them on its constructor, while creating an interface for it. This results in highly testable and modular code thats a lot easier to maintain and extend. Ive also been refactoring the networking code: previously each packet type was composed of two methods: one for writing the packet and one for reading it. These methods operated directly on the network stream and they didnt have an explicit structure, as it was determined by the order and type of read/write calls. After the refactor, each packet is its own class, we have SECCS serialize and deserialize it, so we dont have to write any code that manipulates the network stream directly. Another benefit is that packets are clearly defined and, again, easier to maintain and extend.
Ive also been rethinking the existing modding architecture, and this time Ive decided on a file structure that looks like this (not final):
For the past few weeks, weve been holding biweekly off-topic discussions on the Logic World Discord. This has been a lot of fun and weve had some very interesting talks. Some people have lamented that these discussions are not at a good time for them, so were experimenting with different times. This weeks Philosophy Phriday willl be 2 hours earlier than usual, at 18:00 UTC. --------------------------------------------- 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. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/
[ 2019-11-07 07:51:46 CET ] [ Original post ]
Welcome back to another Logic World Wednesday. After a three week hiatus, we are back! If you havent been keeping up with us on Discord, the break has been because we were reorganizing Logic Worlds 50,000 lines of code. That work is finally done, and your regularly scheduled Wednesdays have returned!
New Menus - Jimmy
Ive added three new menus to Logic World this week! We now have a pause menu, and buttons and keys have gotten menus for editing those components. [previewyoutube=Gn3xmVy8Tcs;full][/previewyoutube]
MIDI Input Support - Jimmy
Thanks to the release of Minis by Keijiro Takahashi, Logic Worlds extensive input system now supports MIDI input! You can now use your pianos to control the game. MIDI bindings can be used for regular game actions like walking and jumping, but I expect theyll mostly be used with Keys to make in-game music machines :D
New Game State System - Jimmy
Logic World uses a complex state machine to govern the flow between game states. For example, youre allowed to transition to the in chair state from the building state, but youre not allowed to transition to the *in chair* state from the multi-wire placing stage 2 state. Previously, we defined the rules of the state machine all in a single file. This week Ive built a new system and transitioned all our game states to it. Under the new system, the rules of the state machine are distributed throughout many files. The rules for one state are now right next to the code for what actually happens when the game is in that state. When were working on a game state, this makes it easy to see that states relationships with other game states. But more importantly, this means that mods can now add their own game states, since theyre not all defined in one master file.
Server architecture & networking refactor - Felipe
This week Ive been working on refactoring the servers codebase, adhering to the Inversion of Control principle. This means that I went through every single class, converted it to non-static, determined the classes that it depends on and injected them on its constructor, while creating an interface for it. This results in highly testable and modular code thats a lot easier to maintain and extend. Ive also been refactoring the networking code: previously each packet type was composed of two methods: one for writing the packet and one for reading it. These methods operated directly on the network stream and they didnt have an explicit structure, as it was determined by the order and type of read/write calls. After the refactor, each packet is its own class, we have SECCS serialize and deserialize it, so we dont have to write any code that manipulates the network stream directly. Another benefit is that packets are clearly defined and, again, easier to maintain and extend.
Modding System Progress - Felipe
Ive also been rethinking the existing modding architecture, and this time Ive decided on a file structure that looks like this (not final):
- assets/
- my_image.png
- my_mesh.obj
- my_unityassets.assetbundle
- data/
- components.succ
- lib/
- MyLibrary.dll
- manifest.json
- server.dll
- client.dll
- shared.dll
An Early Phriday
For the past few weeks, weve been holding biweekly off-topic discussions on the Logic World Discord. This has been a lot of fun and weve had some very interesting talks. Some people have lamented that these discussions are not at a good time for them, so were experimenting with different times. This weeks Philosophy Phriday willl be 2 hours earlier than usual, at 18:00 UTC. --------------------------------------------- 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. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/
[ 2019-11-07 07:51:46 CET ] [ Original post ]
Logic World
Mouse Hat Games
Developer
Mouse Hat Games
Publisher
2021-10-22
Release
Game News Posts:
106
🎹🖱️Keyboard + Mouse
Very Positive
(271 reviews)
Public Linux Depots:
- Logic World - Linux [1.75 G]
Build. Program. Simulate. Logic World teaches you how circuits do math.
Key Features
- Digital Logic - Build circuits that work the same way real world computer chips do.
- Challenges - Solve puzzles from simple logic gates to complex machines like calculators and data storage.
- Multiplayer - Logic World is built from the ground up for collaborative multiplayer. Take on Challenges with your friends or build together freely in Sandbox mode.
- Performance - Build massive circuits and simulate them at thousands of updates per second - all without lag.
- Modding - Logic World features powerful modding tools - the same tools the developers are using to make the game.
- Online Hub - Players can upload their builds, mods, and custom challenges and share them with other players.
MINIMAL SETUP
- OS: Ubuntu 14.04
- Processor: 2.4GHz Quad CoreMemory: 8 GB RAM
- Memory: 8 GB RAM
- Graphics: Intel HD Graphics 4000 or AMD Radeon R5 series
- Storage: 2 GB available spaceAdditional Notes: system requirements might be adjusted before release
GAMEBILLET
[ 6138 ]
GAMERSGATE
[ 3395 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB