"Human Resource Machine" is a game about programming in assembly



  • From the creators of "World of Goo":

    I find it quite entertaining. Steampowered.com is down at the moment though so I can't add it to my wishlist.



  • But SteamDB is up, so we can learn more about it, including how much it costs.



  • And as usual, European prices are higher than the US :unamused:



  • Oh right, I meant to mention this game last week.

    The game is $10 in USD, not sure about in other currencies.

    The constructs in the game are intentionally limiting.

    In addition to level completion, there are also two challenges per level.

    They are essentially:

    • Use less than X instructions
    • Use less than Y cycles

    Most of the game's levels are easy to complete, but the challenges can be... less easy, particularly since we generally deal with higher level constructs not available in this game (like "if", "for", etc...)

    There are also a number of optional, more difficult levels in the game. You'll know where these are, because the "map" (represented as floors of the building) will have sets of floors that dead end. The dead ends are the more difficult tasks.



  • As usual, US prices are listed without taxes while European prices include VAT.



  • Before I go on a rant does that mean the US have to pay more after tax?

    I remember flights use to be like £5 and then suddenly £55 after taxes and charges. The bad old days...



  • If you take the U.S. price ($9.99), then convert it to Euros (€8.83 using the current $1.00 -> €0.88 exchange rate), then add on a 20% VAT, it's be €10.55.

    The game sells for €9,99.



  • That's still fucking more. I don't know what lunacy you live with but costs include fucking taxes and charges



  • As usual, U.S. prices are listed without taxes. WITHOUT TAXES.

    Jesus Christ, how hard is that to fucking understand?



  • And how many of those taxes are as high as 20%? Exactly.



  • @RaceProUK said:

    And how many of those taxes are as high as 20%? Exactly.

    The US doesn't have a national sales tax. Which is probably why our government has a multi-trillion dollar debt.

    But yes, I'm supposed to pay a 6% State sales tax on top of that $9.99, but the States haven't (yet) convinced the Federal government to force Internet-based retailers to collect said tax. Meaning that, if they don't have a physical presence in my state, they don't collect sales tax there.

    I'm supposed to report it in my income taxes due every April, but if it's over a certain amount (which it basically always is), the government says "just pay us $x and we'll call it good."



  • so what is it without tax?



  • @RaceProUK said:

    And as usual, European prices are higher than the US :unamused:

    Hmm... if I convert the US price into £ and add our 20% VAT, it comes out at £7.74; the game is listed at £6.99.

    So in real terms, the UK price is lower for a change! :smiley:



  • I was actually in the closed Beta for this.

    My only complaint is that the "code" window is far too tiny to work with well, and the jump statements are a pain in the ass to work with because of how the landing point works. Knowing how to solve the problem takes two seconds, actually fudging with the language and trying to catch all of your little mistakes 6 lines of code at a time takes forever



  • So how does this compare to Zachtronics TIS-100?



  • Much more like standard assembly. The architecture resembles a standard processor much more closely, and it's about linear computation instead of parallelization



  • Not in gog.com and the Humble store they aren't.

    But feel free to keep buying from Steam. They have badges and scores! YAAY! Can YOU get more suckerpointzzz than your friends this winter? Play our daily games to find out! (daily games consist of buying stuff)



  • @TwelveBaud said:

    So how does this compare to Zachtronics TIS-100?

    You have more registers.



  • @DogsB said:

    so what is it without tax?

    Anarchy?



  • You're confusing tax with government... although...



  • It's like Gabe Newell abused you as a child or something.



  • This is funny because I just started some x86 Assembly to make a pet operating system, and it has been extremely entertaining and enlightening.

    From my experience, that is a much better way to learn Assembly, although its all just logical steps.



  • A fully-functioning OS (:open_mouth:­) or a bootloader with a few commands?



  • @powerlord said:

    The US doesn't have a national sales tax. Which is probably why our government has a multi-trillion dollar debt.

    I don't think that's it.



  • Rolled my own 2 stage bootloader with functions to load from FDisk or HDD, dump memory, detect low and high memory and pass it to the kernel, etc... now working on implementing a file system, then loading the kernel in C. After than I want to work on Kernel Mode drivers for ATA or one of the other device interfaces so I don't have to use BIOS for hardware interaction. That way I can stay in PMode and don't have to drop back down to Real Mode for device communication.

    Needless to say, its a pretty long term project ;)



  • It's like what I always wanted to do if I had the time, energy, and dedication. You should let us play with it sometime. Maybe put it on github.



  • If we had a national sales tax of 100%, I'm sure that would help alleviate the debt slightly.

    :trolleybus:

    @lesniakbj said:

    Rolled my own

    I want to do this so badly. I designed a custom CPU in logisim and wrote an emulator/debugger/assembler/IDE in java to go along with it



  • It's on github at the moment, but more as a bunch of tech demos and "Stages" of built up code, to demonstrate proficiency in Assembly, and learn all of the concepts along the way. Once I get a console up and running and rudimentary file system to create files with, I'll link the code here so people can mess around with it.



  • Default has a way of doing that, I suppose.



  • @rc4 said:

    It's like what I always wanted to do if I had the time, energy, and dedication. You should let us play with it sometime. Maybe put it on github.

    The key to a project like this (this is my second concrete attempt at this) is not to get ahead of yourself, and take every victory you can, no matter how small. Small progress is better than no progress, just view each step as a learning opportunity.



  • Yeah...I felt really accomplished writing a bootloader but I just didn't have the energy to keep developing it.



  • @lesniakbj said:

    Once I get a console up and running and rudimentary file system to create files with, I'll link the code here so people can mess around with it.

    Please do, it sounds like fun!



  • @boomzilla said:

    @powerlord said:
    The US doesn't have a national sales tax. Which is probably why our government has a multi-trillion dollar debt.

    I don't think that's it.

    There should have been a "one of the reasons" in front of the why.

    One of the other reasons being that they spend way too money. I'm not going to say what I think they spend too much on because I don't want to start a flame war.


  • sockdevs

    @powerlord said:

    I'm not going to say what I think they spend too much on because I don't want to start a flame war.

    ....

    good idea, best not open a new front for them to pour money into.....

    :trollface:



  • Is there any book or website you are pulling from or just running dry?



  • @mrguyorama said:

    Is there any book or website you are pulling from or just running dry?

    Intel x86_64 Architecture Manuals, OSDev, OSDev Forums, Wikipedia, Various University Articles, and straight up persistence.

    Some of this information is notoriously difficult to find, where as with others you just have to take certain values as "magic" numbers (like VGA registers), and just use them without knowing why or how they came to be.

    Finding the information is by far the most difficult part. Second is translating the technical materials into usable code. Once you have the information it's not terribly difficult to figure out what needs to be done.



  • @lesniakbj said:

    Intel x86_64 Architecture Manuals

    Oh dear god...

    If I stick to just old school x86, it should still work, right?



  • Except doing actual stuff raw assembly requires you to learn:

    1. The logic behind how a computer runs instructions, and how to use them to do interesting stuff
    2. Hundreds (thousands?) of x86 instructions, all the confusing details and idiosyncrasies of how the x86 architecture works (memory management, system calls, BIOS calls), and a bunch of command-line tools.

    And part 2 is much harder to learn than part 1 (and for the vast majority of people, useless).



  • @lesniakbj said:

    take certain values as "magic" numbers (like VGA registers)

    Oh yes, definitely magic numbers. Worked on VGA-compatible chips back in the day; VGA means backward compatibility at the hardware register level with every single predecessor back to the original IBM MDA, including all the quirks and bugs. Once you got it working, you didn't even breathe in its direction ever again, because the compatibility was a fragile house of cards that might collapse catastrophically. You couldn't assume the existence of a device driver to do handle any oddities of your hardware; rather, that the BIOS would write exactly the same values to the same registers that it would for any other VGA-compatible chip. Fun times.



  • Anyway, in this game, the only operations you really have are:

    [spoiler]input, output, jump, jump if zero, jump if negative, copy to, copy from, increment, decrement, add, subtract, and the most important one ever... comment.[/spoiler]



  • @anonymous234 said:

    Except doing actual stuff raw assembly requires you to learn:

    1. The logic behind how a computer runs instructions, and how to use them to do interesting stuff

    2.Hundreds (thousands?) of x86 instructions, all the confusing details and idiosyncrasies of how the x86 architecture works (memory management, system calls, BIOS calls), and a bunch of command-line tools.
    And part 2 is much harder to learn than part 1 (and for the vast majority of people, useless).

    While I agree with that, there are a couple points that make the similarity between the game and OS Development a bit more concrete:

    For (1), OS Development, for me, does EXACTLY that, it is a way for to understand both how the CPU interprets the given instructions, and make it do useful stuff.

    For (2) I don't, and will not, need to know the entire x86 Assembly architecture in order to do this project. Nor will any person need to know every single x86 instruction. There are manuals and references for that, both in how they are used and what they are for. I will only need to know the relevant instructions to implement my algorithms of choice. Why would I need ANY of the SSE, AVX, etc.. instruction set? Finally, I don't need command line tools. If I really, really wanted to (and no, I won't ever do this) I could write the raw bytes to the file. No command line tools required.

    (Really, once someone learns int, iret, call, ret, add, mov, shr, shl, xor, or, and, push, pop then they should be able to compose most problems in terms of assembly.)

    I agree with you though, you'd be wasting a life if you tried to memorize or use the entire x86 ISA. Use the tools you need to use, no more no less. The linked game seems to emphasize teaching logic over anything else. Anyway, you make some valid points that bring up why Assembly is no longer used as a primary programming language (logic decomposition, terse syntax, large instruction library, ...).


  • Discourse touched me in a no-no place

    @powerlord said:

    The US doesn't have a national sales tax. Which is probably why our government has a multi-trillion dollar debt.

    The national debt has two components: tax and spending. Just raising taxes won't be enough without restricting spending. Otherwise the additional revenue from the sales tax (assuming there is any) would simply be spent along with the rest. Why do I have to keep telling people this?



  • How does it compare with SpaceChem?



  • SpaceChem is way better. Puzzles are more interesting and more complicated. These tend to just get annoying. Also, I did almost all of them (except the last 2, prime factorization and list sort) in a couple of hours.

    I was about to post to refer to SpaceChem as a better game too.



  • I thought SpaceChem had a TERRIBLE difficulty curve, though. The first few levels are trivial bullshit, then suddenly it's BOOM impossible.



  • I don't recall it bothering me much, though IIRC it did step up quite a bit immediately after the tutorial. I eventually got stuck in the last world.

    For those who never played spacechem - there's a free demo on steam.



  • It depends on how "old" you're talking about.

    If you write it in 8-bit x86 assembly, it will not work. :giggity:

    I think I've heard somewhere current 64-bit Intel processors supports 16/32/64 bit instruction set, where those 16-bit instructions are not supported in long mode.



  • @cheong said:

    It depends on how "old" you're talking about.

    Intel 4004?



  • 8-bit works fine.

    The BCD instructions, AH/BH/CH/DH half-registers, and weird segmentation don't work in 64-bit mode is all.



  • Thats how spacechem felt to me. Meanwhile Infinifactory felt wonderful all the way through


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.