Clarion++?

I was thinking of translating Clarion into C++. GM is just too slow for me to do the things I WANT to do. And I think I’ve figured out more than enough C++ tricks to actually do this. It would also involve redoing ALL of the graphics, but not necessarily all of the logic. It should be encapsulated well enough to be an easy translation. Of course I would have to rewrite a whole lot of things to work in C++, but it’d be worth it.

If I ported it to C++, I’d improve/add the following:

-Scalable display with proper graphical frames instead of pre-drawn backgrounds for menus.
-Isometric view of the game world with smoother scrolling and movement of objects across tiles (sliding movement as opposed to popping)
-Larger sprites and tiles
-Support for idle animations for tiles/people/monsters/creatures and improved visuals on items as a result. This is possible due to the lack of GM’s ridiculous object overhead and speed problems.
-FASTER PERFORMANCE
-Finally, the LOS algorithm will work fast enough to be practical and worldgen won’t take five damn minutes.
-Better-implemented code all-around due to having the opportunity to redo it and put in framework features and optimizations I should have put in before.
-Easier tileset modability by simply replacing pictures in the appropriate folders.

Can’t do any of this until I get a new computer, but I’m just throwing that out there as a possibility.

Returning to Work?

Hope so!

I’ve been distracted lately, mostly college preparation, but I should be ready to start back up on making updates. Yesterday I took care of a few bugs, but didn’t really add anything significant.

Here’s my current to-do list.

-Add foliage and other decoration to biomes. (Evergreens, canopy trees, rocks)

-Add a starting player home, where they can sleep/heal/store items.

-Make items combinable (ex: bright sprite) and give them a [combine event] trigger.

-Add a display for leveling bonus points.

-Add a display for stamina

-Add some animals in the wilderness to grind on.

-Add options menu. Has music and soundFX sliders etc. This data needs to be saved/loaded to/from a config file.

-Add player file mortems that show stats of deceased/retired characters.

~Use speech bubbles instead of the message log for dialogue?

-Add confirmation for ESC exit.

-Make the load game menu not scroll infinitely.

-Make less trees in a forest when there’s a POI there.

Release v0.13

Changelog:

(Previous saves are incompatible!)

-You may now choose from four different death penalties during character creation!
-A town is placed under the player after world generation. (Will be changed later.)
-Sleeping at the Inn no longer leaves you with a grogginess effect.
-Corrected log message order for skullbomb explosion and waking up.
-Trees no longer appear on invalid tiles.
-Some objects now refer to the player by name when used, rather than “You…”
-The effects of drowsiness are now far more severe. You become even slower and less accurate. Your concentration will drain. And your brawn will be halved.
-Fixed a bug that disabled objects (like stairs) that were supposed to be usable while being stood on.
-The game now has black borders in fullscreen to keep the aspect ratio.
-The value of random contemplation and rejuvenation modifiers has been slightly reduced and proc ten times less often.
-Reduced the amount of cashews that appear.
-Reduced the weight of later-tier shields.
-The arrow keys can now also be used to control the camera.
-Fixed a bug that allowed certain NPC’s to sleep when they shouldn’t be able to.
-Enemies that are not greater than half your level no longer yield any experience points.
-The number of experience points you earn is now reported by the message log.
-Fixed a bug that caused the view to shift out of bounds when entering a cave/dungeon from the surface.
-There are now caves littered around the world.
-You can no longer switch to the world map while an actor has you targeted for combat.
-Characters get a +1 rejuvenation bonus while sleeping.

Release v0.12.1

Just a small batch of fixes and additions. After this, I plan to populate the terrain with some stuff to find and more varied foliage and shapes. Should be much more interesting.

 

CHANGELOG:

-May have fixed the problem that caused errors/death/crashing when entering a town. Needs thorough testing.

-Sleeping actors no longer evade attacks.

-Sleeping actors show an animated “zZz” effect above their heads.

-Moving on the world map is slightly faster.

-Night time on the surface allows you to see three tiles away instead of just one.

-Nerfed ranged weapons. Buffed axes. Slight buff for spears.

-Gave Teether use of the fireball spell.

-Enemies now have a “bravery” flag. Brave enemies will not run when injured.

-Enemies decide target priority on path distance rather than straight manhattan distance.

-Actors now have a “keen” flag. Actors with keen senses can “see” other actors even behind obstructions. If the player obtains keen senses, actors will

reveal themselves behind walls if they are within your perception range.

-Added a new item “Keenroot”. Eat it to gain keen senses.

-Fixed a bug that created infinite proxy instances and sapped performance over time.

-Fixed an exploit that allowed the player to reduce the tick burden of any action to 1.

-The player may now wake up manually by pressing ‘space’.

-Fixed a bug allowing the town generator to take way too long to generate a town.

-Locked doors now show a little keyhole.

Release v0.12

Grab it. It’s out. Go to the download page.

-A million billion bugfixes and subtle changes. Seriously.

-Planet generator and world map.

-The kinds of terrain tiles have at least quadrupled.

-Improved A.I.

-Improved performance.

-Tooltips for some things on the U.I.

Here’s what was supposed to be in, but I didn’t get the time because of bugs coming at me from all direction out of NOWHERE that I had to fix. (Also Terraria 1.1)

-Animals roaming the wilderness.

-More items, weapons, skills.

-ANYTHING AT ALL in the wilderness. It’s just terrain and trees right now. Think of it as a blank canvas. There are towns with their dungeons though.

Known bugs:

-Walking into a town that’s placed on a forest can crash the game.

-There might be some issues with the inventory related to moving around stackable items. I believe I fixed it, but I’m not 100% certain.

Thinking About Story

I did some programming and spriting today. Of course.

But I also spent some time putting together Clarion’s creation myth and general backstory.

I’ve reached the point in development where I have to start making considerations about what Clarion’s universe involves. How it works, what the conflict is, how it all ties into gameplay progression, and how it affects the environment and characters.

I’m keeping the details secret, just in case anyone cares not to be spoiled, but the main elements are…

-Clarions, (you know, the thing this game is named after) are fountains of burning-hot light that shoot out from underground into the sky. Each is guarded by a boss enemy/s who may or may not explain parts of the story to further it along.

-Magic exists and is explained via the creation myth, but most creatures on Grond have limited use of it if any, magical talents are rare and rarely used (exception being the player). The existence of the “sprites” and the reason weapons and equipment have random modifiers is also explained. The races themselves, and the dichotomy between animals and monsters also has roots in the creation myth.

-There are no active gods. There are beings similar in form and function to angels and demons, but neither are inherently good or evil, they are individuals from far away that happen to have stronger magical powers, immortality, and greater knowledge of the game’s conflict.

-The protagonist possesses an object that allows only him/her to resolve the conflict. This object is “upgraded” to give the player more abilities as the game progresses. For most of the game, the protagonist will only have vague knowledge of why he/she has to do what he’s doing.

-The antogonists have an actual motive, as opposed to “I’m evil, so I’m going to do evil things.”

-The player will have three choices at the end of the story. They can ignore the situation and continue playing (and come back to it later), they can choose one ending to start a more difficult new game+ on a newly-generated world, or they can choose the other and allow the antogonists to have their way, which forces the player into an infinite dungeon that they cannot return from that’s on a timer, when the timer is up or the player dies, the story concludes, and the player’s file is replaced with a tombstone accessible from the main menu that contains playthrough stats and a special spot for how far you progressed in the final dungeon. (Retiring a normal save or dying on a permadeath save will give you a similar tombstone, but there will be no final dungeon score.)

The majority of the world terrain generator is complete, including all biomes. This has been a LOT of slow work on account of all the sprites I’ve been having to draw, but the variety is worth the effort. The world map system itself is complete. In addition, I’ve addressed some minor bugs and completely recoded some things affecting A.I’s awareness, most importantly fixing the fact that if you attack something when it can’t see you, it wouldn’t react.

There’s still some foliage, animals, and other decorations to draw and program, plus I need to add some gameplay-related goodies around the place. This coming Monday, I will upload whatever I have in the build as v0.12.

Today’s Progress

I improved some details in the planet generator, and created the system that will decide progression and difficulty based on where the player is able to travel and how long it takes to get there.

Today’s Progress

I got back to work!

Today, I made the world map screen functional, and added sprites for each of the different biomes, though they’re pretty rough right now. The individual biomes don’t have their generators yet, just plains. However, the edges of a biome that touch an impassable biome have the appropriate tiles added onto the edges and corners. Hard to explain, but you’ll see later.

As it is now, you’re able to move to and from the world map as you please. But there’s no towns or any other points of interest added in yet, and every biome defaults to the PLAINS generator. I had to totally recode the terrain generator so that it can take the biome data and points of interest and overlap them to generate an area. All I have to do now is actually set how those specific things are generated, which is much simpler now since I finally got around to condensing some of my commonly-used tile-placement algorithms into easy-to-read functions. This doesn’t affect dungeon/cave generators, thankfully. Those are separate.

I also added some delayed tooltips to buttons and made it easier to set tooltips for other buttons later.

I’ll probably upload a new version once I have the biome and P.O.I. generators completed. It could be a week at most. There’s a lot to do…

Status Report

So, as you can see, I’ve started working on the world map.

The way it works is if you’re on the surface (not in a dungeon, cave, tower, etc.) then you can zoom between the immediate area and the world map as long as you’re not targeted by an enemy. The world map will facilitate fast-travel and time will pass faster as you move about it, but you also have the option of hoofing it while zoomed in for the entire game. Heck, I might even implement a no-map mode for you super-hardcore guys.

And about the generator itself, for those who are curious…

You can choose three world sizes, 64×64, 128×128, and 256×256, which take about 2.5 seconds, 10 seconds, and 40 seconds to generate, respectively.

The generator takes three samples of perlin noise per tile, each sample representing elevation, temperature, and humidity. Each combination forms a unique biome like desert, plains, mountains, sea, and everything in-between. This forms what you see in the previous post. Each of those biome tiles decide which area-generator is used to create the map represented by that tile. There will also be points of interest intelligently placed on the world. First, a starting area for the player is decided, one with lots of room. Then from there, any locations that need to be reached by a new player by foot will draw an A* path from there to the starting area to make sure they are reachable, if not, it tries a new spot. One important place the player will NEED to be able to get to is the first clarion dungeon, which after being conquered, will grant the player a raft they can use to travel shallow oceans. The second will grant a boat that allows travel across deep seas. And maybe around the fourth or fifth (Out of seven by the way. Oh how I love the rule of sevens.) you’ll receive a flying apparatus.

Follow

Get every new post delivered to your Inbox.