Published on

Devlog #23 - Super Fantastic Ultra Alpha

The first version of the https://fantasyonline2.com/ website was a single php file. It let you auth with Patreon and view your rewards. I made this using knowledge I acquired 15 years ago. I needed some time to understand the modern web as the last web game I made was FO and that was 10 years ago, so I just threw that php file together as a temp solution.

During that time I got to experience how awful the Patreon api is to work with. They have 2 different apis that don't work together and don't always have matching information. Their webhooks also post different information than the apis return. So after a lot of failure I finally have a system that has solved most of the problems with the Patreon login and reward system. I'm hoping Patreon related bugs will taper off in the next few weeks. Thank you for your patience and if you have any issues please post to the bug forum in https://discord.gg/fantasyonline2.

It looks like we're getting some cool Summer shades for August! https://www.patreon.com/posts/what-should-be-86006866

Whoa. That's the first 2.5 days of web requests. https://vercel.com/ is pretty awesome. 99% of these requests were to the sprite sheet endpoint. That's what happens when over 300 Patrons show up and spam refresh for hours.

Right now FO2 is made up of 3 main projects.

https://fantasyonline2.com/ website, authentication, character management, and api endpoints is the first project which is https://vercel.com/guides/deploying-react-with-vercel using create-react-app

https://dev.fantasyonline2.com/ is the second project which is https://doc.babylonjs.com/guidedLearning/usingVite

The third is the game servers and MySQL database server which is https://overcast.smartfoxserver.com/

I find it pretty amazing that I can make a code change in any of these client projects and in 30 seconds everyone can try it. This is a big reason why HTML5 beats Unity. Unity takes ages to build and deliver to users on the web.

I mean look at this https://docs.unity3d.com/Manual/IL2CPP.html.

Here are the steps it takes:

1. The Roslyn C# compiler compiles your application’s C# code and any required package code to .NET DLLs (managed assemblies).

2. Unity applies managed bytecode stripping. This step can significantly reduce the size of a built application.

3. The IL2CPP backend converts all managed assemblies into standard C++ code.

4. The C++ compiler compiles the generated C++ code and the runtime part of IL2CPP with a native platform compiler.

5. Unity creates either an executable file or a DLL, depending on the platform you target.

No matter how optimized any of those steps is, having 5 of them will make exporting to WebGL from Unity always be slow. And this doesn't even include uploading the sometimes giant files the WebGL export produces. In other words I would not suggest Unity if you are targetting the web.

Moving on...

In FO and other games I've always had a problem breaking auth, character creation, etc aka everything you do when you're not playing the game. All of it is necessary for the game but doesn't need to be part of the actual game. So this time I decided to move these non-game things into their own project so they're safe from my endless game engine tinkering. This should lead to way way way less bugs for new players.

There were a handful of server bugs that didn't show themselves until under heavy load and thankfully those are now all resolved. Getting into the game is pretty fast now even with 100 players online at most times.

See that? That's a tiny SKILLBOOK.

Skillbook drag/drop is in. Drag/drop from hotbar to map to clear a skill slot. I rewrote the item drag/drop as the skill version is much better.

More updated icons are making their way into the game.

Equipment background icons looking good but it looks like I broke slot spacing. They're way too close together!

And with all that said I've spent most of the week fixing bugs. Great job everyone finding and reporting them darn bugs. Every single bug report has been good. We just need to work on not posting duplicates is all. There were a lot of bug fixes that change how things work in the game and they're all documented in the #development channel on https://discord.gg/fantasyonline2. I'll start a changelog when things calm down a bit.

Quests, guild commands, market are still on hold until I clear out the bug forum. I have been handing out Legacy Guilds to people at the rate of about 3 a day. I'll finish next week and then hopefully turn on guild commands.

I will continue to work directly in production for 1-2 more weeks so you'll be seeing rapid changes.

Thank you to all Patrons for making this possible!

See you next Friday!

Have Fun & Keep Gaming!

P.S. - What should the September Patreon exclusive item be? https://discord.gg/fantasyonline2