Posts in Gaming (20 found)

Who is the Kimwolf Botmaster “Dort”?

In early January 2026, KrebsOnSecurity revealed how a security researcher disclosed a vulnerability that was used to build Kimwolf , the world’s largest and most disruptive botnet. Since then, the person in control of Kimwolf — who goes by the handle “ Dort ” — has coordinated a barrage of distributed denial-of-service (DDoS), doxing and email flooding attacks against the researcher and this author, and more recently caused a SWAT team to be sent to the researcher’s home. This post examines what is knowable about Dort based on public information. A public “dox” created in 2020 asserted Dort was a teenager from Canada (DOB August 2003) who used the aliases “ CPacket ” and “ M1ce .” A search on the username CPacket at the open source intelligence platform OSINT Industries finds a GitHub account under the names Dort and CPacket that was created in 2017 using the email address [email protected] . Image: osint.industries. The cyber intelligence firm Intel 471 says [email protected] was used between 2015 and 2019 to create accounts at multiple cybercrime forums, including Nulled (username “Uubuntuu”) and Cracked (user “Dorted”); Intel 471 reports that both of these accounts were created from the same Internet address at Rogers Canada (99.241.112.24). Dort was an extremely active player in the Microsoft game Minecraft who gained notoriety for their “ Dortware ” software that helped players cheat. But somewhere along the way, Dort graduated from hacking Minecraft games to enabling far more serious crimes. Dort also used the nickname DortDev , an identity that was active in March 2022 on the chat server for the prolific cybercrime group known as LAPSUS$ . Dort peddled a service for registering temporary email addresses, as well as “ Dortsolver ,” code that could bypass various CAPTCHA services designed to prevent automated account abuse. Both of these offerings were advertised in 2022 on SIM Land , a Telegram channel dedicated to SIM-swapping and account takeover activity. The cyber intelligence firm Flashpoint indexed 2022 posts on SIM Land by Dort that show this person developed the disposable email and CAPTCHA bypass services with the help of another hacker who went by the handle “ Qoft .” “I legit just work with Jacob,” Qoft said in 2022 in reply to another user, referring to their exclusive business partner Dort. In the same conversation, Qoft bragged that the two had stolen more than $250,000 worth of Microsoft Xbox Game Pass accounts by developing a program that mass-created Game Pass identities using stolen payment card data. Who is the Jacob that Qoft referred to as their business partner? The breach tracking service Constella Intelligence finds the password used by [email protected] was reused by just one other email address: [email protected] . Recall that the 2020 dox of Dort said their date of birth was August 2003 (8/03). Searching this email address at DomainTools.com reveals it was used in 2015 to register several Minecraft-themed domains, all assigned to a Jacob Butler in Ottawa, Canada and to the Ottawa phone number 613-909-9727. Constella Intelligence finds [email protected] was used to register an account on the hacker forum Nulled in 2016, as well as the account name “M1CE” on Minecraft. Pivoting off the password used by their Nulled account shows it was shared by the email addresses [email protected] and [email protected] , the latter being an address at a domain for the Ottawa-Carelton District School Board . Data indexed by the breach tracking service Spycloud suggests that at one point Jacob Butler shared a computer with his mother and a sibling, which might explain why their email accounts were connected to the password “jacobsplugs.” Neither Jacob nor any of the other Butler household members responded to requests for comment. The open source intelligence service Epieos finds [email protected] created the GitHub account “ MemeClient .” Meanwhile, Flashpoint indexed a deleted anonymous Pastebin.com post from 2017 declaring that MemeClient was the creation of a user named CPacket — one of Dort’s early monikers. Why is Dort so mad? On January 2, KrebsOnSecurity published The Kimwolf Botnet is Stalking Your Local Network , which explored research into the botnet by Benjamin Brundage , founder of the proxy tracking service Synthient . Brundage figured out that the Kimwolf botmasters were exploiting a little-known weakness in residential proxy services to infect poorly-defended devices — like TV boxes and digital photo frames — plugged into the internal, private networks of proxy endpoints. By the time that story went live, most of the vulnerable proxy providers had been notified by Brundage and had fixed the weaknesses in their systems. That vulnerability remediation process massively slowed Kimwolf’s ability to spread, and within hours of the story’s publication Dort created a Discord server in my name that began publishing personal information about and violent threats against Brundage, Yours Truly, and others. Dort and friends incriminating themselves by planning swatting attacks in a public Discord server. Last week, Dort and friends used that same Discord server (then named “Krebs’s Koinbase Kallers”) to threaten a swatting attack against Brundage, again posting his home address and personal information. Brundage told KrebsOnSecurity that local police officers subsequently visited his home in response to a swatting hoax which occurred around the same time that another member of the server posted a door emoji and taunted Brundage further. Dort, using the alias “Meow,” taunts Synthient founder Ben Brundage with a picture of a door. Someone on the server then linked to a cringeworthy (and NSFW) new Soundcloud diss track recorded by the user DortDev that included a stickied message from Dort saying, “Ur dead nigga. u better watch ur fucking back. sleep with one eye open. bitch.” “It’s a pretty hefty penny for a new front door,” the diss track intoned. “If his head doesn’t get blown off by SWAT officers. What’s it like not having a front door?” With any luck, Dort will soon be able to tell us all exactly what it’s like. Update, 10:29 a.m.: Jacob Butler responded to requests for comment, speaking with KrebsOnSecurity briefly via telephone. Butler said he didn’t notice earlier requests for comment because he hasn’t really been online since 2021, after his home was swatted multiple times. He acknowledged making and distributing a Minecraft cheat long ago, but said he hasn’t played the game in years and was not involved in Dortsolver or any other activity attributed to the Dort nickname after 2021. “It was a really old cheat and I don’t remember the name of it,” Butler said of his Minecraft modification. “I’m very stressed, man. I don’t know if people are going to swat me again or what. After that, I pretty much walked away from everything, logged off and said fuck that. I don’t go online anymore. I don’t know why people would still be going after me, to be completely honest.” When asked what he does for a living, Butler said he mostly stays home and helps his mom around the house because he struggles with autism and social interaction. He maintains that someone must have compromised one or more of his old accounts and is impersonating him online as Dort. “Someone is actually probably impersonating me, and now I’m really worried,” Butler said. “This is making me relive everything.” But there are issues with Butler’s timeline. For example, Jacob’s voice in our phone conversation was remarkably similar to the Jacob/Dort whose voice can be heard in this Sept. 2022 Clash of Code competition between Dort and another coder (Dort lost). At around 6 minutes and 10 seconds into the recording, Dort launches into a cursing tirade that mirrors the stream of profanity in the diss rap that Dortdev posted threatening Brundage. Dort can be heard again at around 16 minutes; at around 26:00, Dort threatens to swat his opponent. Butler said the voice of Dort is not his, exactly, but rather that of an impersonator who had likely cloned his voice. “I would like to clarify that was absolutely not me,” Butler said. “There must be someone using a voice changer. Or something of the sorts. Because people were cloning my voice before and sending audio clips of ‘me’ saying outrageous stuff.”

0 views
Stratechery 2 days ago

2026.09: This Was an Xbox

Welcome back to This Week in Stratechery! As a reminder, each week, every Friday, we’re sending out this overview of content in the Stratechery bundle; highlighted links are free for everyone . Additionally, you have complete control over what we send to you. If you don’t want to receive This Week in Stratechery emails (there is no podcast), please uncheck the box in your delivery settings . On that note, here were a few of our favorites this week. This week’s Stratechery video is on Thin Is In . From Owning the Living Room to Ceding the Hardware Market ? After Phil Spencer’s exit at Microsoft,  Wednesday’s Daily Update provided an entertaining tour of Xbox history , including strategy that has been misaligned for at least 15 years, and why some of those red flags were ignored at the time (spoiler: “[Microsoft] held onto Xbox as the sole piece of evidence that the company could be cool and interesting to consumers”). Today, though, there are new pivots to discuss. So what’s next? Ben builds on the fraught history to explain why, given the lack of growth in the gaming market and competitive pressures on the rest of Microsoft’s business, the days of 1st party Xbox hardware may be over.  — Andrew Sharp From MJ to Wemby and Everything in Between. With Andrew on vacation, Greatest of All Talk was lucky to have the illustrious Rachel Nichols on as a guest. From sharing stories from her early days as an intern covering Michael Jordan to reflecting on the end of the Washington Post Sports section and the changing media landscape, Rachel’s unique experience provided a compelling through line across eras of sports and media. Come for the discussion of whether Wemby and the Spurs can win it all, stay for the greatest moose related headline of all time. — Ben Thompson It’s Time to Build… In Space?  In 2016 Jeff Bezos said, “We can build gigantic chip factories in space.” 10 years later, with chip constraints  as urgent as ever , a number of companies are already exploring manufacturing in space (data centers, pharmaceuticals), so why not chips too?  This week’s Asianometry video  answers that question comprehensively, noting that LEO chip fabbing would impose incredible logistics challenges (cooling, cleaning, managing radiation, constant maintenance  in space ), and would probably require reimagining the entire chip stack (how do you handle packaging in space?). It’s a great, itemized breakdown of the obstacles —  available as a podcast or transcript for Stratechery Plus subscribers  — that also underscores how many incredible challenges we’ve already solved on earth. — AS Another Viral AI Doomer Article, The Fundamental Error, DoorDash’s AI Advantages — Another AI doomer article has gone viral, and like many in the genre, it lacks an appreciation for dynamism and markets. Then, why DoorDash is going to be fine. Xbox Replaces Head of Gaming, Xbox History, Whither Xbox — Xbox has a new head, who isn’t a gamer; I suspect Microsoft is doing what it should have done a decade ago: get out of the console business. An Interview with Bill Gurley About Runnin’ Down a Dream — An interview with long-time (retired) VC Bill Gurley about his new book about building a career you love, Uber, and the modern state of VC. AI Xbox Doom Privacy Screens and Apple Report Cards Chip Fabs in Space: Technically Possible, Completely Impractical The GOAT pod visits No Dunks Rachel Nichols on Mike, WaPo, Luka & Wemby

0 views
Stratechery 4 days ago

Xbox Replaces Head of Gaming, Xbox History, Whither Xbox

Xbox has a new head, who isn't a gamer; I suspect Microsoft is doing what it should have done a decade ago: get out of the console business.

0 views
Evan Hahn 1 weeks ago

Track Zelda release anniversaries in your calendar

The original Legend of Zelda came out 40 years ago today. With other birthdays on the horizon, like Twilight Princess ’s 20th in November, I wanted a calendar that showed the anniversary of every Zelda game. So I made one. Subscribe to this URL in your calendar app: Once you do, you’ll get calendar events on the anniversary of each game’s release. For example, you’ll be able to see that the Oracle games turn 25 in less than a week…I feel old. If you want to build this file yourself, I wrote a little Python script that generates an ICS file from a CSV of release dates .

0 views
Stratechery 1 weeks ago

An Interview with Matthew Ball About Gaming and the Fight for Attention

An interview with Matthew Ball about the state of the video gaming industry in 2026, and why everything is a fight for attention.

0 views
JSLegendDev 1 weeks ago

I Tried 3 Web Game Frameworks (So You Don’t Have To)

I went on a quest to test the 3 most popular 2D web game frameworks according to their NPM download numbers. To achieve this, I set out to build a Sonic infinite runner game in each framework. Today, I’d like to share my findings. Below are links to playable demos along with the source code for each version of the game. I recommend browsing the code of each version to get a better feel of the differences between them. KAPLAY version - ( live demo ) - ( source code ) Phaser version - ( live demo ) - ( source code ) Excalibur version - ( live demo ) - ( source code ) Note that even though KAPLAY markets itself as a library and Excalibur as a game engine they still feel like frameworks and occupy the same space as Phaser. That’s why I took the liberty to refer to them as frameworks. I will not beat around the bush. If you want stability and performance, you should pick Phaser. That said, overall, KAPLAY is the easiest one to learn but the least scalable of the 3. This makes it a good choice to get into game development as a beginner and to prototype ideas quickly but you’ll end up facing performance issues eventually. I’d like to note that there have been recent performance improvements. However, KAPLAY’s performance still doesn’t come anywhere close to the one offered by Phaser. Additionally, Phaser has an AI advantage. For example, if you ask ChatGPT a question related to Phaser, more likely than not, the answer provided will be right. As for KAPLAY and Excalibur, you’ll get a lot more hallucinations. This AI advantage lowers the barrier of learning for Phaser which, in contrast, makes the easiness of KAPLAY less compelling. While Phaser’s API is verbose, you get over it especially when you get performance and stability in exchange. Finally, Phaser is significantly more popular than the other 2 which means it will be easier to find help when needed. If you’re looking to target mobile, Phaser is also your best bet between the 3 as the performance on Safari is also quite good and the best. This is relevant because Safari uses the Webkit web engine which is what’s forced on every browser and webview on iOS. Finally, for multiplayer games, Phaser offers the ability to run it on the server in headless mode. This makes it much easier to handle state in a multiplayer game. To my knowledge, neither KAPLAY nor Excalibur offers something like this. As mentioned previously, KAPLAY might still be worth using in the context of prototyping or for game jams, as its component based approach allows you to truly iterate quickly on game design. Its simplicity also makes it an ideal candidate for teaching game development to beginners. Some have used it to teach children. Phaser and Excalibur felt very similar when using them as they both relied on the object oriented paradigm. Yet, I felt that Excalibur sometimes required more work. A notable example of this is when coming back to a scene after having switched away from it. The state of that scene would be left as is before transitioning over. This meant you had to write extra logic to reset the scene’s state, something you didn’t have to do in Phaser. That said, I still felt that Excalibur’s API was on average a bit more concise than Phaser’s. In conclusion, the issue with Excalibur is that it didn’t feel different enough from Phaser to warrant switching over to it, considering Phaser is more performant, more featureful, and more popular. At the same time, I was impressed with how Excalibur handled its debug mode. Instead of having it within the framework, it was instead available as a browser extension. Debug mode would therefore appear in the browser devtools and could be toggled and configured from there. It was a nice experience. Regardless of the web framework you end up using, if you want to bring your web game to Steam, the easiest tool for achieving this is GemShell. It allows you to create executables for Windows, Mac and Linux in what amounts to a single click. It also offers an integration with Steam so you can easily have access to features like Steam achievements and now also the Steam overlay. (The latter might not be available yet at the time of publishing this post.) (Video by the developer showcasing the use of Steam overlay on top of a game packaged with GemShell) This tool will save you hours that would have been wasted configuring tools like Electron and Steamworks.js. Time which could have been spent working on your game instead. To have a consistent experience across operating systems, GemShell now makes each executable Chromium based so that your game renders the same way on all platforms. Additionally, The developer is also considering implementing the ability to export for mobile platforms as well. Due to how useful this tool is, I have decided to partner with its developer to offer you a 15% discount if you use the following link : https://l0om.itch.io/jslegend To be completely transparent, if you end up purchasing GemShell using the link above, I’ll get a cut of that sale. That said, a free lite version is available, if you want to get a feel for the tool. I hope you enjoyed this post, I recommend subscribing to not miss out on future releases. Subscribe now In the meantime, you can read the following : I went on a quest to test the 3 most popular 2D web game frameworks according to their NPM download numbers. To achieve this, I set out to build a Sonic infinite runner game in each framework. Today, I’d like to share my findings. Below are links to playable demos along with the source code for each version of the game. I recommend browsing the code of each version to get a better feel of the differences between them. KAPLAY version - ( live demo ) - ( source code ) Phaser version - ( live demo ) - ( source code ) Excalibur version - ( live demo ) - ( source code )

0 views
Kev Quirk 2 weeks ago

Step Aside, Phone: Week 1

OK, so here we are at the end of the first week of Step Aside, Phone . Quick re-cap from last week - my average phone and tablet usage combined was approximately 4 hours per day (2.5hrs on phone, and 1.5hr on tablet). That's high! Hopefully this week was better? This one is easy - my screen time on my tablet has been zero, as I turned it off last week, and haven't turned it back on again. Instead I've been either reading RSS feeds quickly on my phone before bed, or reading a book on my Kindle. It took me a couple days to get back into reading a book; I haven't done it for a while and as a result my mind kept wandering. I'm back in the swing of things now though and I'm enjoying the book I'm currently reading. Honestly, I haven't missed my tablet at all. I'm not sure if that thing will get turned back on. So the phone...that's also reduced for the most part, but I have had a couple days with heavier usage. Here's how the breakdown went: Ok, so from 2.5hr average to 1:19hr average. I'll take that. My usage was up for a few days between Wed-Fri as I was shopping for stuff Amazon, as well as browsing for a new car for my wife. The only day where I really wasted time was on Thursday where I spent some time on YouTube during my son's swimming lesson (that's the only time I went on YT all week), and on Friday where I spent 16 mins playing on my silly game. Overall I think it's been a pretty good week, and I hope the next 3 weeks continue to improve. Although, not quite as good as Manu this week ! Mon - 48 mins Tue - 61 mins Wed - 55 mins Thur - 2hrs 13mins Fri - 1hr 42mins Sat - 2hrs 01min Sun - 30 mins Average - 1hr 19mins

0 views
Playtank 2 weeks ago

The Systemic Pitch

The past few years prove that there is a market for premium systemic singleplayer games. Few have listened to us (developers) when we tried to pitch such games for the past decade. Or ever. This isn’t because there is some kind of conspiracy against systemic games. Not at all. Systemic designs are very hard to sell. Not just to publishers or to customers; systemic designs are hard to sell even to your own team. We get caught by our own excitement, or we try to sell technology or tools as if they are designs when they are really not. The fleeting nature of systemic design feels like losing control, or like a potentially bloated mess of optional sandbox content that we have to make for the simulation to be complete but that will add little for the average player. In this post, I try to address pitching systemic games, based on my own mistakes. There’s a wealth of literature on how to sell something. Including how to make a good sales pitch. For this post, we’ll stick to a very general high level idea of what pitching needs to achieve, and leave all of that expertise to the real experts. One great book you can take a look at is the book Pitch Anything, by Oren Klaff. For this post, let’s assume a pitch needs to do three things: The origins of AAA (or “triple-A”) is from credit ratings. It stands for a rating of low risk, high reward. Or, in the terms of investment banks, “exceptional creditworthiness with minimal risk of default.” It was used in early game development, including pitching, to signify projects that were safe bets with high financial potential. Today, AAA is used to describe anything from team size to budget size. Like many of the terms we use in game development, it’s become almost meaningless, or at least the interpretations have become too varied for consistent use. But these origins are relevant. When you pitch something, the value proposition still needs as small a risk as possible with as big of a potential reward as possible. Pitching is to ask for something. It may be funding to get your game across the finish line, developer buy-in to make the next feature, or something else. Be specific with what you are asking for and you will have a less frustrating conversation. When you pitch, you must offer something to the people you are pitching to. Money, ownership, future commitments. It’s not enough to offer them a potentially great game, you need to show how it’s more than the sum of its parts. Game development comes with many risks that you must address with your pitch. You don’t have to call them out and tell people what your solution will be, but you should consider them and hold yourself accountable for them. The systemic value proposition is extremely tricky. For many external stakeholders it’s not the same as the creative argument or the design paradigms . Many stakeholders want replayable content that’s cheap to make , and will read “systemic” as making content production easier or cheaper. Perhaps using procedural generation techniques to generate multiple levels from a small set of content, thereby not needing as many level designers or prop artists. This is not the same as systemic design at all. Systemic design is about letting go of authorial control and allowing players to have the fun. This almost invariably makes a systemic design sound more expensive to make, since it implies a high degree of freedom and a sandbox nature. If you detect excitement around systemic ideas, be really careful to note what is generating the excitement, or this could be the fundamental misunderstanding you’re experiencing. Anyone can have ideas but everyone can’t turn ideas into games. You must be able to prove why you should be the person making your thing. What to lead your credibility pitch with is tricky. For systemic games, it helps to demonstrate technical expertise immediately. To line up all the key roles that will address the risks you’ve already mentioned and explain how you’ve filled them. Studios may get a lot of attention after releasing games that sold many copies, attracted many concurrent players, or gained high scores in reviews and good media attention. Though this front row attention may be fleeting in the media, it will matter a lot for your credibility to be part of these journeys. People may even talk about the best place to be at a given time. If you’ve mostly worked as a salaried employee, your studio pedigree will be the most important thing you can offer to state your credibility. It also tends to be the first thing many will ask to know. If you worked at particularly big modern studios, you mention which roles you held and not just the name of the studio. This is because if your title was Junior Assistant to the Senior Assistant’s Assistant, your impact was probably quite small, and talking about this studio doesn’t actually provide much credibility. Simple maths. If you have fewer years of experience, you have probably learned less. But the keyword here is “relevant.” If you are pitching a big sprawling open world role-playing game after working on first-person shooters for 15 years, people may believe that you know how to make games, but may be weary that you haven’t made this type of game before. This will then become a risk that you must address. Something that’s almost a joke at this point is to sum up the experience of your team and use that in your pitch. E.g., “250 years of combined gamedev experience.” You can of course do this anyway, but it doesn’t really mean anything. The easiest and most quantifiable way to demonstrate that this isn’t your first rodeo (if it isn’t) is to list the box art for the games you shipped. If this is a very long list, you can stick to the ones that were important or are more likely to be known by the people you are pitching to. Similarly to studio experience, you may want to specify what you did on each game too, but only if it becomes too anonymous otherwise. You shouldn’t turn the credibility element of your pitch into a reason to talk about yourself at length. For an external stakeholder, technology that exists and has been proven through previous game releases is worth a lot more than experimental technology. For this reason, technology becomes part of your credibility. If you come to a pitch and you say you are working on your own engine that will probably be finished a couple of months ahead of release, this will send off warning flags for everyone in the room. But if you say that your team is working with an established third-party engine and you have a working prototype already in place, this will give a much better first impression. It helps to have a team already lined up and waiting for your go-signal. A team shortlist is a list of people who have agreed to let you put their name down for if you find the funds. It’s very rarely treated as a commitment, more a way to lend weight to a pitch. It’s better than saying you’ll start recruiting when you have your funding, but it’s not as good as having people already onboard. The packaging refers to how you communicate value and credibility. There’s no right or wrong way here, but it will matter a lot based on who you are talking to. According to the It Was a Sh!tshow podcast, Futurama spent two to three years in preparation before it was pitched to studios. During that time, they explored characters, key art, technology, and many other things. In game development, we rarely have this room for pitch or concept development. But you do need to prepare as much as you possibly can. You need to figure out the risks, foresee what potential stakeholders will be worried about, and proactively respond allay their concerns. Stories resonate with people. Introductions, reversals, and climaxes. Presenting your pitch as a story doesn’t mean you should lead with your game’s story, it means that your whole pitch should be a story with a proper beginning and end. Start with a bang, end with a call to action. There are some pitfalls you should avoid, however. Don’t ask open-ended rhetorical questions, e.g. “Have you ever thought about why dogs have two ears?!” Because chances are that they only confuse people and don’t actually make them think the way you want. Take charge of the story and walk through your pitch’s narrative beat by beat. Leave nothing to chance. If you want to frame your pitch as a story, use video and visual aids as much as possible and let the story come from you rather than the pitch deck. A strong metaphor can also carry a pitch. In an interview with Designer Notes, games venture capitalist Mitch Lasky talked about his EA pitch using a container to illustrate the benefits of standardisation. Metaphors can of course be traps as well, if they in fact illustrate something you don’t intend, but you’ll figure that out as you work through it. Use a strong metaphor if it fits your whole pitch and doesn’t leave strange questions. A sad fact is that no one wants novelty. Novelty almost always looks like a risk more than a gain. From Railroad Tycoon to The Sims , many of the most groundbreaking games through the years had few fans in management. Similarly, Markus Persson (“Notch”) said that no publisher would’ve cared about Minecraft if he had pitched it to them: it could only happen by selling it directly to players. You can absolutely lead with how your game is different and new, but be aware of this risk. Only focus on novelty if you can incorporate a strong why into your pitch. I have a whole post that laments the use of the word “content.” But it’s enough to say that it’s a word often equated with quantity and used by both developers and consumers. Developers will talk about how much content they offer, while consumers will usually ask for more of it no matter how much is on offer. Most systemic games are not built to funnel “content” to users. Churning out downloadable content (DLC) fits really poorly, and most of the time replayability is a matter of smoke and mirrors. Choosing A instead of B, or approaching through the secret door instead of the main entrance. Functionally, the very same content , but a different experience . Some systemic games manage to pull it off, like Prey and its excellent Mooncrash DLC, but at other times it ends up feeling artificial and a bit forced. Thief wouldn’t benefit from offering you a special gold-lined blackjack, for example. It would only risk diminishing the core experience. Therefore, if you want to offer a systemic game, don’t pitch your game on its quantity of content . People generally use harsher words than good or bad. What often gets lost is the reasons why we think something is good or bad. Particularly when good or bad is applied to specific parts of a game, such as its story or gameplay. If you didn’t like the gameplay, maybe this made you dislike the story. If you really loved the premise, then maybe you felt better about the gameplay than it actually deserved. This means that good or bad is mostly a loud declaration of opinion that muddles any real qualities or faults of the thing being touted. If you disagree with the zeitgeist effectively countless “masterpieces,” the gamer population is quick to call you an idiot. Publishers may not call you an idiot, but you should still avoid calling things good or bad. It may even be that the thing you’re trash-talking is something one of the people you’re pitching to happened to work on. Therefore, avoid value terms and comparisons to other games . There are many words for this. Janky, buggy, glitchy, broken, even unplayable. Some game companies have gained a reputation for their games feeling “janky,” while others may have segments that are more or less so. “Eurojank” is sometimes used as its own term. The issue with this language is that it’s also often applied to complex games. Having to use multiple mapped controls, or using menus in certain ways, will become conversationally equivalent to jank. No matter what you do, do not use these words to describe your own game unless it’s deeply intentional. If you are making the next Goat Simulator or Gang Beasts , then by all means call it janky. You can also acknowledge if your audience calls your concept janky, and run with it, but don’t introduce the term on your own. Don’t talk about your own game as janky, buggy, or messy . In the marketing buildup to the release of No Man’s Sky , if you followed games media to any extent, you would’ve seen Hello Games’ Sean Murray. He was the face and voice for the project and his infectious enthusiasm built a gigaton of hype. But he was also first and foremost a developer. Someone who was enthusiastic not just about what the game actually was but what it could be. A mentality that everyone in game development understands. If you talk about technology and its potential, be careful to not promise more than you can deliver . Maybe it’s because of the clickbait era and the tendency for a lot of people to only read the headlines and not the main points, using examples can actually be a problem. If you describe a general system you have and you then say that it’ll be used to generate something like a metal ball, it’ll then become the Metal Ball System and nothing else to some of the people listening to the pitch. It’s better to provide a framework for your systems and let the audience’s imagination put things together, or you can easily fall into the trap that you need to start defending your example or expand on what makes the example interesting. You don’t want to be put in that spot. Even worse, if you use examples from other games , they may infer different things for the audience than what you had in mind. Avoid using examples, or they may become people’s most concrete takeaways. Let’s get one thing perfectly clear: you can’t convert your own excitement into a signed contract . Excitement is important when you deliver your message, since we’re social beings, and it can definitely affect your believability and how compelling your message is. But in every other way, your excitement is strictly yours. No one cares about your deep lore, the motivations of your characters, the 1,000 years of world history you wrote for your fantasyland, or anything else of that sort, until after they have crossed what I call the excitement threshold . At that point, everyone won’t care, but a subset may suddenly care to the point of obsession. For every player that praises all the well-written logbooks and audio journals, there are nine others who completely ignore them. For every publisher rep you talk to who loves the cool technical solutions you’re talking about, there are nine others who have never seen Visual Studio and will simply not get what you are trying to make. For every complex systemic thing you added to your prototype, there will be someone at the other end of the table who asks why the shadows look wrong or why your prototype doesn’t look as visually polished as the one from some other pitch they just saw. All this and more is bound to happen, and you must learn to really read the room when it comes to which parts of the message to focus on. As an example of the excitement threshold, take a look at the original trailer for the movie Raiders of the Lost Ark . Note how this trailer focuses, not on the Indiana Jones we know today, but on the mystery of the Ark of the Covenant and its terrifying implications in the 1930s. Lost artifacts, Egyptian ruins, and nazis: as pulp as it gets. Compare this to a modern trailer for the same movie . A trailer that focuses clearly on all the character flaws and iconic shenanigans that many of us remember fondly from the original movie. This illustrates the difference excitement makes. In the original trailer, no one cares about the character of Indiana Jones. We don’t know him yet, or why we should care about him. But once the second trailer hits, and the movie is now renamed Indiana Jones and the Raiders of the Lost Ark, it’s all about Dr Jones, his fear of snakes, and those cool scenes that we all remember. This comparison is important, because most of us will be facing what Raiders of the Lost Ark faced: an audience that needs to have something else to latch on to than what you want them to be excited about. An audience that doesn’t know Dr Jones yet and will have to discover him on their own. The same goes for our pitch — you need to treat your audience (the stakeholders) to something that excites them . If you can do that, you’ve won half the battle! Convince the party you are pitching to that a thing is worth making. A value proposition . Also convince them that you are the ones who should make it. Establish your credibility . Cater both messages specifically to the people you are pitching to. The packaging . Financial security: If your project fails miserably, maybe doesn’t even get released, they will usually soak up the loss while you simply move on. This part is rarely said out loud, but it’s a key ask nonetheless. Funding advances : The most obvious ask towards publishers and investors: getting a chunk of change that pays for development. Just make sure to make it realistic and not low- or high-balling your numbers. Say how much you need and why. Commitment: Asking for your team to commit to your project or to key changes. This can sometimes be the hardest pitching you’ll do. Even more so if your team has low morale. Marketing help : Getting help marketing your game. Be specific with this ask, since some partners may only do the minimum if you don’t have a concrete marketing spend that is contractually obligated. Be clear with your ask. It’s not uncommon to match marketing spend with development spend. Technical support: Server architecture, cloud infrastructure, console porting, and other elements of development that are beyond your capabilities as a developer and therefore included in your ask. Cash : Unless you are unable to afford asked rates or you are making a very big ask from a busy partner, you will rarely have to pitch as much if you have cash to spend. But it’s definitely a gain to be considered. If you pay for something upfront, you will rarely have to part with things you’d rather keep. Revenue : There are more ways to share revenue than there are stars in the sky. It may be time-limited or permanent, the percentage may shrink or grow over time, and the share may or may not be taken from one party to compensate another (advance on royalties). If you want to offer revenue share, you should provide a revenue projection based on real data. One that shows how large the earning potential is in multiple scenarios, for example based on number of copies sold. Just be realistic. Equity : Instead of potential future profits you can offer ownership. It can be ownership in your company, or a newly founded company that handles this specific project under mutual conditions with investors. Equity allows someone to have a bigger stake in what you are doing and will of course mean that they get a chunk of future profits also . Just be careful to part with too much equity. Property : You can offer up the intellectual property (IP) you are creating. Your game, its characters and likenesses, assets, etc. Usually including everything related to it, such as potential sequels, merchandise, tie-ins, and more. I’ve been told you shouldn’t accept deals like this today, but it may be on the table and you may not have much authority to say no. Exclusivity : Something that will often be heavily implied anyway, but not always formalised, is exclusivity: that you won’t be launching on more platforms or making more than one game at the same time. This is less relevant today, where platform holders seem less inclined to pay for exclusivity, but depending on who you are talking to, it’s still something worth considering. It can be forever, it can be time-limited, or have other restrictions. But offering exclusivity can be valuable. Delays : explain how you plan to deliver your project on schedule. Almost every game project suffers from some kind of delays (for no good reasons). Sometimes those could’ve been foreseen, planned for, or even mitigated. This is really where your credibility comes in. Convince people why you won’t suffer those delays. Complexity : this is where many systemic designs fail stakeholder scrutiny. They will look or sound complex or complicated, and may imply scale that is not actually required. Inexperience : if there are things in the project that you haven’t done before, or technologies you need to evaluate and research properly, you have to be very transparent about it. If your whole team hasn’t delivered a game before, this is a major risk that you must be able to address. Time constraints : release windows, budget timeframes; there can be multiple reasons why your time is constrained. Perhaps you can’t start fulltime until you get the third programmer onboard, and that won’t happen until six months from now. Bring out a concrete timeline that you can safely commit to. Non-Compliance : the game may become something else than what you agreed on, for creative or financial reasons. Smaller, larger, or styled differently than intended. This is where most creative differences will come from, since many signed deals will be commitments and you’ve just chosen to break them. This is the main reason you’re likely to have milestones and other deliverables along the way, so that any accident about to happen can be course corrected. DOA : the game may be dead on arrival, missing its target audience or simply failing to gain traction against other launches in the same window. In the best of worlds, this doesn’t just kill your studio, but provides at least six months to a year of time where you can do your best to salvage or improve the situation.

0 views
./techtipsy 2 weeks ago

SteamOS on a ThinkPad P14s gen 4 (AMD) is quite nice

In April 2024, I wrote on the Lenovo ThinkPad P14s gen 4 and how it does not suck under Linux. That is still true. It’s been fantastic, and a very reliable laptop during all that time. The P14s gen 4 comes with a CPU that is still solid today, the AMD Ryzen 7 PRO 7840U, and that comes with impressive integrated graphics in the form of an AMD Radeon 780M. I’ve had a Steam Deck. I’ve also accidentally built a Steam Machine. I had to put SteamOS on this laptop to see how well it does. I did a quick Bazzite test the last time around, but after being impressed with how well the stock SteamOS image runs on a random machine with an AMD GPU, I had to test that, too. The normal way to install SteamOS on a machine is to take the Steam Deck recovery image and to install it on your own machine that has one NVMe SSD. I didn’t want to do exactly that, I wanted to run it off of an USB SATA SSD, which the recovery image does not support, as it hard-codes the target SSD for the SteamOS installation to . There’s a handy project out there that customizes the recovery script to allow you to install SteamOS to any target device, but I learned about that after the fact. I went a slightly different route: I imaged the SteamOS installation from my DIY Steam Machine build, wrote it to the 4TB USB SSD that I had available for testing, and after that I resized the partition to take up the full disk. Bam, clean SteamOS on a USB SSD! Oh, and before I did that, I did the same process but to a 128 GB Samsung FIT USB 3.0 thumb drive. The game library images did load a bit slowly, but it was a great demonstration of how low you can go with the hardware requirements. I wouldn’t recommend actually installing games on such a setup as that would likely kill the USB thumb drive very quickly. I ran the SteamOS setup on this laptop over a USB-C dock that only supports running at up to 4K at 30Hz, so I did testing at 1080p 60Hz setup. You’re unlikely to want to run this setup at 4K anyway, unless you’re a fan of light, easy to run games like Katamari or Donut County. In most games, the experience was enjoyable. 1080p resolution, maybe change the settings to medium or low in some cases, and you’ll likely have a solid gaming experience. Forza Horizon 4? No problem, 1080p high settings and a solid, consistent experience. Need for Speed Hot Pursuit Remastered was an equally enjoyable experience, and I did not have to turn the settings down from high/ultra. God of War Ragnarök was pushing the setup to the limits. With 1080p, low/medium settings you can expect 30+ FPS. If you include AMD FSR settings in the mix and also enable FSR frame generation, you can have a perfectly enjoyable 50-60 FPS experience. Some UI hints were a bit “laggy” with frame generation, but I’m genuinely surprised how well that rendering trick worked. I’ll admit it, my eyesight is not the best, but given the choice of a crisp but laggy picture, and a slightly blurrier but smoother experience, I’d pick the latter. After a pint of Winter Stout, you won’t even notice the difference. 1 Wreckfest was also heaps fun. It did push the limits of the GPU at times, but running it at 1080p and medium/high settings is perfectly enjoyable. The observed power usage throughout the heaviest games measured via SteamOS performance metrics ( ) were around 30-40 W, with the GPU using up the most of that budget. In most games, the CPU was less heavily loaded, and in the games that required good single thread performance, it could provide it. I like SteamOS. It’s intentionally locked down in some aspects (but you can unlock it with one command), and the Flatpak-only approach to software installation will make some people mad, but I like this balance. It almost feels like a proper console-type experience, almost . Valve does not officially support running SteamOS on random devices, but they haven’t explicitly prevented it either. I love that. Take any computer from AMD that has been manufactured from the last 5 years, slap SteamOS on it, and there is a very high chance that you’ll have a lovely gaming experience, with the level of detail and resolution varying depending on what hardware you pick. A top of the line APU from AMD seems to do the job well enough for most casual gamers like myself, and if the AMD Strix Halo based systems were more affordable, I would definitely recommend getting one if you want a small but efficient SteamOS machine. Last year, we saw the proliferation of gaming-oriented Linux distros. The Steam Machine is shipping this year. DankPods is covering gaming on Linux. 2026 has to be the year of the Linux (gaming) desktop. that’s the tipsy part in techtipsy   ↩︎ that’s the tipsy part in techtipsy   ↩︎

0 views
Brain Baking 3 weeks ago

Favourites of January 2026

The end of the start of another year has ended. So now all there is left to do is to look forward to the end of the next month, starting effective immediately, and of course ending after the end of the end we are going to look forward to. Quite the end-eavour. I guess I’ll end these ramblings by ending this paragraph. But not before this message of general interest: children can be very end-earing, but sometimes you also want to end their endless whining! Fin. Previous month: January 2026 . Is Emacs a game? I think it is. I spent every precious free minute of my time tinkering with my configuration, exploring and discovering all the weird and cool stuff the editor and the thousands of community-provided packages offer. You can tell when you’ve joined the cult when you’re exchanging emails with random internet strangers about obscure Elisp functions and even joining the sporadic “let’s share Emacs learnings!” video calls (thanks Seb ). Does receiving pre-ordered games count as played ? I removed the shrink wrap from Ruffy and my calendar tells me I should start ordering UFO 50 very very soon via . Now if only that stupid Emacs config would stabilise; perhaps then I could pick up the Switch again… The intention was to start learning Clojure but I somehow got distracted after learning the Emacs CIDER REPL is the one you want. A zoomed-out top-down view of the project, centered on Brain Baking (left) and Jefklak's Codex (right). Related topics: / metapost / By Wouter Groeneveld on 4 February 2026.  Reply via email . Nathan Rooy created a very cool One million (small web) screnshots project and explains the technicalities behind it. Browsing to find your blog (mine are in there!) is really cool. It’s also funny to discover the GenAI purple-slop-blob. Brain Baking is located just north of a small dark green lake of expired domain name screenshots. Jefklak’s Codex , being much more colourful, is located at the far edge, to the right of a small Spaceship-domain-shark lake: Shom Bandopadhaya helped me regain my sanity with the Emacs undo philosophy. Install vundo. Done. Related: Sacha Chua was writing and thinking about time travel with Emacs, Org mode, and backups . I promise there’ll be non-Emacs related links in here, somewhere! Keep on digging! Michael Klamerus reminded me the BioMenace remaster is already out there. I loved that game as a kid but couldn’t get past level 3 or 4. It’s known to be extremely difficult. Or I am known to be a noob. Lars Ingebrigtsen combats link rot with taking screenshots of external links . I wrote about link rot a while ago and I must say that’s a genius addition. On hover, a small screenshot appears to permanently frame the thing you’re pointing to. I need to think about implementing this myself. Seb pointed me towards Karthinks’ Emacs window management almanac , a wall of text I will have to re-read a couple of times. I did manage to write a few simple window management helper functions that primarily do stuff with only a 2-split, which is good enough. Mikko shared his Board Gaming Year recap of 2025 . Forest Shuffle reaching 500 plays is simply insane, even if you take out the BoardGameArena numbers. Alex Harri spent a lot of time building an image-to-ASCII renderer and explains how the project was approached. This Precondition Guide to Home Row Mods is really cool and with Karabiner Elements in MacOS totally possible. It will get messy once you start fiddling with the timing. Elsa Gonsiorowski wrote about Emacs Delete vs. Kill which again helped me build a proper mental state of what the hell is going on in this Alien editor. Matt Might shared shell scripts to improve your academic writing by simply scanning the text for so-called “weasel words”. Bad: We used various methods to isolate four samples Better: We isolated four samples . I must say, academic prose sure could use this script. Robert Lützner discovered and prefers it over Git . I’m interested in its interoperability with Git. Charles Choi tuned Emacs to write prose by modifying quite a few settings I have yet to dig into. A friend installed PiVPN recently. I hadn’t heard from that one just yet so perhaps it’s worth a mention here. KeepassXC is getting on my nerves. Perhaps I should simply use pass , the standard unix password manager. But it should also be usable by my wife so… Nah. Input is a cool flexible font system designed for code but also offers proportional fonts. I tried it for a while but now prefer… Iosevka for my variable pitch font. Here’s a random Orgdown cheat sheet that might be of use. With RepoSense it’s easy to visualise programmer activities across Git repositories. We’re using it to track student activities and make sure everyone participates. Tired of configuring tab vs space indent stuff for every programming language? Use EditorConfig , something that works across editors and IDEs.

0 views
DHH 3 weeks ago

Cloud gaming is kinda amazing

I fully understand the nostalgia for real ownership of physical-media games. I grew up on cassette tapes (C64 + Amstrad 464!), floppy disks (C64 5-1/4" then Amiga 3-1/2"), cartridges, and CDs. I occasionally envy the retro gamers on YouTube with an entire wall full of such physical media. But do you know what I like more than collecting? Playing! Anywhere. Anything. Anytime. We went through the same coping phases with movies and music. Yes, vinyl had a resurgence, but it's still a tiny sliver of hours listened. Same too with 4K Blue-rays. Almost everyone just listens to Spotify or watches on Netflix these days. It's simply cheaper, faster, and, thus, better. Not "better" in some abstract philosophical way (ownership vs rent) or even in a concrete technical way (bit rates), but in a practical way. Paying $20/month for unlimited music and the same again for a broad selection of shows and movies is clearly a deal most consumers are happy to make. So why not video games? Well, because it just wasn't good enough! Netflix tried for casual gaming, but I didn't hear much of that after the announcement. Google Stadia appears to have been just a few years ahead of reality (eerie how often that happens for big G, like with both AI and AR!) as they shut down their service already. NVIDIA, though, kept working, and its GeForce NOW service is actually, finally kinda amazing! I had tried it back in the late 2010s, and just didn't see anything worth using back then. Maybe my internet was too slow, maybe the service just wasn't good enough yet. But then I tried it again a few days ago, just after NVIDIA shipped the native GFN client for Linux, and holy smokes!! You can legitimately play Fortnite in 2880x1800 at 120 fps through a remote 4080, and it looks incredible. Yes, there's a little input lag, but it's shockingly, surprisingly playable on a good internet connection. And that's with the hardest possible genre: competitive shooters! If you play racing games like Forza Horizon or story-mode games like Warhammer 40K: Space Marine 2, you can barely tell! This is obviously a great option for anyone with a modest computer that can't run the latest triple-A titles, but also for Linux gamers who don't have access to run the cheat-protection software required for Fortnite and a few other games.  And, like Spotify and Netflix, it's pretty competitively priced. It's $20/month for access to that 4080-tier. You'd quickly spend $2,000+ on a gaming rig with a 4080, so this isn't a half bad deal: it's a payback of 100 months, and by then you'd probably want a 6080 anyway. Funny how NVIDIA is better at offering the promise of cheap cloud costs than the likes of AWS! Anyway, I've been very impressed with NVIDIA GeForce NOW. We're going to bake the Linux installer straight into the next version of Omarchy, so you can just go to Install > Gaming > NVIDIA GeForce NOW to get going (just like we have such options for Steam and Minecraft). But of course seeing Fortnite running in full graphics on that remote 4080 made me hungry for even more. I've been playing Fortnite every week for the last five years or so with the kids, but the majority of my gameplay has actually been on tablet. A high-end tablet, like an iPad M5, can play the game with good-for-mobile graphics at 120 Hz. It's smooth, it's easy, and the kids and I can lounge on the couch and play together. Good Family Fun! Not peak visual fidelity, though. So after the NVIDIA GeForce NOW experience, I found a way to use the same amazing game streaming technology at home through a local-server solution called Apollo and a client called Moonlight. This allowed me to turn my racing-sim PC that's stuck downstairs into a cloud-like remote gaming service that I can access anywhere on the local network, so I can borrow its 4090 to play 120-fps, ultra-settings Fortnite with zero perceivable input lag on any computer in the house. The NVIDIA cloud streaming is very impressive, but the local-server version of the same is mind-blowing. I'm mostly using the Asus G14 laptop as a client, so Fortnite looks incredible with those ultra, high-resolution settings on its OLED, but unlike when you use that laptop's built-in graphics card, the machine stays perfectly cool and silent pulling a meager 18 watts. And the graphics are of course a lot nicer. The Moonlight client is available for virtually every platform: Mac, iOS, Android, and of course Linux. That means no need to dual boot to enjoy the best games at the highest fidelity. No need for a honking big PC on my primary desk. I did not know this was an option!! Whether you give NVIDIA's cloud gaming setup a try or repurpose a local gaming PC for the same, you're in for a real treat of what's possible with streaming Fortnite on ultra settings at 120 fps on Linux (or even Mac!). GG, NVIDIA!

0 views
ava's blog 4 weeks ago

my opinion on wheatflour wonderland (hkia dlc)

I have almost 200 hours in Hello Kitty: Island Adventure now, and my wife gifted me the first DLC for it: Wheatflour Wonderland in December. I’ve already written some tips about HKIA in general, but also wanted to put down my thoughts about the DLC. My verdict is: Save your money. Don’t buy it, buy it on a steep sale, let someone else buy it for you, or pirate it. Not worth it. I still have some stuff left to check off the list, but there’s no incentive to even do so, and it would be soul-sucking wiki work just to say that it is done. I don’t know if I’ll ever put in the effort of finding all wheathearts; nothing in the DLC is worth the effort. I have 3 levels left before Cogimyun is max level, and then I will likely never visit the DLC area again. I’ve seen people say that all the DLC is good for is It especially pales in comparison to the recent free content upgrade that included Moppu. Moppu is an even more interesting character, adds more life to an already existing area, and has cool new foods and minigames that don’t feel like a chore. The quests feel a lot better. I hope the next DLC (City Town) will not be nearly as bad. It will feature Usahana, plushies and running a cafe, and Apple Arcade users were already able to play some of it. Reply via email Published 01 Feb, 2026 The new area looks pretty and is exciting at first. I like the way they wrote Cogimyun and the way she interacts with the other characters. You can tell she is somewhat alien and doesn’t think like the rest, even in the small details; it feels genuine, not forced, and I like that the characters had conflicts over this, particularly Chococat. The concept of the wands and the magical girl stuff is funny. The Bell Garden is beautiful and a cool concept. The outfits, gems and furniture are cool. The map looks huge at first. Then you realize there isn’t actually much to do and it’s mostly empty space. You unlock a lot via wands and platforms, but the areas you unlock provide nothing. The third and final tier you unlock is particularly sad and barren; the land is falling apart and purposefully looking unfinished and empty. It’s no area that has any quests, cool stuff to do or see… just a one-time parkour getting some collectibles and activating a mailbox and that’s it. The few things you can do while exploring the map are mostly unexplained or not given an intro to. They’re also not very rewarding, and mostly grindy. Searching for all wheathearts, repairing lampposts, turning them on, taking pictures of the stone wheathearts and going through the arches all feels repetitive and like you need a list to track which ones you already did and which ones are missing. The hints can be extremely hard to find or understand. This basically means using the wiki just to get stuff done. Cogimyun’s friendship progression slows down intensely past Level 20. It feels like they had to do that because there weren’t many quests or story elements at all, so unlocking them slower feels like more content. The minigames are extremely repetitive, not fun and not rewarding. I was already sick of Finding Ebi Fry by the 4th round, and I felt the same about Cogimyon’s game. Other characters like the birds and Ebi Fry are underutilized. Cogimyon’s character is wasted. He has no personality, no use aside from hosting another forgettable minigame. We don’t even see Cogimyun interact much with him. She just created her brother for him to wander the land and do nothing. Like a child who wants a pet and then abandons it. The story is non-sensical. It also ends in a huge let-down. The Citadel gets played up as harboring a huge treasure, then you spend so much time grinding to open it and it’s a useless, underwhelming bag of flour. They thought they were funny with that. They make you run courses way too many times to get a new resource you can only get through them. Had me running the same boring race path 25 times already. Some of the gems and critters are so rare that it’s completely unfun. I’ve had to be lucky with the minigames and my search to even get the basic amount of diamonds and opals you need for the wands/story. Since then I have never found any ever again. I’m also starting to think the stars will never align for me to even see a Floopy Ballooper, let alone catch enough for a wand and to access two platforms I haven’t been on yet. To be there at the right time with the right weather seems impossible, even with the Twin Stars. You get cabins, but only to decorate, no one can move in. Wasted area. Installing the DLC has harmed the overall performance significantly, and being in the DLC area and walking at certain spots causes massive 1+ second freezes and lagging because the other area is loaded. The optimization is really bad. This isn’t even on the Switch, this is on Steam Deck. the wheat being easy material for the fertilizer machine the extra flower spots Cogimyun’s powers the short laugh you get when you get to transform into a funny item cabins to decorate

0 views
JSLegendDev 1 months ago

You Should Make Web Games

I recently realized that if it weren’t for the fact that making games for the web was possible, I would have probably never tried game development and stuck with it. While reflecting why this was the case, I came to the conclusion that there are certain characteristics about the web that makes it an ideal platform for beginners and more experienced game developers. That’s why I’d like to convince you to start making web games if you’re not doing so already. A prevalent issue that occurs to most game devs is over-scoping. I recently came across a game dev youtuber who struggled to finish anything and jumped from one incomplete project to another. They were an Unreal Engine solo dev and it was clear that the projects they wanted to make were just too ambitious. When making games for the web, you’re pretty limited in what you can do graphics wise and even scope wise (assuming you don’t make a browser based MMO that relies on a server). For example, as long as you don’t rely on a server, a web game will usually save its data in the player’s browser local storage which gets cleared after a week or so of inactivity or when the browser cache is cleared by the user. Because of this, you’ll rarely, if ever, see someone making a game with above a couple of hours of playtime because they know they can’t rely on save data being reliably accessible. This dramatically reduces the scope expected of a web game. The fact that web games are mostly short experiences is freeing. You don’t have to worry that players will complain due to a lack of content and therefore, feel pressured to inflate the playtime. With this worry out of the way, you can quickly go from game idea to a completed project and move on to the next idea before you even have the chance to get bored of your previous one. Due to the small scale nature of web games, you can explore different genres easily before finding what you truly like making or what garners the most attention. This quick iteration possible with web games has a lot of similarities with making YouTube videos. You make a video, you upload it, check its stats, work on the next one where you can improve or try something different. If you use itch.io to host your games, you get basically the same experience, you get stats where you can see how many views your game has, how many browser plays, if there are any comments, ratings, etc… Therefore, you get a fast feedback loop which is incredibly motivating as a beginner. You can quickly incorporate improvements in your next projects. Having access to statistics allows you to know if you’re moving in the right direction. You might be wondering, how do you get feedback on web games if there are no algorithms like on YouTube to serve your game to a new audience? What if you don’t have a preexisting audience? It’s true that if you publish your game on itch.io outside of participating in a game jam, you’ll be launching to crickets. That said, I’d like to make the point that reaching players with a web game is still ridiculously easy even if you don’t have an audience. Let’s explore a few avenues you can try. Publishing your game on Newgrounds is an almost guaranteed way to get at least a few players. This is because, when publishing your game on this platform, it has to go through a rating process where the site puts your game in front of real users. After the rating process is done, you’ll get a score on 5 and a few comments. From there your game can either become more popular or stay as is. While this is a tech forum, people do share games on there from time to time and they do end up on the front page. Usually, people there are technical so if you can also mention how your game was built, you might get more attention. For example, mentioning the programming language, framework, engine, etc… in the title of the post. That said, this is not strictly necessary. When a link gets popular on Hacker News, you’ll often start seeing it shared elsewhere on your behalf, for example on Reddit, on X/Twitter, etc… this can transform into a snowball effect and make your game viral. It offers a dedicated subreddit for webgames like /r/WebGames where you can post a link to your game. However, try looking beyond that. For example, you can submit your game to /r/CozyGamers if you’re making a cozy game as long you follow the rules. There is also nothing preventing you from using YouTube and other social media platforms to promote your game. Making devlogs or videos showcasing your game and putting the link to play it in the description is a great way to find new players. That said, at this point, you’re building an audience. It might take a while to get traction but because these platforms have recommendation algorithms, at some point, some people will come across your game. As with your standard PC game, the success you’ll see using the avenues I just listed depends highly on how remarkable your game is. The strength of web games is that if you don’t see traction with one project you can quickly spin up a new one and the time you invested in building one is an order of magnitude less thant what it would take to make a Steam release. Anyway, once one of your web games goes viral, you can invest time in making an expanded version for Steam. This seems obvious. Most people don’t want to download a game from an unknown developer because the risk of getting hacked is high. In fact, the well known game marketing expert Chriz Zukowski mentions in his post about analyzing itch.io’s traffic that people are 3 times more likely to try your game if it’s playable on the web VS having to download it. The friction of a web game is near 0, you’ll get more people willing to try it which translates into more people giving feedback, more attention, etc… which will in turn make a beginner more encouraged to continue their game dev journey. This is also useful for more experienced developers to know which project is worth spending more time on. The web is also not just for completed games. Let’s say you’re having trouble finishing a project, you can still publish it as cool prototype and it will garner attention if it’s good. This will in turn maybe motivate you to push through or have a better idea of what to work on next. Contrast this with making the same project available only through a download. Nobody is going to install a 15 minute game or prototype. Most people who ridicule web games, probably think of mobile-y casual games you find on web portals that are played by children during their computer lab classes. While there are games that serve this purpose, it’s a huge mistake to view them as just that. Web games can also serve as a wonderful litmus test to determine which game ideas and concepts are worth investing time into for a full release on Steam. Web games are therefore, great for validation. Chris Zukowksi, the game marketing expert that I mentioned previously, confirmed that this strategy actually works really well. You can check out the post were he lays this out, here . Anyway, I’d like to emphasize that if you’re using web technologies (HTML/CSS/JS) to make web games, you’re not stuck on the web. The process of bringing a web game to Steam has never been easier. Before, you had to configure tools like Electron to build executables for Windows, Mac and Linux. A process that took time to get right. You also had to spend additional time to configure your game’s Steam integration so you could access features like Steam achievements. However, now there is a convenient tool called GemShell that comes with a one-click export feature to build for Windows/Mac/Linux all at once on the same machine and an easy integration with Steam. I have partnered with its developer, to offer you a 15% discount if you purchase the tool using the following link : https://l0om.itch.io/jslegend . To be completely transparent, if you end up purchasing GemShell using the link above, I’ll get a cut of that sale. That said, you can try the lite version for free first to see if this tool suits your needs. If you invest time in learning web technologies to make web games, the skills you’ll acquire will expand what you can build beyond just games. You’ll be able to build unique projects that sits between game development and web development. The most prominent example of this, are the kind of projects you can find on the famous neal.fun website. According to what I’ve found online, Neal uses the Vue.js JavaScript framework to build his unique games and interactive sites that go regularly viral online. For example, one of Neal’s project is a website in which you must prove you’re not a robot by completing a series of CAPTCHA mini games. Finally, nothing prevents you from using your web skills to build apps or game dev tools that can be easily shared with others. To conclude, making games for the web is an ideal way to get into and stick with game development because of the platform’s natural constraints which encourage small finishable projects allowing the developer room for experimentation. Since web games don’t require a download to try them, this makes it far easier to get your games in front of players even with no prior audience by sharing them on various platforms like Newgrounds, Hacker News, Reddit, etc... Therefore, you have a quick feedback loop through views, comments, ratings allowing you to remain motivated to continue your game dev journey. Finally, successful web games can serve as validation and be expanded into a full Steam releases. I hope you enjoyed this post, I recommend subscribing to not miss out on future releases. Subscribe now In the meantime, you can read the following :

0 views
Langur Monkey 1 months ago

Yet another architectural update for Play Kid

I finished my previous post on Play Kid, only two days ago, with the following words: Next, I’ll probably think about adding Game Boy Color support, but not before taking some time off from this project. Yeah, this was a lie. I have previously written about Play Kid, my Game Boy emulator. Here , I introduced it and talked about the base implementation and the quirks of the Game Boy CPU, PPU, and hardware in general. Here , I explained the tech stack update from SDL2 to Rust-native libraries. In that last post, I mentioned the dependency version hell I unwillingly descended into as a result of adopting as my rendering library. This forced me to stay on very old versions of and . I want my Game Boy emulator to use the latest crate versions for various reasons, so this could not be. I saw a simple and direct path of update, which consisted on adopting to manage the application life cycle, directly drawing the LCD to a texture, and dropping altogether. One of the things that nagged me about the crate is that its integration with was kind of lackluster. There was no easy way to render the frame buffer to an panel, so I had to render it centered inside the window. The immediate mode GUI lived in mostly in widgets on top of it. Unfortunately, these windows occluded the Game Boy LCD. In a proper debugger, you must be able to see the entire LCD plus the debug interface. So I dropped and adopted a render-to-texture approach. In it, you create the LCD texture at the beginning from the context, and then copy the LCD contents to it in the method. With this, we can easily render the texture in ’s , and the debug interface in a to the right. This is the result: The debug panel, showing the machine state and a code disassembly. Some additional tweaks here and there, and the UI looks much more polished and professional in version 0.3.0. Version 0.4.0 enables loading ROM files from the UI. Initially I thought about making the cartridge struct optional with , but this spiraled out of control fast. I found that making the full (which contains the , , , , etc.) optional worked much better, as there was only one reference to it in the top-level struct, . And, like so, you can dynamically load ROM files from the UI: Play Kid with the top menu bar and the ‘Open ROM’ menu entry. So, what’s in the future for Play Kid? Well, there are a couple of features that I’d really like to add at some point: Save states —Currently, Play Kid emulates the SRAM by saving and restoring it from files for supported games. I would like to add saving and restoring the full state of the emulator in what is known as save states. Possibly, the crate can help with this. GBC —Of course, I would like adding Game Boy Color support. It is not trivial, but also not exceedingly complicated. I never owned a GBC, so I’d see this as a good opportunity to explore its game catalog.

0 views
Langur Monkey 1 months ago

Game Boy emulator tech stack update

In my previous post , I shared the journey of building Play Kid , my Game Boy emulator. At the time, I was using SDL2 to handle the “heavy lifting” of graphics, audio, and input. This was released as v0.1.0. It worked, and it worked well, but it always felt a bit like a “guest” in the Rust ecosystem. SDL2 is a C library at heart, and while the Rust wrappers are good, they bring along some baggage like shared library dependencies and difficult integration with Rust-native UI frameworks. So I decided to perform a heart transplant on Play Kid. For version v0.2.0 I’ve moved away from SDL2 entirely, replacing it with a stack of modern, native Rust libraries: , , , , , and : The most visible change is the new Debug Panel . The new integrated debugger features a real-time disassembly view and breakpoint management. One of the coolest additions is the Code disassembly panel. It decodes the ROM instructions in real-time, highlighting the current and allowing me to toggle breakpoints just by clicking on a line. The breakpoints themselves are now managed in a dedicated list, shown in red at the bottom. The rest of the debug panel shows what we already had: the state of the CPU, the PPU, and the joypad. Of course, no modern Rust migration is complete without a descent into dependency hell . This new stack comes with a major catch: is a bit of a picky gatekeeper. Its latest version is 0.15 (January 2025). It is pinned to an older version of (0.19 vs the current 28.0), and it essentially freezes the rest of the project in a time capsule. To keep the types compatible, I’m forced to stay on 0.26 (current is 0.33) and 0.29 (current is 0.30), even though the rest of the ecosystem has moved on to much newer, shinier versions. It’s kind of frustrating. You get the convenience of the buffer, but you pay for it by being locked out of the latest API improvements and features. Navigating these version constraints felt like solving a hostage negotiation between crate maintainers. Not very fun. Despite the dependency issues, I think the project is now in a much better place. The code is cleaner, the debugger is much better, and it’s easier to ship binaries for Linux, Windows, and macOS via GitHub Actions. If you’re interested in seeing the new architecture or trying out the new debugger, the code is updated on Codeberg and GitHub . Next, I’ll probably think about adding Game Boy Color support, but not before taking some time off from this project. & : These handle the windowing and the actual Game Boy frame buffer. allows me to treat the 160x144 LCD as a simple pixel buffer while handles the hardware-accelerated scaling and aspect ratio correction behind the scenes. : This was a big step-up. Instead of my minimal homegrown UI library from the SDL2 version, I now have access to a full-featured, immediate-mode GUI. This allowed me to build the debugger I had in mind from the beginning. & : These replaced SDL2’s audio and controller handling with pure-Rust alternatives that feel much more ergonomic to use alongside the rest of the machine.

0 views
neilzone 1 months ago

I play my first 'battle sim' Airsoft game today, and I loved it

I have played Airsoft at Red Alert, in Newbury, quite a few times over the past months, so I know the site, and the staff, pretty well, and I greatly enjoy my time there. Until today, I had only played their normal “skirmish” days, as well as their summer evening target shooting sessions. Today, I played “battlesim lite”, which is essentially a step up from a normal Sunday skirmish. Unlike a “proper” battle / military simulation game, today there were no ammo limits, no weapon restrictions (beyond the normal safety limits), and no required costumes. There were two games; one before lunch, and one after. On a normal skirmish day, there are three shorter games before lunch and two or three shorter games in the afternoon. I liked the longer games. For a start, there is less sitting around between games. I don’t take long to sort out my stuff, so I’ve taken to bringing my ereader with me to normal Sunday skirmish days. But more than that, the longer games just… worked. The format was not complicated: find some cards (smaller than a playing card, hidden around a 34 acre site; there was a lot of walking today), trade those cards for a “bomb” - a plastic case - then take that “bomb” to one of a number of designated places. I took out six magazines with me, as I was just not sure how many rounds I’d fire. I used two and a bit in the first game, and nearly two in the second game. So I could probably have got away with fewer magazines (and thus had a slightly lighter load-out). It was fun, and I very much look forward to playing a battle sim again. I might try the “proper” battle sim later in the year too. I also learned how to use the HPA refill point, which was one of my goals for today, as I’m getting very tempted by an HPA-powered RIF. Some points for me for next time: leaving a water bottle at the spawn point, or having a fancy water carrier with a hose, would have been a good idea. There’s water in the safe zone, and it was not a particular problem for me today, because of the weather mainly, but it would have been sensible to take water into the game with me. the “new fort” at Red Alert is a tough spawn point. If it is going to be a spawn point, try to pick it first (i.e. in the morning), so that, after lunch, when legs are more tired, you are starting on the other side, mainly heading downhill. I still need to sort out my glasses getting fogged up. I might have to try an “active cooling” unit, as it is a pain when I cannot see properly.

0 views
Brain Baking 1 months ago

Keiji Yamagishi's Retro-Active Was Last Year's Most Played Album

Fans of retro games will no doubt recognise the name: the Japanese video game composer and programmer Keiji Yamagishi is famous four his work on Ninja Gaiden and many other great (S)NES soundtracks during from tenure at Tecmo. Yamagishi-san moved on to produce his own chiptune music together with Brave Wave Productions when the gaming industry moved on from composing music in only eight bits. His 2015 solo debut duo album, Retro-Active Pt. 1 and Retro-Active Pt. 2 has been on the daily playlist ever since I bought it. I’m a sucker for 8-bit chiptunes neatfully mixed together with contemporary beats, which is exactly what you’ll be paying for here. The first track on the first part, aptfully called First Contact , is enough to give you a taste of what you’ll be in for: It doesn’t stop there: Yamagishi-san collaborated with multiple other big hitters from the (retro) video game music world, such as Manami Matsumae (Mega Man, Trip World, Derby Stallion, …) and Ryuichi Nitta, his trusty co-composer who also worked on Ninja Gaiden. It’s best to let the music do the talking here. If the first track from Pt. 1 hasn’t convinced you, perhaps the first track from Pt. 2 , Thought Police , will: I also love the album cover art. If you simply can’t get enough, there’s a remixed version Brave Wave also put out that I have yet to discover. As always, both albums are available at Bandcamp. It looks like Keiji Yamagishi released a third related album in 2019 called The Retro-Active Experience which is a compilation of the first two and a few remixes. That’ll be my reward for writing this and searching for the accompanied links. A quote from a random review left behind on Bandcamp: “Yamagishi is a living legend.” – CHIPTUNES WIN, Glenntai Happy Saturday! Related topics: / music / By Wouter Groeneveld on 24 January 2026.  Reply via email .

0 views
JSLegendDev 1 months ago

Making a Small Mouse-Driven RPG

Check the video version version on YouTube, here . I have been working on a small action RPG where the player moves around on a small map. Once in a while, stars appear and if the player collides with one, a battle encounter begins. In combat, the player has to avoid getting hit by a slew of projectiles. To deal damage, they must collide with star shaped attack zones appearing on the battlefield. After a battle, if they win, they get rewarded with a currency they can spend to either upgrade between three stats : health, attack or speed, or to heal themselves. After a stat upgrade, the cost to upgrade again will increase. I initially designed the game to be controlled via the keyboard or a standard controller. However, this would end up changing as the title of this post suggests. After having developed the core game loop, I was unfortunately faced with a roadblock that stopped the project in its tracks. The game’s performance wasn’t great. I originally built it using JavaScript and the KAPLAY game library. The crux of the issue was that KAPLAY wasn’t performant enough. This led me to embark on a side quest of exploring alternatives, which ended with me picking Godot. Therefore, I started re-implementing what I had in the JavaScript version. However, this is where I got completely demotivated. Nothing against Godot, but it just wasn’t fun re-doing all this work. KAPLAY was also faster for prototyping ideas. I started to procrastinate. Because of this, I was faced with two options: Either I just silently abandon the project. I still resume its development in KAPLAY regardless of the performance. At this point its either there is a game in the end even if it doesn’t run super well or there is nothing. That said, the main factor that lead me to push forward was the reception the first devlog had on YouTube. I did not expect a haphazardly put together devlog recorded while I was still recovering from a cold to garner over 50k views. This seemed to show genuine interest in my game and it seemed worth it to continue its development. Therefore, I re-opened my codebase and started working. This is where something really amazing occured. The KAPLAY developers, while I was exploring other alternatives, released new versions of the library that improved performance noticeably. This led me to regain my motivation. Now that I was back to developing my game, I assessed that its pillar was the combat system. Unfortunately, battling wasn’t as fun as it could be. I identified that the core issue at hand was a lack of thoughful design in the enemy attack patterns. To make things easier to test, I created a scene where I could initiate a battle with any specific enemy in my game rather than having to move around the map until an encounter occured. This would allow me to quickly tweak attack patterns as needed which allowed for faster iteration. I also had to refactor my code a bit to make the way I spawned attacks more flexible and modular. After having done this perparatory work, I wanted to start re-designing the attack patterns of the first enemy since it was the only one where I had actually put some time in designing a pattern beforehand even if it wasn’t very good. This is where I was afflicted by the blank page syndrome. I absolutely had no idea how to approach this aspect of the game’s design. I didn’t even know were to start. Also, it didn’t help that I didn’t really play games with bullet-hell mechanics. I figured out I needed to do some research. This is where I concluded that what I had in mind for my project shared a lot design-wise with games in the Shump genre otherwise known as Shoot’em up . A big portion of their gameplay is about avoiding projectiles which is what my game is mostly about. While I was looking up how Schumps were designed, I came across an interesting document by a Shump dev and designer named Bog Hog. Titled BULLET HELL SHMUP DESIGN 101 , it contained exactly what I needed to make good attack patterns for my enemies. While it’s filled with useful design knowledge that I won’t have the time to cover here, a few concepts listed under the BULLET PATTERN section really stood out. To summarize, the document explained that at its core, bullet attack patterns can be boiled down to three simple bullet pattern types. Static : where the bullet has a predefined trajectory, this is useful for creating obstacles. This will force the player to engage with the dodging mechanic fully. It also has the advantage of allowing you to design beautiful looking patterns since everything is predetermined. Aimed : where the bullet targets the player, this is good for applying pressure and forcing the player to move. You essentially, don’t want the player to camp and cheese the game that way which is possible if you only have static patterns. Random : as the name implies, this is when the pattern is randomized to keep things fresh. However, the document warns to use this carefully as it’s bound to create unfair situations. Armed with this knowledge, I was able to design an attack pattern that was far better than what I previously had. That said, a single pattern would not be enough to make a whole combat encounter interesting. To fix this, I decided to design mutliple different patterns that would be used according to the enemy’s HP. As it got lower, harder patterns were introduced. Essentially, this is the concept of phases which is commonly seen in boss fights of various games. As I playtested the game myself, while I could see improvements with the battle system, there was still something that felt off. I would end up figuring out that the fact that attack zones, which the player uses to deal damage, were spawned randomly reduced the feeling of mastering a fight. By extension this reduced enjoyment. It felt unfair that despite masterfully avoiding a slew of attacks, you could be in the unfortunate position of having an attack zone spawn too far away from where you were. A similar feeling to this is when you play soccer and your team dominates possessing the ball but all shots mades never converts to a goal. To fix this issue, I decided to make attack zones spawn in predetermined locations. For each phase of the battle there would be a maximum amount of attack zones that could be available at once and their positions would be randomly selected among a list of predetermined locations. Playtesting again, this change seemed to fix the issue. One challenge I faced during development was how difficult it was to gauge whether an attack pattern would be perceived by players as too difficult or too easy. Fortunately, because my game has a level-up system and is non-linear, I was able to address this issue by designing all enemy battles to be very challenging at level 1. If a player struggled, they could use the currency earned from barely defeating an enemy to upgrade their stats, gradually making the game easier over time. After having designed the full battle encounter with the most basic enemy of the game, I decided to let my brother test it out to see if my intuition about game design and difficulty would hold. I proceeded to hand him over my development machine and explained him the controls. After letting him play for a bit, he mentioned how the arrow keys used to move around were uncomfortable. To understand his complaint, it’s worth mentioning that I’ve been developing on a MacBook Air M3, and the arrow keys on this device are really narrow, which explains why he felt cramped while playing. He then asked if he could use WASD keys instead. Although it wasn’t implemented, I obliged, and he had a much better experience. However, after he finished playing, he mentioned that the battle was too difficult and that it would have been much easier if he could control the cursor during battle with a mouse. I initially dismissed this suggestion because it would literally turn my game on its head. In my RPG, players can upgrade three stats: attack, HP, and speed. Implementing mouse input would have required removing the speed stat because moving slower than the mouse cursor would feel awkward. This would have left my RPG with only two upgradeable stats, making the change feel like it took too much away from the game. Another issue with this change is that other input methods wouldn’t be able to compete with a mouse or trackpad, which are much more precise and allow players to move more easily. This would essentially mean committing to a mouse-driven game and designing all attack patterns around that control input method. Additionally, I would have had to reimplement movement controls in the overworld, since it would feel strange to move with arrow keys or WASD but then have to use the mouse in battle. I would also have needed to adjust my menus to work with mouse input instead of just keyboard or controller controls. Finally, the game would only work as a PC title, since bringing it to consoles would alter the experience too much, unless you relied on the PS5 or Steam Deck trackpads or the Switch 2’s mouse mode. This wasn’t a major concern during development, as I wasn’t designing with consoles in mind but I thought that it would be a shame if the game does become successful but couldn’t be ported to console due to the game’s fundamental design. I eventually came around to the idea of mouse movement and decided to implement it in combat, mainly out of curiosity to see how the game would feel with this input method. To my surprise, controlling the cursor with the mouse was far better than I expected. Moving around was incredibly fun, and the sense of control and precision was unmatched compared to using arrow keys or even a controller’s joystick. I was now convinced, this was the way. Too bad if the game doesn’t become adaptable to consoles, I would commit this title to being a mouse/trackpad driven game and would design all battles with this input method in mind. I proceeded to make all kinds of changes to better suit this new playstyle, but I don’t think they’re worth covering here. Instead, why not try it for yourself? That’s why I’m excited to announce that I’ve released a demo of the battle system, which you can try directly in your browser on itch.io with no downloads required. In this demo, you’ll face the game’s most basic enemy while your character is at level 1. Keep in mind that it’s normal for the battle to be challenging, but you should be able to defeat the enemy at least once. In the full game, the currency gained from battles can be used to level up, making future encounters with the same enemy easier over time. Give it a try and let me know what you think! Link to the demo : https://jslegend.itch.io/hydralia-donovans-demise-battle-demo That’s all I have to share for now. If you missed the first devlog, here’s a link to it. Anyway, if you want to keep up with the game’s development or are more generally interested in game development, I recommend subscribing to not miss out on future posts. Subscribe now In the meantime, you can read the following : Check the video version version on YouTube, here . I have been working on a small action RPG where the player moves around on a small map. Once in a while, stars appear and if the player collides with one, a battle encounter begins. In combat, the player has to avoid getting hit by a slew of projectiles. To deal damage, they must collide with star shaped attack zones appearing on the battlefield. After a battle, if they win, they get rewarded with a currency they can spend to either upgrade between three stats : health, attack or speed, or to heal themselves. After a stat upgrade, the cost to upgrade again will increase. I initially designed the game to be controlled via the keyboard or a standard controller. However, this would end up changing as the title of this post suggests. Resuming Development After having developed the core game loop, I was unfortunately faced with a roadblock that stopped the project in its tracks. The game’s performance wasn’t great. I originally built it using JavaScript and the KAPLAY game library. The crux of the issue was that KAPLAY wasn’t performant enough. This led me to embark on a side quest of exploring alternatives, which ended with me picking Godot. Therefore, I started re-implementing what I had in the JavaScript version. However, this is where I got completely demotivated. Nothing against Godot, but it just wasn’t fun re-doing all this work. KAPLAY was also faster for prototyping ideas. I started to procrastinate. Because of this, I was faced with two options: Either I just silently abandon the project. I still resume its development in KAPLAY regardless of the performance. I did not expect a haphazardly put together devlog recorded while I was still recovering from a cold to garner over 50k views. This seemed to show genuine interest in my game and it seemed worth it to continue its development. Therefore, I re-opened my codebase and started working. This is where something really amazing occured. The KAPLAY developers, while I was exploring other alternatives, released new versions of the library that improved performance noticeably. This led me to regain my motivation. The Pillar of My Game : The Battle System Now that I was back to developing my game, I assessed that its pillar was the combat system. Unfortunately, battling wasn’t as fun as it could be. I identified that the core issue at hand was a lack of thoughful design in the enemy attack patterns. To make things easier to test, I created a scene where I could initiate a battle with any specific enemy in my game rather than having to move around the map until an encounter occured. This would allow me to quickly tweak attack patterns as needed which allowed for faster iteration. I also had to refactor my code a bit to make the way I spawned attacks more flexible and modular. After having done this perparatory work, I wanted to start re-designing the attack patterns of the first enemy since it was the only one where I had actually put some time in designing a pattern beforehand even if it wasn’t very good. This is where I was afflicted by the blank page syndrome. I absolutely had no idea how to approach this aspect of the game’s design. I didn’t even know were to start. Also, it didn’t help that I didn’t really play games with bullet-hell mechanics. I figured out I needed to do some research. This is where I concluded that what I had in mind for my project shared a lot design-wise with games in the Shump genre otherwise known as Shoot’em up . A big portion of their gameplay is about avoiding projectiles which is what my game is mostly about. While I was looking up how Schumps were designed, I came across an interesting document by a Shump dev and designer named Bog Hog. Titled BULLET HELL SHMUP DESIGN 101 , it contained exactly what I needed to make good attack patterns for my enemies. While it’s filled with useful design knowledge that I won’t have the time to cover here, a few concepts listed under the BULLET PATTERN section really stood out. To summarize, the document explained that at its core, bullet attack patterns can be boiled down to three simple bullet pattern types. Static : where the bullet has a predefined trajectory, this is useful for creating obstacles. This will force the player to engage with the dodging mechanic fully. It also has the advantage of allowing you to design beautiful looking patterns since everything is predetermined. Aimed : where the bullet targets the player, this is good for applying pressure and forcing the player to move. You essentially, don’t want the player to camp and cheese the game that way which is possible if you only have static patterns. Random : as the name implies, this is when the pattern is randomized to keep things fresh. However, the document warns to use this carefully as it’s bound to create unfair situations.

0 views
Chris Coyier 1 months ago

The Breakaway Moment

I know I’ve mentioned a ton of times: while I enjoy playing videos games sometimes , a little, I enjoy watching other people play them more . Even as a little kid. Like an awesome play date would be going over to a friends to watch them play. Perfect world, the friend would only play when I was watching, so I could see everything. Even more perfect, I could sidekick, referencing maps, looking up tips, keeping track of things, etc. I honestly thought I was just weird for a lot of my life. It was literally an oh cool I’m not weird at all moment when Amazon bought Twitch for $970 million in 2014, a platform for literally watching people play video games. It was like a mini version of learning that being introverted isn’t weird . For better or worse, I don’t have a lot of space in my life right now now to sit on a couch with friends watching them play video games. Probably better, honestly. I think my freetime is better suited for things that fullfill me in a little deeper way like music stuff and going for a dang hike. But now’a’days, naturally: YouTube. I can watch people play videogames on YouTube (I do actually like Twitch too, but only when the “live” aspect is additive, which isn’t usually). But you know what I don’t do? Hear about some new game that seems cool, and just go right to YouTube to check it out by watching a “playthrough”. What do I actually do? I buy the game, play it for a while, enjoy it, but ultimately give up, then I go to YouTube. That’s what I mean by the breakaway moment . This isn’t some moral high-ground where I soapbox about how gaming studios are losing money because people aren’t buying the game they are just watching it “for free” and my buying of the game is my way of feeling good about that. I think that’s an oversimplification and probably not even true. It’s just… that’s how my brain works. I think I can’t really get into a YouTube playthrough unless my own brain and fingers have played the real game itself and felt it. Then I can engage with the video somehow much quicker and on a deeper level. I just did this dance with Expedition 33: Clair Obscur . I bought it. Well, I was prepared to anyway, but it was included with my XBOX Game Pass. I played it for — I dunno ~7-8 — hours. But I wasn’t very good at it. Even though it’s turn-based combat, there is lots of timing involved and it’s the kind of thing I grow to resent. Like doing an action and needing to press a button at the exact right moment to enhance it, or an enemy attacking and you needing to dodge or parry at timing that is designed to be tricky . I don’t get as much satisfaction from getting it right as I get annoyed from missing it. Particularly when, as it turns out, perfectly-timed parries are all but required for winning battles and progressing in the game. It’s not that I dislike the mechanics, they just aren’t for me in the sense that most game mechanics aren’t for me. Maybe I’m just at a point in my life where I’m so frustrated by so many things that paying to be artificially frustrated is a no-go. But: I want to see the mechanics at work, I want to see someone master them, I want to see how the choices and progressions pan out. I really want to see the story unfold. Video game stories can be truly cinematic. So I’ll just experience them how works best for me. And apparently that’s trying the game myself, waiting for the breakaway moment, then off to YouTube it is.

0 views