I don’t have much to show for this update, but a good amount has been coming together over the past few weeks. The authentication backend is complete and ties in with the game server as to relay the users auth token (Using https for auth, web sockets for the game packets.) Keeping them as separate services has a few benefits and can help with scalability as well as isolation, this way the game server doesn’t have to worry about any authentication logic and can quickly drop a connection if they don’t have a valid auth token. The game will need several services, as the game server will also need to communicate with custom daemon(s) for node/blockchain interaction, and I may also split the interactions with the items and stats side of the database into its own service as well. This makes it easy to monitor what resources they use and if it ever comes to it, I can scale specific services that need more compute.
I have also began working on the client side in Godot, and while what I have to share isn’t much I do have a good grip now on their UI tools, the overall architecture and event system. It’s been a joy to work with any I recommend anyone interested in game development to check it out. Its lightweight (~38mb), It has a clean simple architecture and its own pythonic scripting language. While I do have to butt my head against it at time and don’t necessary like some of the design decision, it is a pretty fleshed-out language and well made, which takes a good bit of effort and design. Most of my issues are things that would be very non-trivial for them to implement differently. But by using it I have been able to pick up a lot in a few all nighters.
I should be finishing up the UI and getting to the battle systems animation, sprites, input UI coming next week. I have already worked through a few example projects dealing with the 2d aspects so that part should be fairly simple. Most of my work so far has been tying in the UI elements with the card data structures and various interactions needed, which was a little more work than I thought it would be at first. The 2D/Animated aspects just need to relay a users inputs and the packets received from the server, which once a framework for that is implemented, all that’s left is adding in the assets, setting the animations and editing shaders. But these are all modular and can be approach one at a time, unlike the UI where a lot of things are dependent on each other so you end up doing a lot of small rewrites of thing as it all comes together.
Art it just place holder atm.
I feel pretty confident about getting everything releasable by next month. As things are really shaping up now. After the client is finished, which should take 2 weeks max. I just need to finalize and implement the database schema and things are at least ready for an alpha. The hardest part in the future is going to be the node interactions for tracking and verifying user assets. I already have a good plan of what I want to do, but the how is the issue. I’m hoping to be able to avoid having to implement my own block explorer. But I may end up having to write a barebones one that at least mirrors blockchain info into a database following game assets.
- @ October 9, 2022 12:35 am