Hi, I wrote an MMO in the c-like language Jai. It released August 2024.

Here are some pictures.

Drop tables


Painting uses pallet mixing


There are a few bosses and a raid


There are pals to talk to


Violin (each row of your keyboard is a string, your mouse left to right is bowing, and up/down is choosing strings (with some room for overlapping.) The NPC plays tunes I pre-recorded, sped up a little. Play for your friends.


Render pass debug, admin panels, menus


Here is the profiler I wrote for the game, for the Jai language. https://code-flame.itch.io/profiler
It's serializable and admins can download the server's profiling info.


I made it into a standalone app that communicates with shared memory. Here it is in an unfinished RPG project that I dropped to work on World of Squares.


My largest regret was using dependencies. There are many less than other projects, but there are still some; CivetWeb for the web server, Curl for the payment processor, ENet for networking. Worst was ENet, which created bugs months down the line due to obscure implementation details and bugs; with it, I cannot just write a software and have it work in 10 years. I let someone convince me I should use ENet because I'm "reinventing the wheel." I already hardly trust anyone, but after this person I thought was smart convinced me, I now will only trust myself on wheel re-invention.

My second largest regret is artistic pandering. Few people played this game, though I find it cool. I still pandered to the market when I made this, but I was on this fence of pandering and things I find cool, and I think I will veer more towards making art that nobody living must see, but it is an interesting exploration of the medium. Otherwise, what am I doing with my life but temporary?

This was the hardest I worked on a project. I worked 10 hours a day on the game, 2 hours a day studying Handmade Hero, and a bit of playing music afterwards. 1 break day every 13 work days. I released it after around 6 months and considered it a sufficient exploration of the medium and moved onto the next project.

If you expected a rule-of-threes third largest regret, you must be quite the engaged reader! Here it is, surrounded in an equals-sign rant-barrier fence, short enough to hop over!
===
My third largest regret is Linux for backend. The time I spent debugging that pile of awful software could have been spent programming directly to specific server hardware designed to run the game. I just need my code to run. I don't need 20,000,000 lines of code underlying to do that, yuck!

I'm working a web dev job which is decent money now, but when you do that, your time is owned by another. Treasure the time you have for passion projects and make cool stuff. If I could tell my 5th-grader new-programmer self to drop out of school and have fun doing those projects instead of doing what you're told, I would. I'm fortunate to not need to work to live, with old-world parents who will cover that for a long time. It's a good thing I didn't make this mistake again and go to college, using "gap years" (which are basically retirement/responsibility-to-others-free years where you can do a lot) to further my skills and projects. In general, all the indoctrination and group-thinking society leads us to can help some people, but it certainly has only hurt my growth and ability. I strictly do not benefit from it. (Childhood is critical, age 5-7 is often when world-class violin soloists start, and malleability only declines from there. Why do we spend it on achieving a base average knowledge that could be gotten later in life, instead of skills? High school ends, brain malleability is sharply lowering, and the high school degree has no marketable skills nor does it empower people meaning. We have more humans than ever who could be training to be experts at something before adulthood but aren't.)
("Gap years" is in quotes because I dislike the term as it perpetuates an inevitability that we should do that with our lives when it only works for a subset of people.)
===

The line counts are as follows. I try to have few files, and most code in one file. All I need is to go-to line for compile errors. See further discussion on inlined code here http://number-none.com/blow/john_carmack_on_inlined_code.html I tend towards style C for extreme simplicity on big projects.

Code:
news.jai                           64
wos_arena.jai                     116
wos_server_database.jai           845
wos_common.jai                   3693
client_updater.jai                700
wos_drop_tables.jai               277
wos_server_payment.jai           1183
secret.jai                        626
wos_server_httpwebserver.jai      101
wos_npcs.jai                     1272
wos_client_graphics.jai          4062
wos_server.jai                  13358
wos_client.jai                  13361
Total  39658


See the daily progress with screenshots here https://forums.tigsource.com/index.php?topic=75784.0
https://www.worldofsquares.org/
https://store.steampowered.com/app/3147260/World_of_Squares/
can you make a mac version
You could try running it through wine?
Can yo make a mac version.
do u know how to run multiple operating systems?
https://support.apple.com/guide/mac-help/run-windows-on-your-mac-mh11850/mac
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement