dev, computing and games

Finished 7 Billion Humans (PC) + all size+speed optimizations, all achievements

This is a programming-themed game, similar to Human Resource Machine, where you have a drag-and-drop interface to program in a pseudo-assembly type thing.

The big difference is 7 Billion Humans is "multithreaded". You program the actions of not just one worker, but many (sometimes, dozens) that all run the same program concurrently. There are some instructions "tell" and "listen" which help synchronize. For example one worker can tell another "Coffee time!", unblocking another worker that has stopped, and is listening for Coffee Time. Workers can be in eachothers' way, and you may want to avoid them taking paths where they collide with each other. Certain workers have resources dedicated to them, that others cannot use or else BOOM they explode (literally).

Compared to HRM and most computer assembly languages, 7BH has some conspicuously powerful instructions.

When optimizing for speed you come to learn about how the game computes "performance cost" since it is not totally intuitive.

For example,
if (X == 5 and Y == 3) or Z == 12342
is the exact same cost as
if (X == 5)

Also,
"Take two steps to the left"
can (in, at least some circumstances) be the exact same cost as
"Find out where in the room the nearest printer is- it might be around a maze of hazards, obstacles, whatever- and go to it"

The latter, you'd think would be an expensive and complicated path-finding operation but the game gives that one to you for free. Maybe, with the idea that you've got enough other things to deal with and it is probably right about that.

My solutions are in this GitHub repo
https://github.com/clandrew/7bh

September 7th, 2019 at 6:27 pm | Comments & Trackbacks (0) | Permalink

Finished Minion (PC)

This is an indie game developed by a friend of mine. This game follows the visual novel genre, where gameplay consists of dialogue choices that branch out into many story possibilities.

For all games of this genre, sometimes the story outcomes and narrative flow are predictable based on your decisions; sometimes they aren't. Seeing how it unfolds is a lot of what makes it fun, though.

In this game you play the role of a minion, the title character- the lowly servant to the sorcerer-queen Althea who rules over a medieval fantasy-type kingdom. Althea is powerful but so is her ego and her potential for cruelty. She doesn't, as a default, consider the needs of her subjects. As her minion, you have the opportunity to step in and help the subjects of her kingdom! Or not. There are a lot of different choices.

The game doesn't transparently show its statistics to you and it keeps things interesting. You draw conclusions about what actions cause what chages if any. For example, the 'Exercise' action appears to improve your combat ability. Also, 'Reading' will improve how sensitive or artistically inclined your character is. You don't readily see the effects of your stats, but they will affect certain events such as the annual harvest festival competitions.

Playthrough #1: A neutral-good, middle-of-the-road strategy for all my decisions. BAD IDEA. I ended up battling the dragon and getting annihilated. Since I hadn't developed my combat skill enough, I couldn't fight the dragon. Since I hadn't done anything selfish, I didn't have combat items. Since I hadn't unlocked the relevant events, I couldn't enlist another's help to fight the dragon for me. This game does NOT favor the 'balanced build'.

Playthrough #2: Be completely useless. Do nothing all the time, read books if I have no other option. Don't help Althea. Don't help the townspeople. Don't go to festivals or do much of anything. Althea ended up killing me for my insolence. I don't know what I expected!

Playthrough #3: Kiss up to Althea. She is a sorceress-queen, so this should be a valuable relationship, right? I got her gifts, went to events with her, and chose dialogue options that made her happy. I *think* this unlocked some options where she can fight battles instead of me. This mostly worked out well, except for the battle at the end against the wizard. Whatever I did, I wasn't able to ensure she or I or the kingdom's army were powerful enough. I have a feeling there is a special ending involving Althea but I wasn't able to get past this part.

Playthrough #4: Lawful-good warrior. Choose decisions that benefit the townsfolk, AND exercise all the time, AND get magic items (sword, armor, shield) even if it means hiding them from Althea and getting her mad at me. This ended up working out well. I was able to kill the dragon, AND the Wichaea guards, AND the wizard himself, and get a good ending!

Overall, I loved playing this game particularly because of the writing. The culmination of how your decisions affect later outcomes was interesting to discover and the writing was the vehicle for that. Dialogue was at times serious, and silly, and breaking the 4th wall and involving pop culture references. There is considerable depth you may or may not even get to see, depending on what story branch you take.

Still need to find out what happens if you don't throw the One Ring into the volcano. Or how to improve my dancing ability. So many unanswered questions!

February 7th, 2018 at 1:39 am | Comments & Trackbacks (0) | Permalink

Finished Braid for the first time.

The levels are really clever. Got all the puzzle pieces, got the ending/epilogue, and was left really confused.

What the heck is going on! I understand 0% of the lore of this game.

March 3rd, 2016 at 12:01 am | Comments & Trackbacks (0) | Permalink

This game was a team effort with myself and 4 other students, for a contest called Games4Girls. The contest is run by University of Illinois. The objective is to make a 2D game, of any kind, targeted toward a female highschool-age demographic, with the restriction that we use Game Maker. Game Maker is a proprietary program used for scripting 2D games, using a C-like language. The choice of Game Maker had something to do with problems with past entries that depended on a wide assortment of platforms/runtimes. Many games wouldn't run. So, they ruled that all entries had to use Game Maker.

We decided to make a platformer type of game, which is familiar to most people. The player controls a character named Alessa, and uses her various weapons to defeat enemies and move through the levels.

Because there were restrictions on using copyrighted content, we created all the graphics and music ourselves.

My personal role was

  • coding object collisions
  • coding scene transitions, scoring
  • creating sprite and background graphics and getting them into the game

Overall the project was a lot of fun to work on. As it turned out, our entry was very well-recieved and we finished in first place. We won a cash prize for our team and some money donated to our CS faculty at University of Waterloo.

https://info.uwaterloo.ca/www/profiles/research_profiles/profile-archive.php?id=193

The levels contain various enemies and obstacles.

The game includes some dialogue segments, illustrated by our group, with larger character graphics illustrated by my super-artistically-inclined groupmate! The dialogue provides some story background to the game.

Controls:

  • Left/right arrows: move Alessa
  • Up arrow: Jump
  • Any arrow(in water): swim
  • A key: Shoot an arrow
  • S key: Swing a sword

My team consisted of (big thanks to my teammates!):

Download Win32 binary

The game was originally built and tested on a Windows 7 environment.

Notes for running on Windows 10 and later:

  • Windows may mark the game executable as protected by SmartScreen. Although anything downloaded here is at your own risk, I attest that we did not put malware into the game and do not distribute it knowingly with any malware. To proceed past the SmartScreen filter should you choose to do so click "More Info" and "Run".
  • The Game Maker environment relies on DirectPlay which, from Windows 7 to 10, was changed from a built-in feature of the OS into an optional component which is downloaded on demand. If Windows prompts you to download it, choose Yes to proceed with downloading it and enable playing the game.
June 18th, 2010 at 3:00 pm | Comments & Trackbacks (0) | Permalink