Unlocking the Potential: 7 Exciting Things to Try with ChatGPT

I have been working on a real blog post about using ChatGPT. In the meantime, I think it’s fun to experiment with publishing AI-written content.

Prompt: Write an article about things to try with ChatGPT.
Remember that AI do not give factual information.

ChatGPT, powered by OpenAI’s state-of-the-art GPT-3.5 architecture, has revolutionized the way we interact with artificial intelligence. Whether you’re seeking information, engaging in creative writing, or simply looking for a captivating conversation, ChatGPT is at your service. Its ability to understand context, generate coherent responses, and mimic human-like conversation opens up a world of possibilities. In this article, we will explore seven exciting things you can try with ChatGPT, pushing the boundaries of what AI can do.

  1. Seek Expert Advice:
    ChatGPT has access to a vast array of knowledge, making it an invaluable tool for seeking advice. Whether you’re pondering a complex scientific concept, troubleshooting a tech issue, or looking for travel recommendations, ChatGPT can provide insights and suggestions based on its training data. While it’s important to remember that ChatGPT’s responses are generated based on existing information, it can still offer valuable perspectives and directions.
  2. Enhance Creative Writing:
    If you’re a writer looking for inspiration, ChatGPT can be an invaluable companion. Engage in a dialogue with ChatGPT, share your ideas, and watch as it responds with prompts, suggestions, and alternative perspectives. Use its input to jumpstart your creativity, explore different narrative paths, or even collaborate on a story. The dynamic exchange with ChatGPT can be a fantastic way to overcome writer’s block and inject new life into your writing projects.
  3. Learn New Languages:
    Want to practice your language skills or learn a new language? ChatGPT can assist you. Engage in conversational exchanges to improve your vocabulary, grammar, and comprehension. You can even ask it to translate words, phrases, or entire sentences to aid in your language learning journey. Interacting with ChatGPT can provide an immersive and interactive language experience that complements traditional learning methods.
  4. Play Games:
    Did you know that ChatGPT can be a fun gaming partner? With its ability to understand and respond to text-based commands, you can enjoy a wide range of text-based games and interactive adventures. From classic interactive fiction games to role-playing experiences, ChatGPT can immerse you in exciting narratives and challenging quests. Just describe your actions, and let the game unfold through the power of ChatGPT’s creative storytelling abilities.
  5. Brainstorm Ideas:
    When you’re facing a creative or intellectual challenge, ChatGPT can be an excellent brainstorming companion. Share your thoughts and questions, and let ChatGPT provide alternative perspectives, generate new ideas, and offer insights you might not have considered. Its vast knowledge base and ability to analyze information can help you explore different angles and push the boundaries of your thinking.
  6. Explore Philosophical Questions:
    Engaging in deep philosophical discussions can be intellectually stimulating, and ChatGPT is more than up to the task. From exploring ethical dilemmas to pondering the nature of consciousness, ChatGPT can offer its own perspective on these complex topics. While its responses are based on existing information and may lack subjective experiences, engaging in philosophical conversations with ChatGPT can be a fascinating exercise in exploring different schools of thought.
  7. Provide Feedback and Contribute to Improvement:
    As ChatGPT continues to evolve, your feedback is invaluable. OpenAI actively encourages users to provide feedback on problematic outputs, biases, or issues encountered while using ChatGPT. By sharing your experiences and engaging in the feedback process, you can help OpenAI refine and improve ChatGPT’s abilities, ensuring that it becomes an even more reliable and valuable tool for everyone.

ChatGPT is a remarkable AI language model that opens up a world of possibilities for users across various domains. Whether you seek information, engage in creative writing, learn new languages, play games, brainstorm ideas, explore philosophical questions, or contribute to its improvement, ChatGPT is there to assist you. As AI technology continues to advance, ChatGPT serves as a testament to the transformative potential of natural language processing. So, don’t hesitate to dive in, explore, and unlock the full potential of ChatGPT for your needs.

Paywalls Suck, We Forgot About Bookmarklets, Information Needs to be Free

I can’t afford most things. 12ft.io proclaims “Show me a 10ft paywall, I’ll show you a 12ft ladder.” I proclaim copy-pasting links when I just hit one of those pesky paywalls is too much effort. Create a new bookmark with the following, and then you can click it any time you really need to read what’s being blocked:

javascript: window.open("https://12ft.io/" + window.location.href, "_self")

Just remember: If it has a paywall, it probably isn’t worth reading. I’m not kidding about that.

Switches Suck

I don’t like switch statements, in any language. They seem unnecessarily verbose and error-prone, in fact I forgot the break statements in my example below on the first draft. Most of the time, you don’t want the fall-through feature, but you have to remember that extra word for each case to prevent that.

switch (n)
    case 1:
    // something useful
    case 2:
    // another useful option
    // nothing matched

I also really hate the indenting used in most examples (including my own), as it makes it more difficult to visually parse. I prefer to just create an object with keys based on the possible values, and access what you need directly.

-- we're gonna pretend these are useful functions dependent on a star's type..something to do with heat?
local default = {}           -- used for a unique key
local heat = {
  A = function() end,        -- pretend these are full of useful code
  B = function() end,
  G = function() end,        -- and so on
  [default] = function() end -- default which can't be accidentally chosen

-- make sure we don't error, and call default if needed
if heat[star.type] then

Breakable Objects & Walls: A One Hour Game Jam Post-Mortem

(This post has been imported from an old blog of mine.)

The One Hour Game Jam is a weekly game jam, of one hour. I participated in #64 long time ago (though I did not get anywhere), and more recently, #152. The submission period is for the entire week, so if you can’t make the official hour, you can still participate. There’s also a Discord server for it, and weekly livestreams during the official hour and playing the games after.

Breakable Objects (#152)

Long story short, this one was a big success for me. I took about 2 hours to make the game* and a couple hours over the next couple days polishing it and adding quality of life features. I made a simple asteroid-dodging game, Asteroid Dodge. Newtonian physics, the number of asteroids increases every second, and your score is based on how quickly you travel between randomly created waypoints. Everything is circles and lines, inspired by a realistic air traffic control project I had just started (see Endless ATC, a game similar to what I’m aiming for).

My biggest success and failure was the same thing: Deciding to make a version-checking library during a game jam. I knew very quickly that I was going to be rapidly iterating on the idea (even once published), and I wanted to be able to notify players. I’d done this for SCP Clicker some time ago, but that was hardcoded for it only, and I needed something for any game project going forward. It was a success because I made something I’m happy with, a failure because it took too much time away from the game itself.

I’m very glad to have managed to get my game shown on the livestream, even though it required making them wait and was the last thing shown (whoops!). I was able to watch people have their first impression and read comments from stream viewers, and thus noticed bugs and improvements to be made. Also, the original score was based on velocity alone, which made it feel like there was no goal. What I had when the jam was over was pretty crap, but I also knew exactly what to do to make it a finished (albeit small) game.

Walls (#153)

Or, as is relevant to here: Ambition Destruction. I spent the first 20 minutes thinking of an idea, ultimately deciding to make a clicker/incremental-type game about being contracted to build Trump’s “great wall”. After struggling through some GUI code and realizing I needed to make a vector map of the southern border of the US for what I was imagining, wasting another 20 minutes, I realized this idea was waaay too ambitious for the timeframe and my knowledge, and did something simpler: click to place bricks on a wall. After working on the graphics of building a brick wall for the last 20 minutes, I realized even this was too ambitious, as it required me to code something I hadn’t done before, and figure out how to do incremental upgrades (something I’ve only done very limited experimentation with so far).

Ultimately, I never submitted anything for this jam. A couple days after those two failures, I had another idea based on the player being a firewall, that slowly morphed into the player running an ISP, building out a network (how does this relate to the theme? well eventually you’d put in firewalls when there was too much traffic). I still want to finish that idea someday, but even after working on the plans for a while without coding it, I realized that I would again need to code some things I am unfamiliar with, and I believe it too ambitious to work on right now.

Lessons Learned

Some of these became much more apparent the second time around, but all of these are relevant to both weeks:

  • Use libraries that are simple, or that you have used recently. The second week, I struggled a lot using Pop.Box, an alpha-stage GUI library. I hadn’t worked with it in a very long time, so I ended up spending way too much time looking into the code or documentation to remember how to use it. If I had been using it more recently (or, let’s be honest here, if it was a better library), I wouldn’t have had nearly as much trouble and wasted time there. I could also say don’t use alpha-stage libraries, but as far as I am currently aware, there isn’t a good general-purpose UI library for LÖVE just yet. (To the point where I am developing my own..twice now.)
  • Do not create new components. By that, I mean any aspect of code that is something you are unfamiliar with. In the simplest case, this could be something like the algorithm I made for Walls to generate a brick wall from a number (how many bricks it has). That’s a very simple piece of code (once done!) but took way too much time. Likewise, you really shouldn’t go make a version-checking library during your one tiny little freaking hour for the whole project. I got away with that once, only because I was given more time and had made something very similar to it before.
  • Strip your idea to less than the minimum, or abandon it immediately. This lesson applies a lot more strictly here than in general, but one concept that I hear is core to game design in general is to fail faster, that is, to go as quickly as you can from an idea to realizing the idea won’t work, so that you don’t waste time on it. This is especially true when you only have an hour to go from nothing to finished. Both times I spent too long thinking about ideas, and while I managed to pull something off the first time, both times I was too ambitious initially.

* Half an hour thinking of ideas, half an hour coding it, half an hour making a version-checking library for it, half an hour setting up a page on Itch.io and building it.