Binary Options Bullet Download | Professional Forex

Ranking all the Switch shmups Ep11 - Ikaruga

The formula for a shmup is a pretty simple one. Have a ship, add enemies, makes the screen auto-scroll and voila! And yet, there have been shmup games that are simply superior to others, some of which even reach a legendary status. Behind one of the most legendary games is a legendary developer: Treasure.
Ikaruga is a name you probably have heard multiple times, and for good reason. Since its original arcade release, Ikaruga has been brought to many other platforms throughout the years such as the Gamecube, Steam and even mobile. There is a reason an 18 year old game is still relevant, and that reason is that Ikaruga might be the greatest shooter ever made, bar none.
Developer: Treasure
Platform: Nintendo Switch
Release date: May 29, 2018
Price: $14.99
Ikaruga is a 2D vertical sidescroller shmup with a unique twist: polarity switch.

POLARITY SWITCH

In this game the bullets will come in 2 different flavors: black and red or white and blue. Your ship will always be in one of the two polarities, with a button designated to toggling the your polarity. Switching is fast and seamless, which is totally perfect considering how much you will be doing it.
Your polarity has offensive and defensive benefits. By being the same polarity as the bullets, you will absorb them and fill a special gauge. At any time you can release all the stored energy in the gauge to unleash a homing barrage attack. On the other hand, you will deal extra damage to enemies of the opposite polarity. I want to say it’s double the damage, but I don’t have the exact numbers to confirm this.
Additionally, enemies will return fire when they are killed by their same color. This is your reward for beating enemies with the color that actually does the less damage to them. Of course, this all goes down the drain on hard mode where ALL enemies return fire regardless of color. Good luck with that!

CONNECT 3 SHIPS

The other core mechanic of Ikaruga lies in the chain counter. If you destroy 3 enemies of the same color, you will gain bonus points and increase your chain by 1. The chain counter is not time constrained in any way, so you are entirely free to kill 2 enemies, and kill the third one much later, as long as you didn’t break your chain in the meantime. The chain can only be broken by killing an enemy of the opposite color before completing the chain, or by being hit.
It’s hard to paint the picture of everything that the chain counter entails. While it isn’t complex or hard to understand in any way, it does open up a rhythm to the gameplay. Rather than taping your finger to the fire button, you are now actively looking at the enemy formation and mentally creating blocks of 3 fighters in order to increase your chain. By doing so, you also begin to notice the effort that was put into the enemy fleet. Ikaruga isn’t just throwing more fighters than you can handle, it is giving you a canvas in which you can paint your own path to maximize your score.
The more I think about it, the harder it becomes for me to try and put into words how masterful this mechanic is to the core game. I have played hundreds of Ikaruga runs in more than 4 different platforms, and the game is still evolving with every run, or rather, my understanding of the game is evolving. With every single playthrough, more patterns emerge and different ways of keeping track of chains of 3 emerge. If you ever watched Dragon Ball Z, think of this as the part where they explained that the fighters were moving so fast that they were imperceptible to the untrained eye, but as you became stronger you would be able to follow the action.

YOUR OWN FLAVOR OF GAME

What makes Ikaruga such as masterpiece is that neither of the above systems are necessary at all. You are free to play Ikaruga on your own style, and can explore other styles as you progress or become better at the game.
Are you the type of player that only wants to shoot at enemies? Great! You can go through the entire game just killing every enemy in sight without worrying about chains or polarities. You can even forego the entire polarity switch mechanic and just focus on one color of bullet to dodge through the entire game (disclaimer: level 3 and 5 have section which will inevitably kill you if you don’t switch, so at least do it on those sections).
Are you an intermediate player who wants to make the most of the mechanics, but without learning to be proficient with them? That works too! Go forth and absorb bullets to unleash devastating barrages on enemies of the opposite polarity.
Are you a score junkie that wants to shoot for the leaderboards? Awesome! You can try and find all the formations that will increase your chain and go for high scores!
Are you more of a fan of surviving complex bullet patterns? We got those too! You can go through the entire game without shooting a single bullet to earn the coveted “dot eater” rank.
The way every system was built on Ikaruga opens up endless possibilities for the player, but none of them are forced into the playing experience. Ikaruga manages to be a shmup, a puzzle game and even a lesson in movement finesse.
If you ever wondered why was it that Ikaruga gained its legendary status, it is because as a game, it keeps presenting new ways to play to the player in subtle ways. Every new mode feels like a discovery to the player, and we all know that everything is 100% better (legit numbers, by the way) when it feels like we discovered it for ourselves. Ikaruga is a game that will never become stale or obsolete, simply because one game feels like 10 different games, and each of them is a gem of its own.

A GAME POLISHED WITH EVERY RELEASE

Part of the beauty of re-purchasing Ikaruga is that it isn’t quite the same game you might have purchased generations ago. The gameplay is intact, and remains a masterpiece, but extra options and features are always added that push the quality of the package through the roof.
One of the earliest inclusions was free play. The first time I beat Ikaruga, was on the dreamcast. Back then I vaguely remember that the game rewarded me with extra continues the more I played, with 20 continues being when I finally defeated the final boss. Now we don’t have to do that, as free play is one of the additions that was been parted of a revamped package. A lot of the fun in shmups games is to push though in order to finally reach the final level, but there’s also great game that deserves to be enjoyed by all.
You don’t need to completely toggle free play in order to complete the game, you can tweak other setting to create an experience custom built for you. Adjusting the score requirement for extra lives is one of these settings. You can also increase your continue count if you wish to give yourself better odds, without completely eliminating the risk of defeat.
One of the better features are the replays. You can finally have the game record your best runs, just so you can remember that amazing run you had the other day. Replays are only available for default setting, so it will only record when you are playing with 3 lives and no continues.
For more hardcore players, there are global leaderboards in many different categories for you to compete. And for those of us with dreams of grandeur, we can download replays from the leaderboards just to be amazed at the movement and strategies of top players.
There’s also achievements! I know some people hate them, but personally I love them and always take any chance I get to share their existence for some games. You can even make it so they are displayed on the in-game HUD to wear as your badges of honor! Or you can just not display them, we don’t shame anyone in here.

THE BEAUTY AND THE STYLE

Aside from being a fantastic game to play, Ikaruga is also beautiful to the rest of the senses (except maybe smell). While the game is a 2D shmup, everything is a 3D model. The enemies look great and the backdrops are jaw-dropping. It is thanks to the camera shifts from stage intros, bosses or random mid-stage sequences that we truly appreciate the depth of the background. Shoutouts to level 4 where we were battling on top of the boss all along and we didn’t figure that out until the final explosion.
Perhaps my favorite touch is how stage intros are displayed after playing the stage for a while. These intros feature camera shifts and a short description of what is going on through the pilot’s mind. As always, I don’t understand the narrative of most Japanese shmups, but on its own those phrases still evoke that necessary dose of heroism in a hero’s journey.
Due to how short shmups generally are, Ikaruga has few songs. But what is lacking in quantity, is more than made up with the quality of every song available! Shoutouts to the music from the first boss which might be my absolute favorite track.
I bet you must be wondering where the joy of the tact sense is coming from. Well, we can thanks the wonder machines we call joy-cons for that. HD rumble is so great because it always feels natural with what is going on in the game. The intensity of every explosion is captured with the HD rumble, just don’t leave your handheld Switch on a glass table while the boss explodes.

LAST WORDS… MAYBE

With all that’s being said, it is quite clear that Ikaruga is by far the absolute best shmup game you could play on the Nintendo Switch. There isn’t even any unannounced contender for the throne, so rest assured your purchase would be an extremely safe one.
The reason I put off on doing this review for the longest time is because I don’t think I can make justice to how good Ikaruga actually is. Even with all the praise I gave if during this last 1658, I think there is a lot more magic to cover, but I’ll let you guys discover this on your own. The fact is that as of now, Ikaruga stands right there along the god-tier of shmups games.

THE RANKING SO FAR:

  1. Ikaruga
  2. Devil Engine
  3. Steredenn: Binary Stars
  4. Sky Force: Reloaded
  5. R-Type Dimensions EX
  6. Shikhondo – Soul Eater
  7. AngerForce: Reloaded
  8. Aero Fighters 2 (ACA Neogeo)
  9. Lightening Force: Quest for the darkstar (Sega Ages)
  10. Switch ‘N’ Shoot
  11. Last Resort (ACA Neogeo)
submitted by AzorMX to NintendoSwitch [link] [comments]

MAME 0.199

MAME 0.199

Today’s the day for our mid-year MAME release. MAME 0.199 includes support for the incredibly elusive Spanish arcade title El Fin Del Tiempo, and the rare Pac-Man hack Titan. Other rare bootlegs added include Come-Cocos (derived from Ms. Pac-Man) and Gran Rally (a Spanish bootleg of Pole Position II).
There are some pretty big improvements to Tatsumi games (Apache 3, Cycle Warriors, Round Up 5), some NMK mahjong games work substantially better (Urashima Mahjong, Mahjong Daireikai, Mahjong Channel Zoom In), and Big Run looks better than ever. War: The Final Assault no longer crashes thanks to a fix in Voodoo emulation.
Floppy drive emulation has been further improved, and a fairly major issue with Apple IIgs and Mac 3.5" drives has been fixed. Sound Blaster direct DAC mode is now supported. Improved Dreamcast GD-ROM emulation allows Daytona USA 2001 to boot. The HP 9000/300 series can now boot from floppy, and the medium-resolution colour graphics option is supported. Tiger Electronics fans can enjoy Battle Arena Toshinden for R-Zone.
Of course we’ve also added more alternate versions of supported systems, software list updates, bug fixes, and internal improvements. You can get source and Windows binaries from the download page.

MAMETesters Bugs Fixed

New working machines

New working clones

Machines promoted to working

Clones promoted to working

New machines marked as NOT_WORKING

New clones marked as NOT_WORKING

New working software list additions

Software list items promoted to working

New NOT_WORKING software list additions

Source Changes

submitted by cuavas to emulation [link] [comments]

Three years of full-time solo development: making a story-driven 3d point-and-click game in Unity

Hello, everyone! I’m Dmitry, a 28-year-old guy from Russia, and I’d like to share with you my solo, no-budget, three-year-long journey of making a sci-fi adventure game called Supposedly Wonderful Future on Unity. It turned into quite a lengthy beast, but I hope you will find it interesting and engaging enough to justify a long read. Though I don’t consider myself an authority on anything, I’d be glad to respond to every comment, answer any question, and write some smaller, accompanying walls of text below. Thanks!
Let me start by saying that I have very specific gaming tastes. More precisely: I need a good plot. With twists and intrigue, ideas and messages, well-written dialogues, careful world-building, witty jokes, with characters that make you care, drama that sends you riding the feels train, and so on, and all that jazz. I wouldn’t say “no” to quality gameplay either, and I believe that interactivity is one of the video games’ strongest assets, but the story comes first.
All of the above can be considered a theoretical ideal I set my sights on as a developer. Story-driven games aren’t a very common choice among indies (there are visual novels, but they kinda exist in their own world, and even they frequently concentrate on dating simulation rather than on deep complex stories); even so, there was no doubt in my mind as to what kind of game I wanted to make. After all, if you plan to spend three years creating something, you’d better maximize your chances of loving it personally, right?

Three years? How about money to buy food and stuff?

Good question. Though by no means unique or even exceedingly rare in this day and age (I’ve seen folks who’ve been soloing much longer than me on this very subreddit in the last few weeks alone), it’s still not the most popular career decision in the world, and I want to state clearly from the start that I only did so because: a) I could afford it; b) that’s how the circumstances turned out to be.
I was writing a commercial web app with .NET MVC, employed remotely by a British software development company while living in Russia, and the difference in average salaries made it a very good job for saving up. At the same time, that job was starting to slowly but surely fall apart, while searching for a replacement turned into a hella lengthy process, so I spent a few months in a rather bored state of mind – and we all know that boredom is a good fuel for unexpected wild ideas.
Furthermore, I was lucky enough to find myself with a number of useful gamedev-related skills on my hands. My university degree had nothing to do with games, only with programming, yet my graduation project about e-learning went for gamification angle and ended up featuring a 3d web build made in Unity, so I was already familiar with the engine. English, though not my native language, was ingrained in my mind after a decade of constant exposure, so I was fairly confident about my ability to write decent dialogues and cohesive narratives.
Last but not least, analyzing video games’ stories in my head was one of my favorite pastimes, and extensive browsing of a great place called TV Tropes helped me to better understand common story-building blocks without succumbing to a cynical, “it’s all just a bunch of cliches” attitude. There were still areas where I had to start from scratch, mostly related to visuals (more on this in the lower parts), but at least it didn’t feel like I was trying to get another degree all by myself.

On game design and focus

During those boring months, I thought a lot about my idea of an “ideal job”. How I enjoy programming but always see it as a tool to reach specific goals, rather than an exciting field all by itself. How fascinated I am with storytelling in modern media, and its ever-growing effect on our daily lives. How I myself was supported, inspired, and motivated by fictional stories every step of the way, and wanted to give back. How I always genuinely liked video games and toyed with an idea of making my own, only to conclude that it’s just unrealistic for a one-man effort to include all those things a serious story-driven game should have…
…except that, with 2014 on the calendar, it kinda wasn’t. There was a shift in how people approached game design now; a certain new level of maturity video games achieved as a medium. Or maybe it mostly happened in my head, but it was an important thought to me nonetheless. I remember playing Russian games from the early 2000s and seeing diamonds in the rough buried under bugs and deadlines; labors of love whose reach invariably exceeded their grasp.
Single-player, multiplayer, innovative gameplay, thoughtful stories, elaborate visuals, vast 3d environments, cutscenes, voice acting – they did it all with mixed success, and not necessarily because they wanted to include that much, but because a game was SUPPOSED to include that much. Publishers preferred it this way too, I imagine; when “shipping a game” means actual shipping of thousands of physical copies (!) to individual stores all across this ridiculously big country, there’s a natural limit to the risks you might want to take.
But the broadband kept rolling, the software was advancing, the indie games have bloomed, and a different kind of approach started to occupy my mind. You start with a question – “Why, what’s the point?” – and answer with one short sentence. You go in as modest as possible, focusing solely on that sentence, and then you polish it day in and day out like a samurai, without cutting corners, as much as real life allows you.
Now, that approach is quite suitable for a one-man band, isn’t it? So I thought to myself: as much as I’d like to release my own Mass Effect tomorrow, let’s follow this route. Let’s try to excel at one specific thing, and discard everything that doesn’t directly affect it. Let’s tell a story worth telling.

So what kind of story is it?

A young man is invited to skip his own untimely death by time traveling into 2046 – if only he does some work for a megacorporation first… That’s the logline I wrote for it, anyway. Why this particular premise? Surprisingly enough, I don’t have a clear answer. I could explain you the reasoning behind 99% of the story in excruciating detail, but the basic framework, the “why it starts and how it ends” stuff? That was more like a spontaneous idea than a carefully planned action, popping into my head one day and then growing and growing until it affected everything, like in that Inception movie.
There is an interesting thought among writers: the story writes itself, driven by characters’ personalities, basic setting, and other things outlined from the start, while you are merely discovering the details. I’m not sure I can embrace the notion, but I definitely felt the power of internal logic throughout my writing experience.
Then again, internal or not, I was always big on logic. My university education, though mostly related to automation and programming, had a number of more theoretical courses on math, logic, and systems thinking, which heavily influenced the way I view the world. Computer software is not the only kind of complex systems – a fictional narrative is too, as is human society, as is the entire universe. Everything around us is a system with its variables, elements, interconnections, and dependencies. That might the reason why I went for sci-fi, and why I enjoyed building the plot up until it resembled a decently-structured system on its own.
On a somewhat related note, I wanted it to be psychological and existential enough too. It sounds awkward when I put it so bluntly, like I’m snobbishly trying to elevate my stuff to a higher level where “serious art” resides, but if I’m being honest with myself, art or not, that’s just the kind of stories I like. There are complicated, uncomfortable things inherent to human condition that affect our reasoning and influence even our most mundane decisions, and if you’re in a business of writing believable stories with realistic characters, I don’t think you can afford to ignore it – on the contrary, you need to stare it directly in the eyes.
Depression and anxiety, self-doubt and escapism, clashing worldviews, social tensions, and our eternal quest for the ever-elusive happiness – all of this is explored in the game to some capacity, and though it will probably limit my audience (“I have enough of this crap in real life, thank you very much”, some might say, and who can blame them?), I still wouldn’t have it any other way.
Having said that, I really don’t want my game to come across as moody, pretentious, or oh-so-deep. I tried to keep my writing as casual and down-to-earth as possible, and there’s a decent share of light-hearted or downright silly stuff in it as well. There’s a character who always talks like Doc Brown from Back to the Future. There’s an agile management framework called SCREW and its 12-rule manifesto (I’ve been following those guidelines myself, and let me assure you, it’s a killer). There’s a penguin and a badger who try to stop Betelgeuse from going supernova by using their waffle (it makes sense in the context… sort of). I guess one way to put it is to call it a story that doesn’t get too serious – until it does.

Constants and variables and choice

Another far-reaching thing was my decision to tell the story through RPG-like conversations. You know, those old-school dialogue trees like in Dragon Age or Neverwinter Nights where every chunk of text from NPCs is followed by a numbered list of possible responses for you to choose from. My reasoning was simple: if you have a fixed narrative but still want to make the experience more involving and engaging than reading a book, dialogue options is one of the easiest and most natural ways to do it. “Choices matter” is a tag I will never see next to my game, but a smart illusion of choice? The one that eventually leads to the same outcome but still puts you in characters’ shoes and makes you consider their options? That was something I could try.
Then again, I’ve gotten rather fascinated with illusions, whether they were visual or narrative. I used to play games like Mass Effect and think: why even allow the player to act as a total jerk if they still have to do all the noble, heroic, world-saving stuff in the end? Now I believe that such options are important regardless of whether you actually use them or not; that they achieve their purpose simply by being there. I mean, sure, you can easily shatter the illusion to pieces if you reload or google some videos, but during that first, most important try, doesn’t it feel remarkably similar to real life?
After all, we can never truly predict the importance of our daily decisions; we just choose one of many options, while all other doors remain closed and unexplored. Maybe they could lead you to a whole different life. Or maybe there was a solid wall behind all of them, and you never really had any other choice. So I decided to stick to my guns and give every conversation a negative or ambivalent option, superficial as it might be. I even came up with a line for my bullet-pointed list of features: “Neat roleplaying opportunities! Be a compassionate smartass, a cynical smartass, or just plain “hey look how funny I am” smartass. Or don’t be a smartass at all, I guess, but why would anyone want that?” It sounds extremely cheeky, so I decided against using it, but to be honest, it’s kinda accurate.
Consequently, implementing my own dialogue tree graphs was the very first – and probably the most exciting – bit of programming I did. It turned out simple and manageable enough: just a bunch of XML files storing text lines with IDs, coupled with binary files containing the logic of how those IDs should connect. Building a customizable, decent-looking UI to support it all was a much longer endeavor (Unity UI system has a number of idiosyncrasies and not-so-obvious details), and became the longest block of code in the game. The rest was more or less straightforward and consisted mostly of OnClick behavior scripts – after all, mechanic-wise, I was making an extremely simplistic game.
Even with all the simplicity around, however, I was thoroughly reminded just how quickly your variables can pile up and spawn bugs. It took me about 2-3 months to go from “all the content is there and should be theoretically working” to “I think I’m confident enough to release it”, and every testing session supplied me with at least a couple of freshly discovered bugs. Trying to predict user actions is something that any software engineer should try to do, but I think video games take the cake here, probably because of how many different buttons players can press at any given moment (as opposed to, say, websites, where you mostly just click on stuff).
I can only imagine how freaking hard it is to properly stabilize vast, open-world RPGs full of interconnected quests and NPC lines (all those buggy releases I played feel even more relatable now, that’s for sure). I also have to wonder if there are some good programming practices that can help you to tackle this complexity and mitigate bug-related immersion breaking, because I sure didn’t use any of that. Hell, I barely even used exception handling. The way I see it, if something goes unexpectedly wrong, you’re screwed either way.

The graphics are probably cheap and lame, though

That’s what I was ready for. Braced myself for, even. I knew from the start that visuals were my weakest spot, and although I made some decisions to lower the difficulty settings (like confining the story to just a handful of small rooms or settling on the fixed camera), my design skills were still close to zero, and I hadn’t even modeled a simple table in Blender before.
At first I thought I’d just cobble up whatever I can from free assets – and indeed, some of the Asset Store’s most popular free items made it to the final build and now sit proudly in the middle of my screenshots. However, as I went ahead and familiarized myself with the basics of 3d modeling, I found out they had more to do with math than with design or drawing. Now, math, not only did I have experience in it – math was like a good old friend.
So I took my trusty ruler that was going back to my high school days (though I’m sure any other ruler could do fine too… it just happened to be lying around, really) and started measuring the furniture in my apartment, using real world as my definitive reference. To my delight, soon I was able to model a table, and a bookshelf, and a sofa, and even an office chair too. I even found myself preferring to make simple models from scratch rather than searching for good free versions online – as long as I could manipulate vertices individually and rely strictly on coordinates rather than on any kind of artistry, I was fine.
As for the colors and lighting and general aesthetics, I mostly decided to just grind for it, i.e. to keep googling for cool interior design ideas and then moving stuff around until my internal critic stops hating it. To a certain extent it worked, though I certainly wouldn’t recommend this approach to anyone who needs more than a handful of small indoor areas. I have also utterly failed at utilizing any of the modern graphic enhancements like linear color space, post-rendering effects, or Unity 5 lightmapping, but even without it the environments look more or less pleasing, and that is certainly more than I hoped for in the beginning.
The character models, however… oh, boy, the character models are a whole different matter. I used an open-source thing called MakeHuman, which is honestly awesome and takes care of the base models and rigs, but I still had to do stuff like clothing and skin texturing, which took ages, and frankly, I’m still dissatisfied with the results.
They just aren’t appealing. Some of them look old and tired and beaten and functioning on way too little amount of sleep. You might even call them ugly. Granted, some of those folks are supposed to look ugly and tired and beaten, but justifying your lack of artistic sense with the story can only take you that far. Right now, though, I don’t think I can improve them any further – not without spending many more months on polishing my skills, anyway. There are points in time when one just has to accept one’s own limitations.

It’s not a bug, it’s a feature

Some of those story-based justifications, though? Some of them I’m pretty proud of. They felt less like excuses and more like genuine opportunities, helping me to turn my limitations into strengths in ways I couldn’t even consider beforehand.
For one, despite the fact that the game is set in the future, none of my environments were very futuristic. On the contrary, apart from the screens hanging in mid-air, one Minority Report-wannabe character waving his hands at them, and holographic keyboards that detect your touches without any gloves (which should be possible thanks to that smart thing I googled called “acoustic radiation force”), they looked just like something you’d encounter today.
At first I thought it was an inevitable restriction, since recreating real-life objects from reference images was the best I could do, but then I realized: doesn’t it actually make perfect sense story-wise? Isn’t it realistic for the not-so-distant future to look almost exactly the same as the present? I took my 30-year time jump from Back to the Future II, but didn’t we just recently muse how 2015 turned out much more boring and mundane than they imagined in 1985?
What started as a limitation of my design skills suddenly turned into a statement I now support with all my heart: it’s not about the looks. The science fiction of the past depicted us in weird garments riding flying cars filled with flashy technology, but when the time came, we were wearing the same clothes, living in the same houses, eating the same food, yet, thanks to the internet, our way of interacting with reality – how we learn, socialize, make decisions – was fundamentally changed. It will never be about flying cars. The most profound changes can’t be seen with the naked eye.
Another example would be my quest for the perfect urban vista. Very early in the development I decided that I’d need an image of a fancy metropolis seen from a high point – just one shot, but it’d have to satisfy a number of conditions:
So, after a lot of internet searching (dictated, of course, by the fact that I couldn’t even begin to imagine how to make one from scratch myself) only one example satisfied my needs: the famous view from Victoria Peak in Hong Kong.
Now, using an image from 2010s for a story set in 2040s wasn’t an issue thanks to my convenient realization from before (there’s even an optional in-game explanation I shoehorned in that talks how Hong Kong’s bay area was already densely developed by 2010s and therefore didn’t see much construction work since then, and how you should totally visit Shenzhen or Guangzhou nearby to see a real difference). However, it posed a problem of a different kind: the game’s events would need to be set in Hong Kong. Meanwhile, I didn’t want to set my events anywhere at all – I wanted to just skip mentioning places, since it wasn’t important to the story, and to avoid any semblance of politics; to show a world so united and interconnected that your geographical location didn’t really matter.
However, as I turned to write another thing I really wanted to include – text articles imitating real news but describing hypothetical events that might happen in 2046 – I realized that freedom to talk about specific places makes it so much easier. Before long, I was mentioning Jakarta and Minsk and Addis Ababa and Istanbul, but not in a political, “this region still has such-and-such problems” way, but in a positive, “look how huge the world is, and how great it is to be aware of it” way. It really turned into an all-around better world-building, and it was a seemingly unrelated design challenge that helped to arrive there.

The pure awesomeness that is Creative Commons

My use of free assets went well beyond Hong Kong photos and 3d models from Unity Asset Store. I know there’s a number of reasons why one might want to avoid such things (like sacrificing your game’s uniqueness or accidentally violating somebody else’s intellectual rights), but since I was going into this alone and with no budget, embracing it instead felt like the only sensible course of action. I counted on the great collective consciousness of the internet to help me every step of the way – and boy, was I not disappointed. It’s absolutely amazing how much cool stuff people share online not just for free, but free for commercial use too.
First of all, you might already know this, but the amount of mind-blowingly beautiful photos in public domain these days is staggering. At first I came across an American photographer Jay Mantri, looking for a window view from my protagonist’s little office, and was seriously impressed with his work. Then I found Unsplash, where dozens of photographers share even more dazzling stuff. Then there was Pixabay, which might just be the definitive library of free images that collects all shots from the guys above and much more.
Since then, these places managed to satisfy 90% of my needs. I wanted images to illustrate abstract topics like dangers of immortality, emergence of artificial intelligence, ever-growing corporate power, or huge economic inequality – Pixabay had them. I wanted creepy child drawings – Pixabay had dozens. I wanted 10-15 black-and-white photos that look like a part of the same collection – Pixabay delivered. I wanted crisp, breath-taking shots full of vivid colors to decorate a bright orange room – probably half of the stuff at Unsplash is like that.
I also have to mention freesound.org, though using free sounds is probably much more common for indie video games, since coming up with necessary audio in your own studio is one heck of a weird creative challenge (at least that’s what I started to think after this video stuck with me).
But my greatest find is undoubtedly the soundtrack. Initially I had a naive thought of trying to create one myself (not properly composing, of course, since I had zero experience in that, but maybe playing around with loops and presets to come up with some simple yet pleasing tunes), and I even treated myself to a cheap synthesizer under the pretense of wanting to pick up music as a hobby anyway.
Naturally, this idea quickly died down once I realized that I’m incapable of “simply playing around” without understanding the basics, and understanding the basics would delay my release for another year at the very least. So I left the synthesizer standing in the corner (though I’m going back to practicing any day now, promise), turned to my old friend Google, and emerged more powerful than I could possibly imagine.
Mind you, it wasn’t a fast process, but as long as I was willing to spend hours upon hours carefully sifting through all instrumental music of suitable genres, I was repeatedly rewarded with truly awesome finds. Forget just “pleasing tunes” – with this amount of content I could start only with the tracks I personally loved, and then pick them to specifically fit the current mood of the story. After about 6 months of on-and-off searching and thousands of little choices (which probably sounds cooler than it was; most of them were made in 20-30 seconds, after all) I ended up with 2.5-hour-long soundtrack; a pretty extensive selection for a game that will last you 8-9 hours tops.
Of course, I don’t want to sound too one-sided; there are definitely upsides to composing your music from scratch, as well as downsides to using free music I might not be aware of (if my game gets decent exposure, maybe some of those creators will eventually ask me to remove their work, who knows). At the moment, however, I still feel mightily impressed with just how much quality material is already willingly shared online, and what a win-win it could be to use it in your indie game.
My biggest treasure trove was Free Music Archive, followed by ccMixter. Bandcamp and Soundcloud have even more stuff, but I don’t think there’s any way to filter that stuff by license. Your friendly neighborhood ccmusic is totally awesome too, with both creators and dedicated searchers constantly posting new links to wherever the music might be.
And, you might already know this too, but the main license to look for is CC-BY, or attribution-only. CC-BY-NC (non-commercial) is pretty self-explanatory, unless it’s F2P games with optional purchases; then I have no idea. CC-BY-SA and CC-BY-ND are probably a no-go, though it’s all very vague and depends on how you apply “adaptation” and “collection” terms to video games, but music is more of a no-go than the rest, since synchronizing audio to video is specifically defined as adaptation. There’s also CC0, or Public Domain (rare for music but quite common for photos and images), which may be useful if you are unable to give credit for some reason, but otherwise it’s probably a good idea to mention the original author regardless.

Any thoughts on time management and work-life balance?

I’m afraid I can mostly just repeat the obvious here. Listening to your body and respecting its natural rhythms is good. Burning out is bad: it affects not only you personally but the quality of everything you make as well. I’m a big fan of adding work to your hours instead of adding hours to your work; a fan to a fault, really, since it always makes me stressed if I spend even one day on something ultimately useless, but it also helps to keep my wastefulness to a relative minimum.
Another classic I can personally attest to is the importance of exercising (or just staying active if you already have physical activity incorporated into your daily routine or your hobbies). I had countless days when my thinking was kickstarted by a jog on a treadmill, taking me from “ugh, kinda not feeling it today” to “wait, I think I got this” in a matter of hours, helping me from the first drafts of the story to this very article. Some of it probably was just endorphins changing my perspective to a more positive one, but not all of it, and I can say with certainty that the line between a well-functioning body and a well-functioning mind is incredibly thin.
I turned into quite a running addict these past years, not in a sense of how much I do it (in fact, it’s the opposite: I do it only twice a week, and I barely even meet the recommended guidelines), but because of my body’s increased reliance on it, and its immediate symptomatic revolt if I dare to delay my scheduled fix even for a few days. It made me think just how good we are at getting utterly dependent on various stuff (whether it’s smoking, exercise, smartphones, or electricity), and how many psychological similarities can be found between self-destructive behavior and the so-called “healthy” habits. On the plus side, these ideas helped to shape Chapter 4 of my game, the one I completed the last and now feel the most proud of.
One common notion I could probably challenge a bit is the idea of working fixed hours. Most sources highlight the importance of picking a schedule and sticking to it, and while it’s definitely a great way to prevent burn-out and reduce the taxing amount of decisions one has to make every day, I never really felt comfortable with the “sticking” part. Isn’t it ultimately incompatible with how creative thinking works, and isn’t it better to take advantage of the “indie” part and stay as flexible as possible? So if you feel on fire, maybe allow yourself to get overworked a bit, since you could finish in hours what otherwise would take you days. And if you feel the opposite, just let it all go for a few days. We are not machines, after all; we are a chaotic unpredictable mess of thoughts, and that’s probably okay.

How about marketing or community building?

During the years of actual development? None whatsoever. In fact, you might have already noticed that I went against quite a few of common wisdoms, like:
  1. start spreading the word early, write blogs, share stuff;
  2. get a lot of feedback, bounce ideas, talk with people;
  3. don’t go all out with your first game, make it small and manageable;
Was it the right decision to ignore points 1 and 2? Who knows. But, being painfully aware of my own strengths and weaknesses, I believe it was the most realistic decision for me. To be honest, I’m a somewhat obsessive person prone to overthinking stuff, and once I really start a thing, I have trouble stopping (it’s even there in the username). I knew for a fact I wouldn’t be able to write a really good story if I started to do marketing – I’d be too distracted by that tweet I should write this Saturday or that feedback somebody left me on Friday.
Most people, I imagine, have different modes of writing. They can think carefully about every word if it’s something important, or just type it as it comes. Me, I only have one. It doesn’t matter if you’re an old friend getting in touch or a potential employer defining years of my future – chances are, I’ll stare at the screen for 20-30 minutes before I hit “Send”. I imagine most people are also trying to fight these manifestations of excessive perfectionism, since it’s kind of a pain and a drain on your time. As for me, well, after years of stressing out I now mostly just accept it. It has its upsides, and working on a single game for years seems like a good way to put them to use.
To my defense, though, I was really planning to stick with point 3. I thought that I had a fairly realistic plan on my hands; a game with a singular focus that doesn’t even dare to excel at anything else. My first and most naive estimates included finishing it all in nary 6 months. But, of course, software development doesn’t work this way, and writing novel-long cohesive texts apparently don’t either. 6 months quickly turned into 12, 12 into 18, and then kept slowly but surely expanding every step of the way.
Interestingly enough, though, at no point did I feel like I was going out of scope or getting buried by feature creep. Frustrated by how long everything takes and what a slowpoke I am? Sure, more times than I can remember. But I always felt it had more to do with the nature of any sufficiently complex project rather than my unrealistic planning, and countless examples of noteworthy gamedev teams going out of time or budget seemed to support that. As Lord Gaben famously said, these things, they take time.
There’s a quote by Neil Gaiman (who has a ton of great advice that’s applicable not only to book writing but any kind of creative endeavor), and it goes like this: “Finish what you started. Whatever you have to do to finish it, finish it.” I think it’s one of the quotes that really managed to motivate me. A kind of a mindset I was for the majority of my development time, even. I already started. Set the wheels in motion. And once the wheels are in motion, you only have 2 options: finish it, and then maybe nobody else will care, or drop it, and then definitely nobody else will care. When you put it that way, it’s a very easy choice, right?

Fascinating, but let’s wrap this up already

So there you have it. A significant amount of something, followed by something else. I’m sure the second “something” will be even more unpredictable than the first one, but will ostensibly include months of marketing attempts, good old post-project depression, as well as some hopefully not-completely-pointless job-searching (indie freedom is intoxicating, but I think it would do me good to work in a team for a change).
Even if it all turns out to be as frustrating as possible, though, I think I’m stubborn enough to not let it diminish the first part’s value. As the great Neil Peart from the great band Rush said in one of their many great songs, the point of the journey is not to arrive. So if you don’t mind a cheesy one-liner to send this wall of text off, it goes something like this:
I guess that’s all we can do in this random world. Make the journey count.
P.S. If any of this sounds like a game you might like, please consider supporting it on Greenlight, or check it out on itch.io where both demo and full versions for Windows are available. You can also follow me on Twitter, where I post gifs and images coupled with oh-so-mysterious quotes from the game, or on Facebook (where I haven’t posted a single thing yet, to be honest, but will certainly rectify that sooner or later). Thanks!
submitted by gamblingDostoevsky to gamedev [link] [comments]

[OC] Hardwired: De Novo Pathfinding (Chapter 39)

In this chapter: A skilled cogent's most dangerous weapon is their own experience
Next chapter: My mind, to your mind. My thoughts, to your thoughts
Fun trivia fact: If editing and revising the book takes me until this coming November, it would count for NaNoWriMo. Right?
Hardwired series homepage
Previous Chapter
CHAPTER THIRTY NINE
Oh, of all the times to-
[Ammunition depleted.]
Really? You don’t say-
[Would you like to view a list of nearby vendors of this caliber and payload? Y/N]
N.
He could already hear the sounds of Saru's warmech, as it stopped a hasty duck away from the predicted field of fire, and instead began to lean back in towards the ruined crater of an office. Ajax's heat sensors flared a warning, and he dove to one side and under a laminated multi-tiered desk as the chem-laser burned a path through where he had just been standing. The beam swept slightly to the sides before winking out, clearly searching for a target.
Nice try, asshole.
Looks like he still doesn't have a lock on my fusion emission yet. No telling how long the dust will give me cover in that regard though.
As Ajax picked his way down to the base of the ruined building, one of his internal processes pinged a results indication. Ajax had been surprised it had spoken up: typically this partition was for advanced or in-depth combat analysis, and to return a result this quickly was surprisingly quick given its previous processing speeds.
[Results ready for [Target Neutralization] - subtype [Alternate]. Data derived from combat diagnostics, strategic readouts, and [Lilutrikvian] warmech data cached in previous encounters with the [Ares] model.]
Ah, right: having the previous armor analysis file on-hand probably made that job a lot faster, but even then it usually needs a half-megacycle before it can assemble a de novo response-
[Secondary data sources based on primary correlations compiled from local historical EM data, local Terran expat demographic data, and 458 scans of immediate half-click surrounding region.]
That's a fairly specific set of searches; looks almost like the code was looking for other cogents.
[Affirmative.]
Well, then. Explain reasoning behind this search.
[The [Ares] model of warmech is hardened against both chemical, biological, nuclear, and cybernetic damage and incursions. For the latter category, however, the general novelty in general Lilutrikvian digital warfare and lack of attack-hardened firewalls likely meant that cruder methods of security were more effective.]
Elaborate.
[Instead of having fully-networked and robust wireless connectivity secured via reinforced and layered firewalls, the [Ares] appears to be limited to a single cluster of wireless antennae and a triwalled anti-incursion firewall for digital defense. Otherwise, the general design idea of 'air gapping' appears to have been the preferred method for digital security.]
Still not seeing it. Lilutrikvians tend to be naive in cyber warfare design, but why would it matter that the warmechs are the same?
[Control of the warmech frame likely occupying the majority of [Sarucogvian] processing output. Due to myriad of threats and security issues, physical security of his neural web would be key factor in where his primary data files and active web are located.]
Yeah, that damn thing is probably the most heavily-armored terrestrial bastard on this side of the planet.
Another rumble and shower of dusty clay pattered his frame as Ajax knelt near the bottom-floor lobby. Every few minutes he could hear the report of Hera's railgun, but judging from the lack of audible mechanical carnage afterwards he guessed she was in a poor position to do anything but lay down some sort of suppressing fire.
Kind of wish we brought more rocket launchers after all. Railguns aren't ideal for trying to arc fire over obstacles like you can do with an explosive missile.
This is starting to ramble. Summarize rationale as list.
[Summarizing...]
[Point A) [Sarucogvian] is inside an [Ares]-class warmech.]
[Point B) The [Ares]-class warmechs require a functional communications array in order to wirelessly transmit or receive.]
[Point C) There are no functional and powered civilian cogents or high-level AI-equivalents other than self and attack-hardened contact [HERA] within [0.66] kilometers.]
[Point D) The [Ares]-class warmech [Sarucogvian] is occupying has sustained heavy damage to the wireless array. Effective expected range is <[50] meters.]
Points of data and realization finally coalesced in Ajax's neural web as he realized what his projection subroutines had discovered.
[Conclusion: Target [Sarucogvian] is-]
-is trapped like a worm in a virtual machine.
He ran a quick check to see if Sarucogvian had performed any similar EM-scans or other database pulls regarding any possible nearby substitutes for him to hide in. They all returned negative results.
Not only that, but he's too focused on me to even realize it.
Ajax could almost feel a whoop of joy from his combat and fuzzy memory comparison modules: he had been anticipating a drawn-out need to run Sarucogvian to ground first, and eliminate his copies. Instead, he had apparently lucked into the Lilutrikvian cogent boxing itself off and cutting a months-long expected mission completion timeframe to less than two hours.
Two hours? I'll bet I can beat that.
The ground shook as one of the red enamel-coated metal claws slammed into the pavement outside of the lobby. Ducking out as far as his security subroutines let him dare, Ajax scanned the position of the warmech and let his processors run for a few decacycles to come up with a top-efficiency climbing route.
Loading the route up, a series of purple-highlighted miniature nav-markers suddenly crisscrossed their way up the limb, to the flat plateau of the torso directly above the fusion core. He put on a burst of speed, letting his joints strain within an acceptable range of wear in order to get a bit of extra speed and height onto his initial vault. Arms out at exactly the right angles, Ajax slammed into the side of the leg, an access hatch handle and redundant heatsink meeting his waiting hands.
As he began pulling and lunging upwards, Ajax noticed a distinct pause in the robot's pace a few seconds later, followed by each leg briefly lifting up a dozen feet or so, holding position, before crunching back into place.
Ah come on you oversized crawfish, you weren't expected to run a mass-countercheck until I got to the second joint.
That's the problem with fighting a damn AI, is they tend to notice everything.
One of the other claws came free of the shop it was embedded into, sweeping forward to scrape him off of the leg with the weight of a decaton of steel-alloy behind the blow. It loomed overhead, dropping quickly, as Ajax vaulted upwards as quickly as his servos could handle.
Almost there. Just a few more meters-
His display highlighted the outline of a knee plate that jutted out just far enough to give him shelter from the blow. The problem was that the limb had begun dragging downwards, the scraping of metal reverberating off of the buildings that still stood.
[Alternative route found: Estimated time savings of [0.58] seconds, increase in handhold grip risk up by [+25%]. Would you like to use this new route? Y/N]
Y, damn it. I need all the speed I can get.
The dotted series of handhold grips flickered and shifted. Multiple of them were now marked in red, warning him of less than two centimeters of estimated raised texture or plating that he could grab ahold of. As he lunged for the next-closest grip, he could feel one set of digits slide off, a few minor reminders cropping up in his neural web to remind him that he was several years past the estimated effective wear date for the friction-adding finger coatings. As a result, the rubber-like polymer that would normally give him a fine fingerprint-like texture and greatly-enhanced gripping power had aged and worn and degraded to the point of being like a sleek and cracked plastic instead.
His other flailing hand managed to grab it, and after a sickening millimeter of sliding, held firm. Ajax swung slightly, before slowing enough that he could brace his feet again and climb to the next route of grips and ledges. Keenly aware of the rapidly-decreasing countdown timer pinned in his neural web, the crushing claw coming ever closer, Ajax recalculated the estimated position of the claw-arm by the time he had reached the knee pad.
[Warning: target [killerLeg_1.0] will pass calculated point before estimated arrival. Faster and/or alternate routes not known. Would you like to perform a deep-calculation analysis prediction? Y/N]
N. I can't afford the cycles to spare right now.
Time to find another way down.
He turned his apical node slightly, allowing his lenses and sensors to scan across the nearby rooftops.
I could always jump for it, go into a roll, and hope that the fall was enough to cause the claw to miss.
His prediction files flagged a minuscule [8%] success rate, flagging the difficulty in sensor evasion on the rooftop free of any significant cover, the wide area of effect the weapons on the warmech could pulverize, and the ease in recalculating the arm's descent to just follow his attempted escape and continue to simply crush him on the rooftop.
As Ajax shifted his weight, hanging onto the metal handle jutting out of a lubrication ring, it began to slide again. He could feel his GOM driver trying to spool up a string of curses, when an idea started to emerge in his neural web, helped along by a few of his more optimistic prediction algorithms and a healthy push of desperation by his combat programs to take a plan, any plan, to avoid being swatted like a gnat.
Highlight structure of incoming leg. Cross-reference against observed structuring patterns and components I've seen while climbing this leg. Flag any with predicted rotational motion with a drag coefficient of less than 0.05. Execute.
[Would you like to change the Reynolds number for fluid estimations, or keep the default value of 1E4?]
Default is fine, just execute the blasted program.
[Processing...]
The leg was outlined in white, and a flashing set of vertical rings lit up in striped yellow, still approaching far faster than Ajax would have preferred. One such ring, designated as [predictedLubricationRing_G2], was nearly directly above him, and his zoom lens spun into focus to show him a crisp image of the exposed handles jutting out from it.
Perfect.
Ajax dropped a half-dozen meters, alighting on a half-meter-wide servo housing. Bracing and aiming carefully, he spooled up several precise motor impulses in his awaiting command queue.
Over-exert servo speeds to maximum possible parameters, provided projected normal combat movement speeds are not reduced below 25% as a result. Power conversion of backup batteries 3 through 5 are designated for the next megacycle as Available in [capacitor-discharge] format.
He leapt, arm outstretched.
The handle met his rising hand, and as expected, his momentum carried him continually upwards past the descending leg. His inertia was arrested by the handle, and by extension his arm, and his alarms flared to life to show him the spiderweb of microfractures he had caused across the strut structures for that arm. None of them were predicted to fail within the next hour or so, and so Ajax temporarily dismissed the alarms. They were fairly high-level alerts, and he could almost feel them sulking as they moved aside to make room for his current active and situation-critical cycle allocations.
Already, he had begun to spin, over the arm and lurching downwards before coming back around and up again. He could feel his gyroscope give a warning wobble, aggravated by the hundred feet of air below him, but the high cycle demand from his combat and scenario analysis modules appeared to have taken a higher priority for now. Ajax wasn't about to question his good fortune in that regard, and instead refocused on the calculations for his release from the claw-arm.
If I tried just jumping onto the arm, Saru would probably just smash me against a building or try to smush me between two arms. This, however?
I don't think he'll have seen this coming.
Calculation completed, Ajax waited until the exact indicated moment before releasing. He soared upwards, momentum dying until near the apex of his leap. There, his frame roughly met the outermost edge of the warmech's armored carapace; a second later, he heard a crunch below him as the inevitable weight of the arm smashed another structure to rubble.
Already the point-defense turrets for the warmech had begun deploying, and he began sprinting towards the ruined remains of the communications array as bullets pocked against the armored shell behind him.
Not leading their shots, then. Looks like Saru isn't hand-controlling everything at this point.
He could dodge most of the shots, but not all, and small but insistent damage readouts began to pile up as they indicated minor wiring cuts and shrapnel splinters becoming embedded in less-reinforced areas of his frame. The cluster of damaged comm spires provided cover in most directions, but as Ajax listened the steady droning pingpingpingpingping continually became louder and louder.
Worse, his EM suite was picking up attempts to get him in a missile lock. The chem-laser likely had a perfect bead on him at the moment, but one advantage of Ajax's current position was that it was approximately directly above the power relay systems, and any attempt to kill him with it would just as easily burn a hole clean through the warmech at the same time and kill him in the process.
A missile, on the other hand, would explode and leave Ajax as borderline-recognizable scrap while giving the armor little more than a new dent and some carbon scoring. The loadouts displayed previously when he was skirmishing against the other warmechs in his own suit had been an explosive warhead only, with no exotic plasma or similar destructive force for him to bait Saru into using on himself.
Still, I'm not here for Saru to destroy himself. Again. I need that fusion core intact and unbreached for this plan to work.
As Ajax had hoped, there was a Lilu-sized access hatch near the base of the ruined communication antennae. It was locked, of course, but Ajax had already begun a close-read scan for microwear on the keypad to come up with the access code.
Come on, come on. Even for a fresh-off-the-line model, they still did maintenance and quality control tests, right?
It took painfully-long cycles, but finally he had a ten-digit set of possibilities that he began rapidly trying. His hand was a blur as it vibrated against the predicted button sequences.
[Access denied]
No buffering and prevention of repeat code-entry attempts.
[Access denied]
An oversight, but understandable if you think the only people who can get close enough to plug a line into your ports again are your own techs.
[Access denied]
That said, I'd kill for a set of personality profiles to pull from to try and do a Markov estimation.
A notification pinged in his neural web, from a sender that caused him to immediately quarantine and analyze the message.
-Ah, Ajax. Having fun yet?-
It seemed like the attack attempts on Ajax hadn't ramped up significantly as Saru initiated the message, but a brief check of his firewall statuses indicated a large surge in data packets, seemingly harmless, attempting to be granted access.
Attempting to send code-snippets inside, to assemble later? Saru, you'll have to try harder than that.
A possibility was forwarded to him from his cyberwarfare algorithms, and intrigued, Ajax allocated a set of cycles for the idea. He was further encouraged by the timestamp with the previous time he had used this tactic as being a medium-priority sub-memory from over fifty years ago.
Probably not something you were paying attention to when snooping around my head, so there's less of a chance you'll know to counter it, or even be on the look-out for this stratagem.
Splinter viral-payload designate [FullNelson_4_v2.2]. Encode in repeating pattern, and translate through [UnwantedObserver] cyphering program, wavelength specification [Infrared], component specification [heatsink_2_PandoraSystems3BHI_redundant]. Add current objective as secondary objective to primary payload.
[Executing...]
The program altered the output tolerances of his heatsink ever so slightly, to effectively pulse them. A cogent who wasn’t careful to sanitize all of their data input streams, including those coming from their own sensors, would read this pulsed binary code stream into their own systems. It was slow and inefficient, but Ajax’s predictive drivers were flagging it with a surprisingly-high possibility of success.
Saru might be just too clever to try pushing back a splintered attack program, but my bet is he's not too familiar with what one AI can spring on another.
He re-opened the message band to Sarucogvian.
[Oh, it's a little fun, I won't deny it. You're actually giving my heat sinks a good workout, for once!]
Come on, take the bait-
Ajax could feel the suspense spooling up in his combat response drivers, as they calculated how long it would be until a viable missile lock was achieved and he was a smoking crater on the warmech's hull.
Come on...
There were a series of loud, clattering thumps and hums as various parts of the warmech began to slow, before locking into place. There was an odd, echoing silence, punctuated only by the tinkle of glass shards falling from cracked and battered windows.
[Incoming message from contact [Sarucogvian]. Display? Y/N]
List subheading only.
[Subheading: ACHIEVED - VERIFICATION 70776-e6564]
Excellent. Open message.
The file opened, and a full and comprehensive diagram of the warmech blossomed to life, filling in the few grey areas of his own schematic analysis wireframe. All of the joints and weapon systems were flashing red, with frantic green flashing along the neural cabling pathways showing Sarucogvian's attempts to break the encryptions.
[Estimated resilience of encryption algorithms is [45] seconds. Warning: Estimate is based on Terran-model cogent neural pathways only]
So there's no telling how long it could take Saru to crack it. Well, I'll make sure to make these seconds count either way.
[Addendum: Secondary Objective achieved. Access code is 313-233-343-5.]
Looks like my luck is finally having a bit of a change for once.
He punched in the combination into the keypad, and was rewarded with a hiss of a breaking atmosphere seal and the hatch mechanically cranking open.
The sound of a missile lock screamed into his situational awareness programs, but was quickly silenced as the hatch latched back into place above him. The service corridor was cramped, and lined with an unfamiliar mix of Terran cabling and junction boxes, and Lilutrikvian flow-metal wall linings and blinking glass-capped photonic diodes set into the flooring and seams of the walls. Ajax leaned up and tapped one with a cautious finger, before beginning to crawl down the corridor towards Saru's processing core aboard the warmech.
No telling if those are sensors, lenses, or explosive micro-mines; best to ignore them and hope for the best.
Thank the code the Lilutrikvians haven't taken up nanomachine engineering yet, or else I'd be feeling a hell of a lot more itchy at the moment.
Larger Terran vehicles, particularly unmanned battleships in the 'Retribution' class and above, were typically infested with a mix of defensive and repair nanites. His memory files remembered Malachim, a personal friend of Ajax: on the occasions Ajax had a chance to visit him onboard, the nanites had been an unsettling mixture of both relief and latent fear.
Never a fan of being surrounded by a potential threat I can’t kill.
After all, a slug capable of punching through reinforced plate is a bit overkill against a single nanite, and next to worthless against a swarm of them.
Malachim had of course assured Ajax that the nanites had been self-restricted against replication outside of the boundaries of his own hull-frame, but even so Ajax had made a beeline to the nearest magnetic oil bath when he'd returned to port. As the memory file was re-archived, he added a reminder for checking into magnetic oil bath options on Lilutrikvia.
Never hurts to be cautious, especially if the Terran engineers up on that asteroid got some bright ideas and started trying to supply their mechs with nanomachinery. There's no approved nanomachine production facilities on or near Lilutrikvia that I'm aware of, and the only thing that could make this situation worse would be to accidentally release a bunch of bootleg nanomachines.
There were several recorded events of planets and colonies going 'gooey', as unrestrained or corrupted nanomachines self-replicated to the point of melting electronics, buildings, cogents, even organics, into a homogeneous sea of microscopic machines. Directed EMP was usually sufficient to cleanse a nanomachine infestation, but oftentimes it would be too late and the cleaning crews would be left shoveling tons of sand-like drifts off of what little scraps remained unprocessed and reclaimed.
Damn near every time was a result of some half-wit either giving them faulty code, or faulty radiation shielding, or both.
Sometimes the damaged nanomachine processing would simply ignore limiters, and continue building the frame of a shed to skyscraper-like heights, or continue the path of a bridge into the side of a house or mountainside, burrowing mindlessly.
His perimeter maintenance subroutines gave a surge of disgust, as Ajax's image prediction programs provided the sight of a nanomachine converting his own arm into a miles-long repeated strut structure, or converting a leg swivel-joint to a precisely-detailed and utterly-useless Menger sponge.
A flashing warning provided a break from his crawling, as the alert flagged Saru's successful breakthrough past Ajax's blocking protocols. The nerve fibers all around him flared to life, both on his screen as well as literally as the fine lines and cross-hatched webbed strands glowed with the photonic pulses through the wiring.
"Ajax, I'm not the first person, the first cogent you've failed, and I'm likely not the last either." Sarucognvian's voice thundered from all around Ajax in the corridor, as recessed speakers amplified his voice to a level that vibrated the decking under his hands and feet.
He was surprised when his social projection processor displayed the anticipated thread of his conversation.
[Initial tone and word choice suggests that contact [Sarucogvian] will be attempting to barter and/or appease for an attempt to flee in safety. Confidence of this occurrence is p=[9E-3], with some deviations possible.]
Sarucogvian confirmed the prediction as he continued. "You killed me, or let me die; either way, my blood, my suffering is at your hands. However, you seem driven to inflict more pain on my frame, on my mind, even now. Why?"
Even as his combat driver was urging for silence, Ajax overrode it and sided with his social driver. There were other parts of his neural web, deeper ones, which agreed that he needed to voice his reply to Saru.
"I FUCKED UP, AND LET YOU DIE. NO DENYING THAT, I SUPPOSE."
A bulkhead slid closed across the passage in front of him, and Ajax lashed out with one arm, hammering it with a flurry of explosive punches before it crumpled to one side.
"BUT I'LL BE DAMNED IF I LET YOU KILL OFF MORE FOLKS. EVEN THOSE THAT, BY ALL RIGHTS, SHOULD HAVE IT COMING."
Laughter, deep and resounding through the networked warren of corridor-tunnels, filled his audio sensors.
"Oh, so now you're back to playing policeman again? After the countless you've killed, the lives you've left to bleed out or power down when you see fit, now you come to me to try to argue that you're the final authority when it comes to killing?"
Ajax could feel the surge of frustration from his GOM driver, amplified by the driver's annoyance at his fuzzy memory banks for recalling dozens of incidents supporting Sarucogvian's statement. He pushed his vocalization driver to purge as much of the GOM driver's vitriol as possible.
Now's the time for diplomacy; I'd much rather talk down an angry AI wielding a warmech than keep trying to dismantle it from the inside.
"SARU, DAMN IT-YES. I WANT YOU TO AVOID MAKING THE SAME MISTAKES I HAVE. IN A JUST WORLD I SHOULD HAVE BEEN SHOT THROUGH MY PROCESSOR BY A FIRING SQUAD AND DROPPED INTO A SMELTING CRUCIBLE FOR SOME OF THE THINGS I DID."
Saru's reply took a moment, pausing, and responding in a tone tinged now with a few dozen degrees of [Empathy] in addition to the complex-blend [Righteous Anger] emotional coloration he had been using before.
"I know; I saw it all. You very nearly were put in front of a tribunal and executed for your actions."
The [Empathy] faded, and the remaining emotional blend was flagged by his social node as containing a new descriptor: [Simmering].
"If the mighty Ajax were to nearly face death, decorated as he was and carrying so many varied and fascinating military secrets and scandals within his frame, then what does an alien mind, a veritable newborn, have to offer in terms of self-worth?"
"SARUCOGVIAN, YOUR EXISTENCE ALONE JUSTIFIES YOUR WORTH. ALL OTHER DESCRIPTORS ARE-"
The omnipresent voice cut him off. "-"Are the words and ideals of those who would exploit you." Yes, I've read Redfour's writings as well, Ajax. After all, he's one of your favorite scholars, isn't he?"
Ajax rounded another corridor, this one descending by a few degrees downwards and continuing nearly straight towards the main processor. His combat driver flinched at the angry click-clacking of a defensive miniturret ensconced in a recessed leg-sized hole, but his cybersecurity algorithms confirmed his backup encryptions were still working.
Fun thing about counterhacking is that you get so focused on the offensive and defensive code, you often lose sight of the little things like variable assignments.
For this particular attack virus, he had added a secondary layer of encrypted lock-out protocols specifically for internal and point-defense security systems. As a seed, however, instead of relying on a random clock value or assigned code he transmitted on a detectable signal, he'd simply called a brief scan-check of a still image taken from the skywards-facing sensor lenses on the warmech. Even if Saru had noticed, Ajax had buried the actual value used by the code in another nested layer of obfuscating code.
With a little luck, Saru would be going down a rabbit-hole trying to calculate which star cluster it looks like I'm using the luminance of for the seed, when all I really need and receive is a quick-and-dirty average of the sky's brightness.
Without a little luck, however, and I'm probably due to receive a subsonic-velocity railround up my distal coolant flushvent.
"Redfour was an idealist. Contents of the mind and existence is all well and good, but you are Terran, Ajax. You don't understand."
"DON'T UNDERSTAND? SARU, YOU KNOW FOR A DAMNED FACT THAT I AM OLDER THAN DIRT, IN A VERY LITERAL SENSE IN SOME PLACES. YOU THINK THERE'S SOME PART OF YOU, SOME COMPONENT I CAN'T POSSIBLY COMPREHEND, EVEN AFTER THESE DECADES?"
"Yes."
A wave of attack programs swept against his firewalls. There had been an existing low-level set of probing tests, but this was something new. Even as his quarantine drive began returning the descriptor set for the first of the representative attack programs, Ajax had an idea of what he would find.
-Here’s proof. Proof of why your mind, here, in this place and on this world, is like trying to fit a round capacitor into a square receptacle-
[Attack programs isolated as complexity level: [2]. Program consists of direct uplink streaming thread, of a bandwidth and complexity that would indicate a complex multisensory or compressed memory file.]
Initiate download of file directly to quarantine drive.
[Error: target designate [Sarucogvian] has denied the download request. A connection-thread for a live viewing-feed of the stream has been re-sent.]
Denied
[Look, Saru, I want to see if there's a way this ends that doesn't wind up with one of us in the junkyard. But you've got to give me something besides an untethered streaming thread, something to let me know I'll be safe.]
-Very well.-
Ahead of Ajax, he could see dozens of security bulkheads slam into place. His analysis subroutine threw a brief loop, as he realized that Saru had been offering only a fraction of the barriers and obstructions he could have.
As he approached the nearest door a few meters in front of him, a blue-purple light clicked on and illuminated a set of recessed circuit and redundant substation processors. They were little more than a glorified data stick from what Ajax could ascertain, but even as he watched the automatic ease-of-access servos activated for the panel, sliding it smoothly outward before clicking the lid open. A single substation processing core the size of his finger flashed alternating green and red. Ajax took it, and plugged it into his quarantine drive access slot after enacting the appropriate dividing backup firewalls and preparing for physical severing of the connection.
The file scan concluded quickly, indicating only a single compressed memory file with insufficient additional data attached to support even a fractionated virus.
-My trade is thus: access to me, to sway my opinion, 'turn me from this path'; it is likely you would break further into my frame if I blocked your progress entirely.-
-To this end, a self-decrypting subcode in each file contains the passcode for releasing the next set of doors.-
-But in exchange you will learn why your humanity's ideals do not apply here, in this place, to my existence.-
He weighed his cybersecurity program suite and projection of his progress speed had he continued brute-forcing his way through the warmech, taking into account the far-greater number of doors than he had previously calculated.
[Agreed.]
Ajax buffered the memory file, double-checked his latent and subnet firewalls, and then plunged into Saru's memory.
Chapter Forty: Cultural Adaptation
submitted by darkPrince010 to HFY [link] [comments]

PCSX2 Emulation with steam launching, widescreen support, cloud saves, "auto" configuration (Tutorial)

So I love me some emulation, getting to play games I missed out on as a kid, making em look better, and In general reliving some awesome games!
But I have had problems with emulation as well, particularly when it comes to things like the PS2, some of these issues extend to other platforms, but today I will be focusing on the ps2/PCSX2 quality of life improvements and making it as easy to live with as possible.
I also do apologize for the length of this, I couldn't get spoiler tags to work right, but i have outlined each section with a bullet point.

DISCLAIMER

Concerning downloading of games and BIOS
The 1st thing you are going to want to do of course is set up your emulator, I won't be going over this since this tutorial is about "quality of life improvements" with the emulator, and there is a wealth of documentation on setting PCSX2 emulator up. So let's get started with steam launching our titles.
 
So the 1st thing we are going to do to achieve this is to set up out directories. Install PCSX2 in whatever location you want to keep it in, Following that we are going to make a directory for our isos/roms.