Rubicon Forum
Welcome, Guest. Please login or register.
May 22, 2012, 09:33:09 AM

Login with username, password and session length
Search:     Advanced search
Forum users can use the crate icon (or [level] and [/level] tags) when writing a post, to make a direct link to a level.
5198 Posts in 234 Topics by 2428 Members
Latest Member: curly
* Home Help Search Login Register
+  Rubicon Forum
|-+  General
| |-+  Similar Games (Moderator: Bucky)
| | |-+  RubeFactory
« previous next »
Pages: [1] Print
Author Topic: RubeFactory  (Read 1728 times)
fingerprint
Shelf-stacker
*
Posts: 4


View Profile Email
RubeFactory
« on: January 15, 2011, 02:35:04 PM »

Hello,

I've started a remake of Rubicon last week or so, the working title is RubeFactory.
RubeFactory works on two levels, the first one we're all familiar with, it's cargo and machines that manipulate cargo. The second one is connecting machine's IO ports with wires.

All machines (blocks that aren't walls, and actually do something) have some inputs and outputs and can be connected to other machines with wires. Here's an example screenshot that demonstrates connecting machines with wires. The block that looks like a chip is a utility box that provides a counter and toggle (when a non-zero signal is present on toggle input, the toggle output toggles). Toggle output is then connected to the up-pipe's "Enabled" input, and toggle is connected to true. This will make the pipe enabled every other cycle, so it will only pull every other box up, separating the boxes into two groups.



All wire I/Os are propagated in a single cycle.

Cargo can have any char value (although machines usually only work with 0-9, or treat any non-zero as true), or be a pair. A pair cargo contains two cargos which can also be composite (packer and unpacker are used for this).

Here are some of the machines I've made so far (note that all machines can be enabled and disabled):

Conveyor
The classic conveyor belt. Can change directions with "Right" and "Left" inputs.
Pusher
Pushes cargo directly in front of it, but doesn't move.
Pipe
Same as in rubicon
Copy machine
Same as in rubicon
Dematerializer
Takes cargo, and converts it's value to a wire value (destroying the cargo)
Materializer
Opposite of dematerializer. The two can be used to create portals.
Add, Subtract, Multiply, Devide, Mod
They work similar to add/subtract in rubicon, however they provide carry and borrow outputs (where this makes sense) so they can be used to form a full adder/substractor, etc.
Destroyer
Same as in rubicon. However, a cargo must enter it to be destroyed, not touch it (Some machines allow cargo to go through them).
Packer
Takes two cargos (below-left, and directly below) and creates a pair cargo containing the two. Works exatly like cons in lisp. The inputs are destroyed.
Unpacker
Takes one pair cargo (below-left) and unpacks the first value directly below, and the second below-right. Works like car and cdr in lisp. Destroys input.
Comparator
Works exactly like the one in rubicon
Sensor
Outputs true to one of it's outputs ("Left", "Up", "Right", "Down") if a box on that side touches the sensor.
Utility box
Provides a counter that can be reset, incremented and decremented. Also provides toggle (described above).
And, Or, Not
And and Or provide 3 gates each with 3 inputs. Not block provides 3 not inputs/outputs.
Edge detect
Provides "SignalNIncreased" and "SignalNDecreased" outputs for 3 signal inputs.
Memory
Provides storage for 10 values (addressable with cargo values 0-9). Can store pairs.

Blocks I'm yet to include :
Comparator for wires (would be useful)
Rangefinder for up to 9 blocks away (outputs 0-9)
Extender extends (or retracts) in it's direction based on input and pushes cargo. Not sure if this is needed yet.
Color box changes color based on inputs (R,G,B). Could be used to form displays.
Stdin, stdout blocks used to communicate to the outside world Smiley . By default, connected to a small console below the game field. Anything that goes into the stdout block is printed to the console. Anything you type in would be created as cargo, char by char, on the game field.

Finally, here's a video of RubeFactory at work (full adder example, with zero padding).
http://www.youtube.com/watch?v=ox53DYkCDpU
« Last Edit: January 18, 2011, 05:54:47 PM by fingerprint » Logged
immibis
Engineer
****
Posts: 176


View Profile
Re: RubeFactory
« Reply #1 on: January 18, 2011, 10:14:13 AM »

Looks good. Will it have infinite or adjustable map size?

Also, you misspelled toggle.
Logged

fingerprint
Shelf-stacker
*
Posts: 4


View Profile Email
Re: RubeFactory
« Reply #2 on: January 18, 2011, 05:56:10 PM »

Sorry, not a native English speaker, fixed.

Yes, the map size will be adjustible. In a few minutes, I'm fixing something (the spelling error, amongst other things) and I'll upload.

Edit : it'll have to wait till tomorrow :S
« Last Edit: January 18, 2011, 09:46:15 PM by fingerprint » Logged
fingerprint
Shelf-stacker
*
Posts: 4


View Profile Email
Re: RubeFactory
« Reply #3 on: January 30, 2011, 12:47:36 PM »

Sorry for the delay, I have lots of exams these days so I could barely find the time to do anything.
Here's the link to the current version :
http://www.mediafire.com/?rij08ox02rcatsg


Save/Load, as well as Copy/Paste are still not functional
Logged
colcolpicle
Engineer
****
Posts: 135



View Profile
Re: RubeFactory
« Reply #4 on: February 04, 2011, 10:02:15 PM »

nice!

looks like old physics

A few bug reports:
   random doesn't seem to be working
   if you bring it to the front before clicking on it the image that was over the bottom of the window is still there. (not sure if you can do anything about this)
   step doesn't work at all, I think
   it might be nice to let it run in the background
   haven't looked at it too much but it maybe you could put in a mouseover description of the machine part you're selecting?
   last thing: the slider that adjusts the speed, in my opinion, should be reversed. (right is faster and left is slower)
Logged

Madball
Designer
***
Posts: 60


View Profile Email
Re: RubeFactory
« Reply #5 on: February 05, 2011, 12:10:04 PM »

Agreed, it`s nice!

Some other bug reports:
Dividing by 0 makes you unable to interact with factory, thus, it`s lost.
If you place more than one destroyers or pushers (that have same direction), animation works incorrect.
If subtracting result will be less than 0, it shows punctuation symbols.

By the way, how exactly memory block works?
Logged

To be or not to be?

2B||!2B=FF
fingerprint
Shelf-stacker
*
Posts: 4


View Profile Email
Re: RubeFactory
« Reply #6 on: April 05, 2011, 05:39:50 PM »

Sorry for the delay, I was quite busy these days Smiley
I'll try to fix those bugs as soon as I can. I'm not really pleased with the connect interface either :S

@Madball : Here's how memory works :
It has 3 inputs :
  • Addres - obviously, the address of the cargo in memory
  • Input - in write mode, whatever is connected to this input will be written to the selected address
  • Mode - selects read or write mode. 0 or false is read mode, 1 or true is write mode
Logged
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Rubicon Forum | Powered by SMF 1.0.8.
© 2001-2005, Lewis Media. All Rights Reserved.
Valid XHTML 1.0! Valid CSS!