My 9 year old son has been learning to code. He learned HTML & CSS over the last year or two.

Recently, we had a breakthrough where he learned how to leverage Google Gemini as a learning tool (not to write code for him, but as a better search and as a coding teacher). This leveled him up big time and he decided to make his own game.

Game link here: https://www.armaansahni.com/game/

He's coded all the HTML, CSS & JS by hand in VSCode. He's made the animated graphics on his own using a web based sprite editor called Piskel.

For the game, I provided hints along the way and Gemini has helped him with syntax. View source to see the code. He's excited to share with the community.

He also wrote a blog post about how he made this game: https://www.armaansahni.com/how-i-coded-a-game-using-ai/ (he independently figured out how to leverage Gemini effectively and writes about it here).

Regarding the blog post - We had a discussion about who the target audience is (ie not 9 year olds!), what they would be interested in learning about and the general outline. He then dictated his words into the computer (which gets around spelling issues), and he went through multiple rounds of feedback from his parents (improving clarity, punctuation, etc). In other words, its his words & thoughts but he had help along the way!

NOTE: both parents are programmers, who provided valuable guidance through his coding journey.

  • marktolson 21 hours ago |
    I love it! I'm going to show this to my 6 yo tonight. I know for a fact she'll enjoy it.
    • veesahni 16 hours ago |
      Let me know her feedback :)
  • mnky9800n 21 hours ago |
    Omg this is amazing And hilarious and he should keep making games. I love that it’s both a silly fantasy game and math. Well done.
    • veesahni 18 hours ago |
      thanks for checking out the game. Appreciate the feedback! :)
  • threeseed 21 hours ago |
    That's hilariously evil turning it into a maths game.

    Be fun to add some music to this.

    • veesahni 20 hours ago |
      v2 will have sound effects. I had conversation with him about copyrights and he's recording his own audio!
  • DidYaWipe 21 hours ago |
    Love it.

    In terms of constructive feedback: I would like to know when the various weapons are "charged." It doesn't seem like we can tell from looking.

    Also it might be interesting to see what question the opponent is working on and what his answer is.

    • themdonuts 20 hours ago |
      Yeah, I was having the same issue. I couldn't tell why the weapon was not charged up. But sometimes on the second click it would work.

      But well done!

      • ethbr1 20 hours ago |
        I think there are two improvement requests here:

        1. Dont't allow button clicking when not the player's turn (expect tiny dev might be getting tripped up by async event handlers here)

        2. Visually flag whether or not an ability is charged

        • veesahni 19 hours ago |
          both are things that are on his plan for the next version.

          Appreciate the feedback!

          • ethbr1 18 hours ago |
            Are you giving him the full experience? :D

            "Sorry, you have to branch first."

            "Sorry, you have to submit a pull request."

            "Did you complete your peer code review?"

            "Did you close the associated Jira tickets?"

            "Did this pass your test harness?"

            "Are you having this built and tested by your CICD bot?"

            "... is this project's architecture even approved? Sorry, you need to submit this to the architectural review board. They meet once a month."

            Come to think of it, I'm now recognizing why coding used to be more fun.

            • veesahni 16 hours ago |
              haha :)

              For this version, I stopped at "does it work? alright, move forward"

        • Dragonai 43 minutes ago |
          > tiny dev

          This has me dead. To the kiddo: great work, this is an amazing start.

    • veesahni 20 hours ago |
      improving clarity of the charging aspect is on his roadmap for v2 :)

      if you use the throwing star multiple times, it charges up other ones. But if you use another one, then you have to charge it up again. I believe 4 throwing stars give you the exploding star!

      • dizhn 20 hours ago |
        We need something at the end when we win (or lose). Like a picture of a cat at least :)
        • veesahni 19 hours ago |
          Haha, good idea :)
    • deathanatos 20 hours ago |
      > I would like to know when the various weapons are "charged." It doesn't seem like we can tell from looking.

      I think it might just be doing random choice when it's clicked. I found that if you get the "it's charging" message, you can just click again & again & eventually one of them will go through.

      • Twey 20 hours ago |
        It's not random, you just get +1 charge every time you click an attack — including if the attack doesn't have enough charge to fire.
        • ASalazarMX 19 hours ago |
          Ugh, this bug and the "Queston" typo completely broke the immersion. I can't fight my warp core properly in these conditions.

          Edit: I think the "charge" is earned when the enemy move is completed, but the logic is buggy. Pretty fun first game nevertheless.

    • alexander2002 12 hours ago |
      Perhaps a grey colour to indicate no charge and a coloured to indicated charged
      • veesahni 6 hours ago |
        Yes, I've talked to him about this. He's played with CSS greyscale and also with opacity. Might be a combination of both that ends up being used in the next version.
  • Daveman90 20 hours ago |
    Nice work! I would suggest changing the blue font color so attacks are more easily readable
    • veesahni 20 hours ago |
      I've had a talk with him about color balance and contrast levels. Improving colors is on his plan for the next version.

      Appreciate the feedback

  • brickmort 20 hours ago |
    this is really, really cool.
  • xiaodai 20 hours ago |
    get outta here!
    • cbracketdash 14 hours ago |
      Bro you're still trolling people lol
  • kenkeiras 20 hours ago |
    Great work! It is fun :)
  • d--b 20 hours ago |
    Hey nice job. I think you should add a timer. The faster you answer the question, the greater the hit. It’s a nice challenge code-wise and adds a little stress to the game, as us dads can’t realistically subtract 19 from 56 in less than 4 seconds.
    • veesahni 20 hours ago |
      Great idea! Appreciate the feedback.
  • the_arun 20 hours ago |
    Nicely done. How much did dad/mom help?
    • amelius 20 hours ago |
      My guess would be quite a lot, since the artwork is not something a child would make despite it looking like its made for children.
      • Aditya_Garg 20 hours ago |
        You'd be surprised what kids are capable of. An 8 year old could easily create pixel art like this with the right tools.
      • johanbcn 20 hours ago |
        I learned how to use Autodesk animator on DOS when I was 7 years old. Then again, I have been a geek all my life.
      • ninalanyon 20 hours ago |
        We had art lessons in primary school back in prehistoric times when I was that age (sixty years ago). Plenty of us could create more complex artwork than that.
        • veesahni 20 hours ago |
          On paper, his art skills are quite underwhelming compared to what I've seen other kids do. So yes, totally agree with you.

          Also 32x32 limited reduces complexity a lot when trying to make a visual.

      • veesahni 20 hours ago |
        Kids dad here. When it was time to do images, I figured something like photoshop would be way too much for him. So I found a browser based sprite editor. The 32x32 grid simplified things and actually helped him.

        Then one day I explained how the animation worked in the Piskel app (it had layers and frames). I came back an hour later and he had that flying snake that absolutely blew me away. He originally had it at 4 frames we gave him feedback that he needs more frames to be smooth. He upped it to 8.

        The graphics is where had the least guidance from parents. We were focused on the code/logic aspects.

    • veesahni 20 hours ago |
      From his past experience with HTML/CSS, he can already make a page, has VSCode, knows how to use VSCode to commit & sync. The big thing this time was that he had to learn a lot of JS and had to get much more proficient with CSS.

      So my guidance was more of a set of hints as needed, for example "you want to boxes side by side, figure out how to do that using CSS" .. then he'd go away and talk to Gemini and ultimately Gemini would give him multiple approaches that he could try.

      When it came to animation, I explained that there are many ways to animate (CSS, JS, etc) and guided him towards animated images. Basically, we "chatted" about a feature, I gave him some hints, then he went off and talked to Gemini for syntax and wrote the code. Many features he knew exactly what to do. If he wasn't sure, he'd have a discussion with me.

      Basically, I was like a senior dev sounding board. He was the junior developer doing the work. Gemini was his Google/StackOverflow.

  • ned99 20 hours ago |
    Excellent - keep rocking!
  • beauzero 20 hours ago |
    That is awesome. Keep up the good work little buddy. Love the retro feel of the wizard. :)
  • luxuryballs 20 hours ago |
    The scorpion is not very good at math (lucky for me!) progress bar for my charge level (or change color of attack once it’s charged) would help and a more readable color scheme.

    Keep it up! Just don’t add micro-transactions :P

  • forty 20 hours ago |
    Nice :) I feel the HP should be removed during / after the animation rather than before it. Agree with the comment on having better hit when answering faster, that would be fun
    • veesahni 20 hours ago |
      Appreciate the feedback!
  • jablongo 20 hours ago |
    I cant tell what my charge level is. This is crazy though, congrats... Look at the blog to see how he did it mostly using ai. It looks like the dad set it up like a series of challenges to get the kid familiar w using ai then he was able to make a game. Nice work!
    • veesahni 20 hours ago |
      Kid's dad here. My goal was only to "teach him to code" .. the motivation to build a game was all his. He mixed something something he loves (fantasy worlds) with something that's useful (learning to code), so I think that helped with the motivation to keep going.
  • lbrito 20 hours ago |
    Great work, I bet you're a very proud parent!

    Echoing the other comment - as a tired dad, I struggle with the Math questions :)

    • veesahni 20 hours ago |
      As a parent, I'm very proud.

      As a programmer, I'm surprised - I can say a few words (eg: "look into css background styles") and he can say it to Gemini and slowly figure out stuff on his own.

      As a test player of this game - I don't want to think so much, but if it means he'll learn some math in the process, I'll do it. :)

  • thelittleone 20 hours ago |
    Very cool. One of the attacks was blocked due to insufficient charge. Has he considered a charging status indicator e.g., bar or countdown timer?
    • veesahni 20 hours ago |
      charging isn't clear here. He plans to fix this for the next version.

      We've talked about using a visual indicator, perhaps greying out uncharged attacks.

      • thelittleone 15 hours ago |
        Yeah that's cool. Will try it again once new version ready.
        • veesahni 15 hours ago |
          there's a newsletter link on his page. He'll type up a message to send when the next version is out!
  • wkyleg 20 hours ago |
    Amazing. Younger people (and people new in any field) often think of intersting approaches without the blessing/curse of "best practices." The process for creating the game was very good and very logical way to learn a new field.

    I would recommend a couple of small things for the code. Variable names are usually ALL_CAPS if they never change (for instance const PI =3.142) and camelCaseForOtherVariables. snake_case_variables aren't really used in JavaScript, but aren't technically wrong. Also, it's usually good to put variables into nested data structures with hashmaps instead of comparing based upon array index. This is in "the real world" though, in academic computer science algorithms based on position in lists are more common.

    If you want to get what we call "Code Review" a good way would be to feed your source code into a LLM to have the LLM give feedback based on your code, and recommend improvements. Most people like Claude best for dealing with code nowadays.

    I would also recommend putting your code on Github so that people can check it out.

    Very impressive!

    • veesahni 20 hours ago |
      Appreciate the feedback on the code style & variables. I raised this previously but perhaps external feedback will be what he needs to get him motivated to clean it up :)
    • WesleyJohnson 19 hours ago |
      Agree 100%. Since dad helped, I was expecting to see sprites sheets, or some JS classes for some OOP, etc. Was pleasantly surprised to see how "simple" the approach was for such fun output with a decent amount of variety.
      • wkyleg 18 hours ago |
        This is how cool new ideas arrive each generation
      • veesahni 18 hours ago |
        He doesn't understand what a sprite is, or really the motivation behind sprite sheets. To him they're just animated images he made in a tool. Internally he switches the "costumes" of characters (terminology he got from Scratch I believe).
        • WesleyJohnson 18 hours ago |
          That's so great. So many software engineers (myself included) tend to overcomplicate things.
  • Frummy 20 hours ago |
    Could have a virtual numpad
    • dylan604 20 hours ago |
      yeah, I think an improvement would be not using alert(). writing the question to a DOM element and then getting the response from an input field would be much more valuable experience for real world applications as web trends have moved away from the heavy use of alerts
      • veesahni 20 hours ago |
        this on his plan for the next version! Appreciate the feedback.
  • jvanderbot 20 hours ago |
    Great strongbad vibes for some reason. I loved it!
  • sureglymop 20 hours ago |
    Okay... but.. A blog and a newsletter form? What could your 9 year old probably want to message me about? That's honestly a bit much.
    • veesahni 20 hours ago |
      We originally posted a link to the game on on reddit in r/programming, but they removed the post because it was an "app demo" and suggested a blog post instead. That got him motivated to write about the game (And I leveraged that motivation to help him learn how to communicate better - structure of a blog posts, etc)

      Newsletter was added after people on reddit asked about how they can be notified for v2 of the game :) - I had to help him with the newsletter integration.

  • electic 20 hours ago |
    Looks amazing! Would love to know when the weapon is charged and how much each shot takes.

    Btw, this game reminds me of BBS door games. Great stuff.

    • veesahni 15 hours ago |
      Appreciate the feedback!
  • tiffanyh 20 hours ago |
    Your sons code is surprisingly readable.

    I'm a little confused on how to charge up, but overall - super impressive.

    • veesahni 20 hours ago |
      He gets feedback from us from time to time when he writes really bad code. There are still many things that can be improved code wise, but I'm letting it slide to keep motivation up at the moment.

      improving clarity of the charging aspect is on his roadmap for v2 :)

  • yieldcrv 20 hours ago |
    I want to charge up
  • zomglings 20 hours ago |
    Great game. I'm very impressed that a 9 year old made this. A few suggestions:

    1. Take input on the page rather than through a prompt. Current implementation breaks immersion.

    2. I'd like there to be some time pressure. This can be done either by the opponent making their attacks on a timer (rather than taking turns the way it's done now) or by putting an explicit countdown for how long you have to solve the arithmetic problem. Maybe you can find some other creative way to put time pressure on the player.

    3. I'd like a visual indication of when an attack has been charged.

    4. Music/sound would be awesome.

    • below43 19 hours ago |
      re: (1) I know what you mean, but the prompt component is a great way leverage browser UI for input without affecting the rendered website, so it makes good sense in this case.
      • veesahni 19 hours ago |
        Kids dad here.

        alert() was MVP style guidance on my part. Least effort way to get a modal. Quick for him to learn and implement.

    • veesahni 19 hours ago |
      Some of these are already on his plan. We've talked about turning the game into a real-time game instead of a turn-based game, and he was excited about that direction.

      Appreciate the feedback!

  • dfedbeef 20 hours ago |
    It's very good and I like that you have to do math to attack.
  • noer 20 hours ago |
    Had my 9 year old play it and he enjoyed it, though he did say that he didn't get why weapons were charging and when he could use them. Instructions or some indicator of availability would improve it, but overall it's good!
    • veesahni 18 hours ago |
      fixing the charge-confusion is on the plan.

      Thanks for checking it out!

  • das_keyboard 20 hours ago |
    > But there was one downside to AI. AI was like a human which is why you could talk to it like a human. But because it was like a human, it could also be wrong like a human. So I had to make sure that it wasn't getting the answer wrong. For which I would sometimes use Google Search.

    I really don't buy that this was written/created by an actual 9yr old.

    But this might just be my unhealthy pessimism/skepticism when it comes to stuff on the internet.

    • veesahni 19 hours ago |
      Kids dad here.

      Both parents are programmers, and have also written blogs. While the motivation/drive is his own, he has helpful guidance to accomplish what he wants to do.

      The blog is his own words. We helped with the outline, and also provided multiple rounds of feedback to ensure good clarity of what he's trying to express. We tried not to interfere too much with his thoughts. The quoted thought "because it was like a human, it could also be wrong like a human" is something he was telling us when he discovered it hallucinated. But he doesn't understand what an LLM hallucination is, that was his words. I asked him to share that in his blog post.

      The code is written on his own. But when he gets stuck, he has us to give him hints. As programmers, we can speed up him significantly by steering him in the right direction.

    • dankwizard 19 hours ago |
      "Everyone dies one day. Everyone. Even wolves. But not books. Not words. Words don't die"

      -- My son, 3.

      • veesahni 18 hours ago |
        love it.
      • youoy 13 hours ago |
        "Everyone lies one day. Everyone. Even dads. But not on the internet. Not HN. HN won't lie"

        – My granpa, 86

        • highwaylights 11 hours ago |
          Pardon me, but I’m rather suspicious that your grandpa never really said this.
      • efilife 8 hours ago |
        Quotes like this always seem smart until you realize you can just burn the books. And the words die like that
    • Cotterzz 17 hours ago |
      I started around the same age. Though sadly not with JS and modern browser tech. The most difficult concepts in use here are arrays and function calls. So quite possible for a clever 9 year old. If he was using an entity component system or monads I would be more skeptical
  • ankaAr 20 hours ago |
    Amazing, a game a product finished that also mix turn-based fight and questions!

    Great son and great parenting. Congrats!!!

    • veesahni 18 hours ago |
      thanks for checking out the game!
  • glitchc 20 hours ago |
    Great job, lots of fun. Artwork is very sweet.
  • ugh123 20 hours ago |
    Great game! I'm not sure what's happening when the opponent makes a move. Also not sure why i'm losing healthHP when I seemingly score points for getting a correct answer.
    • veesahni 18 hours ago |
      Its a turn based game, but turn order isn't enforced. So it gets confusing if you attack out of your turn.
  • dandigangi 20 hours ago |
    This is amazing. You should be super proud!!
  • codethief 20 hours ago |
    Very impressive! Hopefully you'll excuse this question but do you foresee AI in the future also taking over the handholding & guidance that you as parents provided to your son? (In other words: Will kids soon learn exclusively from AI?)
    • veesahni 19 hours ago |
      The human component here is to understand what the child is trying to do, what the available options are, and what level of guidance he needs to steer him towards the option that makes sense (ie easy enough for a simple game for a child, just a small step from what he already knows, etc).

      This all comes down to "judgement".

      The current state-of-the-art isn't yet there yet (saying this as someone who spent the last year building on current LLM tech).

      I think it's possible for AI to take on the role in the future, when it's capable of reasoning at a much higher level than it's at now. We already have big context windows, ability for AI to "see" your screen, etc. But what we're missing is good judgement.

  • deathanatos 20 hours ago |
    One of the best games I played as a kid was this top-down RPG; the graphics were 2D tiles, pretty clearly drawn with MS Paint or something close. UI was just Visual Basic 6. Indie dev. Fun game. This reminds me of it.

    One of the neat things about these sorts of indie games is you can often watch the skills of the dev improve over the life of the game, too. The first blood spatters in the game above were little more than #f00 scribbles in MS Paint. Later graphics got significantly better.

    It also had a generic name ("RPGWo", short for "RPG World") — "THE GAMEY GAME" feels right up there.

    One of the hardest bugs I ran into as a kid was some code that was something like,

      List lst = new List();
    
    … but when I transcribed that onto a computer (this was in a book) I accidentally wrote,

      List 1st = new List();
    
    … because typography is hard, and the font the book used had a l/1 confusable. Compiler error, one of my first. Took me forever to figure it out. (No access to the Internet, then.)

    After gaining access to the Internet, finding an online forum was the best, since then you could share a bug with other people! And they'd tell you where you went wrong! (Thank you, Allegro forums.)

    • veesahni 19 hours ago |
      Today, you could paste that into an LLM and it would immediately identify the issue.

      The next generation of developers have so much power at their fingertips.

      • deathanatos 17 hours ago |
        I was young at the time, but when I TA'd, the lesson I'd try to impart here is to take the time to learn the lexicon of the compiler error, and understand what it is trying to tell you. Then it's not just "code broke yo" but "is here is what is wrong."

        Much better to learn to have a conversation with a deterministic compiler than an LLM that'll just cook up some random junk when it gets backed into a corner.

  • WesleyJohnson 20 hours ago |
    This is pretty impressive! I didn't expect math, so that was a nice surprise. Many others have pointed out some nice changes. I have a super nitpick - the enemy's HP immediately decrements before the "hit" animation plays out. There is properly delay before the Game Over screen, so that tells me the HP decrement could probably get the same treatment easily enough.

    Kudos to your son and props for fostering this creativity in them!

    • veesahni 19 hours ago |
      Fixing the nitpick (hit timing) is on his plan.

      Appreciate the feedback!

  • faizshah 20 hours ago |
    I love this, I first learned Java and “Kids Programming Language” (a strange action script-y flash inspired thing) in elementary school and the lessons I learned there stuck with me until today.

    I would highly recommend parents consider teaching their kids using processing (p5.js), it’s super visual but still “real” code so you still build that muscle memory of thinking in loops and typing out real code: https://p5js.org/tutorials/

    There’s lots of art and games to be inspired by: https://openprocessing.org/browse?time=anytime&type=tags&q=g...

    And there’s some great books from dan shiffman on it that are super visual but still teach programming concepts: http://learningprocessing.com/ https://natureofcode.com/

    When you start out programming that young it is hard to go from idea to thing on the screen doing what you want. So the advantage of using processing is it keeps kids engaged and removes the frustration of not making progress since everything is visual you’re always moving around stuff on the screen every frame so it’s quick and easy feedback.

    • veesahni 19 hours ago |
      Kids dad here! Interesting, never heard of processing/p5. Will check it out!
  • MathMonkeyMan 20 hours ago |
    This scorpion is tough! Luckily I'm slightly better at arithmetic than it is. Benefit of being a wizard.
    • ethbr1 20 hours ago |
      Wizard uses mental arithmetic: it's super effective!
  • ethbr1 20 hours ago |
    I had a most excellent fight with a black hole, in which I managed to emerge victorious.

    Nice art!

    10/10, would play again

    • veesahni 15 hours ago |
      Awesome! Thanks for checking it out!
  • mcbrit 20 hours ago |
    Games are a series of interesting decisions. That’s one formulation. Being asked what x+y is with some graphics is not an interesting decision. Perhaps an interesting decision comes later, but I wasn’t interested and bounced.
    • mcbrit 20 hours ago |
      Assumption: wanted feedback, saying kid was not saying shibboleth.
      • kstrauser 20 hours ago |
        Context is everything. If I turned that in as a serious project at work, tell me all the ways it was less than perfect. If a 9 year old brings it to show and tell, you explain how much you liked the cool parts.

        If my florist handed me a dead flower, I'd be irked. If a 4 year old hands me a dead flower saying "I picked this for you!", I'd tell them what a beautiful flower it was and how much I appreciated the nice thing they did for me.

        A 9 year old isn't a 4 year old, but I think you get the gist.

        • Cotterzz 18 hours ago |
          I would also encourage the kid as much as possible, but I'd be doing them a disservice if I didn't also take the opportunity to teach them about the basics of keeping flowers alive in transit.
    • veesahni 15 hours ago |
      A child can build a game that would be interesting to other children. If it's also interesting to an adult, that's a bonus, if anything.

      That said - thanks for checking it out :)

      • mcbrit 2 hours ago |
        One of the hard things to do when building a game is to figure out why it's fun. It's hard enough that, in general, most folks just remake another game that's already figured out the fun.

        You're doing a math game, math gamified. Let's throw a choice in there.

        Since you replied, here's one idea:

        (1) present five numbers. (2) You, the player, chose two numbers (3) You perform an operation (3.1) operation: add/subtract/multiply/divide, but perhaps exponentiation and modulo and lcm and factorize and whatever else. it's probably best to keep it simple. (3.1.1) this can get random: what was the highest number last round? how many green letters are there on the screen? (3.2) operations are tied to the special attacks,eg tier 1 attacks are add/subtract, tier 2 mult/div, and so on. (4) you type in your answer (5) if you type in an answer that's the correct result of an operation applied to two of the numbers, then you do the corresponding attack.

        So it's not add these two numbers pass/fail. It's you decide what math you want to do, and can do, and can do in a time limit, and that achieves the effect you're looking for.

        Anyways, it's always fun to make a thing.

  • inputvolch 20 hours ago |
    This feels a lot like a reddit-style post, where someone says "This is my first ever time doing X and I need feedback. Please be gentle I am total newbie hehe :)", and they post something obviously done by or significantly influenced by an expert.
  • TheMaskedCoder 20 hours ago |
    I defeated the Power Warp Core and feel genuinely proud of myself. Great job! Love the animations too.
    • veesahni 18 hours ago |
      appreciate the feedback!
  • nilawafer 20 hours ago |
    So you want your kid to triage some bugs? LOL Contrast. Use white text on dark colored buttons & controls
    • veesahni 15 hours ago |
      Kids dad here. You've been heard! :)
  • zeta0134 20 hours ago |
    Delightful! Goodness this brings back memories of making games in PowerPoint. Where there's a will and patience, there's a way. Anyway, I have hopefully actionable feedback!

    1. When an attack lands, we play an attack animation, but I notice the HP is deducted before it even starts to play. It would be better to wait until the animation is over to reduce the HP, in time with when the "hit" visually occurs.

    2. It seems my character had some sort of Magic Power building up for more powerful attacks, but I couldn't see the charge level, so it was hard to plan the more powerful moves. Some sort of visual indicator for which moves are ready to go would be great.

    • veesahni 19 hours ago |
      Appreciate the feedback, will share this with him!
  • WesleyJohnson 20 hours ago |
    For those wondering, the current charge mechanic is shared amongst all attacks. You start with 0 "charge". Each time you click an attack button (regardless if it lets you attack or not) you gain 1 charge. If you have enough charge, the attack triggers and you're deducted its "charge" cost.

    Throwing Star = +1, Cost 0

    Shooting Star = +1, Cost 2

    Blasting Star = +1, Cost 3

    Exploding Star = +1, Cost 4

    • veesahni 19 hours ago |
      did you get this from the source? :)
      • WesleyJohnson 19 hours ago |
        Indeed!
  • gcheong 20 hours ago |
    Fun game. Just a couple of nits:

    1. I'd like some indicator of when a move is "charged up" instead of having to click on it.

    2. In the dialog for the message "The move you want to use is not charged up yet.Click 'ok' and then select another move." the button actually says "close" not OK.

    Overall well done though!

    • veesahni 18 hours ago |
      Appreciate the feedback!
  • kstrauser 20 hours ago |
    Your son (9 yrs old) made a better game than I would have. Both of you should be proud!
  • alpenbazi 20 hours ago |
    get him real living feedback, mot words
  • blooalien 20 hours ago |
    Fantastic work for a 9 year old. If I had access to a computer at 9 I'm not sure I'd be making games so much as playing them. (Although I did move on from playing games to a healthy curiosity about how they worked "under the hood" fairly early on.) When he learns enough to have reached the limits of what he can do in Javascript, you should definitely look into the Godot game engine. Free/OpenSource, powerful, fairly easy to learn, tons of tutorials on YouTube, and even a game that teaches GDScript (their custom Python-like scripting language).
    • macintux 19 hours ago |
      > If I had access to a computer at 9 I'm not sure I'd be making games so much as playing them.

      I was 10 or 11 when I wrote my first (and only?) game, but A: it was dead simple, and B: I didn't have YouTube, Netflix, and an infinite variety of games a click away to distract me.

      I'm impressed with any kids today that can withstand the siren call of distractions on the Internet. I doubt I'd even survive high school today.

    • veesahni 19 hours ago |
      Kids dad here.

      Actually we did start with Godot - but it was too much too fast and he was overwhelmed.

      He mentions this in his blog post. So we ultimately stepped back and I wanted him to learn to be resourceful. I give him a series of small changes (eg: write a function in any language that displays "hello world" on the screen) and he delivered those results in JS (he already knew HTML/CSS at this point). The rest comes as a natural progression.

      I guess in this case, the best and pragmatic option was to use what you know.

      In the future, we'll try Godot again :)

      • Cotterzz 18 hours ago |
        Godot is designed for beginners, but also those that don't like to get their hands too dirty with code. Also the web export is likely inferior to what he can do with JS directly. With that in mind I'd recommend he sticks with JS. If he's interested in doing more advanced games he should look into Three.js, or Pixi, Babylon, Phaser and other engines (and eventually even just raw WebGL and using shaders), all within the browser. There's also the web audio API which can be used to synthesise sounds and music from scratch and then there's WASM which can be used as a compile target for languages like C and C++ JS itself can be used as a procedural, functional or OOP language so while it's easy to learn it has lots to master. Finally, if he does want to move outside the browser, there might be better choices than Godot, like Raylib or Defold or even more professional engines like Unity or Unreal. Not saying it's a bad choice, just that where he is now has a lot to offer, and there might be better alternatives depending on his skills and aims.
        • veesahni 16 hours ago |
          I was originally interested in Godot because it had a web export. I feel like building on the web helps with shareability (eg: this post!)

          But the "open web" seems to give limitless potential. Canvas, network APIs, lots of interesting libraries to build on, etc. I wasn't familiar with the ability to synthesize sounds - that would be interesting to look into.

          Appreciate the feedback! :)

        • dpig_ 14 hours ago |
          I'm curious to know why you think Godot's web exports are too poor to be useful even to a 9 year old? I've published multiple HTML5 games on itch.io using Godot, including some with P2P multiplayer functionality. Apart from complete inoperability on Safari, I haven't run into many issues?
  • zackproser 19 hours ago |
    Great game
  • rahimnathwani 19 hours ago |
    This is awesome.

    My son recently turned 8. All his coding so far has been with Scratch and other block-based programming environments (Octostudio, VEX Robotics, Apitor, Microsoft Makecode).

    His typing speed is better than most kids his age, but still slow (around 10wpm).

    I'm curious how you helped introduce your son to text-based programming. I've been considering either:

    A) Having him go through this free Python course, that includes inline exercises: https://programming-24.mooc.fi/

    OR

    B) Having him create a web page in repl.it or similar.

    • veesahni 19 hours ago |
      We've had a long journey. Main thing is that I realized that my son doesn't learn enough from open ended tools like Scratch. So we tried a bunch of other things.

      He started with Scratch JR & Scratch.

      Then we switched to Tynker Jr & Tynker. Which provide challenge oriented block based games. Teaches loops, functions, etc.

      Then we switched to CodeMonkey, which provides challenge oriented block & code based games (coffeescript, python). Teaches variables, arrays, etc.

      Then I felt there was not enough new learning from the above. So I gave him VSCode and had him go through Khan Academy's HTML lesson.

      That's when he made a bunch of HTML pages you see: https://www.armaansahni.com/ (pokemon, bakis, etc). ALL the HTML/CSS on the site is hand written.

      Then I wanted him to learn how to be resourceful... for this, I gave him a serious of small challenges (eg: "make a function that displays hello world on the screen") where he had to figure out the answer himself. Use Gemini or Google, etc. But don't ask me. He ended up learning how to use Gemini to accelerate his learning (see his blog post, he writes about it a bit) and he was submitting solutions to me in JS. He had prior Gemini experience because he was using it to create images, and JS was natural extension of HTML.

      Then one day he decided he wanted to make a game that he had in his mind.

      In this above process, I basically observed what he was learning and switched to apps where I felt he could still learn something new.

      • rahimnathwani 19 hours ago |
        Thank you. This is a very helpful description. I think the same process might work for my son.
      • rahimnathwani 19 hours ago |
        I'm curious how much use he got out of Tynker? I noticed they have a cyber Monday sale right now, so I might sign up for a year.
        • veesahni 18 hours ago |
          Tynker has many games in the app. But they are basically the same type of game with different themes. Your kid will gravitate to whatever theme they like (princess, dragon, space, etc).

          It would encourage him to reduce number of lines of code (i.e. use loops!) to get more stars. And we encouraged him to get 3 stars on every level.

          It also provided both a block based view or a code based view of the work you're doing, which I thought was pretty cool.

          Big thumbs up from my side for the app. It taught him the basics of loops and functions, through challenges to keep it motivation.

          My kid loved the dragon theme.

          • rahimnathwani 18 hours ago |
            Thanks. I just subscribed.
      • sky2224 19 hours ago |
        I really have to applaud how astute you've been with your observations of how your son is learning things. That's quite difficult.

        Additionally, I'm glad you weren't afraid to hand your son the real tools and let him build and break stuff. For some reason with programming, so much of the curriculum (even for adults) spends a lot of effort to hide away the things that are perceived as too difficult (e.g., pointers, memory allocation, etc). For children in particular it seems to be the actual code itself, and so we have things like scratch. It's quite refreshing to see a parent go against the grain on this one.

        • veesahni 18 hours ago |
          As a programmer, I feel the 'fundamentals' are very important. Because, well, then there's no magic.

          I think the curriculum hides the code because its just so complicated. For example, just to build on the web he has to learn 3 different languages (HTML, CSS, JS). To do anything simple (like move a box on a screeen) there are too many choices (animated gif, CSS animation, JS animation, etc). Then there's complexity of code management (eg: this game uses just 1 big file) or deployment (how do you "run" your code).

          So I believe simplifying things (i.e. Scratch) is a way to get people to do it without getting scared of the complexity. In our case, the goal is to learn the complexity, just in baby steps.

          Appreciate your comments!

      • junon 17 hours ago |
        I started around 8 or 9 as well. Back then Javascript wasn't really around (was still called DHTML), so I started with Liberty Basic and shortly after that AutoIt, which I loved for a long while and would recommend if he wants to start doing things on the computer - simple to write but doesn't abstract the concepts of the machine away.

        Your son has a seriously advantageous head start on life. Kudos!

        • veesahni 16 hours ago |
          Given how I see him accelerated by Gemini, I think the next generation will have a huge productivity boost.
    • koolba 19 hours ago |
      > His typing speed is better than most kids his age, but still slow (around 10wpm).

      Get him on gtypist for 20-30 min a day. It’ll pay dividends for life. You’ll be shocked how fast it gets up to 60+ wpm.

      • rahimnathwani 19 hours ago |
        Thanks. Right now he's using Typing Club, a typing tutor for kids. I will probably have him finish the sequence on there (or at least get to 20wpm on the lower case keys) before moving on to gtypist, keybr or nitrotype.

        He only does 2-3 mins per day of focused typing practice. Most of his daily non-school study time is spent on math (Math Academy), Chinese (writing) and memorizing essential root words (using Anki). I don't want to add anything, as he already has little free time to play and read on weekdays.

  • danparsonson 19 hours ago |
    Fantastic! I just beat the Fire Gollum, genuinely happy about that! I love the graphics, and as for suggestions for improvement, it would be cool if you could show the relative power of each move - I imagine the Exploding Star is a stronger attack? Let's see some stats :-)
    • veesahni 19 hours ago |
      Yes exploding star is the strongest. Increasing clarity around the attacks (power, charge status, etc) is on his roadmap!

      Thanks for checking out the game and for the feedback!

  • grahar64 19 hours ago |
    It is Perfect. Only comment is to have the text box selected when it pops up.
  • sp8 19 hours ago |
    That's amazing! My son is also 9 and while I haven't even attempted to teach him coding, he would probably enjoy playing this game more than writing one! My only comment is to join in with the rest of the comments here and say how wonderful it is to see this (genuinely fun!) game and to encourage him to do more!
    • veesahni 19 hours ago |
      My son sees me working every day and has been very curious about what we do and how to do it. We've talked about how software is everywhere, etc.

      Appreciate the love

  • cattown 19 hours ago |
    I found it very satisfying when the opponent got a question wrong. Math is hard, even when you’re an awesome monster like a flying snake or black hole.

    I didn’t understand the “charging” mechanic. A little more explanation or some visual that shows charging would help.

    Pretty sweet game! Keep it up!

    • veesahni 18 hours ago |
      Appreciate the feedback!
  • tommykins 19 hours ago |
    Making me do math on my lunch break? This is outrageous
    • veesahni 18 hours ago |
      lol
  • lovegrenoble 19 hours ago |
    Background tune needed!
    • veesahni 15 hours ago |
      in the next version for sure :)
  • underdown 19 hours ago |
    Well done. I like it. Could use an indicator showing an attack is available.
    • veesahni 19 hours ago |
      Appreciate the feedback!
  • drjasonharrison 19 hours ago |
    Ah, a fun game, with math!

    Scrolled through all of the comments, didn't find mention of the spelling mistake right at the top. Sorry, but spelling/grammatical errors often communicate sloppiness. Even when you worked very hard.

    "Chosse your oponent"

    perhaps:

    Choose your opponent:"

    and

    "you win refresh to go again"

    could be

    "You won! Refresh to play again" -- you could even add a link to load the page again.

    "sorry that was the wrong answer, the corect answer was:"

    could have "correct", and a capital letter for "Sorry"

    • drjasonharrison 19 hours ago |
      Also, looking at the code, I don't think you use "question_array" or "answer_array". And I don't know what "utah2" means.

      Sorry I'm not great at games but I like looking at code and interfaces.

      • veesahni 16 hours ago |
        Kids dad here.

        Those arrays were for a past version. I nudged him towards randomly generated question/answers. That's currently dead code.

        "utah2" -- haha, his variable names are sometimes not useful here. We visited Utah months before he wrote the game, so that inspired that variable name I guess! This version I wasn't nitpicking not he code as long as it worked. The bar higher for the next version.

        .. and yes, spelling issues are top thing to fix for next version! At the moment, he can code better than he can spell.

        Thanks for taking a peek under the hood :)

  • Dansvidania 19 hours ago |
    ah, the nostalgia! my visual basic stuff was much less fun than this!

    feedback: Congrats on shipping! Many professional developers can't claim the same :)

    • veesahni 19 hours ago |
      Kids dad here.

      I encouraged to ship early. You know, better done than perfect. Trying to show him the importance of feedback. We think of stuff, but we'll miss many things. Once it gets out in the real world, we'll get real user feedback and learn more.

      eg: I test played it many times for him, yet I missed the fact that 'charging' is totally unclear

  • wizzwizz4 19 hours ago |
    You haven't made any of the mistakes that I see from professional web developers. (I'd critique the use of onclick, except you've found the one context where it's acceptable (even sensible!) to use onclick.) Using the Orca screen reader, the game is almost completely playable. Some feedback:

    • I can't "see" when exploding star is charged up, except by clicking it every turn.

    • I can't tell whether I've got the answer right or wrong. The animation is not exposed to Orca at all. It would be nice to have a text description of what's happening (which you could then apply aria-live to).

    • Technically, I can find this information by navigating down and checking the HP scores, given knowledge of the game rules. (Just putting aria-live=polite on the HP elements would be a quick fix.)

    • I can't necessarily read English: the other text can be auto-translated by my browser, since the page is marked lang=en, but the text in the images can't unless the alt attribute is set appropriately.

    • You use - (hyphen-minus) rather than − (U+2212 MINUS SIGN). Most screen-reader users will be used to this: do NOT tweak things to make it sound better in one screen reader: that will probably break things for others. However, in this case, you do really mean 24 − 5, so it might be worth changing it.

    • document.write replaces the document (not its contents), which causes some software (e.g. Firefox F12 Inspect Element) to break a bit. Orca-in-Firefox seems to cope, though, so this probably isn't a big deal.

    Digital accessibility involves considering a lot of I/O modalities at once, so it's really hard. (A lot of the advice you'll find online is wrong: there are even companies who sell wrong "solutions", and it's very annoying!) Since your game is mostly HTML, with <button> for controls, it's already very accessible. This is, in all sincerity, a lot better than most professionals can manage.

    Edit: ooh, you do have a blog. I'd suggest RSS, though. Email sign up forms are a pain to manage, there are privacy problems, and it's generally less convenient than RSS.

    • veesahni 16 hours ago |
      > Using the Orca screen reader, the game is almost completely playable.

      Interesting! I tried to guide him towards the simple approach - eg: alert() is way simpler than making some sort of modal with HTML/CSS, etc. But now that I think about, that approach (i.e. just use what the browser provides) also results in a more accessible result.

      I appreciate the detailed feedback here. This is awesome! I'm going to leverage this to have a discussion about accessibility with my son. It's something we haven't taken active consideration for through this process.

  • 0003 19 hours ago |
    Enemy scaling system does not make sense. A black hole should have incomprehensionable hp. It broke my immersion; which, was a shame because I was really happy with nailing 3 math problems in row. 2nd does the enemy need to do math?? What the heck! Other than keep up the good work.
    • veesahni 19 hours ago |
      Appreciate the feedback!
  • bhaney 18 hours ago |
    > you win refresh to go again

    This win page is perfect. Please never change it.

  • Throwthrowbob 18 hours ago |
    I found that damage to either my character or the opponent occurs before what looks like the damage animation (red fill) occurs.

    This is neat, thank you for sharing!

  • bitwize 18 hours ago |
    That was fun. Definitely on its way to becoming a MECC-style game and getting kids to crowd around the computer in the back of the classroom. Rocking vanilla JS, too, like a boss. Good on ya, kid.
  • ada1981 18 hours ago |
    When I was 10 I released a HyperCard based app for the Macintosh that was a Virtual Journal program. Shareware. I got $2 checks from all around the world.
  • hx8 18 hours ago |
    A tip to those playing: You don't have to wait for the enemy to attack before you go again. You can spam your attacks. Combat pauses while you answer the question so take your time doing the math, but you want to select your next attack very quickly so you can do more attacks than your enemy.
  • drew-y 18 hours ago |
    Awesome Job! The animations on the characters are really great and do a lot to make the game feel more alive.

    Here's some ideas for improvements you could make:

    - Add a button to go back to the main menu / exit the battle, I keep hitting the home button instead

    - Add some sort of indicator to make it clear when an attack is charged. Also maybe some hints as to how attacks are charged in the first place.

    - Consider moving the question input to inside the game instead of the alert

    - Try playing around with the colors to make text easier to read.

    • veesahni 15 hours ago |
      Thanks for checking out the game and for the feedback!
  • cisrockandroll 18 hours ago |
    Its awesome I love the mechanics.
  • Vivtek 18 hours ago |
    This is so cool!

    I wish there was a way to know when an attack was charged up, or maybe show its progress in charging.

  • Cotterzz 17 hours ago |
    This is great work. I started around the same age, though I only had BASIC or assembly language and neither was very suitable, to the extent I almost gave up on game development. I didn't start building games with JS until 2-3 decades later, I really wish I'd had something like this back then.
  • theflyingelvis 17 hours ago |
    This is awesome. Good job
  • alwa 17 hours ago |
    This is really cool! I had fun playing your game, thank you for sharing it with us!

    I like the way you’ve made animations for the attacks. One thing I noticed is that the health counter goes down right away, before the attack hits and makes the background flash red.

    I wonder if the health could go down at the same time the attack hits? It’s a small thing, but it might make the attack feel even more exciting!

    • veesahni 15 hours ago |
      Already on the plan for v2!

      Appreciate the feedback!

  • MarcScott 17 hours ago |
    He should enter it into https://online.coolestprojects.org/ Very cool game
    • veesahni 17 hours ago |
      OH that looks cool. Never heard of this, but I'm going to check it out. Looks like he can apply for the online showcase for 2025.

      Thanks!

  • junon 17 hours ago |
    This is awesome. I love the graphics. Your son seems awesome!

    How do I charge up my skills? It also doesn't show which skills are charged and which aren't - all the buttons look the same! Could the buttons maybe change color depending on if they're charged or not? Or maybe show how long until they are charged?

    • veesahni 15 hours ago |
      Appreciate the feedback!
  • sonjaqql 17 hours ago |
    This will be featured in my cross-discipline AI meeting this week. The blog article your son wrote was excellent - I will be pulling a few quotes.

    I found it insightful that he used the microphone to move faster, and that he couldn’t always trust AI, because it can be just as confidently wrong as any human.

    Both of you, keep up the good work!

    • veesahni 15 hours ago |
      > This will be featured in my cross-discipline AI meeting this week. The blog article your son wrote was excellent - I will be pulling a few quotes.

      That's awesome!!

  • mode80 17 hours ago |
    Congrats Dad and son. I was going to say something about the blue text on red being hard to read. But you know what? Keep it. Live the vibe.
    • veesahni 15 hours ago |
      Thank you!
  • pyrelight 16 hours ago |
    I don't know if it's just me (checked in Firefox and Chrome), but the black text on the red buttons is really hard to read. I'd suggest using white, unless you had some reason to use black.
    • veesahni 15 hours ago |
      color contrast is something we've talked about and will be fixed for next version!

      his young eyes arent bothered by crazy contrast :)

  • nzealand 16 hours ago |
    Amazing!
  • jheriko 16 hours ago |
    this is brilliant.

    most of the feedback i'd want to give has already been given though... e.g. the attack charging confused me a bit until i worked it out by inference.

    the animations are probably the highlight of this for me. they add some character nicely. adding more elements to show the attacks in progress beyond the colour changes would be a nice way to improve this.

    i would suggest removing 0 from the rng for the math problems. occasionally you can get 0 + number which feels like a cheat almost. also maybe forcing the numbers to always be in double digits for the addition problems? he seems to be aware how to do this from looking at how the divide by zero is avoided.

    another small thing would be to disable new input whilst the attack sequence is running... although again others have mentioned that.

    ----

    overall this is impressive and interesting to see. i taught myself to write code starting when i was 8 using qbasic and its help file, then starting with visual basic when i was 11 and C when i was 12 - it was a different time, and different tools with different challenges, but i think any early start is helpful, especially if you have to work things out for yourself.

    this game reminds me of some of my own early efforts, although rather than wrangling the complexity of a modern browser environment and language, i was wrangling with the lack of documentation and learning materials for logic, maths and graphics.

    today i am the technical director of a games company with a cv littered with AAA, mobile and VR games. if your son eventually decides to choose this sort of career, i expect this kind of early work will pay huge dividends.

    good work.

    • veesahni 15 hours ago |
      We hit divide by zero in testing, so he guarded against that.

      He needs to think more about "hardness" of a question and what that means. Right now, multiply/divide are considered "more hard" but that's not actually quite correct given the implementation of divide.

      Appreciate the feedback! I'm not sure if games are his future, but it's a great stepping stone at the current age as the output is shareable with his friends!

  • e40 16 hours ago |
    My old eyes can’t read the text on that color.
    • veesahni 15 hours ago |
      His young eyes don't understand the problem. But it will be fixed for v2 ;)

      We had a talk about color contrast and WCAG

  • girvo 16 hours ago |
    This is awesome, and the graphics remind me of my mspaint.exe graphics I used to load into Game Maker 4.0 in 2001 to make games as an 11 year old :)

    It gave me a lifelong obsession with programming, and I'm still a principal engineer today

    • veesahni 16 hours ago |
      haha awesome :)

      It starts with a small seed. Once planted, you realize you can do anything and that software is everywhere.

  • efitz 16 hours ago |
    This is fantastic; your son did a great job! I’m always excited to see young people take on challenging projects!
    • veesahni 16 hours ago |
      thanks for checking it out :)
  • listless 16 hours ago |
    Interesting concept. Reminds me of final fantasy.

    The text in the red boxes is hard to read. Suggest changing to white.

    The more advanced weapons that are locked actually have easier questions. I would expect them to be harder.

    I can’t tell when I can use the advanced weapons. Suggest showing the charge level along with Hp.

    Great job!

    • veesahni 16 hours ago |
      Appreciate the feedback. Will share this my son!
  • upmind 16 hours ago |
    Out of curiosity, what courses, books, websites etc did you give to your son to learn JavaScript? I have a similarly aged child and I haven't found anything they like so far.
    • veesahni 16 hours ago |
      The full story of his journey is here: https://news.ycombinator.com/item?id=42313045

      Specifically for JS? I didn't give him anything material actually. I gave him a serious of small challenges starting with: "write a function that displays hello world on the screen" ... he already know HTML/CSS and he talked to Gemini to figure out the best way to use a function in HTML and it guided him towards JS. He give me a solution in a JS console, with a function that he executed.

      Then I built on that with more challenges. He continued to work with Gemini. He talks about how he uses Gemini in his blog post, it's an interesting learning technique he found.

      So mostly he's learning by doing. He's figuring out "how to do X" either using a hint from me or just by asking Gemini which gives him some guidance. Then he has to figure out how to apply the hint/samples to his actual game. His IDE has no LLM built-in, he uses the LLM from the browser.

  • prudentpomelo 16 hours ago |
    Wow, this is wildly refreshing. Definitely more interesting and fun than any crud bullshit I do every day.
  • sbecker 16 hours ago |
    My 7 year old loves it! He likes the animations, how the creatures get the questions wrong sometimes, and the math questions. Questions were - why do we play a wizard guy (he wants to play as different characters), why does the scorpion drop a star, why are some of the moves not available / charged up yet
    • veesahni 15 hours ago |
      You're a math wizard solving math! :)

      The scorpion is shooting poison!

      The move charging mechanic isn't clear. Somebody documented it here: https://news.ycombinator.com/item?id=42312807 .. it will be made more clear for next version!

  • bttrpll 15 hours ago |
    Game is super fun! Graphics are awesome. I can't tell when the moves aren't charged up yet.
  • raister 15 hours ago |
    Great story, especially for a 9y! I love to know that one can rise to occasions given time and persistence and willingness to learn, at any age.

    Thanks for sharing.

  • pj_mukh 15 hours ago |
    So so so so good. First one of these games where I was hooked and wanted to beat the villain. The added but achievable effort of math was awesome. Sending this to my 10yr old nephew.

    Some people have mentioned how we aren't sure when weapons are charged, maybe extra animation there would be useful.

    Also, the villain and I beat each other at the same time (I think?). So the screen after was just:

    "you win refresh to go againyou lose refresh to try again.you win refresh to go againyou lose refresh to try again."

    • veesahni 15 hours ago |
      Charging isn't clear. Somebody documented how it works: https://news.ycombinator.com/item?id=42312807

      So the game is actually turn based but the turns are not currently enforced. If you dont play by taking turns, then some weird things can happen like what you see on win/lose section.

  • wbpayne 15 hours ago |
    This is really neat. I'm happy that you're encouraging your son to program at such a young age. It really helps to build computer skills to immerse yourself from your early years. I started learning programming using QBasic on my computer at the age of 6. I now know several programming languages and am the go-to person in my friend group for computer help of all kinds. I wish your son the best on his adventures in learning programming.
    • veesahni 15 hours ago |
      Thank you! Appreciate your comments!
    • sumedh 11 hours ago |
      What do kids learn these days as their first programming language?
  • jimbobbam 15 hours ago |
    I love it
  • Dwedit 15 hours ago |
    I also made a math question game (using QBasic) at a young age.
  • cpfohl 15 hours ago |
    Fun! Give your guy a high five from Boston!
  • f3z0 15 hours ago |
    So fun!
  • formula1 15 hours ago |
    I really liked the math problems, Little bit of edutainment
  • peeters 15 hours ago |
    Awesome job! If you want him to get some experience with bug fixing, I found one: ask him what happens if you click on an attack and then hit escape (it cancels the attack but still charges up your attacks, so you can get to full charge on your first attack)
    • veesahni 15 hours ago |
      yikes! thanks for the bug report
      • peeters 15 hours ago |
        oh not "yikes" at all I totally peaked at the code to try to find one for him. I feel like bug fixing at that age is a fun exercise; it gets you thinking more laterally about the program you're writing.
      • matt3210 14 hours ago |
        No jira?
        • veesahni 14 hours ago |
          for v1 (this version) the task list was just paper and pencil

          for v2 he's organizing himself using trello :)

          • rswail 13 hours ago |
            In the spirit of Dijkstra's quote on teaching BASIC, learning "Agile" is damaging beyond recognition. :)

            Kanban boards, on the other hand, are "agile". /s

            Congratulations to him on his first "real" program, I was 13 in 1977 when I started (with BASIC for my sins :) )

          • soulchild77 12 hours ago |
            After 25 years of professional development experience my favorite task lists are still and will always be paper and pencil. ;-)
            • veesahni 7 hours ago |
              my daily list is still just paper. There's satisfaction in striking out finished items :)
          • sensanaty 7 hours ago |
            For the sake of your child, please keep him away from any and all AGILE based workflows! Such devious contraptions were not meant for the pure of soul
  • rietta 15 hours ago |
    Neat! Amazing work young man!
  • Svoka 15 hours ago |
    I really love Spider animation.
  • zja 14 hours ago |
    Fun game! Good job Armaan!
  • andrewstuart 14 hours ago |
    Love it!

    Keeping coding!