[Libgdx][Akka] TAnima- mmo rogue-like

No problem :slight_smile:

How do you handle client side prediction? -> for now there is no client side prediction. It’s hard to do it with non-linear actions (you move one tile at one key press). In future, some of interactions could be changed to functions and it will be send from server to client. For example: I have some periodic traps that are firing up in certain sequence. For now server is triggering client if trap is up but I could send just a trap firing function to the client (only view context ofc). But it’s much harder :slight_smile:
I was thinking about basic predictions like move before server accepts it (and correct if something is wrong) but for now when I test it in live env, I see that transfer is fast enough to not cause visible lag. Live tests will show up if it is needed or not :slight_smile:

Is there a certain reason you decided to use Akka and Scala -> I am using Scala and Akka in my job. I like it very much and I wanted to test it in more stressful env. I’ve found Scala much funnier and faster (development) to use than Java. Akka in my opinion is great approach for scalable server side applications and it’s great experience to open mind for actor model. I really like it :slight_smile: For now most of client side is done in scala as well.

what parts of your server are in Java and what in Scala -> Actually almost everything on the server side is done in scala. Before I was using java for procedural terrain (rooms) generation but now I don’t need it. Only some LibgdxAI LeafTasks are wrapped with Java because for some reason annotations are not working well. I think that I’ve done something wrong in Maven. It’s hard to find something in the internet because noone is using scala with libgdx as I see.

Are you planning to release a master server or will every player be able to host their on games? -> for now master server. I want to control game population :slight_smile:

In case everyone is able to host their on games how are you going to deal with portforwarding? -> If I would like to go this way, I would use vpns or hole punching.

I hope it helped a little :slight_smile: If you have any questions- ask me :slight_smile:

Your input is much appreciated, thanks! Really interesting. May I ask in what field you are working?

PS: This might be relevant for you at some point, there are some good tools (at least from my experiences) to emulate things like high latency, packet loss etc. Just telling you in case you will reach the point of implementing client side prediction and are to lazy to set a live test up :slight_smile: But you probably know about those tools anyway I guess :slight_smile:

May I ask in what field you are working? -> backend developer in telehealth. Now it’s IoT project.
I am designing server to be fault tolerant. Later I will create some test env for it. This kind of emulation that you are talking about is relatively easy. Thanks :slight_smile:

c9AwZW4NALw

Update:
-progress system
-character and item description
-damage output calculation formula

This time with my live commentary :slight_smile:
I hope you’d like it. I will be thankful for you comments :slight_smile:

Awesome! You seem to be making rapid progress with this. The visuals are very appealing too.

Thank you :slight_smile: My goal is to keep daily basis progress. I hope creating enough mechanics and content for mmo demo version in about 1-2 months :slight_smile:

adIOeHtPICM

Soooo tired but still keeping my progress goal :slight_smile:

Weapon tiers and visual update. Now we can better see what is character holding in it’s hands :slight_smile:

Making of graphics timelapse:

E9mKQ3KnM5I

May I ask you what software you are using for drawing?

Inkscape :slight_smile:

e032oIRPiDI

VVmiYE7GIJQ

Thanks, I guess I have to try that software :slight_smile:
I usually use GIMP, but I don’t know much about it, so it’s pretty difficult to draw something, but I guess thats not the softwares fault :smiley:

I am still really impressed by your work, especially by the quick progress! Keep it up!

Thank you :slight_smile: I used GIMP also but when I’ve found vector graphic, I’ve moved to Inkscape :slight_smile:

New things added. Video below “how I see example dungeon in TAnima”

u61oaqErKF8

@ByerN thanks for telling me about inkscape! It is really great, I just created a logo for my game eThlete with it.
It was pretty easy and the result is much better then I expected :slight_smile:

Thanks

You are welcome :slight_smile:

I admire you, great job:)

I see at your game nice effects, shining lights on walls, funny character moves, pieces on floor after killing monster or smashing something etc. How do you deal with fixing parameters for animations, elements sizes, sequences of moves. Is it a libgdx feature or do you develop it from scratch?

Thank you very much @meva. It means a lot for me :slight_smile:

Libgdx got some features for animation but I am not using them (stage for example). I only use the lower level api like Sprite and it’s drawing on batch. I like to have more control over what I am doing. Programming along with designs patterns is helpful here (for example composite, listener, visitor, builder patterns. Lot of them is used here). If you know how to use them effectively it is fast, you don’t need to learn your library’s API (lower dependency) and you know what’s going on.

Box2d and Box2dLights is used for physics (pieces on the floor) and lighting. Camera is a feature of libgdx. Really helpful for scaling the view :slight_smile:

Server is taking care about the logic so all what client is doing is just changing the view on events. Size of elements is normalized by some reference value. Camera with it’s zoom takes care about showing player what he has to see. For animations I’ve implemented some simple math functions. I had to create a simple shader to flash character white on hit. :slight_smile:

So most of the things is developed from scratch on top of libgdx low level API but it ofc has a lot more to offer then I am using :slight_smile:


Today I was thinking about music for my game. There are my thoughts:

e3F6sk_gBlk

What do you think? :slight_smile:

Thanks for your answer, I’ve learned a lot.

In my game (designed for Android) I am using drawing in canvas which I found is not very convenient. So, I am looking for something better. Libgdx would be a right option.
I also developed some tools for my game, as you said, I like having control over what is going on inside code:).

I was considering Unity, but found it hard to learn. For example I could not find a good explanation how to design random world generator. So, I decided to do It by myself. Time spent learning Unity I could spent developing own tools.
I think it is also a good solution. You have to read about general ideas, try to implement them and you are increasing your programming skills. However, Unity and other engines are developed by professionals and are much more general then my solutions:), but much more complex at the same time.

Game engines are making many things easy :slight_smile: Libgdx as an framework is one level lower. It abstracts many things so it’s easier to do something than in a more raw solution but it’s still challenging.

If I would like to make more complex design (some fancy 3d for example) I would take unity or unreal. Making 3d engine by one person is a suicide:)


fIOf4ErXKC0