Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Quantum Engineering

Deploy to a distant moon to construct futuristic factories and harvest dark matter. · By Droog71

Nice concept, but poor implementation

A topic by Casteele created Sep 16, 2022 Views: 444 Replies: 10
Viewing posts 1 to 2

Several issues will need to addressed to make this a good game.

1. Give text transcripts of the help/tutorials -- Not everyone can enjoy the wonders of audio/visual. Whether this is due to system hardware, or disabilities. I am both audio and visually impaired, so never set up my system for audio. And the videos roll by so fast I cannot follow them by looking along. And there is no pause for the videos.. A text can be read at my own pace, and I can use a screen magnifier to read it.

2. The game has no pause and never pauses, not even in the menus. For a game such as this which can span hours or days, some kind of pause/resume feature is essential.

3. The controls lack real control. It is very difficult to place blocks where I want them.I constantly have to use the Y, V, and R keys to place things. And much of the time, it sill misplaces and I have to remove and place it again. Some kind of "align to grid" option would be nice, allowing me to place entire production lines down in a straight line horizontally and vertically (not a major issue, but for "neat freaks" like me....).

4. User has very little control over how blocks "connect", For example: I place an extractor, a conduit, a smelter, another conduit, and storage. Then I place solar panels to power things. Depending on what other blocks are nearby, and which order hey were placed, the items and power routes may not work out as desired. This gets worse as I 'F' to remove and move things, since the routes try to re-route again and end up at times sending things in undesired directions. I am sure there is some logic (such as first block in memory/linked list?), but I may as well flip a coin as the memory is allocated/de-allocated/moved around.

Ideally, routing should be under user control. Add an ability to (re-)assign inputs and outputs. This would also eliminate the need to adjust how far conduits transfer items/power; The only requirement is that they need to be within the maximum range when (re-)assigning them (and/or the need to "reboot" them, which still gives no real control over the automatic assigning).

5. Stacks of items will not merge cleanly -- there must be exactly enough room to merge the stacks. If I have two stacks of 999, it would be nice to be able to pick up one, and click the other so that it becomes a stack of 1000, leaving 998 in the stack I am "holding".

6. The ability to turn machines/blocks on and off would be useful. I could stop an extractor and production line, remove/replace the production line it is feeding, and start it again -- without having "junk" items from the previous line continue to fill storages, or need to remove solar cells to make it stop.

Developer (8 edits)



A couple of things that might be helpful:



1. You can directly attach machines to each other in a line as seen in the image below; 

ie: extractor->conduit->smelter->conduit->press->conduit->container.




2. Machines can be turned on and off using logic relays. The logic relay needs a signal from another logic device to turn off the machine.

For example, in this image. an item detector is used to send a logic signal through a logic block to a relay which turns off the extractor. This shuts down the entire production line.




3. The video files can be found in the game directory at /QE_Data/Video

You can watch the videos on an external video player, allowing you to pause at any time.

1) I tried that, at first. But still two problems: One, a lack of space between machines to visually see how hey become connected (or fail to connect), and Two, landscape is not flat and eventually I can no longer place blocks in a straight line. I had limited success by occasionally moving up one block. Perhaps make a new block that is simply a spacer/aligner (and 'free')?

2) I played with some of that, as well. It works well enough for fully automatic lines. But lack of an ability to manually shut a machine off for other purposes is still a problem. And makes little sense. Imagine a light in your house that once placed will turn on at dusk and cannot be turned off until dawn. You have to remove it to stop it. Eventually, you will get frustrated doing that and just go buy a light with an on/off switch from some other company. (In truth, is is the main reason I stopped even trying this game. too frustrating, for no reason.)

3) That is indeeed helpful. Trying now to just figure out which video is which.

Developer

(1)

When looking at a machine, the window at the bottom left corner of the screen will tell you the ID of the machines it is connected to.

One idea I have about the landscape issue is I could add a bunch of bricks or iron blocks to the lunar lander at the start of the game so you can build platforms or buildings for your machines right away without having to worry about setting up brick production.



(2)

I think what you're talking about here is the need to put an item into a storage container or remove the item to turn the item detector on and off?

So, what you're looking for is something like the levers in minecraft, a logic block that functions as a simple ON/OFF switch?



I think I am going to resume development of the game. It has been over a year since I last worked on it so I am a little rusty. I would like to put together a concrete list of things to work on. So far what I have gathered from this thread is the following:

1. An option to pause the in-game tutorial videos.

2. A logic block ON/OFF switch.

3. Some method of manually changing machine interconnections.

Developer (7 edits)

So far, I have a basic logic switch implemented. This works by looking at the switch and pressing 'E' or the key you have bound for interaction to toggle the switch on or off.


[Edit]

Got adjustable range for solar panels, generators and reactor turbines working.
This should make machine connections much easier early in the game.

As you can see in the image below, solar panels can be directly attached to the machine.

I also added 4000 iron blocks to the lunar lander for building platforms like this.


I will hopefully have this update ready soon. This will be version 1.2.5.

Also, originally, I was attaching solar panels directly to machines. However, just as often, the power connections would connect them to _other_ machines instead of the one it was attached to. The adjustable ranges might help resolve that problem by limiting range to machines directly adjacent.

Developer

Exactly. After this update, you no longer have to carefully place the solar panels to make them connect to the desired machine.

I should have fixed this a long time ago. I think I got so used to doing it myself that I forgot it was an issue.

The default connection range is now 1 meter and can be adjusted.
So the solar panel is very unlikely to connect to something you don't want it to connect to. You have a lot of control over things.

You can also set a  custom default range for all machines you place in the build settings menu that is opened by pressing the '=' key.

(2 edits)

A logic block switch may be a bit overkill, since this is not MineCraft. I suggest adding the on/off switch directly to all machines (even transporting machines, power machines/solar cells, etc). However, if making and using a switch logic block wold be easier to implement, it would be an acceptable option.


A pause for the tutorial videos would be useful, as would an overall game pause (maybe automatic pause while in menus). Maybe transcribe the videos, either in-game or on the web somewhere, possibly with screenshots as needed. (I would help with that where I can, but I have no sound... I can only provide the text overlays from the videos.)


Routing does not seem to be something hard to add: You only need to select the machine and tell it where to send the output. Inputs can be be assumed directly by other machines targeting it from their output. (Might consider limited or multiple inputs for this...)


I do like the idea of platforms. Maybe even require them. I.E., build a platform, which will provide a level place to build a machine upon. The top of the platform can be adjusted (probably specific amounts, such as 1/10th (or 1/8th, to simplify the "powers of 2" math) "cell" increments, and the bottom extends automatically until it intercepts the ground. (Likely requiring extra resources if the platform is more than one "cell" above the ground.) This could also work well with loading the rocket for deliveries; Require a "landing pad" and possibly a "loading dock" before items can be loaded and sent up. Manual loading will not require a loading dock, obviously.

Developer (3 edits)

The logic switch is in the game now. You can create a single machine on / off switch using 1 switch and 1 relay.
It is fun using splitters and logic blocks to wire a bunch of machines to a single switch though. Watching everything shut down and turn back on after you've built the circuit is satisfying.

I tried implementing a pause button for the videos but I couldn't find a method of pausing the video, returning to game-play and then resuming where you left off. So I added a fast forward button instead, which should help you get back to where you left off in a video if you want to stop watching it to do something in game, then return to finish the video after. It is possible to pause the video without returning to game-play but that didn't seem very useful.

Some sort of wiki or guide for the game might be a nice addition.

I added 4000 iron blocks to the lunar lander at the beginning of the game, so you have the resources to build flat surfaces for your machines right away. Platforms can be built floating, they are not affected by physics so they don't have to touch the ground. I usually build supports for them for aesthetic reasons though. These blocks also give a bit of an advantage if you're playing with hazards enabled as iron blocks are pretty resistant to meteor strikes and you can build a sort of "canopy" over your machines with them.


I will look more into manual routing for the next update. I am thinking a key-bind that gets a pointer to a machine instance based on what you're looking at, then calls the AttemptOutputConnection function for that machine with  a pointer to the next machine you click on as a parameter.

This will probably be the next thing I work on.

[Edit] I have been working on this and realized that it would require extensive re-writing of the network code for multiplayer as machine connections are currently controlled with the range slider and these adjustments are what is updated over the network. Under the hood, the implementation is a lot easier for single player but even then it is quite complex as it is a major change to some core mechanics.

For me, at least, the main purpose of pausing the videos is so I could read the subtitles/text, maybe take notes, and give me a moment to "digest" the content. It had not even crossed my mind to try switching to the main game and back -- I never left the video screen. Perhaps you can do both pause and fast forward for now? Just alert the user that if they leave he video while paused, it will reset.

I am wondering now if you can auto-FF to a specific point in the video (and of course, obtain the current position), which you could save in  global. That would make it possible to pause, go to main game, come back, and jump back to the saved position. It would also make it possible in a future release to create multiple "bookmarks" players could jump to while learning how to do things. All this, of course, depends on the capabilities of the video library you are using. (I have no experience with A/V playback libraries--my A/V disabilities are too limiting to bother learning.)

Regarding power switches, perhaps do both? Allow direct manual control, but also allow circuit control. Just like in MineCraft, you can manually open most doors, as well as wire RedStone circuits to control their state. Much if this has to do with my original hopes on what this game was, which I will explain...

Originally, I was looking and hoping for a game similar to MineCraft in some ways, yet different in others. Other influences include Colobot and Widelands, and the Itch.io games Autonauts, BaseCraft, Craftomation 101, Mindustry, Villager, and others. The basic idea is that you start with very little and have to build up your abilities: Manual mining the first resources in which to build more machines to mine/produce more advanced machines. Automation is something of a goal: As you build more advanced machines, some of them are useful to create automated lines and circuitry to control automation. Thus, the progression/goal starts with manual resource gather and basic crafting, to build up to a point it becomes automated and self-sustaining.

The rocket can arrive at regular intervals and start by needing basic items (i.e. "1000x copper")... Harder "modes" could add limits, such as "1000x copper, within 10 days. 3 failures to delivery in time == game over". The "needs" get more advanced as you complete them: Complete "1000x copper", and next time they want "1000x copper and 500x copper plates", and so on. This becomes the "push" for the player to build up more advanced machines and production lines, eventually automating them as well.

This also means that full automation becomes a goal, rather than something the player can/will do from the start. It also becomes a reason and incentive to build a"rocket landing pad", and "rewards" for completed goals: "Build a rocket pad, deliver 1000x copper, and get rewarded with an extra extractor, conduit, and solar panel, delivered by the next rocket".

Of course, keep the current game as a "sandbox" mode where the player can experiment and try things.

I.M.O., these kind of things are what would make the game fun and profitable, for both players and yourself. You could add Patreon support and eventually a premium Steam version. Even if you never intend the game to become a "for pofit" game, you can keep the price low enough just to cover your development costs and time. You can start thinking of future plans; Additional machines, "quests"/goals, scenarios, maybe even one day allowing user made mods and scenarios (take a look at Battle for Wesnoth's history and development).

Developer

I can definitely add the pause button for videos. Should be no problem. I can get that done over the next couple of days. Should be V 1.2.7.

I had already implemented it but it did not seem as helpful as the fast forward, so I didn't keep it.


This game is very heavily inspired by FortressCraft Evolved in which the entire game is about automation and nothing is really meant to be done manually. In fact, this game was originally a mod for FortressCraft Evolved that grew out of control, so I ended up creating a separate game instead of releasing the mod.


Quantum Engineering already has a modding API and mod.io integration. 

You can change the game in any way you can imagine.

https://qe.mod.io/

https://www.dropbox.com/s/w3vzrrcmtf2drhh/Modding_Documentation.odt?dl=0

https://github.com/Droog71/Quantum-Engineering


Not really interested in Patreon or Steam or anything.

I am more interested in creating free, open source software at this time.