This is a good thing: BREAKING: Zohran Mamdani announces click-to-cancel rule for NYC. This rule is aimed at guaranteeing New Yorkers can cancel subscriptions as easily as they sign up — and stopping corporations from trapping customers. This will save New Yorkers up to $162.5 million per year. — More Perfect Union (@moreperfectunion.bsky.social) 2026-07-10T16:34:45.674Z Source link More of…
I’ve been following the discourse in AI software development, especially in the game development spaces, and the eagerness of people sharing their creations I think speaks to people’s desire to create, which I think is a good thing. Yet, they tout their ignorance as some kind of badge of honor. Them declaring they did a thing without knowing an ounce of programming, art, design, or…
“Community comes at the cost of convienence” is a great line. Got that quote from an interview with Brennan Lee Mulligan. People want convienence and without knowing it, they gave up what we use to have: community. I think internet modernity may have broken it. And worse still, we may have handed the keys over to big tech in the process. It wasn’t convienent to go to 5 different…
I generally have some eye for “how much code does it take” to do a specific task. One thing I’ve come to terms with while working on larger and larger systems is that the runtime code starts to become dwarfed by the test code and build system that helps make the final artifact.
As life gets more complicated, and responsibilities increase, it’s easy to chalk up the lack of progress to the constant interruptions. I sometimes have to remind myself that interruptions are the norm, not the exception. Plan accordingly, and take solace in the increasingly fewer times life gives you those long stretches of peace and quiet. And more importantly, recognize some of those…
Tonight’s election feels like a small gasp of fresh air while still suffocating in this hellscape. The rebuke across the board in the various elections gives me hope. My political feeds on bluesky for once aren’t just utter doom and gloom. OH MY GOD, DDHQ CALLS IT AND DEMS FLIP BOTH STATEWIDE ELECTIONS IN GEORGIA — Joe (@electionsjoe.bsky.social) 2025-11-05T00:43:05.760Z 1. On…
Affinity just announced their version 3 of their graphics suites. It’s a crazy technical achievement marred by the false promise of “democratizing creative tools”. This feels straight out of the enshittification playbook. I was rooting for them years ago after Adobe went subs only. Sad to see this direction. They gave away their core product for free. Professionals just lost…
Focusing on the 1% improvement per day for a long time instead of some herculean effort in some small intense burst generally yields bigger and better results in the long run. I don’t know why it took so long. I think I’ve always knew it intellectually. But in the past couple of years I think I’ve finally begun to internalized it. I read Atomic Habits a while back and it put into…
I’ve been on a bit of a “get back in control of my data” streak. I’ve been experimenting with different services and software to help enable that. Some stick and some don’t quite hit the mark. One that’s had staying power for me has been Kagi. I’ve had it over a year now (August of last year) and I haven’t looked back to google search since. The few…
Ran into this post earlier today with a choice quote from an old movie I enjoyed: “In order to make delicious food, you must eat delicious food. The quality of ingredients is important, but one must develop a palate capable of discerning good and bad. Without good taste, you can’t make good food." - Jiro Ono in Jiro Dreams of Sushi (2011) The sentiment shared in Prasatt’s post I agree with.
I’ve finally got the creative itch again, and I want to try one more time. What I’m going for is my most ambitious project yet. And I suppose the most liberating notion to me is failure is totally an option, but sitting on the sideline is not.
I keep telling myself these past couple of years that I would write more. And then the blog would sit idle for the rest of the year. Turns out I have been writing more. Just not on this blog. I’ve been writing in my own Obsidian vault for years. Are any of those musing worth sharing? Maybe. But I think the fact that the only audience is me compells me to write more frequently.
Last year was quite the year for me personally, professionally, and creatively. There was just a lot of change. One them that stuck throughout was just “re-thinking how I do things”. I was pretty comfy in my tools, gear, and workflows and had become curious about other methods. It quickly turned into a rabbit hole 😆. Workflows I spent several months last year kind of…
TL;DR: So I’m not entirely sure if my CPU is completely hosed at this point and I’ll have to be getting a new one soon, but I was running into some insane errors while compiling rust recently. Turns out my CPU can’t compile rust reliably when thermal throttled. I’ve been on this PC build for a little over a year now. The CPU is an Intel i9-13900K. It’s also a custom…
New Year, more Godot! I’m finally taking the time to make my windows environment as comfy as I can make it. My day job has me working on macOS/linux so I’m familiar with just running stuff with simple shell scripts, maybe a makefile, and I’m off to the races. With Godot I’m developing primarily on Windows, in Neovim, and using the Rust GDExtension. Trying to stay in the…
This took longer than I care to admit. I work both in MacOS and Windows daily. Recently I wanted to setup Godot’s LSP with neovim on Windows and it turned out more tricky than I would have liked. The crux of the issue was trying to get the LSP configured to use netcat instead on windows. I’m also using the LazyVim distro. Long story short, under my plugins folder I have a lsp.
The burden of trying to do longer form blogging can certainly be a bit much. I think as time has passed and experienced gained the self awareness of how little I actually know became an overriding force for me to not put anything together. Also getting a post together always ends up a way bigger task than I think. In truth, I’ve been writing a lot. Just not on any public facing platform.
Today I had to install nodejs on a new dev machine for a separate project. I did the reasonable thing and went to nodejs.org and installed from there. Little did I know what insanity I was in for. After it finished spewing garbage all over my dev machine for several minutes, I went back and tried to remove as much of the cruft as I could and went with nvm-windows. It installed in half a second,…
This month I’ve been thinking a lot about the tooling I’m using to get through the day, learn things, and manage things. I felt the tools could be simplified, changed, improved, or consolidated. I started with a nuclear approach and tried to see if I could do: Task management Reading stashes Note Taking Project management …all in 1 app: Notion. It was a fun exercise and I found…
I’m currently deep in UMG/Slate with UE5. It’s been a few years since I’ve worked in Unreal regularly. And it’s also the first time I’m stepping into Slate proper. I recently had the need to load up a font just for some custom styling on a slate widget I don’t have fully exposed in UMG. After some digging I got to this nugget of info: NormalText =…
Bevy works well on the web! One of the things that took me some digging is how to get bevy to not create and inject a canvas element but instead use one that is already in the DOM. Below is a snippet of how to do this in rust as well as the corresponding HTML. Hopefully this saves someone some time! I needed this in a prototype to see if I could get bevy and yew to work well together.
Like many of us in this pandemic, I’ve picked up a hobby over the last year. It’s been fun learning to build, fly, and eventually wreck these little winged terrors.
One of the issues with game development that’s become more apparent over the years was dealing with splitting time between new game development and bug fixes/maintenance. When we first released games, they were much simpler, and as a result had less bugs to deal with. You could spend the majority of your time working on new features. Nowadays, our games have become so large that as the solo…
Use: UGameplayStatics::CreatePlayer(World, Index,bSpawnActor) (Docs). When creating a custom game mode it wasn’t clear in the documentation how ones goes about: Spawning a playercontroller Spawning a pawn assigning both to each other and possessing the pawn with the controller So I basically did it all manually inside InitGame(). This cropped up some unwieldy UI focusing bugs. Once I…
“If the byline on your article doesn’t enlarge its readership then you don’t have much of a value. All you’re doing is using the distribution network of a company. That makes you expendable. They can find someone else just like you. “ – Clay Davis Quite an interesting read regarding the business of writing for a living. I don’t 100% agree with all the conclusions he argues…
With each game release I’ve noticed I’ve committed less and less time to writing the ‘fun bits’ and more time spent trying to mitigate complexity and find ways to make as many things as testable as possible. I guess that’s the nature of the beast once you go beyond your average ‘asteroids’ clone. With the recent announcement of SFT getting asynchronous play in the…
Early on in the development of SFT I had concerns about how I was going to do text rendering on the cards in such a way that things stay readable regardless of resolution, while keeping fonts looking nice. I ran into aliasing issues as well as pixelation, since all the fonts being rendered were simply bitmap textures on top of cards that are flipping, rotating, and scaling in 3D space. I had read…
Taking the “conflict” out of shared roles: https://vine.co/v/inaDFBXgFUB We opted to do a ‘ranked preference’ for role selection in SFT. Instead of players joining/leaving and selecting anywhere from 1-3 players to control and then having more UI flow when conflicts arise, or a character is left unselected, or a few other scenarios, we simply take everyone’s preference list and the…
Finally got another card ability animation implemented into SFT: https://vine.co/v/i12I565Q9zg The method and architecture I’m using for driving game logic I think has served me well for the past few years. I shipped Outwitters on the basics, and expanded the gameplay “engine” for SFT, which allowed for real-time multiplayer (albeit in sometimes hokey ways). The drawback is I haven’t…
So much work left to do, but we're hitting a point where the game is fully-playable with basic graphics online and off. Hope to write more about some of the technical challenges soon! A delivery made! But barely! Sign up on http://t.co/Y9RSqo47n9 for release updates on SFT! #indiegames pic.twitter.com/pvanWLGG26 — One Man Left Studios (@OneManLeft) September 10, 2015
This week I’ve got a lot done in the way of Steam integration, save files, automated builds, some better randomization for galaxy generation, as well as some much needed bug fixes to make online play smoother. Got a lot done but not much on the visual side of things. But hey: Nice to be one step closer to a shipping product Got basic Steamworks apis integrated as well. Pretty painless with…
We ran a kickstarter for the game I’m currently working on, Space Food Truck. The game is coming along great, but we lacked the funds internally to really step it up a notch mostly in the audio department as well as some aspects in the graphical department due to budget constraints. I needed to be persuaded on the idea of running a kickstarter, but I eventually came around to it. Obviously,…
Oh my word. This game is my current single player obsession. Loved the new X-Com? Loved FTL? Love RPG’s and the that “one more turn” feeling? I found it hard to stop playing. It came out of left field for me (but that’s how it always feels if their marketing is doing its job right?). I’m not a huge fan of “medieval” or “dark and grim” themed games. But the art style in Darkest…
Wow, it’s been a while. Figured passing another milestone is worth at least some sort of update. Looking back at my 1 year milestone has been amusing. My initial thought was that almost all the points brought up 4 years ago would no longer apply. A lot of the insights back then are strangely still quite applicable. So what’s happened in the 4 years since? On a more personal level,…
This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: Hi there! I’m a bike messenger by day, aspiring actor by night, and this is my blog. I live in Los Angeles, have a…
As a game designer, one of things I try to avoid is creating disposable experiences. As any creative, if you’re making it for an audience, you don’t want it to be forgotten shortly after it’s introduction. Designing for longevity can be taken in two ways: You’re design is centered around story, atmosphere, characters, with less focus on mechanics. Mechanics are simply a…
I’ve been playing a fair number of board games lately. It’s interesting because the design of those games I feel are a whole different world compared to modern video game designs. In a way, I feel board games are a ‘purer’ game design in some aspects. You’re not tied down in presentation, cut-scenes, and other spectacle, and all you have to work with is a few widgets and a…
That’s probably the most non-sensical post title I’ve every come up with. Anyway, just wanted to do a quick update post on Outwitters. I’ve got a few longer-form entries in the works but I’m letting them cook a little bit before posting. There’s a lot of moving parts right now in trying to get this game looking presentable, and all at different stages of completion.…
I’ve been slacking lately on the blog unfortunately. In any case, Outwitters is still chugging along as I chip away at a large to-do list. We’re still not feature-complete, which is a bit disappointing. Yet, the core game is playing more smoothly than I predicted it would be at this stage so that’s a plus. We’ve started adding a few more testers into our pool to get more…
I’ve been slow on the blog updates lately mostly because the times I use to write were taken up with me being out of town. Just got back from an awesome weekend trip at MLG Orlando. For those that don’t follow that area of gaming, MLG stands for Major League Gaming, and is essentially a league for professional gamers to compete in. Starcraft 2 has taken off in a big way in the MLG,…
Oh, It’ll Be Out By…. Hmm, even now as I look back on what’s been done on Outwitters, I’ve learned a *ton* of new things in regards to game development. I’m not too excited about having only 1 game to release this year (if we even make *that*). Hell, we even planned on having 2 games a year. The take-away from that is game development is not an assembly line process.
This following post is probably going to be useful to an extremely niche audience: anyone developing a multi-user iOS app that has a GAE backend. I’m currently working on Outwitters and debugging turn-based games on the local dev server (dev_appserver.py) is really quick and painless. The problem arises from the nature the game. It’s a multiplayer game, and as such, requires multiple…
We’re still balancing Outwitters gameplay. When thinking about changing, removing, or adding gameplay I try to keep two aspects in mind, choices and unpredictability. I’ll speak to the choices aspect today, as I’m still trying to grapple with that whole unpredictability thing in a turn-based perfect-knowledge setting. When we set out to create Outwitters, we wanted to make a…
My first week off the iDevBlogADay rotation and I miss my usual Friday post. Go me. We’ve kind of hit a period where a lot of work is getting done, but an ever growing mountain of work is coming up on the horizon. Polishing a game is hard. Polishing an online turn-based strategy game is really hard. The simplest things take 3-4 more extra steps to do whenever you incorporate a server into…
I’ve been making a ton of progress on Outwitters lately. Although when I step back and look I still see a mountain of work left to do. But I *do* feel like I’m whittling away slowly at it. All of the core gameplay has been implemented for local play. Online play works in a non user-friendly manner and is still missing a few bells and whistles to make it stand apart from the typical…
Wow, Friday almost flew right past me. I’ve been working on Outwitters practically non-stop. A lot of the major ‘components’, as I like to think of them, have been figured out and implemented in some sort of fashion. Now I have to make this big herculean effort to get it all integrated and seamless: 1v1 and 2v2 pass-n-play A couple of teams and their animations and unique powers The…
Keep in mind, a lot of the rambling below is in the context of me being neck-deep in working on Outwitters, which is a strategy board game. I’m constantly thinking of ways to present games, their systems, and their objectives to people. Notice I said people, not gamers, or casual gamers. Sometimes I even look around my own environment and question “why the designer wrote that message the way…
Tomorrow (June 18th) marks the first year anniversary of me becoming a full-time independent game developer. Wow did the time fly by fast! Over the course of the past year I helped launch Tilt to Live HD, Lite, a couple of major gametype updates to Tilt to Live for free, a paid Viva la Turret update, and finally released a multiplayer co-op mode for both our games. When I think about it that way,…