Making a chat log for 2d turn based rpg

Started by
4 comments, last by taten3n 11 years, 2 months ago

Hello.

I am currently making a 2d turn based rpg. Currently i came to a stage where i want to keep a chat log of what happened during battles.
Example:

...
unit1 attacked unit2 damaging for 50 hit points

unit7 turn

unit7 used defend increasing defenses by 5 for 1 second

unit3 turn

unit3 attacked unit 7 damaging for 12 hit points

I am using c++ and sfml2 for displaying.

A ideas how to do this would be of a great value.

Advertisement

If you are looking for storage of the chat log, keeping a record of the last /n/ items is a great application of a circular buffer. Old items naturally drop out of the list as new items are added.

If you are looking for some other aspect of implementing a chat log, you'll need to be more specific.

If you are looking for some help on implementation I've written a message list / box in C# and XNA which you can find here: https://github.com/albinodervall/Roguelike/blob/master/Roguelike/Interface/MessageList.cs

It uses some XNA specific stuff like measuring the length in pixels of a string and such but the general idea is there. It supports the ability to colour your text, for example:


$Red Hello, $Green BaneTrapper

Would come out as:

Hello, BaneTrapper

It also support word-wrapping when a message becomes too long.

I hope it will help you somewhere on your way.


If you are looking for storage of the chat log, keeping a record of the last /n/ items is a great application of a circular buffer. Old items naturally drop out of the list as new items are added.

If you are looking for some other aspect of implementing a chat log, you'll need to be more specific.


That is a great concept i will build from it.

If you are looking for some help on implementation I've written a message list / box in C# and XNA which you can find here: https://github.com/albinodervall/Roguelike/blob/master/Roguelike/Interface/MessageList.cs

It uses some XNA specific stuff like measuring the length in pixels of a string and such but the general idea is there. It supports the ability to colour your text, for example:


$Red Hello, $Green BaneTrapper

Would come out as:

Hello, BaneTrapper

It also support word-wrapping when a message becomes too long.

I hope it will help you somewhere on your way.

I have not yet done a application that mixes c++ with c#. Not sure can it be done, but from what i heard it should be possible.

About the Chat log What have i done till now is.

When a action like attack, defend or spell is executed. string log(unit1 attacked unit2 damaging for 50 hit points)is pushed intro a data holder for chat.

When am displaying chat log for user to see. Its drawing from data holder for chat until it cant draw no more(next text wont fit intro displaying area).

When displayed string width is greater then the max size of chat log width, i cut the string intro two parts and display it twice so it fits.

Everything was more simpler then it looked in "think of what i need to do" process. Ive got a chat log that am happy with.

What would be nice to look at code of other chat logs, or maybe a tutorial, if you know / have some it would be useful to check it just for ideas sake.

I have not yet done a application that mixes c++ with c#. Not sure can it be done, but from what i heard it should be possible.

I didn't mean you should just use it, but you can look at it and see how I did it.

Could I ask for a code snippet, to see how you use SFML 2.0 to display text like a chat log?

This topic is closed to new replies.

Advertisement