TUXDB - LINUX GAMING AGGREGATE
made by: NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 9 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Benedikt][David Martínez Martí]

Steam ImageSteam ImageSteam ImageSteam ImageSteam Image
UniverCity
Matthew Collins Developer
Matthew Collins Publisher
2020-02-01 Release
Game News Posts: 13
🎹🖱️Keyboard + Mouse
Mixed (15 reviews)
The Game includes VR Support
Public Linux Depots:
  • UniverCity Linux 64bit [10.13 M]
  • UniverCity Linux 32bit [10.88 M]
DevBlog: Idling and Random Events

Instead of quietly working on this I thought I'd post what I have done currently and what is left to do. What started out as trying to work out a system for "Student random events" (e.g. simple things like dropping trash to larger events) ended up becoming a redesign on the way students idle (which is what they do when not in a lesson). As some may have noticed the previous system ended up with some silly issues popping up e.g. students staying in the toilets and just switching stalls or repeatedly queuing for the snack stop.

The previous system


The previous system worked by every 20-55 seconds the student that was not in a lesson would leave their current room and select a new room to go to. Select the task was done by building a list of every room marked with a "can_idle" flag and that had space. It then computed a "bias score" for every room, this was based on the stats of the student and used to weight students towards certain tasks.
The list of rooms was then sorted based on the bias score and in the cases where two rooms had the same score their distance from the player was used instead. And then a task was selected from the list semi-randomly, looking at this code now it somewhat undid a lot of the previous work in the cases of small universities.
Once inside a room that rooms script took over until the next time a task was to be selected. Buildings and Gardens for example would try and find a seat and if not they would randomly pick a free spot to stand on.

The planned system


The new system is planned to work more globally than the previous system. Instead of selecting a random room instead an action would be selected instead e.g. sitting, chatting or getting something to eat. Each task can be ordered by priority and given a random chance of being selected, they can also have a list of rules that decide when it is valid to select this task.
To make this work (And what took up a bit of time) I needed some way to evaluate these rules quickly (they'll be run often) and store these variables efficiently in memory. I ended up writing a small parser (using the rust library combine) that compiled down to a simple set of instructions that could quickly be run to return a boolean. For the variables I ended up creating a new component type for the ECS I was using that could be variable sized and then creating a list of variables based on the ones referenced in the rules. As part of this I moved all stats (like hunger) into this variable system and updated all the code around that. The whole compiler/bytecode thing may have been overkill but it was fun to write at least. Once that was hooked up it was then a matter of making it so the scripts could actually run and control entities. This has taken a lot of work due to pretty much everything assuming that a student is always in a room (be it for a lesson or idling) which needed to change. A lot of that involved splitting the `RoomOwned` component into a "Controlled" component that allowed entities to be released from both rooms and idling, the other part was fixing entity methods that assumed that the entity was in a room (mainly the "release" methods).
Next up was making these scripts able to control the client-side of things (multiplayer and singleplayer as they both use a server). This required having the client know which script to call, instead of sending the name of the script which could waste a lot of network bandwidth I went with sending a 16 bit value that points to an offset in the list of choices, assuming both sides have the same mods loaded (in the same order) this should always be fine (And I don't think we would need more than 65536 idle options anyway). The last thing to implement is saving (which whilst writing this I realized even the saving for rooms is flawed), again the saving system assumes a lot about rooms and needs a bit of a rethink. Once that is done I should be able to start re-implementing the previous idle tasks with this new system and throw in some new ones (and improvements to the old ones). As for random events I'm still undecided whether they should just be low chance idle tasks or a separate system that interrupts whatever the student is currently doing. This is taking some time as its only me working on this and I'm not the fastest programmer out there. Sorry about that but I'm hoping this wont take much longer so I can move on to the next thing.


[ 2018-09-07 11:00:07 CET ] [ Original post ]



UniverCity is an isometric university management game. Manage your staff, professors and students and try and build the best UniverCity around! Build up your UniverCity solo or against friends and build many different types of classes whilst trying to ensure students get good grades, or maybe just try and build the best looking UniverCity.



  • Design your UniverCity your way.
  • Constant development. The game is still in development with updates aimed to be released frequently
  • Build against your friends. Multiplayer support is still in its early days but you can already
    start up a server and play on the same map as your friends.
  • In development campaign mode


MINIMAL SETUP
  • OS: Ubuntu 16.04
  • Processor: Intel/AMD 2.1 GHz or HigherMemory: 1 GB RAM
  • Memory: 1 GB RAM
  • Graphics: GPU supporting OpenGL 3.3 or later
  • Storage: 512 MB available spaceAdditional Notes: Desktop only. No controller support
RECOMMENDED SETUP
  • OS: Ubuntu 16.04
  • Processor: Intel/AMD 2.5 GHz or HigherMemory: 2 GB RAM
  • Memory: 2 GB RAM
  • Graphics: GPU supporting OpenGL 3.3 or later
  • Storage: 1 GB available spaceAdditional Notes: Desktop only. No controller support

GAMEBILLET

[ 6080 ]

4.00$ (80%)
4.95$ (17%)
8.38$ (16%)
5.27$ (12%)
13.30$ (11%)
5.10$ (91%)
9.98$ (67%)
4.24$ (79%)
25.19$ (16%)
9.84$ (51%)
5.00$ (80%)
2.50$ (75%)
16.59$ (17%)
8.54$ (57%)
24.87$ (17%)
49.77$ (17%)
8.94$ (55%)
25.47$ (15%)
16.57$ (17%)
13.34$ (11%)
8.39$ (16%)
16.57$ (17%)
19.90$ (20%)
18.99$ (24%)
16.57$ (17%)
24.87$ (17%)
8.39$ (16%)
8.27$ (17%)
39.95$ (11%)
4.47$ (78%)
GAMERSGATE

[ 1481 ]

14.0$ (65%)
10.0$ (75%)
1.0$ (80%)
1.8$ (82%)
0.75$ (92%)
1.8$ (90%)
1.5$ (90%)
3.26$ (78%)
30.0$ (50%)
6.0$ (80%)
7.92$ (74%)
8.0$ (60%)
10.13$ (77%)
10.91$ (22%)
1.5$ (75%)
1.84$ (91%)
0.42$ (79%)
3.5$ (65%)
3.0$ (80%)
14.99$ (50%)
6.96$ (83%)
2.0$ (90%)
0.87$ (91%)
1.8$ (77%)
0.87$ (91%)
2.0$ (80%)
2.18$ (78%)
3.4$ (83%)
9.4$ (53%)
3.13$ (83%)
MacGamestore

[ 2067 ]

5.99$ (90%)
2.49$ (75%)
1.99$ (60%)
13.99$ (22%)
1.71$ (91%)
1.24$ (75%)
4.99$ (83%)
17.49$ (75%)
17.49$ (13%)
1.49$ (85%)
1.24$ (75%)
1.09$ (91%)
1.99$ (80%)
8.99$ (10%)
2.48$ (50%)
21.99$ (12%)
1.99$ (85%)
26.99$ (10%)
15.99$ (20%)
1.99$ (80%)
1.99$ (90%)
5.99$ (70%)
32.99$ (18%)
0.99$ (75%)
2.29$ (88%)
1.09$ (82%)
2.48$ (75%)
14.99$ (57%)
15.99$ (20%)
1.19$ (87%)

FANATICAL BUNDLES

Time left:

356354 days, 15 hours, 58 minutes


Time left:

10 days, 22 hours, 58 minutes


Time left:

20 days, 22 hours, 58 minutes


Time left:

25 days, 22 hours, 58 minutes


Time left:

9 days, 22 hours, 58 minutes


Time left:

31 days, 22 hours, 58 minutes


Time left:

5 days, 22 hours, 58 minutes


Time left:

5 days, 22 hours, 58 minutes


Time left:

39 days, 22 hours, 58 minutes


Time left:

54 days, 22 hours, 58 minutes


Time left:

32 days, 22 hours, 58 minutes


HUMBLE BUNDLES

Time left:

0 days, 16 hours, 58 minutes


Time left:

7 days, 16 hours, 58 minutes


Time left:

8 days, 16 hours, 58 minutes


Time left:

12 days, 16 hours, 58 minutes


Time left:

17 days, 16 hours, 58 minutes

by buying games/dlcs from affiliate links you are supporting tuxDB
🔴 LIVE