Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (769)
Games in Android Showcase (230)
games submitted by our members
Games in WIP (856)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2 3
  ignore  |  Print  
  [Libgdx][Akka] TAnima- mmo rogue-like  (Read 17351 times)
0 Members and 1 Guest are viewing this topic.
Offline ByerN
« Posted 2018-04-09 11:27:41 »

TAnima
<a href="http://www.youtube.com/v/sPT_rTDEBfA?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/sPT_rTDEBfA?version=3&amp;hl=en_US&amp;start=</a>
After long time of TAnima alpha version development, it is open for testing now:
http://tanima-online.com/

Now I am starting to work with content (quests, enemies, graphics, audio etc)
Let me know if you find any bugs or you see something that could be done better.

I will be glad for your comments Smiley


Alpha teaser:
<a href="http://www.youtube.com/v/KWOpZaqRz0U?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/KWOpZaqRz0U?version=3&amp;hl=en_US&amp;start=</a>

TAnima is a mmo-action-roguelite game placed in s-f world.

Plot
Long time ago, humanity left earth in order to discover new worlds.
It took so many years to explore and conquer entire space.
It took so many years to drive first human to the Karmin moon.
Karmin moon had one thing that nobody ever seen before.

The crystal. Biggest crystal in the entire space.
Imperials found out that it can be used as the fuel for their starships
They built a mining tower surrounding crystal in order to get it.
It got it's name: TAnima.
But the crystal wasn't just a stack of rocks...

Some time after first colonials arrival it started to live.
It killed everyone.
Imperials decided to turn mining tower into a prison to get fuel by all costs.
But after some time contact with prisoners has been lost.
You are the one who wakes up in the TAnima.
And you don't know why...

"There are only few of us now, who remembers what happened here. It was just a normal prison.
Everything turned wrong when we got closer to the crystal's core.
Tower started to evolve. It started to spawn monsters. It started to talk to us in our mind
It wasn't angry for us. TAnima was curious.

First time, it wanted volunteer to talk with. We got one. He went to the room and closed the door.
After some time, monsters disappeared. When we came into the room, we saw our guy turned into crystal.
Sitting on the crystal throne. With no vital signs. We didn't even know his name..."
- The Diary of Elders


"TAnima stopped attacking us only near the crystal throne. We've built The Bastion around it.
But it was only beginning. We've discovered that when we die in TAnima mines, we are revived again.
We don't remember what happened in mines after resurrection. But it's still better then nothing.
A lot of us lost their minds. A lot still believes they return home." - The Diary of Elders


"Some time ago, we've discovered new people in mines. They aren't prisoners like we are.
They don't know how they came here. They only remember their past. TAnima talks to them as well." - The Diary of Elders


"It's hard to understand what TAnima wants from us. Everytime it speaks, the meaning of his words is weird.
It doesn't have any feelings. Only because of that, we know that it's not keeping us here for fun.' - The Diary of Elders


"Why do you hate me, human? I gave you everything you always wanted..." - TAnima


"I still have to learn more about you. Sometimes it's hard to believe that you still exist." - TAnima


"I am your friend. Your best friend..." - TAnima


Technology
Client - Libgdx/Java/Scala
Server - Akka/Scala/Java/Libgdx-AI

I'll be really thankful for your comments and support in development. It will be really helpful! Cheesy
Offline Springrbua
« Reply #1 - Posted 2018-04-11 14:59:24 »

Very nice style, I like it  Cool
How long did you work on this game until now?
Offline ByerN
« Reply #2 - Posted 2018-04-11 23:19:52 »

Thank you Smiley It is about a month of development after my working hours.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline SolitudeGaming

Senior Devvie


Medals: 6
Projects: 2



« Reply #3 - Posted 2018-04-11 23:47:59 »

Looks very nice Cheesy
Offline Springrbua
« Reply #4 - Posted 2018-04-12 06:03:05 »

You only needed 1 month for this, even if you only work on it after working hours?
I am currently working on a little game too, however I can't motivate myself to work on it every day, so the progress seems to be very slow...
So respect for that!
Offline ByerN
« Reply #5 - Posted 2018-04-12 07:11:21 »

Thank you Cheesy At start, the progress was rather slow. I didn't know how to find motivation. That was the main problem. In my job I've found out agile patterns really effective. I wanted to use something like this but dedicated for one person team.

So I do following sequence every day:
1 (BEFORE SLEEP). create short backlog with few features to add (if exists, add few more). Features has to fit one day long work and can't overwhelm you. So they should be easy. Never let your backlog be empty. Don't waste to much time on thinking about design. It's always changing and you will get better idea later,
2. at the end of the day, get something from your backlog and decide to do it tomorrow. It's important to not do this at the day start. At the end of the day you are tired enough to make quick decisions and in the morning you already know what you have to do.
3. go sleep,
4. wake up, work on game for few hours (feature selected yesterday from backlog)- you are very effective in first hours after waking up, don't waste it,
5. go to job/life,
6. meet friends/free time,
7. work on game (you have to finish your task before end of the day),
8. document and publish your work. Videos are fast and easy.
9. watch a video with a result of your work (and comments if there are any). Game is not satisfying for you, but you see it going better everyday. That gives you motivation.
10. Back to 1

Programming:
- User some version control (I use git). Do commits often. Always after finishing atomic change. Your game has to compile and run on each revision. Sometimes you need to just drop for example 1 hour of your progress to go other way
- If clean coding takes too much time somewhere, do it dirty. You will refactor it later (when you need it or when you can't look at your ugly code anymore)
- Make use of TODO comments in code. It's easier to find what you need to do. Usually your IDE is supporting searching of todo comments
- Don't waste to much time on graphics/view but don't forget to work on it over time. At start I was working with just rectangles with text describing what it is. It's not that good because you are losing motivation if you watch only the placeholders for a long time.
- Always have fun. I've spent 15 minutes yesterday to set animation speed of main character to fit shopkeeper from crypt of the necrodancer. Why? To watch them dancing together xD

Maybe it will be helpful for someone. Finding motivation is a hard thing Smiley

Maybe some of you got more tips and would like to share it? Cheesy
Offline Springrbua
« Reply #6 - Posted 2018-04-12 08:18:50 »

I started using a Todo-App, in which I write down some kind of backlog.
As you said, it is important to keep a backlog, because if not, you have to think about what to implement and that causes your motivation to go straight down.
Working on the game in the morning sounds like a good idea, but I don't think I could keep that up Cheesy
My biggest problem is, that as soon as i face a problem, which takes some time to fix, I loose motivation and go back to play games instead of making games.
Offline meva
« Reply #7 - Posted 2018-04-12 20:48:41 »

Hi,

Looks beautiful:).
I like the rocks on the ground which move when you shoot.

It's amazing that you could done it within only one month!

I'm also developing a game after work hours, but the progress is very slow.
I can only spend less then an hour a day late evening, so I am tired and not very creative.
It is better to say how many hours did you spend working on your game.
In my case, I started around 4 months ago, so here are my calculations

122 (days) * 1 (hour a day) * 0.7 (not every day I can work on the game) * 0.7 (some preparing issues)

So it gives roughly 60 hours.

I think your rules are really helpful. I have to try them once. Maybe my progress will speed up.
Offline ByerN
« Reply #8 - Posted 2018-04-12 21:15:04 »

Thank you guys Smiley

Skillful dirty coding is helping with avoiding stucking in hard problems. Next morning, these problems seems to be trivial and it's easy to fix/refactor it.

Working on game takes me around 4 hours daily. Exception are lazy weekend days (without any distractions like life or something) where it looks like 8hour (1 md). I take breaks often to regen. These breaks cannot be like watching tv because it is making me lazy. There are many little things that are helping in long working (like looking through the window from time to time to avoid headache). The most important for me is to always achieve my daily goals. It helps a lot with motivation problem.

Thanks and let me know if it was helpful Smiley

Offline ByerN
« Reply #9 - Posted 2018-04-13 18:12:30 »

Added multiple things (see devlog):
-shop, equipment, torch, health potion, secondary item
-npc and text messages
-jumping, abyss (instadeath floor which you can jump over)

What do you think? Smiley
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ByerN
« Reply #10 - Posted 2018-04-15 15:09:59 »

Game has been splitted into server and client. It's possible now to run multiple players Smiley
Offline ByerN
« Reply #11 - Posted 2018-04-17 18:58:55 »

Added local objectives (video Smiley)
Offline ral0r2
« Reply #12 - Posted 2018-04-19 12:51:01 »

Guess you have to be quite experienced in libgdx and networking? To pull all this off including multiplayer within one month must require some experience Cheesy . Good job, thanks for sharing this with us.
Offline ByerN
« Reply #13 - Posted 2018-04-19 14:36:06 »

Thank you! That means a lot Smiley

I am working on networking all the time as backend developer in my job. Few years ago I was making some simple games in libgdx so I knew this lib a little Cheesy


I've just added in-game tutorial along with NPC scripting. It will be launched at start for new players. (see video Smiley)
Offline meva
« Reply #14 - Posted 2018-04-21 21:44:09 »

Hi, maybe I missed something, but where can I find a playable version of your game?
Offline ByerN
« Reply #15 - Posted 2018-04-22 00:24:52 »

Hi. For now it's not released. Waiting for more content. I think that it will be good enough in 3 weeks for early demo Smiley
Offline meva
« Reply #16 - Posted 2018-04-22 19:50:19 »

Great!
 Grin
Offline ByerN
« Reply #17 - Posted 2018-04-22 21:06:46 »

I've started making town (per floor hub for all players). Today:
-shop- shopkeeper filling empty item slots in his shop according to actual item pool
-junkyard- where you can sell your items and donate for better items in the shopkeeper's pool

(check video in presentation)

What do you think? Smiley
Offline ByerN
« Reply #18 - Posted 2018-04-23 17:53:02 »

Trashy added Cheesy (see video in my post)
Offline ral0r2
« Reply #19 - Posted 2018-04-23 20:11:44 »

TAnima

Technology
Client - Libgdx/Java/Scala
Server - Akka/Scala/Java/Libgdx-AI


Would you mind telling a little bit about your netcode (client / server interaction)? How do you handle client side prediction?  Is there a certain reason you decided to use Akka and Scala and what parts of your server are in Java and what in Scala? Are you planning to release a master server or will every player be able to host their on games? In case everyone is able to host their on games how are you going to deal with portforwarding? Sorry for all this questions, I'm just curious Cheesy
Offline ByerN
« Reply #20 - Posted 2018-04-23 21:20:58 »

No problem Smiley

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 Smiley
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 Smiley

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 Smiley 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 Smiley

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 Smiley If you have any questions- ask me Smiley
Offline ral0r2
« Reply #21 - Posted 2018-04-23 22:32:08 »

No problem Smiley

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 Smiley
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 Smiley

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 Smiley 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 Smiley

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 Smiley If you have any questions- ask me Smiley

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 Smiley But you probably know about those tools anyway I guess Smiley
Offline ByerN
« Reply #22 - Posted 2018-04-23 22:39:18 »

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 Smiley
Offline ByerN
« Reply #23 - Posted 2018-04-25 20:08:21 »

<a href="http://www.youtube.com/v/c9AwZW4NALw?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/c9AwZW4NALw?version=3&amp;hl=en_US&amp;start=</a>

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

This time with my live commentary Smiley
I hope you'd like it. I will be thankful for you comments Smiley
Offline Gjallar

JGO Knight


Medals: 44
Projects: 1


Follower of Nurgle


« Reply #24 - Posted 2018-04-25 21:44:14 »

Awesome! You seem to be making rapid progress with this. The visuals are very appealing too.
Offline ByerN
« Reply #25 - Posted 2018-04-25 22:17:17 »

Thank you Smiley My goal is to keep daily basis progress. I hope creating enough mechanics and content for mmo demo version in about 1-2 months Smiley
Offline ByerN
« Reply #26 - Posted 2018-04-26 21:49:32 »

<a href="http://www.youtube.com/v/adIOeHtPICM?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/adIOeHtPICM?version=3&amp;hl=en_US&amp;start=</a>

Soooo tired but still keeping my progress goal Smiley
Offline ByerN
« Reply #27 - Posted 2018-04-28 09:51:52 »

Weapon tiers and visual update. Now we can better see what is character holding in it's hands Smiley

Click to Play


Click to Play


Click to Play


Click to Play


Making of graphics timelapse:
<a href="http://www.youtube.com/v/E9mKQ3KnM5I?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/E9mKQ3KnM5I?version=3&amp;hl=en_US&amp;start=</a>
Offline Springrbua
« Reply #28 - Posted 2018-04-28 10:24:14 »

May I ask you what software you are using for drawing?
Offline ByerN
« Reply #29 - Posted 2018-04-28 10:32:47 »

Inkscape Smiley
Pages: [1] 2 3
  ignore  |  Print  
 
 

 
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!