Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3 4 5

Author Topic: ASCII-based game about sailing ships.  (Read 21559 times)

NJW2000

  • Bay Watcher
  • You know me. What do I know?
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #15 on: July 07, 2017, 04:26:14 pm »

PTaWesomeness
Logged
I'm not around much anymore. I'll still check PMs though.

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #16 on: July 07, 2017, 04:52:08 pm »

I'd appreciate that. The game looks really cool and it is pretty close to impossible for me to play right now. So... pretty please?

Sure, no problem, it shouldn't take more than few days.

Derpy Dev

  • Bay Watcher
  • Normal Person Doing Normal Things
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #17 on: July 07, 2017, 05:40:31 pm »

I'd appreciate that. The game looks really cool and it is pretty close to impossible for me to play right now. So... pretty please?

Sure, no problem, it shouldn't take more than few days.

Awesome!

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #18 on: July 10, 2017, 04:52:33 pm »

So, following useful comments of Derpy Dev (thanks again!), I release intermediate version of the game v0.04b

- Got rid of all numpad and PgDown/PgUp key bindings, so now people with any keyboard should be ok to play. PgUp/PgDown are replaced by brackets [ and ]. Game speed manipulations are now on 9 and 0, or ( and ), for greater decrease/increase. Help file was updated.
- Map scrolling is reworked, now it is allowed only in the "look" mode (and can be done using arrow keys). In all other cases the screen is centered on the player ship. I also added in-game cursor for the look mode.
- There is config.txt now, currently with 4 paramters, FPS limit is the most important. Some comments how to use it can be found inside.
- Some small fixes.
- New line in the main menu "Worldgen test" - under construction, ignore it.

Source: https://drive.google.com/open?id=0B62_kA9GGg0LbjVnRlJMc21UNzg
Binary: https://drive.google.com/open?id=0B62_kA9GGg0LVEJiLWJQRDV0Ums

hawkeye_de

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #19 on: July 14, 2017, 03:19:24 pm »

Very nice...working also on a naval ASCII RL (nothing to share, yet)
Logged
"No matter what you or anyone else does, there will be someone who says that there's something bad about it. Whenever somebody comes up with a good idea, there's somebody else who has never had a good idea in his life who stands up and says, "Oh, you can't do that..."

-Tom Clancy

Derpy Dev

  • Bay Watcher
  • Normal Person Doing Normal Things
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #20 on: July 14, 2017, 03:36:46 pm »

I've screwed around with this over the past couple of days and I have no idea-

- New line in the main menu "Worldgen test" - under construction, ignore it.

Oh... I wasn't supposed to mess with that... I just wasted 20 minutes of my life rereading the keybindings to find out what I was doing wrong...
My bad.

Ahem. Anyway, I spent some time playing the game now that it actually has a good game speed, and it is quite fun so far. The only problem is that I have no idea how to git gud. What possible strategy can you use to improve the outcome of success in a battle? I get the basic stuff such as take enemies on one at a time or spread them out if in larger groups, but combat with a single ship does not seem to involve much more than brute force and aiming all cannons towards the hull.

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #21 on: July 14, 2017, 06:33:29 pm »

Very nice...working also on a naval ASCII RL (nothing to share, yet)
I would be glad to play some naval RL... This potentially very rich topic is really underrepresented in such games.

Oh... I wasn't supposed to mess with that...

Yeah, that's the stuff I'm working on right now. I should have completely delete this menu line from the build, but I got lazy. Sorry.

The only problem is that I have no idea how to git gud. What possible strategy can you use to improve the outcome of success in a battle?

I didn't want to overload the starting post with tons of info, but the game has more hidden parameters and rolls that it may seem at the first glance, and many of them are kinda important and can be used to develop a strategy. Probably, it is good time to go a bit deeper into it.

First of all, artillery hit/damage rolls. Actually, this is probably the most complex part of the game right now. Here some facts, without going much into the numbers:
- The worse weather, the higher chance of missing. Doesn't really depends on anything except wind speed, so you can do nothing about it.
- The distance is very important. Shooting closer to the target may increase chances of hitting dramatically. Moreover, the damage scales with distance as well! At the maximum firing distance (which is gun type specific) you do only 50% of damage. So, one viable strategy, especially if you have a lot of big, slow-to-reload guns, to not waste their shots on large distance. In case if the wind is strong enough, you can wait and not shoot, then come closer, shoot with all guns, and go away. AI doesn't strategize on that, so you are likely to increase your damage significantly. That's requires a bit of slightly annoying micro though. And of course, if the wind is like 4 knots, this is not gonna work.
- Each ship has one of 5 sizes, they are indicated by colors: XS - light green, S - green, M - yellow, L - orange, XL - red. Hitting a larger target is easier, and vice versa.
- Hit chance depends on mutual relative speed. The greater the harder to hit. Also there are some penalty, if target is currently makes maneuver (turn left/right).
- There are some basic geometrical considerations. When your target shows its side to you, it is easier to hit it. When you shoot the ship to stern or bow, the chances to hit are lower. It is kinda hard to use though, because you also don't want to face the enemy's starboard/portside, since most of the artillery are there. But it still can help to keep this in mind.
- Finally, there are basic gun type accuracy, plus material multipliers. If you are really curious, here are characteristics of artillery types, taken from source code. 'base_acc' is a base chance to hit during accuracy roll.
Spoiler (click to show/hide)

On other points, it can be actually a good idea to damage the sails. The point is that maneuverability depends on current speed. It takes A LOT more time to turn when ship is moving very slow (or stays still). So, you can try to damage enemy sails, then move around the ship, avoiding her most powerful side artillery. This is especially easy for certain ship types, since they have relatively fragile sails (mainly, caravel and xebec, as far as I remember).
In addition, "random" targeting mode has bonus to overall chance of hitting, something like ~10%.

Finally, the boarding! Have you already tried this one? It has a whole different mechanics, and it can be the easiest way to defeat the enemy ship (I'm talking abount "The Random Archipelago", where you always have a carrack with 180 bodies on board). It can be a bit overwhelming to set it up first time, so let me know if you have any troubles with it.

At some point, I hope to put much more of info into the game, at least descriptions of gun/ship types, but it is not the highest priority right now. After all, so many things can change at the end. For example, I really want to add later more interesting damage mechanics, more DF-like, with different parts of ship being damaged, with emergency damage control performed by the crew etc, not just plain boring HP bar.
« Last Edit: July 14, 2017, 06:38:17 pm by hun »
Logged

Derpy Dev

  • Bay Watcher
  • Normal Person Doing Normal Things
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #22 on: July 14, 2017, 06:44:50 pm »

Very nice...working also on a naval ASCII RL (nothing to share, yet)
I would be glad to play some naval RL... This potentially very rich topic is really underrepresented in such games.

Oh... I wasn't supposed to mess with that...

Yeah, that's the stuff I'm working on right now. I should have completely delete this menu line from the build, but I got lazy. Sorry.

The only problem is that I have no idea how to git gud. What possible strategy can you use to improve the outcome of success in a battle?

I didn't want to overload the starting post with tons of info, but the game has more hidden parameters and rolls that it may seem at the first glance, and many of them are kinda important and can be used to develop a strategy. Probably, it is good time to go a bit deeper into it.

First of all, artillery hit/damage rolls. Actually, this is probably the most complex part of the game right now. Here some facts, without going much into the numbers:
- The worse weather, the higher chance of missing. Doesn't really depends on anything except wind speed, so you can do nothing about it.
- The distance is very important. Shooting closer to the target may increase chances of hitting dramatically. Moreover, the damage scales with distance as well! At the maximum firing distance (which is gun type specific) you do only 50% of damage. So, one viable strategy, especially if you have a lot of big, slow-to-reload guns, to not waste their shots on large distance. In case if the wind is strong enough, you can wait and not shoot, then come closer, shoot with all guns, and go away. AI doesn't strategize on that, so you are likely to increase your damage significantly. That's requires a bit of slightly annoying micro though. And of course, if the wind is like 4 knots, this is not gonna work.
- Each ship has one of 5 sizes, they are indicated by colors: XS - light green, S - green, M - yellow, L - orange, XL - red. Hitting a larger target is easier, and vice versa.
- Hit chance depends on mutual relative speed. The greater the harder to hit. Also there are some penalty, if target is currently makes maneuver (turn left/right).
- There are some basic geometrical considerations. When your target shows its side to you, it is easier to hit it. When you shoot the ship to stern or bow, the chances to hit are lower. It is kinda hard to use though, because you also don't want to face the enemy's starboard/portside, since most of the artillery are there. But it still can help to keep this in mind.
- Finally, there are basic gun type accuracy, plus material multipliers. If you are really curious, here are characteristics of artillery types, taken from source code. 'base_acc' is a base chance to hit during accuracy roll.
Spoiler (click to show/hide)

On other points, it can be actually a good idea to damage the sails. The point is that maneuverability depends on current speed. It takes A LOT more time to turn when ship is moving very slow (or stays still). So, you can try to damage enemy sails, then move around the ship, avoiding her most powerful side artillery. This is especially easy for certain ship types, since they have relatively fragile sails (mainly, caravel and xebec, as far as I remember).
In addition, "random" targeting mode has bonus to overall chance of hitting, something like ~10%.

Finally, the boarding! Have you already tried this one? It has a whole different mechanics, and it can be the easiest way to defeat the enemy ship (I'm talking abount "The Random Archipelago", where you always have a carrack with 180 bodies on board). It can be a bit overwhelming to set it up first time, so let me know if you have any troubles with it.

At some point, I hope to put much more of info into the game, at least descriptions of gun/ship types, but it is not the highest priority right now. After all, so many things can change at the end. For example, I really want to add later more interesting damage mechanics, more DF-like, with different parts of ship being damaged, with emergency damage control performed by the crew etc, not just plain boring HP bar.

Thanks for the info! The part that really shocked me was when you said firing on random had a higher chance of hitting. That is really interesting because of how it emphasizes a more risky play style.

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #23 on: July 14, 2017, 07:02:51 pm »

Thanks for the info! The part that really shocked me was when you said firing on random had a higher chance of hitting. That is really interesting because of how it emphasizes a more risky play style.

Yeah, that's what I thought. But initially, I just added it for AI. :D This is what they use, in most cases.
Although the bonus has some rationale behind, at least in my mind. When you try to target only sails, you end up firing more often the skyes above the ship, while when you try to target the hull, you more frequently hit the waves instead.

Zireael

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #24 on: July 28, 2017, 01:13:58 pm »

PTW. I loved Admiral: Sea Battles back in the day (and I'm a real life sailor)
Logged

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #25 on: August 02, 2017, 02:09:56 pm »

World generation in progress.

I spent some time, and made the first steps towards in-game world generation. There is a new main menu line 'Worldgen test', where you can test different worldgen parameters. The idea is that later, a player would never be allowed to actually play the world he or she has created here: I want the exploration and information trade to play an important role in the gameplay. Hence, you can set up the world generator parameters and run it several times to have the rough idea about what to expect from this world parameters, but you never know exact disposition of islands, resources, towns etc.
That's first screen, where you can set up the worldgen parameters:
Spoiler (click to show/hide)
There is always 1 standard set, named DEFAULT, but you can change it, or create others, you can also save all sets to a file for later use.
 
Not so many parameters right now, but that's enough to create quite different worlds. I will have to add some world rejection mechanism later, to prevent a player from trying play naval game in the world without oceans, or to filter out some more subtle issues.
You can set up a specific seed, but it doesn't affect resource distribution, only biomes.
Once you've generated the world, you will see the world overview screen:
Spoiler (click to show/hide)
It gives you some high-level idea on islands size in this world, and you can easily check if there is a lack of certain biome types. It can be important, since some resources are restricted to appear in certain biomes. Mountains and tropical biomes are gonna be very important, in particular.

The main information is concentrated in the 'detailed' mode, where you can actually observe all global world tiles and their properties:
Spoiler (click to show/hide)
Each tile is of scale 5x5 kilometers. The same scale I gonna use later for actual game, in 'fast travel' regime.
You can also turn on rare resources overlay:
Spoiler (click to show/hide)
There is also a legend window with resources notation:
Spoiler (click to show/hide)

Biome types are determined by elevation, temperature, moisture and drainage, and currently these 4 properties have no other use. I'm still not sure if they should actually play any other role in gameplay, but we will see (I have temptation to use temperature somehow, since certain biomes may actually have a wide range of temperatures, deserts in particular).
Regarding resources, I came up with a bit confusing mechanics, according to which there are 3 different categories of 'resources'. I term them basic resources, rare resources and products. You can think of products as of output, actually used by civilizations; these products can be obtained via gathering basic or rare resources.
There are only 4 basic resources: fertility, wood, animals and fish. Fish can be found only in the oceans, and other 3 in different mixtures can be found on land. There is no randomness in basic resources, they are determined by biome types. Basic resources can be used on its own to generate products: civilizations can use fertility to get vegetables or grains, wood to get timber, animals to get meat and leather, and they can catch fish. However, main bulk of products can be gained only through rare resources. Here we have another interaction between rare and basic resources: e.g., fertility provides bonus to plant-based resources like coffee or grape vines, increasing corresponding product outputs.
Amount of both basic and rare resources is expressed in per cents. Later it would determine amount of corresponding products, that civilization can gather from the tile.

Just one example to understand the mechanics better. Let us have the following tile:
Spoiler (click to show/hide)
There are 20% fertility, so a civilization would be able to gather 20% of vegetables and grains from the tile. There are only 5% wood, so civilization can gather 5% of timber. Tile has 10% of basic resource 'animals', and 15% of rare resource 'cows'. Both provide meat and leather, so meat and leather outputs are 10+15 = 25% each. 'Milk' is provided only by cows, therefore, amount of milk is 15%.

When I get to civilizations, most likely there will be some specialization, so the civilization would have to choose, whether they want to build farm and gather vegetables/grains, or build ranch and gather meat, leather and milk, or build woodcutter camp and gather wood. But I'm going to think this through more carefully soon.

As you could see on one of the pictures, there are about 40 different rare resources now. Their placement mechanics is rather simple, it is just a roll with biome-specific odds, each tile can have up to 3 different rare resources.

Few more pitcures:
Spoiler (click to show/hide)
Northern lands are scarce with everything, but taiga can provide civilization with enough timber and some food, also the fur animals can be found almost exclusively here.
Spoiler (click to show/hide)
Islands with steppes are filled with cereals and livestock production potential.
Spoiler (click to show/hide)
I feel like tropical forests are kinda OP: so much of everything, and they have many unique products like tea, coffee, spices or ivory.

What's next?
The world still lacks many important world characteristics. There are no rivers (I'll probably postpone them for a while). There is no wind map (very important for the player, but I have no plan to use it on civilization level currently). There are no currents (I would like to have them later, but again, they don't matter at the civilization level).

So, I'm going to push towards the civilizations and resource trade between them. The plan:
- Some supplementary world calculations: identifying number of islands and their properties; island names generator.
- Civilizations. I need to think carefully, how they would gather resources and how they would spend them; how they trade resources (without involving the player). I think I will write my thoughts on this later.

I didn't compile a game build with new stuff, I may do so if there are people who are interested to play with the current world generator; let me know

PTW. I loved Admiral: Sea Battles back in the day (and I'm a real life sailor)

That's a honor to have the real sailor in this topic! Thanks for the reference, never heard about this game before, gonna check it later.
« Last Edit: August 02, 2017, 02:24:57 pm by hun »
Logged

Derpy Dev

  • Bay Watcher
  • Normal Person Doing Normal Things
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #26 on: August 02, 2017, 05:24:39 pm »

That's awesome! Yes, I would like to screw with the world generator.

By the way, sorry for not having a lot to say on the subject of Sea Wolves here lately. I don't really know what else to say right now, and I haven't been testing it out that much either. So my bad.

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #27 on: August 02, 2017, 06:10:11 pm »

That's awesome! Yes, I would like to screw with the world generator.
Sounds good. Then let me work a bit on islands identification and naming (shouldn't take long), then fix some small things and I will post new version build.

By the way, sorry for not having a lot to say on the subject of Sea Wolves here lately. I don't really know what else to say right now, and I haven't been testing it out that much either. So my bad.
No worries, no need to force yourself.

Zireael

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #28 on: August 05, 2017, 07:02:23 am »

I tried the build with the controls no longer limited to numpad. At 20 FPS, to move sensibly I had to put the game at x10, only slowing to x5 once I got accosted by some pirates. It might be useful to have a way to skip time until something happens (faster for the player and also less redraws)?

I also looked at the source code, so far I have only one nit: the wind scale is spelled Beaufort not Beufort.
Logged

hun

  • Bay Watcher
    • View Profile
Re: ASCII-based game about sailing ships.
« Reply #29 on: August 05, 2017, 10:35:11 am »

I tried the build with the controls no longer limited to numpad. At 20 FPS, to move sensibly I had to put the game at x10, only slowing to x5 once I got accosted by some pirates. It might be useful to have a way to skip time until something happens (faster for the player and also less redraws)?
You can speed up to x30. That's typically fast enough.
I'm going to add the whole fast travel mode later (with a larger map scale), which is going to work roughly as you proposed. The two scenarios we have now are pure battle scenarios, you are guarenteed to have the enemies nearby, and your only goal is to destroy them.

I also looked at the source code, so far I have only one nit: the wind scale is spelled Beaufort not Beufort.
Haha, thanks. You will see a lot of other nonsense in variable names, and especially in comments, I was quite careless for grammatics in my code.
Pages: 1 [2] 3 4 5