And then you realize that you're using this incredible and very temporary opportunity to sit in a chair for most of your waking hours, for decades in a row.
"All of humanity’s problems stem from man’s inability to sit quietly in a room alone." --Blaise Pascal
Thanks :-) Some of the best fun I had was just coming up with funny level names. It became a bit of a challenge for family and friends to come up with better puns!
Some highlights (none of them mine!) include "Kellraiser", "Jingle Kells", "Skellington", "Two kellholes are better than one", "For whom the Kells toll" and last but not least, "Kell Block H"!
I don't agree that GML is designed for people who are not programmers though. I actually grew rather fond of GML (The language in Game Maker Studio) over the 2 years I learned to work with it (and that's coming from an experienced Software Engineer (TypeScript, Go, Clojure, Java, C/C++)). It's not perfect by any means, but it's very easy to get started with, has lots of features designed specifically for 2d gamedev, is actively improved by YoYo Games and getting better all the time. And it allows for rapid experimentation which was a huge benefit during development on Kells, given how many ideas where repeatedly thrown away.
Thanks :-) It's always been a challenge to explain how the gravity works so in the end I kind of played on that fact in the game. Most players initially think of the "gravity tiles" as essentially directional arrows. So if you want to make the Kells go up, you place an "UP" tile. But what that really does is make the Kells essentially "fall upwards". I hope this realisation gradually builds up over the first 10 or so levels (which are designed to be tutorial levels), until a brilliant "AHA" moment! But I've seen friends reach level 50 still using the "directional arrow" tactic :-)
OP here. It's not new as in "under development" new. It's newly released on Switch, but I've been working on it for over 2 years now on and off and it was released on Steam last year for PC/Windows.
This project was never intended to be a full time job (or even lead to one) and it was never about making money, either. If that were the goal I would have probably ended up with a very different game in order to appeal to the mainstream and give me more chance of (monetary) success.
For me this game was more about the process of creating something that is 100% an expression of me (and my son). I created it for the sake of creating it, nothing more. And I enjoyed every second of the process to the point where it's kind of sad it's over now. That's not to say it was always easy mind - it was painfully difficult sometimes and I almost give up in frustration and disillusionment many times.
Thank you for reading it and I'm so happy to here it inspired you to fire up GMS2 again. Your game looks awesome! That's exactly how I worked on Kells - I just chipped away at it now and then for no other reason than because it was fun! Good times!
OP here. I seriously thought about giving up on the gravity implementation many times, but not because the coding logic was difficult. I was more concerned that the player wouldn't find it compelling as I had early feedback it was way too confusing from player's perspective and I was too close to the game to notice it.
In the end, as it turned out, it wasn't the gravity mechanic that was too confusing, it was how haphazardly I initially implemented it. After months of playtesting and tweaking the difficulty curve in the early levels, I finally hit the sweet spot (which was measured based on feedback from play testers - mainly family, friends and a few colleagues).
Thank you :-) It's difficult to remember to be honest because he was involved from very early on, when the game was barely playable. I remember showing him early prototypes and he used to give me "sympathy nods" because he didn't want to upset me, haha! It took (what felt like) months before the game was playable enough for him to enjoy it and by then he had already come up with many of the ideas and level designs himself.
I have no clue about the science but I like to think of time as an illusion, just for the fun of it. It appears to me to be our way of making sense of reality based on our limited senses of what's really going on. There is only "now" in reality - and we can't begin to imagine what that is like - so our minds layer up moment after moment to create the illusion of time. Previous moments are our memories, right now is reality and future moments are our imagination.
If we didn't have the ability to "layer up" moments in our minds, we probably wouldn't be able to make sense of music or speech for example.
Reminds me of my favourite film Memento. If the protagonist forgot everything every nanosecond instead of every 10-30 minutes or so, he would probably be completely in touch with reality and have no concept (or illusion) of time. If you put two Leonard Shelby's in a room and lock the door and observe what happens, they will eventually bump into each other but only from the observer's perspective (his mind observing the layering of moments). Neither Shelby will be aware of how many times they have bumped into each other or what "bumping into someone" is like (because even something as small as bumping into another person is hundreds of little moments layered together in the mind).
You have something younger people can only dream of - experience. It sounds like you've got some incredible stories to tell and plenty of advice to dish out.
My advice would be to simply switch your focus from you to others. What can you do with all that experience to help others? I think people often misinterpret this kind of advice to mean the only way forward is to drop everything and go volunteer in a soup kitchen or start doing charity work. While there is nothing wrong with those things of course - it's important to pick something you genuinely care about. Otherwise it's your ego making the decision for you. If you don't genuinely love and care about how you help others, it won't work out.
Start by figuring out what your message is then decide on a medium to express it. Many people start by trying to write - maybe it's the start of a book, or a blog post or even just a private journal. I recommend writing as it's extremely easy to get started and the quickest route to realising what you don't know about what you don't know. So then - temporarily at least - the game turns into a quest for knowledge. Once you've plugged all the gaps, maybe you'll continue to write to get your message across. Or maybe you'll choose to express it through music or painting or a video game or a YouTube channel or blogging or giving a talk or starting a new business, or something else altogether? Pick whatever medium you love working with the most.
If you can avoid the trap of letting your ego take over and stay disciplined enough to do the hard work necessary to get your message out there for the purpose of helping others, it should make you feel better over time. If you slip into doing it for the success or the money or to show off around your friends, then you'll probably continue to feel the way you do now.
During the early days of the pandemic I started working on a videogame with lots of help from my son and we both loved working on it for the last two years. It's available on Steam for a fiver (with free demo) but it was never about the money or attention. We just loved the process of working on it a little bit every day, coming up with new game mechanics and levels. It got to the point where all I was doing was focusing on making levels that my son would find challenging (not easy as he knew the game mechanics better than me by that point!).
I've found it's true that the point/meaning of life is to find happiness. The trouble is, most of us (including me up until recently) seem to have the wrong idea of what happiness truly is. I've learned (the hard way) that, for me at least, it's less about chasing material success or desires that I can never fully satisfy and more about taking the time to understand all the stuff going on inside my head and figuring out how to wake up every day with peace of mind and giving myself permission to focus on the things I love doing.
One of the things I love doing is making video games (with a lot of help from my son!). But my goal when deciding what game to make isn't to be "successful" by making a lot of money or using it as a springboard to start a business or whatever. If that were the goal I would end up with a completely different game that I probably wouldn’t enjoy making as I would always be consumed by the fear of making something that appeals to as many people as possible in order to maximise profit. It's not about making something I can sell. It's about sharing something I loved making.
I've recently just finished my first original game and it genuinely won't matter to me one bit if no one plays it except me and my son (and hopefully the rest of my family!). I had so much fun making it that I’m actually a bit sad that it’s over! That is the definition of success for me - finding a project that I truly enjoyed working on every day for a year and a half for no other reason that I wanted (needed?) it to exist. That doesn't mean I don't want to make money from the game though if possible! That would be great! But the happiness I get from trying to sell it is completely different from the happiness I got from making it. I'm in the process of trying to market the game now and trying to dive deep into it, looking for ways to enjoy each part of the process. But if I try for a while and can’t find a way to enjoy it, I will just stop and move onto the next game.
So in a nutshell, if I genuinely try to focus on doing the things I love every day (and I have many, many things to choose from - video games is just one example), then I am happy and if indeed there is a point to life, I think being happy every day (in the true sense of the word) is it.
I've used Downshift before and while I like the idea, what I am suggesting is broader in scope. A set of primitives such as Overlay, Rectangle, Circle, List, Row, Column, etc that still allow you to apply styling but overall they sit at a lower level of abstraction than ready-made components, even ones based on something like Downshift.
The more I think about this the more I feel like I'm describing exactly how "Qt Quick"[1] works, the declarative user interface markup language that is part of the Qt Framework. Of course, it's not a web technology but it would be interesting to see a web-based framework/lib based around some (if not all) of the ideas found in QML.
I've been building UI for years now and all these points highlighted by Dan are spot on. Great post!
I've been thinking lately about the "design system" trend that is becoming more and more popular where companies want more control over styling and behaviour to make their UX unique to their brand as well as consistent across all their products. Ready-made 3rd party components like the excellent react-select don't really fit into this world as general purpose components like this naturally have to make some choices regarding styling and behaviour. No matter how customisable they are, in the end they rarely integrate well into a UI based on a design system.
This makes me feel like the abstraction is all wrong. Rather than aiming for fully-functional, out-of-the-box components that cater for all manner of general purpose requirements, how about a library/framework that focuses on a set of primitive components that deal with the lower level concerns like layout, scrolling, positioning, etc. Maybe the abstraction could be more like "composable shapes" than "ready-made components" or something along those lines.
With this approach, you wouldn't ever start out with something like a ready-made Autocomplete component, for example. Instead, you would always build a custom Autocomplete and have complete control over styling and behaviour, but it would be built from solid foundations using some form of the "shape" abstraction. That way, you can focus on making the component's styling and behaviour consistent with the design system without having to worry so much about layout, accessibility, scrolling, positioning, etc - as all of these are taken care of by the framework.
This link goes to the main Hapi.js website which doesn't really explain much about what's new in v17. From the release notes [0]:
"hapi v17.0.0 is a major new version of the framework.... The main change and the motivation for this release is replacing callbacks with a fully async/await interface."
I've never used Hapi.js before, but since hearing about how "async/await" support has been implemented I'm definitely going to look into it more.
I needed to get something up quickly so there wasn't time to go through a name change. I definitely agree I have a naming problem however, and I am looking into possible alternatives. It's between "Loop" and "OpenLoop" at the moment. I am also considering the implications of changing the basic unit of content to "card" and possibly using "stack" as well (thanks for the suggestion @sjs382).
Just to explain a bit more about the original motivation for the term "open loop". It all comes from GTD, which I was reading when I started OpenLoopz forever ago. Originally it was just an Android GTD app, but I was advised not to focus on GTD too much as it is too niche (say I support GTD, but not only GTD), but I am thinking it would be good to at least explain the concept of an "open loop". Any thoughts on this?
Wow, yesterday was surreal! :-) I’d just like to say a massive THANK YOU to everyone who has commented on this so far and to all those who sent encouraging messages of support via email as well. It really makes a difference.
I honestly didn’t expect anyone to notice my post and with all the unexpected traffic that came from it, the servers caved in unfortunately! As soon as I noticed, I increased the capacity on Heroku and everything should be working fine now. So a big sorry to anyone who couldn’t access OpenLoopz yesterday - please try again!
I also want to apologise for the tone of my original post. I wasn’t looking for pity and I definitely didn’t want to give the impression this has been the worst time of my life or that my family have been seriously affected or anything tragic like that. For the most part this has been an amazing ride and my family have been behind me 100%. I had enough savings to be comfortable financially throughout (up until now at least!) so it wasn’t as bad as all that. I’m not saying it hasn’t been tough because it has, but for the most part it’s been a very positive experience and great fun!
I am a programmer who sucks at marketing and I know that more than anyone, so all the harsh feedback is more than welcome! From this feedback I now have the missing piece of the puzzle and I feel like I can finally do the landing page some justice. You guys make it sound so easy, but when I am staring at a blank screen, trying to think of ways to get the message across about a project I am so close to and know inside out, I always come up blank. But that’s no excuse - I just need to stop coding and start learning some new skills so Challenge Accepted! ;-)
So thanks again. I’m going to focus on the landing page today and hopefully I will have something much better to show all you very soon.
I already have the leanstartup and I have read many, many books on the subject, but I didn't do all this just to start a business. Of course, I want it to become successful, but this project means more to me than that, so I didn't need validation before starting on the journey. In a way, I was scratching my own itch. This is something I will use on a daily basis, and if that's as successful as it will ever be, then it was still worth it.
Seriously, I apologise if I make out in my post that this has been the worst time of my life! It wasn't the intention. For the most part it's been an amazing ride, and I had enough funds to be relatively comfortable while doing it (once I got used to the adjustments).
"All of humanity’s problems stem from man’s inability to sit quietly in a room alone." --Blaise Pascal