Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1335849 Posts in 60780 Topics- by 52247 Members - Latest Member: lolisme

April 19, 2018, 02:52:39 pm

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsBuilding Buildings (Project 2, 2018)
Pages: [1]
Print
Author Topic: Building Buildings (Project 2, 2018)  (Read 657 times)
HuvaaKoodia
Level 0
***



View Profile WWW
« on: March 24, 2018, 10:02:47 am »

Project 2 out of five is under way!

A deductive logic challenge (puzzle) about designing interconnected room layouts for buildings with differing needs.

Prototype available here
« Last Edit: April 13, 2018, 09:29:32 am by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #1 on: March 26, 2018, 01:37:26 pm »

An effective hour and a half ragging on the source material and fixing things (on paper)

(Video processing took too long. Link in the next post.)

Got the basic project foundation laid down already. Using the Model-View-Controller architecture again, why not. Making sure that a few Unity related issues, which popped up in project 1, are swept under the rug.

1. Completely reloading the main scene when loading new levels. In Pro1 I kept the main scene around, unloading and loading levels into it. This caused grief with events! If an object from a level listened to a controller event it would stick around even after the level was unloaded! Some nasty bugs stemmed from that.

Reloading the main level every time before additively loading in the actual level removes this problem. It is less optimal, but this is PC we are talking about. Such optimization is not worth the trouble.

2. Using ScriptableObjects for databases. Cleaner code and useful for limiting which resources are going to the build. For instance, a demo shouldn't have all the levels and music to make the executable smaller. For Pro1 I had to manually remove things before building.

3. Keeping MainController line count under control. I will more aggressively wall off any suspect code into other controllers or helpers scripts. It is not productive wading through 800+ lines all the time.


Didn't quite get to the interactive parts yet, but managed to accidentally create this when loading in all the blocks from a temp level.



Neat, huh?

First block interactions tomorrow, maybe even the resources. Will try to work fast. The rush of a new project! Loving it.

Cheers!
« Last Edit: March 26, 2018, 11:26:46 pm by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #2 on: March 26, 2018, 10:38:21 pm »

Finally managed to up it. Too tired yesterday!



Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #3 on: March 28, 2018, 10:12:02 am »



Plopping down (and removing) rooms is implemented. The building status updates accordingly and a simple GUI is also in place. Good progress I'd say.

The design is still slightly open. I'd prefer not to have a huge amount of buildings meaning the production lines are going to be short. It might prove impossible to create small, challenging levels with a handful of rooms in which case additional puzzle mechanics are needed.

Currently thinking about adjacency constraints ("This room cannot be build next to a noise producing room") and floor constraints ("This room cannot be built in a floor with 3 or more trash"). Maybe both? Will have to figure that out tomorrow.

Cheers.
« Last Edit: March 28, 2018, 10:24:04 am by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #4 on: March 30, 2018, 02:59:37 pm »



Decided to go with adjacency constraints as they increase the potential for deduction within each floor. First vertical connection mechanic is in too: elevators (for people, freight elevators later). Had to write a bunch of code for marking rooms usable/unusable when an elevator is added or removed. Warning icons pop up in the GUI when a room is not set up correctly, resources are overused or an objective is not yet fulfilled.

Still, a few bugs linger and there is no way to advance to the next building once the objectives are met. Will postpone the prototype release until these problems are fixed. The basic rooms in right now are not adequate for crafting actually challenging levels. Will have to think of new designs without being overly specific (keeping the visual asset count to a minimum would be ace!) Hopefully these systems are enough, but who knows.

Cheers.
« Last Edit: March 30, 2018, 03:07:46 pm by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #5 on: April 02, 2018, 01:45:19 pm »



The prototype is finished!

Try it here

The elevator code took more thinking to get right. Supports an arbitrary amount of them now, which is needed for more complicated levels. Also added warnings everywhere. Who doesn't like those?

More rooms and levels next. Maybe even some graphics tests. Might be able to procedurally generate something simple.

Oh, Prototype stream tomorrow too. Lets say, at 12.00 UTC on Twitch.

Cheers!
« Last Edit: April 04, 2018, 03:57:14 am by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #6 on: April 03, 2018, 01:26:03 pm »





Did forget one thing again: the 2D GUI resource icons. They aren't exactly needed, but would improve the usability somewhat at least. Will see if there is enough time left for them. I don't even know how any resources there are going to be.

Started work on more rooms. Industrial production is first on the line. There will be some strange buildings once I start mixing things up.

Cheers.
« Last Edit: April 04, 2018, 04:00:19 am by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #7 on: April 06, 2018, 10:36:23 am »



Industrial production, tourists, shoppers, security and cooling? Most of the rooms follow the rather standard format: requires this, produces that, not next to this room thx. Elevators and security systems mix up the proceedings to a degree: some rooms need guards, some need surveillance cameras. These can't be placed just anywhere due to space constraints.

Lastly there's my most recent innovation, the cooling unit! This one is required by certain rooms to function, like the big power generator, but on top of that it negates the heat production of neighbouring rooms! This is just the type of idea I was waiting for to pop up: effects which modify how previous rooms can be used! Will have to think of other modifiers too.

24 rooms in total. That's nearly my target, but some of them are simply bigger versions of previous rooms (apartments for instance) so there's still need for variety.

Many small GUI improvements here and there. Removed limitations stemming from the prototype, such as the redundant info panel and inflexible layouts. Also added a simple hover overlay for buildings which affect the whole floor (security buildings and elevators at the moment). Functionality-wise the interface seems pretty solid as is.

17 levels down. Many of them are no doubt broken already due to changes to some of the rooms, but that'll be an easy single-pass fix. Will also figure out which levels are actually good enough at that point. 17 levels per week is just about fast enough to reach that 50 level mark in three weeks. Trying to add another batch of buildings next week and then simply crank out loads of levels in the third week with all the puzzle mechanics in place. Should be enough time, surely.

Cheers!
« Last Edit: April 06, 2018, 10:46:23 am by HuvaaKoodia » Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #8 on: April 11, 2018, 10:59:22 am »


My favorite level at the moment, immortalized in a form most beautiful: the alpha screenshot.

Slow start to the week. Had to attend RL both Monday and Tuesday cutting the hours in half. Nonetheless important progress was made. First off, the rooms: electronics manufacturing, ventilation, noise barriers and robotic workers! Initial levels for the first two too, more on the latter later.

Content complete then? Not quite. There are still certain small issues with how resources are handled. For instance, trash burning/recycling rooms reduce the amount of trash by 3, 5 or 10 meaning the total amount often goes to the negatives. Since the prototype stream I've decided that, for the sake of clarity, no resource shall go below zero. This does, rarely, lead to annoying situations where the numbers don't quiet match up. I also cannot have 0 trash as an objective. Will implement a fix if I can come up with a low bug-risk, easy to explain solution.

Apart from the rooms the most important contribution this week (so far) is not new content. It is all about managing content development instead: *drumroll*, a level statistics spreadsheet! Yes, spreadsheets are needed when the amount of content grows beyond the magic-memory-number (is it seven? I forget). With 50 levels in the horizon I need to be able to quickly figure out which type of levels I need to make next.

Currently the plan entails 5 sets, 10 levels each. A-set is basic stuff, mostly tutorials; B-set is for apartments; C is for plastic industry; D for electronics; and lastly, E is a mix of everything! Needles to say the E-set needs to wait until everything else is in place. Already excited to get to them big, complex, difficult levels. That's what this is all about!

Cheers.
Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #9 on: April 13, 2018, 10:01:55 am »


Solution for A10. SPOILERS!

Took another look at the level development plan and realized that the categories, outlined in the last post, were already out of whack in a good way! Designed the easy tutorial levels and only came up with 5. These combined with 5 apartment levels make up the A-set, already finished. B is still for plastics (shoppers and tourists too, forgot to mention). Assigned C for the modifier buildings (cooling, ventilation, noise barriers). The last two sets are untouched.

Ran some calculations on the monetary costs of buildings. Had to increased the worker breakroom cost 5 times (from 1 to 5!) to make sure they are more expensive than the robots. There are a bunch of rooms needed for maintaining the robots so the final price took a while to suss out. (1.01 per 'bot vs 1.7 per human, atm.) Also cleaned up some database code. Arrays are now sorted editor time, not runtime, with the help of an AssetModificationProcessor. Never used that before; very handy.

A day ahead of schedule. The effective working hours are pretty much the same as required (90.25 hours), even with reduced hours this week. The prototype was the opposite, you see, overtime the whole week. It pays to record the hours; takes only a few minutes every day, yet it is essential data when making sure the project is on track (alongside the schedule, obviously).

Level design next week. Only 15 some levels left to build from scratch. The others need touch up and re-arranging.

Cheers!
Logged
HuvaaKoodia
Level 0
***



View Profile WWW
« Reply #10 on: April 17, 2018, 10:03:08 am »

The level sets are neatly divided into groups of five levels per category, for instance, the upcoming D-set is composed of electronics and robotics. Might divide E-set too as there's a style of level design I've been avoiding thus far: freeform, meaning the levels have nothing but a clean floor plan with zero forced rooms. This can be overwhelming especially with loads of rooms to choose from so I will utilize it with care, mostly in the second half of the E-set.


D1, a small freeform level.

All is looking good, except, despite being ahead of schedule momentarily, I might fall behind right away. Taking time off next two days for recreational purposes. Why? For fun mostly! Also a bit of rest before the Ludum Dare this weekend. Cannot say no to that either!

Making levels is easy now that the mechanics are in place so I'm not too worried even if I cannot quite get all of them done by Friday. Next week is for menus anyways and that is a pushover!

Cheers.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic